Linking a CI to a Business Criticality for Incident Service Level Management
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-28-2023 09:51 AM
Hi, company has a list of 150 (CIs) that it has tiered Gold, Silver and Bronze. Incident SLAs for P1-P3, resolution times are based on the G/S/B tiering. Company has no mature CSDM and is not using service or service offering to any real extent and only 50 CI relationships defined.
In order to do this I see 2 options:
A) Add the CIs to each SLA definition, e.g. P1 Bronze Resolution will have x CIs added as a start condition
Effort=low, Complexity=low, Maintability=medium
To achieve this I'd make the cmdb_ci mandatory on the INC
B) Leverage the business criticality on the ci_service level and map CI to the service
Effort=medium, Complexity=medium, Maintainability=medium
To achieve this I'd:
| require cmdb_ci field to be made mandatory on INC |
| require service field to be made r-o on INC |
| require SLA condition to dotwalk to service criticality (working OK) |
| require Bronze, Silver, Gold Level Application Services creating |
possibly requires a new ci relationship type to create 1-2-1 mapping |
| requires logic (SI) to lookup Service from the given cmdb_ci value on INC and use as a ref qualifier on INC.business_service |
| requires more logic to set the value automatically in business_service field |
I have coded a first draft SI to validate the feasibility and all OK, but I'd like to know:
1. Is Option B OK as an approach or is Option A best here?
2. Am I ok to create new CI relationship types (I've not found any documentation on this) so that I am confident of a 1-2-1 match on cmdb_rel_ci lookup routine?
Basic SI below:
| function u_CIServiceLookup() { |
| var svc = ' '; |
| var a = current.cmdb_ci; |
| //return everything if the assigned_to value is empty |
| if(!a) |
| return; |
| //Example encoded query child.name=ADCCCMB1^parent.name=SCCM^type=60bc4e22c0a8010e01f074cbe6bd73c3 |
| //sys_user_grmember has the user to group relationship |
| var rel = new GlideRecord('cmdb_rel_ci'); |
| rel.addQuery('child',a); |
| rel.query(); |
| while(rel.next()) { |
| if (svc.length > 0) { |
| //build a comma separated string of groups if there is more than one |
| svc += (',' + rel.parent); |
| } |
| else { |
| svc = rel.parent; |
| } |
| } |
| // return Groups where assigned to is in those groups we use IN for lists |
| return 'sys_idIN' + svc; |
| } |
