取樣器 - 診斷資料轉寄工具

Sampler 會將 Inspect 診斷資料轉送至 Cobalt 遙測系統。

如果元件是使用 Inspect 進行檢測,您只需變更設定檔,就能使用 Cobalt 遙測 (車隊監控)!如果希望 執行機群監控作業的低複雜度進入機群 (無新 FIDL 整合服務,沒有新資料) 不必隨心所欲控制複雜的流程),不妨使用取樣器!

我能獲得什麼?

取樣器提供簡化的方式,讓您進行機群監控 每個元件的偵錯工具包

集中化資料模型

許多開發人員認為必須維護兩個獨立的資料模型 一種處理裝置端或當機報告偵錯等等 像是機群監控

有了 Sampler,單一診斷資料模型 (檢查) 即可做為所有診斷資料分支的來源。

避免直接整合的複雜性

對某些元件 (例如驅動程式) 來說,工作負載非常重要, 「抓準時機」是執行非基本工作,例如診斷 製作報表可能並不容易將取樣作業集中到 Sampler,我們就能將工作卸載至可在非使用者尖峰期間執行的程式。即使是未提供 系統關鍵服務,與 Sampler 整合,讓 Fuchsia 更健康 以做出更明智的取樣排程

如要直接整合 Cobalt,元件作者必須將流程控制視為向 Cobalt 裝置端轉送器傳送要求的用戶端。流量 控制項隱含在取樣器中,因此您可以專注於上傳 指標類型,且不新增服務依附元件。

開始使用

  1. 請務必使用 ComponentInspectorinspect_runtime 提供檢查服務。
  2. 登錄 Cobalt 指標 決定要將檢查指標轉換為
  3. 建立 Sampler 設定,定義從 Inspect 到 Cobalt 的轉換。查看現有的設定檔

取樣器設定

我們會使用 FVM 整合做為設定範例。

{
  "project_id": 3676913920,
  "poll_rate_sec": 3600,
  "metrics": [
    {
      "selector": "bootstrap/driver_manager:root/fvm/partitions/blobfs:total_slices_reserved",
      "metric_id": 3000,
      "metric_type": "Integer",
      "event_codes": [0]
    },
    {
      "selector": "bootstrap/driver_manager:root/fvm/partitions/minfs:total_slices_reserved",
      "metric_id": 3000,
      "metric_type": "Integer",
      "event_codes": [1]
    }
  ]
}

取樣器設定會指定頂層專案 ID,這會指定取樣器要代為取樣及轉送的 Cobalt 用戶端。它也會指定頂層 poll_rate_seconds,但在 Sampler v1.1 中,此輪詢速率會代表用戶端遷移至個別指標設定。

接下來,設定需要指標轉換清單。在以下 用戶端會提供一個選取器,以找出相關 檢查指標,以及轉寄檢查所需的 Cobalt 中繼資料 。

  1. metric_type 是要求的指標轉換類型。
    • 如果您的 Cobalt 指標類型為 OCCURRENCE,用於追蹤數值匯總,請使用 metric_type Occurrence
    • 如果 Cobalt 指標類型為 INTEGER 追蹤原始數據 整數 (例如 cpu_load、thermal_temp),請使用 metric_type Integer
    • 如果 Cobalt 指標的類型為 INTEGER_HISTOGRAM,請使用 metric_type 的 IntHistogram
    • 如果 Cobalt 指標的類型為 STRING,請使用 metric_type 的 String
  2. metric_id 與你在 Cobalt 中登錄指標時使用的 ID 相同 YAML 檔案
  3. event_codes 是您在 Cobalt 指標註冊作業中指定的維度值清單。在 FVM 的案例中,每項指標都含有 對應的分區類型維度值。

注意:取樣器設定中的維度值順序必須 與在 YAML 檔案中宣告維度的順序一致 定義