ServiceNow - Alerting Extension

NOTE 

We have updated this extension and published a new one with the changes. Please get the new extension from ServiceNow REST API Alerting Extension

ServiceNow (http://www.servicenow.com) is a software-as-a-service (SaaS) provider of IT service management (ITSM) software. AppDynamics integrates directly with ServiceNow to create tickets in response to alerts. With the ServiceNow integration you can leverage your existing ticketing infrastructure to notify your operations team to resolve performance degradation issues.

 

 

Pre-requisites

If you're using the ServiceNow Calgary release, then you must upgrade to Patch 4 or the more recent GA (Generally Available) version which contains the JSON V2 web services plugin. 

 

 

Installation

 

1. Download and unzip the ServiceNowAlertingExtension into your <Controller Home> directory.

 

2. Modify the parameters in the<Controller Home>/custom/actions/createServiceNowTicket/params.sh file as follows:

 

a. Assign the ASSIGN_TO variable to be a person or department account that is authorized in the ServiceNow system and to which auto generated tickets can be assigned.

 

b. Assign the DOMAIN variable to be your ServiceNow domain. For example,

 

DOMAIN="https://sampledomain.service-now.com"

c. Assign the USER variable to be the username that will issue these generated tickets.

 

d. Assign the PASSWORD variable to be the password of the entered username that will issue these generated tickets.

 

e. Assign the SERVICENOW_VERSION variable to be the target version of ServiceNow instance you are sending alerts to. Valid values are "Calgary" and "Dublin".

 

3. In ServiceNow, on the Left Nav Menu, go to "System Update Sets" -> "Retrieved Update Sets" and click on the link "Import Update Set from XML" and upload the appropriate ServiceNow update set file.

 

In case you're using the Calgary release, upload the update set file found in the <Controller Home>/custom/update_sets/AppDynamics4Calgary.xml 

 

In case you're using the Dublin release, upload the update set file found in the <Controller Home>/custom/update_sets/AppDynamics.xml

 

Once, you have uploaded the update set file, click on Preview and then Commit the update set file.

 

Note: Please be advised there is a potential for performance impacts on very large scale environments and that these imports should take place during off-peak hours.

 

4. Modify the createServiceNowTicket.sh file using the following table to correspond with the parameters in the params.sh file: 

AppDynamics ParametersServiceNow ParametersComments
 assigned_toThis is the field used to assign an incident to an individual/department. The email address or full name of the designated user can be written here. This should be entered into the params.sh file as an email address that is already configured in the ServiceNow environment.
APP_NAME
PVN_ALERT_TIME
SEVERITY
POLICY_NAME
AFFECTED_ENTITY_TYPE
AFFECTED_ENTITY_NAME
EVALUATION_TYPE
EVALUATION_ENTITY_NAME
SCOPE_TYPE_x
SCOPE_NAME_x
CONDITION_NAME_x
THRESHOLD_VALUE_x
OPERATOR_x
BASELINE_NAME_x
USE_DEFAULT_BASELINE_x
OBSERVED_VALUE_x
INCIDENT_ID
DEEP_LINK_URL
descriptionThe format is as follows for the following Policy Violation Parameters:
Variable name: Variable value
Application Name: APP_NAME
Policy Violation Alert Time: PVN_ALERT_TIME
Severity: SEVERITY
Name of Violated Policy: POLICY_NAME
Affected Entity Type: AFFECTED_ENTITY_TYPE
Name of Affected Entity: AFFECTED_ENTITY_NAME
Evaluation Entity #x
Evaluation Entity: EVALUATION_TYPE
Evaluation Entity Name: EVALUATION_ENTITY_NAME
Triggered Condition #x
Scope Type: SCOPE_TYPE_x
Scope Name: SCOPE_NAME_x
CONDITION_NAME_x
OPERATOR_x
THRESHOLD_VALUE_x (this is for ABSOLUTE conditions)
Violation Value: OBSERVED_VALUE_x
Incident URL: DEEP_LINK_URL + INCIDENT_ID
SEVERITYimpactRepresents the impact of the new Problem. Use the SEVERITY parameter where: ERROR = 1, WARN = 2, and INFO = 3
knowledgeThis is either "true" or "false" but for policy violations, leave this as "false". known_errorThis is either "true" or "false" but for policy violations, leave this as "true".
PRIORITYpriorityThis is a value from 1 to 5 where: 1 = Critical, 2 = High, 3 = Moderate, 4 = Low, 5 = Planning. The PRIORITY parameter will fill this out directly.

 

4. Install Custom Actions

 

To create a Custom Action using ServiceNow, first refer to the Installing Custom Actions into the Controller topic here(requires AppDynamics login.)

 

The custom.xml file and createServiceNowTicket directory used for this custom notification are located within the <Controller Home>/custom/actions directory.

 

5. Place the createServiceNowTicket/ directory (containing params.sh and createServiceNowTicket.sh) along with thecustom.xml file into the <Controller Home>/custom/actions/ directory.

 

6. Look for the newest created Problem in ServiceNowNow.

 

When a problem is created through AppDynamics it should look similar to the following screenshots.

 

The following is an overview shot of ServiceNow:

OverviewTicket.png

 

The following shows the specifics of the ticket description:

 

NewTicket.png

 

Note: The "assigned to" field has "Beth Anglin" current in place here. This is simply an example name and if properly inserted into the params.sh file it will display whichever file is needed

 

Contributing

 

Always feel free to fork and contribute any changes directly via GitHub.

 

Support

 

For any questions or feature request, please contact AppDynamics Center of Excellence.

 

Version:

1.5

Compatibility:

AppDynamics 3.7, 3.8

ServiceNow Calgary Patch 4, Dublin

Last Update:

04/02/2014

 

Release notes: 

Version 1.2: Added support for the "Dublin" version of ServiceNow.

Version 1.3: Added backward compatibility for the "Calgary" version and logging support.

Version 1.4: Added ServiceNow update sets for AppDynamics.

Version 1.5: Modified to use JSON V2 plugin to work with ServiceNow Calgary Update 6.

 

Note: This extension works only with a dedicated SaaS controller or an on-prem controller. Alerting extensions, currently do not support multi-tenant SaaS controllers.