mcpField
A
analytics-generation

analytics-generation

github.com/happy-technologies-llcデータ・データベース4143 回インストール2 日前に更新
リポジトリ

analytics-generation について

ServiceNow 管理者や分析担当者向けのスキルです。自然言語のレポート要件を Performance Analytics の設定や標準レポートに変換し、指標、収集器、ダッシュボード、ウィジェットの作成と検証を扱います。

主な機能

  1. 01Performance Analytics 指標の作成
  2. 02指標データ収集器の設定
  3. 03ウィジェット付きダッシュボードの構築
  4. 04チャート、リスト、ピボットレポートの生成
  5. 05分析設定の照会と検証
  6. 06自然言語要件の設定への変換

活用シーン

  1. 01KPI の定義とデータ収集のスケジュール設定
  2. 02トレンドや内訳を含むダッシュボードの構築
  3. 03業務要件に基づく ServiceNow レポートの生成
  4. 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_reportServiceNow の標準レポート(チャート、リスト、ピボットテーブル)
ステップ 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-RecordPOST /api/now/table/pa_indicators
データコレクターを作成SN-Create-RecordPOST /api/now/table/pa_data_collectors
ダッシュボードを作成SN-Create-RecordPOST /api/now/table/pa_dashboards
ウィジェットを追加SN-Create-RecordPOST /api/now/table/pa_widgets
レポートを作成SN-Create-RecordPOST /api/now/table/sys_report
指標をクエリSN-Query-TableGET /api/now/table/pa_indicators
ダッシュボードをクエリSN-Query-TableGET /api/now/table/pa_dashboards
ウィジェットを更新SN-Update-RecordPATCH /api/now/table/pa_widgets/{sys_id}

ベストプラクティス

  • まず指標を作成します: ダッシュボードを構築する前にメトリクスを定義します。指標はその基盤です
  • ほとんどの KPI では日次頻度を使用します: 日次収集は、粒度とパフォーマンスのバランスを取ります
  • 指標に方向性を設定します: トレンドが正しく改善を示すように、「minimize」または「maximize」を指定します
  • 対象者に合わせて設計します: 経営層向けダッシュボードはウィジェットを 4~6 個にし、運用向けダッシュボードにはさらに多く配置できます
  • 内訳を使って詳細に絞り込みます: 優先度、カテゴリ、グループ、または場所でデータを分類できるようにします
  • PA と標準レポートを組み合わせます: トレンドと KPI には PA を使用し、アドホックなリストや詳細ビューには sys_report を使用します
  • データ収集をテストします: 手動で収集を実行し、指標の条件が期待どおりの結果を返すことを確認します
  • しきい値と目標値を設定します: 指標のしきい値を設定して、赤・黄・緑の表示を有効にします
  • 過度な集計を避けます: 1 つのウィジェットに内訳を多く設定しすぎると、データが読みづらくなります
  • 指標の数式を文書化します: 説明フィールドを使って、各指標が何を測定し、その理由を記載します

トラブルシューティング

指標にデータが表示されない

症状: 指標は存在しますが、ゼロまたはデータなしと表示されます
原因:

  1. データコレクターが有効になっていない、またはまだ実行されていない
  2. 条件フィルターがレコードを返さない
  3. 指標の頻度が収集スケジュールと一致していない 解決方法:
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
ダッシュボードが表示されない

症状: ダッシュボードは作成されていますが、ナビゲーションに表示されません
原因:

  1. ダッシュボードが公開されていない
  2. ユーザーに pa_viewer または pa_admin ロールがない
  3. ダッシュボードが有効になっていない 解決方法:
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 - アプリケーションレベルの分析

コメント