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; |
} |