eG Administration

6. - Integration with PagerDuty PagerDuty provides alerting, on-call scheduling, escalation policies and incident tracking to increase uptime of your apps, servers, websites and databases. To enable eG Enterprise to integrate with PagerDuty, do the following: Login to the eG administrative interface. Select the Manager option from the Settings tile. The MANAGER settings will then appear. From the MANAGER settings tree in the left panel, select the ITSM/Collaboration Integration node. The third-party ITSM/Collaboration tools that eG Enterprise can integrate with will be listed in the right panel. Now, click on the PagerDuty option in the right panel. A PagerDuty section will now appear in the right panel. To enable integration with PagerDuty, first slide the PagerDuty slider to the right. Then, specify the following: Service URL: The web services URL using which the eG manager should connect to PagerDuty. Service key: The unique key that is required for accessing the web services API of PagerDuty. Incident title: Specify the format in which the title of the trouble ticket is to be displayed in the PagerDuty console. The default format is as follows: Priority :$prior Component : $cname Component Type : $ctype Layer : $layer Problem Description : $pdesc Start Time : $starttime The text preceding the ‘:’ (colon) in the format above indicates what information follows. The ‘dollared’ ($) text in the format above is a key, the value of which varies at run time, depending upon the information contained in the eG alarms. For example, in the default format above, Priority is a label that indicates that the information that follows the ‘:’ is the priority of the alarm. The key $prior that succeeds the ‘:’ represents the alarm priority, and changes according to the priority of the actual alarm that is sent by the eG manager to PagerDuty. While you can change the labels, you are advised against changing any of the keys. The other keys that are part of the default format are discussed in the table below:
     $cname | Will display the name of the problem component
     $ctype | Will display the component type to which the problem component belongs
     $layer | Will display the layer affected by the problem
     $pdesc | Will display a brief problem description
     $starttime | Will display the start time of the problem
   - Problem description: Specify the format in which the problem description should be displayed in the trouble tickets generated by PagerDuty. The default problem description contains the following keys:
     $prior | Refers to the problem priority
     $cname | Will display the name of the problem component
     $ctype | Will display the component type to which the problem component belongs
     $layer | Will display the layer affected by the problem
     $starttime | Will display the problem start time
     $pdesc | Will display a brief problem description
You can override this default format by removing one/more keys or by changing the positions of a few keys. For instance, you may not want the problem component type to be part of the problem description. In this case therefore, your Problem description will be. $prior$cname $layer $pdesc $starttime Client: You may want the trouble ticket generated by PagerDuty to indicate which client supplied the problem information. If so, then provide the client name here. In the case of this integration, you may want to provide a unique identifier for the eG manager against Client. Client URL: You may want the trouble ticket generated by PagerDuty to indicate the URL of the client that supplied the problem information. If so, then provide the client URL here. In the case of this integration, you may want to provide the URL of the eG manager against Client URL. Custom Payload: Use custom payload to customize the alert information you send to PagerDuty, so that it includes additional static information. Typically, the details of an eG alert are sent as a JSON file to the configured URL. Every piece of information contained within an eG alert - eg., priority, component name, component type etc. - is represented in the JSON file as a $key:$value pair, where ‘key’ the alert field, and ‘value’ denotes the actual value of that field at run time. The ‘key’ is configured based on the keys supported by the PagerDuty REST API. For instance, if the REST API represents alarm priorities using the key ‘prior’, then the same key will be used in the JSON file for denoting alarm priorities. Accordingly, the entry for alarm priority in the JSON file will be $prior:$value. The $value will be Critical, Major, Minor, or Normal, depending upon the actual priority of the alarm being sent. If you want eG incidents routed to PageDuty to include additional information, then you can define a Custom Payload for that information as a $key:$value pair. For example, say, you want incidents to indicate the FQDN of the eG manager that generated the incidents. Say that the FQDN of your eG manager is egmanager.innovations.com. To include this information in PagerDuty incidents, do the following: First, check whether the PagerDuty REST API supports a ‘key’ that can be used for capturing the ‘source’ of alerts/incidents. If no such key exists, then you cannot proceed with the Custom Payload configuration. On the other hand, if such a key is available, then proceed to replace the $key in your Custom Payload specification, with that key value. For the purpose of our example, let us assume that the PagerDuty REST API supports the key named ‘source’. In this case therefore, substitute ‘$key’ with ‘source’. Then, proceed to explicitly specify the FQDN of your eG manager in the place of $value. This is because, you can use the Custom Payload configuration to add only ‘static’ information - i.e., information that you explicitly configure, and hence will never change. In the case of our example therefore, the $value will be egmanager.innovations.com. The complete Custom Payload specification will now be: source:egmanager.innovations.com. Finally, click the Update button to save the changes.