关于 executive-dashboard
面向 ServiceNow ITSM 指标分析的技能,用于计算 KPI 并生成管理层仪表板数据。涵盖事件、变更、问题和客户满意度指标,可按时间段比较表现并识别趋势。
主要功能
- 01计算 MTTR 和 MTBF
- 02统计解决率与重开率
- 03分析事件量和待办积压
- 04衡量变更成功率及问题指标
- 05汇总仪表板数据并比较周期
适用场景
- 01准备管理层或董事会 ITSM 汇报
- 02生成月度绩效仪表板数据
- 03比较不同时段的服务指标
MCP 相关
通过 MCP 查询 ServiceNow 表格数据、执行自然语言搜索,并可用后台脚本进行复杂聚合。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill executive-dashboard安装后在 Claude Code 中输入/executive-dashboard确认已加载。
详细介绍
高管仪表板
概述
此技能可为 ServiceNow 生成高管级 ITSM KPI 和仪表板数据。它支持你:
- 计算 MTTR(平均解决时间)和 MTBF(平均故障间隔时间)
- 生成事件解决率和首次联系解决率
- 汇总数据,用于高管仪表板
- 对比不同时间段的绩效
- 识别需要高管关注的趋势
适用场景: 准备高管简报、董事会报告、月度 IT 绩效评审,或自动生成仪表板数据。
前提条件
- 角色:
report_admin、itil或analytics_admin - 访问权限: 对 incident、problem、change_request 和 task 表具有读取权限
- 知识: 了解 ITSM KPI 定义和组织目标
- 数据: 至少需要 30 天的历史数据,才能得出有意义的指标
操作步骤
第 1 步:计算平均解决时间(MTTR)
MTTR 衡量从事件创建到解决的平均用时。
使用 MCP(Claude Code/Desktop):
Tool: SN-Query-Table
Parameters:
table_name: incident
query: state=6^resolved_atISNOTEMPTY^resolved_atONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
fields: sys_id,number,sys_created_on,resolved_at,priority,category
limit: 1000
使用 REST API:
GET /api/now/table/incident?sysparm_query=state=6^resolved_atISNOTEMPTY^resolved_atONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)&sysparm_fields=sys_id,number,sys_created_on,resolved_at,priority,category&sysparm_limit=1000
计算 MTTR:
// For each incident:
// Resolution Time = resolved_at - sys_created_on
// MTTR = Sum of all Resolution Times / Count of Resolved Incidents
// Example calculation (in hours):
Total Resolution Time: 2,400 hours
Resolved Incidents: 150
MTTR = 2,400 / 150 = 16 hours
按优先级划分的 MTTR(目标基准):
| 优先级 | 目标 MTTR | 行业基准 |
|---|---|---|
| P1 - 严重 | < 4 小时 | 2-4 小时 |
| P2 - 高 | < 8 小时 | 4-8 小时 |
| P3 - 中 | < 24 小时 | 8-24 小时 |
| P4 - 低 | < 72 小时 | 24-72 小时 |
第 2 步:计算平均故障间隔时间(MTBF)
MTBF 衡量可靠性,即同一 CI 或服务发生重复事件的平均间隔时间。
查询与 CI 相关的事件:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: cmdb_ciISNOTEMPTY^sys_created_onONLast 90 days@javascript:gs.daysAgoStart(90)@javascript:gs.daysAgoEnd(0)
fields: sys_id,number,cmdb_ci,sys_created_on,category
limit: 2000
order_by: cmdb_ci,sys_created_on
计算每个 CI 的 MTBF:
// Group incidents by CI
// For CIs with multiple incidents:
// MTBF = Total operating time / (Number of failures - 1)
// Example for Server-001:
// Incident 1: Jan 5
// Incident 2: Jan 20
// Incident 3: Feb 10
// Time between: 15 days + 21 days = 36 days / 2 = 18 days MTBF
MTBF 目标基准:
| 服务层级 | 目标 MTBF |
|---|---|
| Tier 1(关键) | > 30 天 |
| Tier 2(重要) | > 14 天 |
| Tier 3(标准) | > 7 天 |
第 3 步:计算解决率
首次联系解决率(FCR):
Tool: SN-Query-Table
Parameters:
table_name: incident
query: state=6^resolved_atONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)^reassignment_count=0
fields: sys_id,number
limit: 1000
Total Resolved (Last 30 Days): Query count of all resolved incidents
FCR Count: Query count with reassignment_count=0
FCR Rate = (FCR Count / Total Resolved) * 100
重新打开率:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: reopen_count>0^sys_created_onONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
fields: sys_id,number,reopen_count
limit: 500
Reopen Rate = (Incidents with reopen_count > 0 / Total Resolved) * 100
Target: < 5%
第 4 步:事件量指标
事件总量:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: sys_created_onONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
fields: sys_id,priority,category,state
limit: 5000
按优先级划分的数量: 处理结果,按优先级字段计数。
待办事项分析:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: active=true^state!=6^state!=7
fields: sys_id,priority,sys_created_on,assigned_to
limit: 1000
Backlog Metrics:
- Total Open: Count of active incidents
- Aging > 7 days: Filter by sys_created_on
- Unassigned: Filter by assigned_toISEMPTY
第 5 步:变更成功率
查询已完成的变更:
Tool: SN-Query-Table
Parameters:
table_name: change_request
query: state=3^closed_atONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
fields: sys_id,number,close_code,type
limit: 500
关闭代码分析:
| 关闭代码 | 类别 |
|---|---|
| successful | 成功 |
| successful_issues | 成功但存在问题 |
| unsuccessful | 失败 |
| cancelled | 已取消 |
Change Success Rate = (Successful + Successful with Issues) / (Total - Cancelled) * 100
Target: > 95%
第 6 步:问题管理指标
创建与解决的问题:
Tool: SN-Query-Table
Parameters:
table_name: problem
query: sys_created_onONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
fields: sys_id,number,state,known_error,first_reported_by_task
limit: 200
已知错误数据库(KEDB)增长情况:
Tool: SN-Query-Table
Parameters:
table_name: problem
query: known_error=true
fields: sys_id,number,sys_created_on
limit: 500
第 7 步:客户满意度(CSAT)
如果使用 ServiceNow 调查:
Tool: SN-Query-Table
Parameters:
table_name: asmt_assessment_instance
query: metric_type.nameSTARTSWITHIncident^sys_created_onONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
fields: sys_id,state,percent_answered
limit: 500
第 8 步:生成汇总报告数据
使用 GlideAggregate 模式(通过后台脚本):
Tool: SN-Execute-Background-Script
Parameters:
script: |
var ga = new GlideAggregate('incident');
ga.addQuery('sys_created_on', '>=', gs.daysAgo(30));
ga.addAggregate('COUNT');
ga.addAggregate('COUNT', 'priority');
ga.groupBy('priority');
ga.query();
var results = [];
while (ga.next()) {
results.push({
priority: ga.getValue('priority'),
count: ga.getAggregate('COUNT')
});
}
gs.info('Priority Distribution: ' + JSON.stringify(results));
description: Aggregate incident counts by priority
工具使用
MCP 工具参考
| 工具 | 使用场景 |
|---|---|
SN-Query-Table | 查询指标数据的主要工具 |
SN-Natural-Language-Search | 使用自然语言查询,快速获取洞察 |
SN-Execute-Background-Script | 使用 GlideAggregate 执行复杂聚合 |
REST API 参考
| 端点 | 方法 | 用途 |
|---|---|---|
/api/now/table/incident | GET | 查询事件数据 |
/api/now/table/change_request | GET | 查询变更数据 |
/api/now/table/problem | GET | 查询问题数据 |
/api/now/stats/{table} | GET | 汇总统计数据 |
指标关键字段
| 指标 | 源表 | 关键字段 |
|---|---|---|
| MTTR | incident | sys_created_on, resolved_at |
| FCR | incident | reassignment_count |
| 重新打开率 | incident | reopen_count |
| 变更成功率 | change_request | close_code, state |
| MTBF | incident | cmdb_ci, sys_created_on |
最佳实践
- 统一时间范围: 比较时始终使用相同的时间段(建议 30 天)
- 业务日历: 衡量业务时间时,排除周末和节假日
- 先建立基线: 设定目标前先建立基线
- 细分数据: 按优先级、类别和团队细分数据,以获得可操作的洞察
- 自动收集: 定期安排数据提取,以刷新仪表板
- 与 ITIL 保持一致: 使 KPI 与 ITIL 持续服务改进(CSI)保持一致
故障排查
“MTTR 似乎过高”
原因: 包含了暂停时间或非工作时间
解决方案: 如果有 business_duration 字段,请使用该字段;或者按业务日程筛选
“解决数量与报告不符”
原因: 使用了不同的日期字段(resolved_at、closed_at 或 sys_updated_on)
解决方案: 统一使用 resolved_at 计算解决指标
“MTBF 计算出错”
原因: 只有一条事件记录的 CI 无法计算 MTBF
解决方案: 筛选出有 2 条或更多事件记录的 CI;对于只有一条事件记录的 CI,使用“N/A”
“变更成功率很低”
原因: 将已取消的变更计为失败
解决方案: 从总数中排除 state=cancelled;仅统计已关闭的变更
示例
示例 1:每周高管摘要
目标: 生成每周 IT 绩效摘要
执行查询:
- 事件量:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: sys_created_onONLast 7 days@javascript:gs.daysAgoStart(7)@javascript:gs.daysAgoEnd(0)
fields: sys_id,priority
limit: 500
- 已解决事件:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: resolved_atONLast 7 days@javascript:gs.daysAgoStart(7)@javascript:gs.daysAgoEnd(0)
fields: sys_id,sys_created_on,resolved_at,priority
limit: 500
- 当前待办:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: active=true
fields: sys_id,priority,sys_created_on
limit: 500
输出报告:
=== WEEKLY IT PERFORMANCE SUMMARY ===
Week Ending: [Date]
INCIDENT MANAGEMENT:
| Metric | This Week | Last Week | Change |
|--------|-----------|-----------|--------|
| Created | 145 | 132 | +10% |
| Resolved | 152 | 140 | +9% |
| Backlog | 48 | 55 | -13% |
| MTTR (hours) | 14.2 | 15.8 | -10% |
PRIORITY BREAKDOWN:
| Priority | Created | Resolved | Backlog |
|----------|---------|----------|---------|
| P1 | 3 | 4 | 1 |
| P2 | 22 | 25 | 8 |
| P3 | 78 | 80 | 25 |
| P4 | 42 | 43 | 14 |
KEY HIGHLIGHTS:
- MTTR improved by 10% (14.2 hours vs 15.8 hours)
- Backlog reduced by 13% (48 vs 55)
- P1 incidents: 3 created, all resolved or in progress
ITEMS REQUIRING ATTENTION:
- None - all metrics within target
示例 2:月度 KPI 仪表板数据
目标: 生成月度仪表板所需的全部 KPI
并行执行所有查询:
// Query 1: Total Incidents
Tool: SN-Query-Table
Parameters:
table_name: incident
query: sys_created_onONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
fields: sys_id,priority,category,state,reassignment_count,reopen_count,sys_created_on,resolved_at
limit: 2000
// Query 2: Changes
Tool: SN-Query-Table
Parameters:
table_name: change_request
query: sys_created_onONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
fields: sys_id,type,close_code,state
limit: 500
// Query 3: Problems
Tool: SN-Query-Table
Parameters:
table_name: problem
query: sys_created_onONLast 30 days@javascript:gs.daysAgoStart(30)@javascript:gs.daysAgoEnd(0)
fields: sys_id,state,known_error
limit: 200
计算后的仪表板数据:
{
"period": "2024-01-01 to 2024-01-31",
"incident_management": {
"total_created": 612,
"total_resolved": 598,
"mttr_hours": 14.5,
"mttr_by_priority": {
"P1": 3.2,
"P2": 7.8,
"P3": 18.4,
"P4": 48.2
},
"fcr_rate": 72.5,
"reopen_rate": 3.2,
"backlog": 52
},
"change_management": {
"total_changes": 89,
"success_rate": 97.8,
"by_type": {
"standard": 45,
"normal": 38,
"emergency": 6
}
},
"problem_management": {
"problems_created": 12,
"problems_resolved": 8,
"known_errors_added": 5
},
"trends": {
"incident_volume_change": "+5%",
"mttr_change": "-8%",
"backlog_change": "-12%"
}
}
示例 3:董事会级摘要
目标: 为董事会演示提供高层摘要
=== IT SERVICE MANAGEMENT - BOARD SUMMARY ===
Period: Q4 2024
EXECUTIVE SUMMARY:
IT Service Management delivered 97% SLA compliance in Q4,
exceeding the 95% target. Major incident count reduced by
25% compared to Q3.
KEY PERFORMANCE INDICATORS:
Q4 2024 Q3 2024 Target Status
Service Availability 99.8% 99.5% 99.5% PASS
SLA Compliance 97.0% 94.2% 95.0% PASS
MTTR (hours) 12.4 15.2 16.0 PASS
Change Success Rate 98.2% 96.8% 95.0% PASS
Customer Satisfaction 4.2/5 4.0/5 4.0/5 PASS
Major Incidents 3 4 <5 PASS
YEAR-OVER-YEAR COMPARISON:
| Metric | 2024 | 2023 | Improvement |
|--------|------|------|-------------|
| Total Incidents | 7,245 | 8,102 | -11% |
| MTTR | 13.2 hrs | 18.4 hrs | -28% |
| SLA Compliance | 96.5% | 92.1% | +4.4% |
INVESTMENTS & OUTCOMES:
- AI-powered triage: 15% reduction in assignment time
- Self-service portal: 22% ticket deflection
- Automation: 400+ hours saved monthly
RISKS & MITIGATIONS:
- Aging infrastructure causing 30% of P1 incidents
Mitigation: Data center refresh approved for Q2 2025
相关技能
reporting/sla-analysis- 详细跟踪 SLA 绩效reporting/trend-analysis- 事件趋势和模式itsm/incident-lifecycle- 完整的事件管理itsm/problem-analysis- 问题管理指标