Communitygithub.com

axiomhq/building-dashboards

透過 API 設計與建構 Axiom 儀表板,涵蓋圖表類型、APL 和指標/MPL 查詢模式、智慧篩選器、版面配置及設定選項。適合用於建立儀表板、從 Splunk 遷移或設定圖表選項。

building-dashboards 是什麼?

這個技能專注於利用 Axiom 的 API 來設計並建立功能完整的儀表板。它詳細說明了如何定義各種圖表類型(如時間序列、數值、清單、表格、柱狀圖與計數圖),並使用 Axiom 處理語言(APL)或指標查詢語言(MPL)來撰寫資料查詢。此外,技能還涵蓋了儀表板的互動元件,例如全域變數、自訂時間範圍與智慧篩選器,以及版面配置的進階選項(如頁面與面板的排列方式)。此技能支援將儀表板定義以 JSON 格式匯出,並可透過 Axiom API 進行建立、更新與管理,使其成為從 Splunk 等其他平台遷移或需要以程式化方式大規模管理觀測性儀表板的開發者與平台工程師的理想工具。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/axiomhq/skills/tree/main/skills/building-dashboards

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

building-dashboards 是做什麼的?

透過 API 設計與建構 Axiom 儀表板。涵蓋圖表類型、APL 和指標/MPL 查詢模式、智慧篩選器、版面配置及設定選項。適合用於建立儀表板、從 Splunk 遷移或設定圖表選項。

概述

此技能提供建立、取得、更新與刪除 Axiom 儀表板的指南。儀表板是一種資料視覺化工具,可將查詢結果以圖表、表格或數值形式呈現。每個儀表板由多個面板組成,每個面板包含一個或多個圖表。此處涵蓋的儀表板定義格式與 Axiom API 完全相容。

支援的平台

  • Axiom(主要)
  • 任何可透過 HTTP 呼叫 Axiom API 的環境

使用方法

  1. 準備一個包含儀表板定義的 JSON 檔案。
  2. 使用 POST /v1/dashboards API 端點來建立儀表板。
  3. 使用 PUT /v1/dashboards/{id} 來更新現有儀表板。
  4. 使用 DELETE /v1/dashboards/{id} 來刪除儀表板。

儀表板結構

儀表板定義包含以下主要部分:

  • id:唯一的儀表板識別碼(UUID)。
  • name:儀表板名稱。
  • description:選擇性的說明文字。
  • timeRange:預設的時間範圍。
  • charts:圖表定義的陣列。
  • variables:全域變數(選擇性)。
  • smartFilters:智慧篩選器(選擇性)。
  • layout:頁面與面板的版面配置。

圖表類型

支援以下圖表類型:

類型說明
timeseries時間序列圖(折線圖或區域圖)
numeric單一數值
list列出資料點
table表格檢視
bar長條圖
count計數圖

查詢模式

APL 查詢

APL(Axiom 處理語言)用於查詢事件日誌資料。範例:

'my-dataset'
| where ['status'] == "error"
| summarize count() by ['service']

指標/MPL 查詢

MPL(指標查詢語言)用於查詢指標資料。範例:

rate(container_cpu_usage_seconds_total[5m])

智慧篩選器

智慧篩選器可讓使用者動態篩選儀表板資料。它們在 smartFilters 區塊中定義:

{
  "smartFilters": [
    {
      "field": "service",
      "title": "服務",
      "values": []
    }
  ]
}

版面配置

版面配置以巢狀格式定義頁面與面板。頁面包含面板,每個面板可包含一個或多個圖表。

{
  "layout": [
    {
      "title": "概覽頁面",
      "panels": [
        {
          "title": "錯誤率",
          "chartIds": ["chart-1", "chart-2"]
        }
      ]
    }
  ]
}

組態選項

每個圖表類型都有特定的組態選項:

  • timeseries:showLegend、stackMode、nullValueTreatment
  • bar:orientation、showValues
  • table:columnSettings、showRowNumbers
  • numeric:prefix、suffix、decimalPlaces
  • list:maxItems、sortBy
  • count:groupBy

從 Splunk 遷移

從 Splunk 遷移時,請依照以下步驟操作:

  1. 將 Splunk 查詢轉換為 APL。
  2. 將 Splunk 儀表板 XML 轉換為 Axiom JSON 格式。
  3. 透過 API 建立新的儀表板。
  4. 驗證資料是否正確呈現。

範例

建立一個簡單儀表板

{
  "name": "服務監控",
  "description": "監控服務健康狀態",
  "timeRange": {
    "type": "relative",
    "value": 3600000
  },
  "charts": [
    {
      "id": "chart-1",
      "type": "timeseries",
      "query": {
        "apl": "'my-dataset' | summarize count() by ['status']"
      },
      "options": {
        "showLegend": true,
        "stackMode": "none"
      }
    }
  ],
  "layout": [
    {
      "panels": [
        {
          "chartIds": ["chart-1"]
        }
      ]
    }
  ]
}

使用變數

{
  "variables": [
    {
      "name": "service",
      "type": "query",
      "query": {
        "apl": "'my-dataset' | distinct ['service']"
      }
    }
  ]
}

相關資源

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能