mcpField
S
sla-analysis

sla-analysis

github.com/happy-technologies-llc数据与数据库4143 次安装2 天前更新
代码仓库

关于 sla-analysis

sla-analysis 是面向负责 SLA 合规与绩效报告团队的 ServiceNow ITSM 技能,指导查询并分析已违约和临近违约的 SLA,以及按定义、时段和优先级统计达成率与趋势。

主要功能

  1. 01查找已违约和风险中的 SLA
  2. 02计算 SLA 达成率
  3. 03比较不同时段的绩效
  4. 04按定义和优先级细分结果
  5. 05准备利益相关方报告

适用场景

  1. 01检查当前 SLA 状况
  2. 02编制月度合规摘要
  3. 03按优先级或分组调查重复违约

MCP 相关

使用 SN-Query-Table 等 ServiceNow MCP 工具查询 SLA 记录和定义,也列出 SN-Natural-Language-Search 和 SN-Get-Record。文档还提供 REST API 替代方式。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/happy-technologies-llc/happy-platform-skills --skill sla-analysis

安装后在 Claude Code 中输入/sla-analysis确认已加载。

详细介绍

SLA 分析

概述

此技能可对 ServiceNow ITSM 的 SLA(服务级别协议)进行全面的性能分析。它支持你:

  • 实时检测 SLA 违约和即将违约的情况
  • 按服务、优先级或时间段计算 SLA 达成率
  • 分析趋势,识别系统性问题
  • 生成报告,供利益相关者沟通使用
  • 在 SLA 违约前识别有风险的 SLA

使用场景: 用于 SLA 合规性报告、识别性能问题、准备高管摘要或调查违约模式。

前提条件

  • 角色: sla_admin、itil 或 report_admin
  • 访问权限: 对 task_sla、contract_sla、incident 及相关表具有读取权限
  • 知识: 了解 SLA 定义及其业务影响
  • 数据: 必须已在 ServiceNow 中配置有效的 SLA 定义

操作步骤

步骤 1:查询 SLA 状态概览

获取所有活动任务当前 SLA 状态的快照。

使用 MCP(Claude Code/Desktop):

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: active=true
  fields: sys_id,task,sla,stage,percentage,has_breached,business_time_left,planned_end_time
  limit: 100

使用 REST API:

GET /api/now/table/task_sla?sysparm_query=active=true&sysparm_fields=sys_id,task,sla,stage,percentage,has_breached,business_time_left,planned_end_time&sysparm_limit=100
步骤 2:检测已违约的 SLA

识别所有已经违约的 SLA。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: has_breached=true^active=true
  fields: sys_id,task,sla,stage,percentage,original_breach_time,business_time_left
  limit: 50

SLA 阶段值参考:

阶段描述所需操作
进行中SLA 计时器正在运行监控
已暂停计时器已暂停(等待用户)查看暂停原因
已违约SLA 已违约立即处理
已达成SLA 已成功达成无需操作
已取消SLA 不再适用查看取消原因
步骤 3:识别有风险的 SLA

查找即将违约的 SLA(已耗时 >75%)。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: active=true^has_breached=false^percentage>=75
  fields: sys_id,task,sla,percentage,business_time_left,planned_end_time,stage
  limit: 50
  order_by: percentage
  order_direction: desc

使用 REST API:

GET /api/now/table/task_sla?sysparm_query=active=true^has_breached=false^percentage>=75&sysparm_fields=sys_id,task,sla,percentage,business_time_left,planned_end_time,stage&sysparm_limit=50&sysparm_orderby=percentage&sysparm_orderbydesc=percentage
步骤 4:计算达成指标

查询已完成的 SLA,以计算达成率。

获取已达成的 SLA(过去 30 天):

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: active=false^has_breached=false^end_timeONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
  fields: sys_id,task,sla,end_time
  limit: 1000

获取已违约的 SLA(过去 30 天):

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: active=false^has_breached=true^end_timeONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
  fields: sys_id,task,sla,end_time
  limit: 1000

计算达成率:

Achievement Rate = (Achieved SLAs / Total Completed SLAs) * 100
步骤 5:按 SLA 定义分析趋势

按 SLA 定义对指标分组,以识别有问题的 SLA。

查询 SLA 定义:

Tool: SN-Query-Table
Parameters:
  table_name: contract_sla
  query: active=true
  fields: sys_id,name,collection,duration,schedule,relative_duration_works_on
  limit: 100

按 SLA 定义查询违约情况:

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: has_breached=true^end_timeONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
  fields: sla,task,end_time
  limit: 500
步骤 6:生成基于时间的趋势分析

分析各时间段内的 SLA 性能。

每周违约数(过去 4 周):

查询每周数据:

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: has_breached=true^end_timeONLast 7 days@javascript:gs.daysAgoStart(7)@javascript:gs.daysAgoEnd(0)
  fields: sys_id,sla,task
  limit: 500

对前几周重复查询,并使用 daysAgoStart(14)@javascript:gs.daysAgoEnd(7)。

步骤 7:按优先级分析 SLA 性能

按事件优先级细分分析 SLA 达成率。

将 task_sla 与事件数据联接:

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: task.sys_class_name=incident^active=false^end_timeONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
  fields: sys_id,task,task.priority,sla,has_breached
  limit: 500

预期输出分析:

优先级SLA 总数已达成已违约达成率 %
P1 - 严重2520580%
P2 - 高1501351590%
P3 - 中4003802095%
P4 - 低200198299%

工具用法

MCP 工具参考
工具使用场景
SN-Query-Table查询 task_sla 和 contract_sla 表的主要工具
SN-Natural-Language-Search使用自然语言查询,例如“显示本周已违约的 SLA”
SN-Get-Record获取特定 SLA 记录的详细信息
REST API 参考
端点方法用途
/api/now/table/task_slaGET查询活动/已完成的 SLA
/api/now/table/contract_slaGET查询 SLA 定义
/api/now/stats/task_slaGET汇总统计数据
关键表
表描述
task_sla附加到任务的单个 SLA 记录
contract_slaSLA 定义(条款、时长、计划)
cmn_schedule用于 SLA 计算的业务计划
sla_condition_classSLA 启动/停止/暂停条件

最佳实践

  • 实时监控: 每天至少检查两次有风险的 SLA(>75%)
  • 根因分析: 违约率上升时,按类别和分配组进行调查
  • 营业时间: 考虑工作时间安排;非营业时间发生的违约可能表明配置有问题
  • 趋势分析: 比较逐周变化,而不只是查看单个时点的数据
  • 细分分析: 按优先级、类别和分配组进行分析,以获得可执行的见解
  • 与 ITIL 保持一致: SLA 管理支持持续服务改进(CSI)

故障排除

“未找到 task_sla 记录”

原因: SLA 定义可能未关联到工作流,或未处于活动状态
解决方案: 确认存在有效的 contract_sla 记录;检查 SLA 条件是否与任务条件匹配

“违约时间不一致”

原因: 未正确应用工作时间安排,或存在夏令时问题
解决方案: 检查 cmn_schedule 配置;检查时区设置

“百分比超过 100%”

原因: SLA 已违约,但任务仍处于打开状态;百分比会继续累积
解决方案: 这是预期行为;使用 has_breached=true 进行筛选,以便清楚识别违约情况

“SLA 未正确启动/停止”

原因: 未满足启动/停止条件
解决方案: 检查该 SLA 定义的 sla_condition_class 条目

示例

示例 1:每日 SLA 健康检查

目标: 早间检查 SLA 状态

步骤 1:获取违约摘要

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: active=true^has_breached=true
  fields: task,sla,percentage,business_time_left
  limit: 20

步骤 2:获取有风险的 SLA

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: active=true^has_breached=false^percentage>=80
  fields: task,sla,percentage,planned_end_time
  limit: 20

输出摘要:

=== SLA HEALTH CHECK ===
Date: [Today]

CRITICAL (Breached): 3 SLAs
- INC0012345 - Resolution SLA - 120% (P1)
- INC0012400 - Response SLA - 105% (P2)
- INC0012456 - Resolution SLA - 150% (P2)

AT RISK (>80%): 7 SLAs
- INC0012500 - Resolution SLA - 85% (2 hours remaining)
- INC0012501 - Resolution SLA - 82% (3 hours remaining)
[...]

OVERALL HEALTH: Needs Attention
Action: Escalate breached P1 incident immediately
示例 2:每月 SLA 绩效报告

目标: 生成月度管理层摘要

步骤 1:处理的 SLA 总数

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: active=false^end_timeONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
  fields: sys_id,has_breached,sla
  limit: 2000

步骤 2:按 SLA 类型计数 处理结果以创建摘要:

=== MONTHLY SLA PERFORMANCE REPORT ===
Period: [Last 30 Days]

SUMMARY:
- Total SLAs Completed: 1,247
- Achieved: 1,185 (95.0%)
- Breached: 62 (5.0%)

BY SLA TYPE:
| SLA Definition        | Total | Achieved | Breached | Rate |
|-----------------------|-------|----------|----------|------|
| P1 Resolution (4hr)   | 45    | 38       | 7        | 84%  |
| P2 Resolution (8hr)   | 189   | 175      | 14       | 93%  |
| P3 Resolution (24hr)  | 512   | 498      | 14       | 97%  |
| P4 Resolution (72hr)  | 301   | 294      | 7        | 98%  |
| Response SLA (1hr)    | 200   | 180      | 20       | 90%  |

TREND (Week-over-Week):
Week 1: 96% achievement
Week 2: 95% achievement
Week 3: 94% achievement
Week 4: 95% achievement

RECOMMENDATIONS:
1. P1 Resolution SLA at 84% - below target; investigate root cause
2. Response SLA showing consistent underperformance - review staffing levels
示例 3:违约根因分析

目标: 调查 P1 解决 SLA 表现不佳的原因

步骤 1:获取已违约的 P1 SLA

Tool: SN-Query-Table
Parameters:
  table_name: task_sla
  query: has_breached=true^task.priority=1^sla.nameLIKEResolution^end_timeONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
  fields: task,task.number,task.assignment_group,task.category,task.short_description,original_breach_time,end_time
  limit: 50

步骤 2:分析规律

=== P1 RESOLUTION SLA BREACH ANALYSIS ===

BREACHES BY ASSIGNMENT GROUP:
- Network Operations: 4 breaches (57%)
- Application Support: 2 breaches (29%)
- Desktop Support: 1 breach (14%)

BREACHES BY CATEGORY:
- Network: 4 (57%)
- Software: 2 (29%)
- Hardware: 1 (14%)

COMMON PATTERNS:
1. 5 of 7 breaches occurred during night shift (11pm-7am)
2. Network issues taking longest to resolve (avg 6.2 hours vs 4hr target)
3. 3 breaches had multiple reassignments before resolution

ROOT CAUSE HYPOTHESIS:
- Insufficient night shift coverage for Network team
- Complex network issues exceeding 4-hour P1 target

RECOMMENDATIONS:
1. Add on-call network engineer for night shift
2. Review P1 network SLA target (consider 6-hour resolution)
3. Implement warm handoff procedures to reduce reassignment delays

相关技能

  • reporting/executive-dashboard - 管理层 KPI 生成
  • reporting/trend-analysis - 事件量和模式分析
  • itsm/incident-lifecycle - 完整的事件管理
  • itsm/major-incident - 重大事件处理

参考资料

评论

支持 Markdown