TABLE OF CONTENTS
Summary
Transcend to Service Oriented Operations (SOO) with Freshservice Service Health Monitoring. Meet and exceed service level agreements by discovering assets, mapping interdependencies, and monitoring business and technical services. Discover the ‘what’ of a service to decode ‘how’ to fix it best, to provide high quality services to your end users.
Why Service Health Monitoring?
To keep your business up and running and customers happy, your Service Desk and ITOps Teams manage tickets, requests, and alerts. Each of these provides a teaser of sorts into underlying issues. But connecting all this data with end-user experience is complicated and time-consuming. However, there is a better way to get the complete story. And it resides with your end users in the form of services they consume.
Imagine looking through the same lens as your end user. Once you manually map the assets powering a service, you would be viewing the state of the service – the value delivered to your end user – rather than the status of individual alerts or tickets. With this view, you’ll be able to identify all the tickets affecting a service, prioritize those with the maximum impact, and reestablish normalcy for your end-users sooner rather than later.
Freshservice Service Health Monitoring is a window that provides this user-centric perspective into the state of your business.
Functionalities that you can make use of
Tabs on the Service details page
The service detail page has a number of features you could make use of. In addition to the overview tab, you'll notice several more tabs. See associated assets under the Relationships tab, associated alerts and incidents under the Associations tab, all the monitoring tools associated with this service under the Alert Configurations tab, and a timeline of the activities performed on on the service under the Activities tab.
2. Right side pane on the service details page
This would provide you with a quick view into
- Service Properties
- Impact
- Managed by group
- Managed by (primary poc)
- Primary on-call (with an option to view all on-call members)
3. Service map page
Use it to visualize multi level dependencies between impacted resources and click-through to related alerts and incidents.
3. Services List Page
This provides a single pane view of all services including:
- Service name
- Health status
- Type
- Impact
- Managed by Group
- Managed by (primary poc)
Use the Settings icon to customize this view as per your requirements.
Use the Filter icon to select filters and quickly find the service you are looking for.
How does Freshservice Service Health Monitoring work?
In Freshservice, service health status is defined by:
Automated computation of service health status from alerts
Propagation of health status to services up to 5 levels in a relationship map
Let's explore both in detail.
Automated computation of service health status from alerts
The health status of a service is derived from the ingested alerts. Here again, there are two scenarios:
Service is mapped to a monitoring tool
Service is not mapped to any monitoring tool
Scenario 1: When a service is mapped to a monitoring tool
Consider a scenario where GFS Shopping Cart Service is monitored using Datadog monitoring tool. This service has relationships with various other services like GFS Product Catalog Service and GFS Inventory Service and other resources as shown below. In this case we are getting an alert and the GFS Shopping cart service is impacted. Thus, its status is updated to 'Needs Attention'.
Other related services like GFS Product Catalog Service, GFS Inventory Service, & E-commerce Payment Service which are in Impact causing relationship with Shopping Cart Service will also be impacted. Their status will also turn to 'Needs Attention' as the health status gets propagated to 5 levels of relationships.
To sum it up, the system has automatically updates the health status of service connected to a monitoring tool and also propagates the health status of the other related services.
Scenario 2: When a service is not mapped to a monitoring tool
Consider the service map above. In this case the services are not mapped to any monitoring tool and we are getting alerts from the upstream system. The alert has a resource name as 'US-Shopping Cart AWS VM' in the payload which is present in our CMDB and is associated with various assets and services.
Once this alert is ingested into Freshservice, the resource name – “US-Shopping Cart AWS VM – is parsed in the alert payload, and its related service map is traversed automatically to find out all the impacted services. All services up to 5 levels, which are in impact causing relationship with the resource, are listed and their health status is marked as 'Needs Attention'.
The impacted services and their respective association with alerts and incidents are also maintained accordingly.
Propagation of health status for up to 5 levels in a relationship map
The second way a service health status is automatically updated, is by the propagation of health status for up to 5 levels in a relationship map. Basically, if there's a service with health status as 'Needs Attention' then this status is propagated to all the other related services that are in an impact causing relationship, for up to 5 levels. Points to note:
The relationship should be an impact causing relationship ( Refer Table Below)
For all Default relations in Freshservice, upstream relations are marked as Impacted. Users have the ability to change this as required ( Navigation Admin> Relationship Types )
Based on the direction of Impact configured, service health is propagated accordingly
The propagation will happen up to a maximum of 25 services in the relationship map
If a service health status is manually updated, it will not get propagated to other services
Relationship Impacts are Inferred with Primary Resource as A in the below table
Relationship # | Direction | Relationship Title | Impacting? | Sentence Reference |
1 | Downstream | Depends On | No | A Depends On B |
1 | Upstream | Used By | Yes | A Used By B |
2 | Downstream | Uses | No | A Uses B |
2 | Upstream | Used By | Yes | A Used By B |
3 | Downstream | Sends Data To | No | A Sends Data To B |
3 | Upstream | Receives Data From | Yes | A Receives Data From B |
4 | Downstream | Runs on | No | A Runs on B |
4 | Upstream | Runs | Yes | A Runs B |
5 | Downstream | Connected to | No | A Connected to B |
5 | Upstream | Connected to | Yes | A Connected to B |
6 | Downstream | Subscribes to | No | A Subscribes to B |
6 | Upstream | Subscribed by | Yes | A Subscribed by B |
7 | Downstream | Impacted By | No | A Impacted By B |
7 | Upstream | Impacts | Yes | A Impacts B |
8 | Downstream | Submitted By | No | A Submitted By B |
8 | Upstream | Submits | Yes | A Submits B |
9 | Downstream | Supported By | No | A Supported By B |
9 | Upstream | Supports | Yes | A Supports B |
10 | Downstream | Author of | No | A Author of B |
10 | Upstream | Written By | Yes | A Written By B |
11 | Downstream | Hosted On | No | A Hosted On B |
11 | Upstream | Hosts | Yes | A Hosts B |
12 | Downstream | Is Enabled By | No | A Is Enabled By B |
12 | Upstream | Enables | Yes | A Enables B |
13 | Downstream | Member of | No | A Member of B |
13 | Upstream | Includes | Yes | A Includes B |
14 | Downstream | In Rack | No | A In Rack B |
14 | Upstream | Contains | Yes | A Contains B |
15 | Downstream | Located In | No | A Located In B |
15 | Upstream | Houses | Yes | A Houses B |
16 | Downstream | Exchanges data with | No | A Exchanges data with B |
16 | Upstream | Exchanges data with | Yes | A Exchanges data with B |
17 | Downstream | Manages | No | A Manages B |
17 | Upstream | Managed by | Yes | A Managed by B |
18 | Downstream | Uses | No | A Uses B |
18 | Upstream | Owned By | Yes | A Owned By B |
19 | Downstream | Virtualized by | No | A Virtualized by B |
19 | Upstream | Virtualizes | Yes | A Virtualizes B |
20 | Downstream | Editor | No | A Editor B |
20 | Upstream | Is Edited by | Yes | A Is Edited by B |
21 | Downstream | Backed Up by | No | A Backed Up by B |
21 | Upstream | Backed Up by | Yes | A Backed Up by B |
22 | Downstream | Consists of | No | A Consists of B |
22 | Upstream | Are part of | Yes | A Are part of B |
23 | Downstream | Contains | No | A Contains B |
23 | Upstream | Attached to | Yes | A Attached to B |
24 | Downstream | Receives Data From | No | A Receives Data From B |
24 | Upstream | Sends Data To | Yes | A Sends Data To B |
25 | Downstream | Has | No | A Has B |
25 | Upstream | Is Attached To | Yes | A Is Attached To B |
26 | Downstream | Has Registered | No | A Has Registered B |
26 | Upstream | Is Registered On | Yes | A Is Registered On B |
27 | Downstream | Contains | No | A Contains B |
27 | Upstream | Contained By | Yes | A Contained By B |
28 | Downstream | Used By | No | A Used By B |
28 | Upstream | Uses | Yes | A Uses B |
29 | Downstream | Provides storage for | No | A Provides storage for B |
29 | Upstream | Stored on | Yes | A Stored on B |
30 | Downstream | Provides | No | A Provides B |
30 | Upstream | Provided By |
Note: This feature is not available in Sandbox as of now.