analytics-generation について
ServiceNow 管理者や分析担当者向けのスキルです。自然言語のレポート要件を Performance Analytics の設定や標準レポートに変換し、指標、収集器、ダッシュボード、ウィジェットの作成と検証を扱います。
主な機能
- 01Performance Analytics 指標の作成
- 02指標データ収集器の設定
- 03ウィジェット付きダッシュボードの構築
- 04チャート、リスト、ピボットレポートの生成
- 05分析設定の照会と検証
- 06自然言語要件の設定への変換
活用シーン
- 01KPI の定義とデータ収集のスケジュール設定
- 02トレンドや内訳を含むダッシュボードの構築
- 03業務要件に基づく ServiceNow レポートの生成
- 04指標、収集器、ウィジェット設定の確認
MCP 対応
ServiceNow MCP ツールを使い、指標、データ収集器、ダッシュボード、ウィジェット、レポートなどの分析レコードを作成、照会、更新する方法を説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill analytics-generationインストール後、Claude Code で/analytics-generationを入力して読み込まれたか確認します。
詳細
分析ダッシュボードとビジュアライゼーションの生成
概要
このスキルでは、自然言語による説明から、分析ダッシュボード、Performance Analytics(PA)インジケーター、データコレクター、ウィジェット、標準レポートを生成する方法を扱います。
- 主要な指標を経時的に追跡する PA インジケーターを作成する
- 指標のスナップショットを収集・保存するデータコレクターを設定する
- ウィジェットとビジュアライゼーションを使ってダッシュボードのレイアウトを構築する
- チャート、リスト、ピボットテーブルを使って標準レポートを生成する
- 自然言語による指標の説明を ServiceNow の PA 設定にマッピングする
- PA とレポートを組み合わせて、包括的な分析ソリューションを構築する
使用するタイミング: 関係者から新しいダッシュボード、KPI の追跡、傾向分析を依頼された場合、または業務レポート要件を ServiceNow の分析設定に変換する場合に使用します。
前提条件
- ロール:
pa_admin、report_admin、またはadmin - アクセス: pa_dashboards、pa_widgets、pa_indicators、pa_data_collectors、sys_report テーブル
- 知識: Performance Analytics の概念、ServiceNow のレポートフレームワーク、データ集計方法
- プラグイン: PA 機能を使用するには、Performance Analytics(com.snc.pa)を有効化する必要があります
- 関連スキル: 高度なクエリ構築については、
reporting/query-generationを完了してください
手順
ステップ 1:分析データモデルを理解する
pa_dashboards (Dashboard)
├── pa_tabs (Dashboard Tabs)
│ └── pa_widgets (Widget Instances)
│ └── pa_widget_indicators (Widget-Indicator Links)
├── pa_indicators (Indicators/KPIs)
│ ├── pa_indicator_source (Indicator Sources)
│ └── pa_data_collectors (Data Collectors)
│ └── pa_job_logs (Collection Logs)
└── sys_report (Standard Reports)
主要なテーブル:
| テーブル | 用途 |
|---|---|
| pa_dashboards | ダッシュボードコンテナーの定義 |
| pa_widgets | ダッシュボードに配置されるウィジェットのインスタンス |
| pa_indicators | 数式を含む KPI/指標の定義 |
| pa_data_collectors | 指標データを収集するスケジュール済みジョブ |
| sys_report | ServiceNow の標準レポート(チャート、リスト、ピボットテーブル) |
ステップ 2:PA インジケーターを作成する
インジケーターでは、何を測定するかを定義します。
カウントベースのインジケーターを作成する:
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: pa_indicators
data:
name: "Open Critical Incidents"
description: "Count of open incidents with priority 1 (Critical)"
type: 1
aggregate: "COUNT"
table: "incident"
conditions: "active=true^priority=1"
frequency: "daily"
direction: "minimize"
unit: "incidents"
precision: 0
active: true
REST の代替方法:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/pa_indicators" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-X POST \
-d '{
"name": "Open Critical Incidents",
"description": "Count of open incidents with priority 1",
"type": 1,
"aggregate": "COUNT",
"table": "incident",
"conditions": "active=true^priority=1",
"frequency": "daily",
"active": true
}'
平均ベースのインジケーターを作成する:
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: pa_indicators
data:
name: "Average Incident Resolution Time"
description: "Average time in hours from opening to resolution"
type: 1
aggregate: "AVG"
table: "incident"
field: "business_duration"
conditions: "state=6^resolved_atISNOTEMPTY"
frequency: "daily"
direction: "minimize"
unit: "hours"
precision: 1
active: true
割合インジケーターを作成する:
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: pa_indicators
data:
name: "SLA Compliance Rate"
description: "Percentage of incidents resolved within SLA"
type: 2
aggregate: "COUNT"
table: "incident"
conditions: "state=6"
numerator_conditions: "state=6^made_sla=true"
frequency: "daily"
direction: "maximize"
unit: "%"
precision: 1
active: true
ステップ 3:データコレクターを作成する
データコレクターでは、指標データをいつ、どのように収集するかを定義します。
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: pa_data_collectors
data:
indicator: [indicator_sys_id]
name: "Daily Open Critical Incidents Collector"
active: true
run_as: "system"
collection_frequency: "daily"
is_scheduled: true
REST の代替方法:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/pa_data_collectors" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"indicator": "[indicator_sys_id]",
"name": "Daily Open Critical Incidents Collector",
"active": true,
"collection_frequency": "daily",
"is_scheduled": true
}'
ステップ 4:ダッシュボードを作成する
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: pa_dashboards
data:
name: "IT Service Management Overview"
description: "Executive dashboard for ITSM key performance indicators"
active: true
published: true
owner: [user_sys_id]
REST の代替方法:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/pa_dashboards" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"name": "IT Service Management Overview",
"description": "Executive dashboard for ITSM KPIs",
"active": true,
"published": true
}'
ステップ 5:ダッシュボードにウィジェットを追加する
PA インジケーターのウィジェットタイプ:
| タイプ | 値 | 使用例 |
|---|---|---|
| スコアカード | scorecard | 傾向を含む単一の KPI |
| 時系列 | time_series | 経時的な指標(折れ線グラフ) |
| ブレークダウン | breakdown | ディメンション別に分割した指標 |
| ダイヤル | dial | ゲージ形式の単一指標 |
| 単一スコア | single_score | 大きな数値の表示 |
| リスト | list | 表形式のデータ |
| ピボットテーブル | pivot | クロス集計 |
スコアカードウィジェットを作成する:
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: pa_widgets
data:
dashboard: [dashboard_sys_id]
indicator: [indicator_sys_id]
visualization: "scorecard"
name: "Critical Incidents Scorecard"
row: 0
column: 0
width: 6
height: 4
active: true
時系列ウィジェットを作成する:
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: pa_widgets
data:
dashboard: [dashboard_sys_id]
indicator: [indicator_sys_id]
visualization: "time_series"
name: "Incident Volume Trend"
row: 0
column: 6
width: 6
height: 4
active: true
time_series_period: "last_12_months"
ブレークダウンウィジェットを作成する:
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: pa_widgets
data:
dashboard: [dashboard_sys_id]
indicator: [indicator_sys_id]
visualization: "breakdown"
name: "Incidents by Priority"
breakdown: [breakdown_sys_id]
row: 4
column: 0
width: 6
height: 4
active: true
chart_type: "bar"
ステップ 6:標準レポートを作成する
PA による追加負荷のない、よりシンプルなレポートが必要な場合は、sys_report を使用します。
棒グラフのレポートを作成する:
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: sys_report
data:
title: "Incidents by Category"
table: "incident"
type: "bar"
field: "category"
filter: "active=true"
aggregate: "COUNT"
group: "category"
is_published: true
active: true
chart_size: "large"
REST の代替方法:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/sys_report" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"title": "Incidents by Category",
"table": "incident",
"type": "bar",
"field": "category",
"filter": "active=true",
"aggregate": "COUNT",
"is_published": true
}'
傾向レポートを作成する:
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: sys_report
data:
title: "Weekly Incident Volume"
table: "incident"
type: "line"
field: "sys_created_on"
filter: "sys_created_on>=javascript:gs.daysAgo(90)"
aggregate: "COUNT"
trend_field: "sys_created_on"
interval: "week"
is_published: true
active: true
ピボットテーブルのレポートを作成する:
MCP アプローチ:
Tool: SN-Create-Record
Parameters:
table_name: sys_report
data:
title: "Incidents: Priority vs State"
table: "incident"
type: "pivot"
field: "priority"
stack: "state"
filter: "sys_created_on>=javascript:gs.daysAgo(30)"
aggregate: "COUNT"
is_published: true
active: true
ステップ 7:PA ブレークダウンを作成する
ブレークダウンでは、指標データを切り分けるためのディメンションを定義します。
MCP アプローチ:
Tool: SN-Query-Table
Parameters:
table_name: pa_breakdowns
query: table=incident^active=true
fields: sys_id,name,field,table
limit: 50
必要なブレークダウンが存在しない場合:
Tool: SN-Create-Record
Parameters:
table_name: pa_breakdowns
data:
name: "Incident Priority Breakdown"
table: "incident"
field: "priority"
active: true
ステップ 8:検証とテストを行う
インジケーターの設定を確認する:
MCP アプローチ:
Tool: SN-Query-Table
Parameters:
table_name: pa_indicators
query: sys_id=[indicator_sys_id]
fields: sys_id,name,aggregate,table,conditions,frequency,active
ダッシュボードのウィジェットを確認する:
MCP アプローチ:
Tool: SN-Query-Table
Parameters:
table_name: pa_widgets
query: dashboard=[dashboard_sys_id]
fields: sys_id,name,visualization,indicator,row,column,width,height,active
limit: 50
データコレクターのステータスを確認する:
MCP アプローチ:
Tool: SN-Query-Table
Parameters:
table_name: pa_data_collectors
query: indicator=[indicator_sys_id]
fields: sys_id,name,active,is_scheduled,last_collection_time
ツールの使用方法
| アクション | MCP ツール | REST エンドポイント |
|---|---|---|
| 指標を作成 | SN-Create-Record | POST /api/now/table/pa_indicators |
| データコレクターを作成 | SN-Create-Record | POST /api/now/table/pa_data_collectors |
| ダッシュボードを作成 | SN-Create-Record | POST /api/now/table/pa_dashboards |
| ウィジェットを追加 | SN-Create-Record | POST /api/now/table/pa_widgets |
| レポートを作成 | SN-Create-Record | POST /api/now/table/sys_report |
| 指標をクエリ | SN-Query-Table | GET /api/now/table/pa_indicators |
| ダッシュボードをクエリ | SN-Query-Table | GET /api/now/table/pa_dashboards |
| ウィジェットを更新 | SN-Update-Record | PATCH /api/now/table/pa_widgets/{sys_id} |
ベストプラクティス
- まず指標を作成します: ダッシュボードを構築する前にメトリクスを定義します。指標はその基盤です
- ほとんどの KPI では日次頻度を使用します: 日次収集は、粒度とパフォーマンスのバランスを取ります
- 指標に方向性を設定します: トレンドが正しく改善を示すように、「minimize」または「maximize」を指定します
- 対象者に合わせて設計します: 経営層向けダッシュボードはウィジェットを 4~6 個にし、運用向けダッシュボードにはさらに多く配置できます
- 内訳を使って詳細に絞り込みます: 優先度、カテゴリ、グループ、または場所でデータを分類できるようにします
- PA と標準レポートを組み合わせます: トレンドと KPI には PA を使用し、アドホックなリストや詳細ビューには sys_report を使用します
- データ収集をテストします: 手動で収集を実行し、指標の条件が期待どおりの結果を返すことを確認します
- しきい値と目標値を設定します: 指標のしきい値を設定して、赤・黄・緑の表示を有効にします
- 過度な集計を避けます: 1 つのウィジェットに内訳を多く設定しすぎると、データが読みづらくなります
- 指標の数式を文書化します: 説明フィールドを使って、各指標が何を測定し、その理由を記載します
トラブルシューティング
指標にデータが表示されない
症状: 指標は存在しますが、ゼロまたはデータなしと表示されます
原因:
- データコレクターが有効になっていない、またはまだ実行されていない
- 条件フィルターがレコードを返さない
- 指標の頻度が収集スケジュールと一致していない 解決方法:
Tool: SN-Query-Table
Parameters:
table_name: pa_data_collectors
query: indicator=[indicator_sys_id]
fields: sys_id,name,active,is_scheduled,last_collection_time
次に、条件クエリがデータを返すことを確認します:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: active=true^priority=1
fields: sys_id
limit: 1
ダッシュボードが表示されない
症状: ダッシュボードは作成されていますが、ナビゲーションに表示されません
原因:
- ダッシュボードが公開されていない
- ユーザーに pa_viewer または pa_admin ロールがない
- ダッシュボードが有効になっていない 解決方法:
Tool: SN-Update-Record
Parameters:
table_name: pa_dashboards
sys_id: [dashboard_sys_id]
data:
published: true
active: true
レポートのフィルターが機能しない
症状: レポートに、フィルターされた結果ではなくすべてのレコードが表示されます
原因: フィルターのエンコード済みクエリの構文が正しくない
解決方法: エンコード済みクエリを検証します:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: [your_filter_query]
fields: sys_id
limit: 5
結果が予想と異なる場合は、クエリを調整します。
ダッシュボード上のウィジェットが重なる
症状: ウィジェットが重なったり、正しく表示されなかったりします
原因: 行/列/幅/高さの値が競合しています
解決方法: すべてのウィジェットの位置を確認します:
Tool: SN-Query-Table
Parameters:
table_name: pa_widgets
query: dashboard=[dashboard_sys_id]
fields: name,row,column,width,height
limit: 20
例
例 1:ITSM 経営層向けダッシュボード
# 1. Create indicators
Tool: SN-Create-Record
Parameters:
table_name: pa_indicators
data:
name: "Open Incidents"
aggregate: "COUNT"
table: "incident"
conditions: "active=true"
frequency: "daily"
active: true
# Result: indicator1_sys_id
Tool: SN-Create-Record
Parameters:
table_name: pa_indicators
data:
name: "MTTR (Hours)"
aggregate: "AVG"
table: "incident"
field: "business_duration"
conditions: "state=6^sys_created_on>=javascript:gs.daysAgo(30)"
frequency: "daily"
active: true
# Result: indicator2_sys_id
# 2. Create data collectors for each indicator
Tool: SN-Create-Record
Parameters:
table_name: pa_data_collectors
data:
indicator: indicator1_sys_id
name: "Open Incidents Daily"
active: true
is_scheduled: true
# 3. Create dashboard
Tool: SN-Create-Record
Parameters:
table_name: pa_dashboards
data:
name: "ITSM Executive Dashboard"
published: true
active: true
# Result: dashboard_sys_id
# 4. Add widgets
Tool: SN-Create-Record
Parameters:
table_name: pa_widgets
data:
dashboard: dashboard_sys_id
indicator: indicator1_sys_id
visualization: "single_score"
name: "Open Incidents"
row: 0
column: 0
width: 3
height: 3
Tool: SN-Create-Record
Parameters:
table_name: pa_widgets
data:
dashboard: dashboard_sys_id
indicator: indicator2_sys_id
visualization: "time_series"
name: "MTTR Trend"
row: 0
column: 3
width: 9
height: 6
例 2:標準レポートのクイック作成
Tool: SN-Create-Record
Parameters:
table_name: sys_report
data:
title: "Top 10 Incident Categories This Month"
table: "incident"
type: "bar"
field: "category"
filter: "sys_created_on>=javascript:gs.beginningOfThisMonth()"
aggregate: "COUNT"
orderby: "COUNT"
order_direction: "desc"
row_count: 10
is_published: true
関連スキル
reporting/query-generation- レポート用の複雑なクエリを生成しますitsm/incident-lifecycle- インシデントのデータモデルに関するコンテキストdevelopment/scheduled-jobs- スケジュールされたデータ収集を設定しますea/business-app-insights- アプリケーションレベルの分析