Page tree
Skip to end of metadata
Go to start of metadata

You can add configurable third-party plugin tabs to the Situation Room which, for example, could link to a ServiceNow incident that is mapped to the Situation in question.

AIOps requires a link_definition and custom_info column to enable the Situation Room Plugin.

The Show ServiceNow Incident in the Situation Room check box in System Administration, Integrations, ServiceNow adds the plugin automatically

Two use cases are:
  • Conditional, based on contents of a field being present in the situation (if the field is left empty, the plugin will be disabled)

  • Universal for all Situations 

Further to these use cases, the link_definition can also have the same use cases: 
  • Conditional, taking attributes of the situation and passing to the linked application
  • Generic, passing no details about the situation

Implementation

The moogdb.sitroom_plugins table has the following columns:

  • the title
  • its associated Situation field (from the moogdb.sigs table and can be custom_info.<blah>)
  • the link_definition to use

mysql> describe moogdb.sitroom_plugins;
+---------------+--------------+------+-----+---------+-------+
| Field         | Type         | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| title         | varchar(32)  | NO   | PRI |         |       |
| internal_name | varchar(255) | YES  |     | NULL    |       |
| link_name     | varchar(32)  | YES  | MUL | NULL    |       |
+---------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

Example

Assuming Situation 14 had already been linked with ServiceNow Incident INC0000055 using the following SQL:

update moogdb.sigs set custom_info='{"servicenow_id":"INC0000055"}' where sig_id=14;    

Enable a ServiceNow tab in the Situation Room

1. Definelink_definition to point to the ServiceNow URL, and use the $value dynamic placeholder to be replaced with the incident number when launched.

insert into moogdb.link_definitions (name, link) values ('servicenow', 'https://<your-server-here>/incident.do?sysparm_query=number%3D$value');  

2. Add an entry into the sitroom_plugins table to define:

  • the tab
  • the Situation field to be used for $value
  • the link_definition
insert into moogdb.sitroom_plugins (title, internal_name, link_name) values ('ServiceNow', 'custom_info.servicenow_id', 'servicenow');   

If desired, you can define multiple plugin tabs (with unique title) using the same or different Situation fields.

Addendum

You must configure the browser to allow third party cookies from these URLs, otherwise, remote websites may not display within the tab area. To do this, either enable third-party cookies globally, or, allow the specific URLs to set third party cookies as exceptions.

ServiceNow Integration

Configure ServiceNow using the UI. See the Integrate ServiceNow section in ServiceNow for details.

  • No labels

8 Comments

  1. Normally the custom_info would be filled in by moobot. Using SQL query to set the data would really only be for demonstration purposes

  2. In the SQL below I'd suggest to explicitly list columns before VALUES keyword. If schema changes then the query will either fail or work as expected - otherwise this may have unexpected results.

  3. Same note about SQL query as in the example above.

  4. I think it'd be good to be more specific here, i.e. location based off $MOOGSOFT_HOME

  5. Are those commas alright like that?

  6. Second comment on that - the custom field used for a plugin may hold an array of values - in which case the plugin shown will have additional tabs to switch between the frames - one frame for each of the values in array

  7. It'd be nice to have a screenshot showing a plugin, I think. There's the AppDynamics sample image that was used for the demo, that could work I guess.

  8. And if the field is empty for a given situation, the plugin will be inaccessible - tab will be disabled