What is a Service Catalog?
FireHydrant’s Service Catalog provides a streamlined way to describe and update all of your services. Our Service Catalog configuration options, including the ability to ingest services and service metadata from third party systems, make it easy to set up a detailed record of all your services and to refresh data about each service automatically.
A major benefit of maintaining your Service Catalog in FireHydrant is that it enables you to track which services are affected by a specific incident. With this information, you can customize how you respond to incidents based on the services impacted.
Currently, FireHydrant's Service Catalog performs three main functions:
You can access the Service Catalog page from the left nav panel, under Infrastructure.
The first step in building your Service Catalog is to bring service information into FireHydrant. You can add new services manually, or link and import services from third party systems.
To add a service:
- From the Services page, click Create service to add a service manually and add the details for the service.
- To link services stored externally (for example, to read services from a Github repo or from PagerDuty), click Link and import. Choose the external source that contains the service(s) you want to import. For example, if you choose Github, the services available for import from Github appear in the list shown.
- (For importing) Choose the external source that contains the service(s) you want to import. For example, if you choose Github, the services available for import from Github appear in the list shown.
- Select the checkbox next to the service you want to import and click Start import.
The service is imported into your Service Catalog.
Beta Catalog ingestion
Ingesting a third party system allows your Service Catalog config files to live within FireHydrant. Utilizing Backstage YAML formatting via Github, FireHydrant provides more advanced automation enrichment towards services and related incidents, as well as better discoverability.
To begin ingesting and maintaining this data, we require the following in Github (via Backstage formatting):
- Main repo of the catalog
- Path of the catalog file in the repository
- Main branch name
The ingested YAML file translates to a managed service within FireHydrant’s Service Catalog.
For example, this ingested YAML:
Becomes this managed service page:
In addition to ingesting Backstage formatting, FireHydrant also supports Effx and OpsLevel.
Updating ingested third-party data
To maintain data freshness, we scrape your third party system data every hour and update our Service Catalog to reflect the most recent changes and versioning.
Manually creating and editing services
You can manually create a new service within the Services section of FireHydrant.
- Click + Create Service in the top right corner of the UI.
- Next, fill out the relevant information for your service in fields provided. Information in these sections can help to drive better Runbook automation toward services.
- (Optional) You can add custom links within this service that will appear in the discoverability portion of a service.
To automatically link a source at a later time, you can access this functionality by navigating to the main view of the catalog and clicking Link and Import.
Having fast access to information about any given service is vital during an incident. Our Slack integration makes it easy to get quick access to service data. To search for a service that already exists on FireHydrant, run the command:
This provides a pull-down menu where you can select the service you want.
You can run:
/fh service <service_name>
to immediately pull up the existing data about that service.
For example, if you have Datadog integrated with FireHydrant, running:
/fh service datadog
provides a quick overview of your Datadog service and a link to your Datadog page on FireHydrant.
Automating alerts and using analytics
You need to pull the right people into an incident when a service is impacted. With Service Catalog, you can automatically create an alert on a third party system when a service is added to an incident.
Within the Services section click the service where you want to turn on automatic alerting.
For example: On the detail page for the service pictured, you can confirm within the Links section that PagerDuty is linked.
From this view, click Edit details in the top right corner.
In the edit view of the service, scroll down to the Alerting section.
After selecting the checkbox, finish the setup by clicking Save edits to confirm that this change will be made.
To test automatic paging, start by clicking Declare Incident. After the Incident page loads, add the service you would like to test and declare the incident.
Your alerting system will now automatically page you via your default escalation policy in addition to the FireHydrant Incident Timeline, reflecting that an alert was generated via that service.
Setting and utilizing service tiers
Services in FireHydrant have available Tiers 1 - 5. After setting the tier for a service, you can run a Runbook automation based on tiers impacted during an incident while showing the criticality of that service. By utilizing Tiers and conditioning within Runbooks, services can be effectively and automatically added to incidents.
This helps strengthen the metrics you capture within the Analytics view as more services are measured within incidents. These expanded metrics give you more insight into what services are being impacted the most within your incidents.
Additionally, you can search incidents that have impacted the same services previously, read the relevant logs, and review analytics for the service that was impacted. This insight helps you determine who to contact when a new incident involving the same service is declared.
For example: if a user reports that a Login page is down, they may not know which backend services the page maps to, and may be unable to identify the correct owners for the underlying impacted service. By mapping the Login functionality to the backend service (OAuth2, for example) in FireHydrant, you can quickly identify who to contact for troubleshooting during the incident.