fuchsia.power.metrics

這個程式庫定義了一個通訊協定,讓測試用戶端與指標記錄器進行通訊。 請指定:

  • 指標類型:例如溫度、CPU、GPU、網路、電源。
  • 測試時間長度。
  • 取樣率。
  • 記錄已處理的統計資料:最小值、最大值和平均值。
  • 統計處理間隔 (如適用)。
新增:17

通訊協定

錄音工具

fuchsia.power.metrics/recorder.fidl 中定義

管理以量計價指標記錄功能的通訊協定。

StartLogging

開始針對指定期間記錄指定指標。 支援不同指標的並行記錄。Logging 呼叫 StopLogging 並提早終止。

如果先前已記錄指定指標,這項呼叫就會失敗 有效。因此,客戶可能希望在 StartLogging 之前 呼叫 StopLogging 呼叫,之後 啟用 Logger 會與其他用戶端衝突。

  • 要求用戶端的 client_id 字串格式 ID。客戶可選擇 位元組大小上限為 8 的任何 ID (例如「ffxTest」)。
  • 要求 metrics 要輪詢和記錄的指標類型。
  • 要求duration_ms記錄時間長度 (以毫秒為單位)。之後 持續時間、輪詢和記錄功能都會停止。
  • 要求 output_samples_to_syslog 用於輸出原始資料的切換按鈕 syslog。
  • 要求 output_stats_to_syslog 切換以輸出任何可用的值 將統計資料傳送至 Syslog
  • 會顯示 [fuchsia.metrics.test/MeticsLoggerError] 值,以說明原因 要求失敗。

要求

名稱類型
client_id ClientId
metrics vector<Metric>
duration_ms uint32
output_samples_to_syslog bool
output_stats_to_syslog bool

回應

名稱類型
payload Recorder_StartLogging_Result

StartLoggingForever

啟動指定指標的記錄作業。支援下列檔案的並行記錄: 不同的指標記錄功能只會在發生 StopLogging 呼叫時結束。

建議將 StartLogging 用於自動化測試, 確保即使測試當機,記錄也終止。

  • 要求用戶端的 client_id 字串格式 ID。客戶可選擇 位元組大小上限為 8 的任何 ID (例如「ffxTest」)。
  • 要求 metrics 要輪詢和記錄的指標類型。
  • 要求 output_samples_to_syslog 用於輸出原始資料的切換按鈕 syslog。
  • 要求 output_stats_to_syslog 切換以輸出任何可用的值 將統計資料傳送至 Syslog
  • 會顯示 [fuchsia.metrics.test/RecorderError] 值,以說明原因 要求失敗。

要求

名稱類型
client_id ClientId
metrics vector<Metric>
output_samples_to_syslog bool
output_stats_to_syslog bool

回應

名稱類型
payload Recorder_StartLoggingForever_Result

StopLogging

使用指定的 client_id 終止所有進行中的記錄工作。是 可以在記錄功能停用時呼叫這個方法。

  • 要求用戶端的 client_id 字串格式 ID。
  • 回應 status 布林值,指出目前記錄是否為 已停止 (true),或該用戶端目前沒有記錄。

要求

名稱類型
client_id ClientId

回應

名稱類型
stopped bool

結構

CpuLoad

定義於 fuchsia.power.metrics/recorder.fidl

CPU 負載指標詳細資料。

欄位類型說明預設
interval_ms uint32

輪詢時間間隔長度 (以毫秒為單位)。 必須小於記錄要求的 duration_ms。 如果已啟用 output_samples_to_syslog,則不得小於 500 毫秒 。

無預設

GpuUsage

fuchsia.power.metrics/recorder.fidl 中定義

GPU 用量指標詳細資料。

欄位類型說明預設
interval_ms uint32

輪詢時間間隔長度 (以毫秒為單位)。 必須小於記錄要求的 duration_ms。 如果已啟用 output_samples_to_syslog,則不得小於 500 毫秒 。

無預設

NetworkActivity

fuchsia.power.metrics/recorder.fidl 中定義

網路活動指標詳細資料。

欄位類型說明預設
interval_ms uint32

輪詢時間間隔長度 (以毫秒為單位)。 必須小於記錄要求的 duration_ms。 如果已啟用 output_samples_to_syslog,則不得小於 500 毫秒 。

無預設

電源

fuchsia.power.metrics/recorder.fidl 中定義

電源指標詳細資料。

欄位類型說明預設
sampling_interval_ms uint32

取樣間隔長度 (以毫秒為單位)。 如果已啟用 output_samples_to_syslog,則不得小於 500 毫秒 。 必須小於記錄要求的 duration_ms

無預設
statistics_args StatisticsArgs?

Boxed(選用) 統計資料引數。如果沒有,系統就會停用統計資料。

無預設

Recorder_StartLoggingForever_Response

fuchsia.power.metrics/recorder.fidl 中定義

<空白>

Recorder_StartLogging_Response

fuchsia.power.metrics/recorder.fidl 中定義

<空白>

StatisticsArgs

fuchsia.power.metrics/recorder.fidl 中定義

欄位類型說明預設
statistics_interval_ms uint32

匯總統計資料的間隔長度 (以毫秒為單位,例如 最小值、最大值、平均值)。 指標中的值必須大於或等於 sampling_interval_ms。 必須小於記錄要求的 duration_ms。 如果已在執行個體中啟用 output_stats_to_syslog,則不得小於 500 毫秒 。

無預設

溫度

fuchsia.power.metrics/recorder.fidl 中定義

溫度指標詳細資料。

欄位類型說明預設
sampling_interval_ms uint32

取樣間隔長度 (以毫秒為單位)。 如果已啟用 output_samples_to_syslog,則不得小於 500 毫秒 。 必須小於記錄要求的 duration_ms

無預設
statistics_args StatisticsArgs?

Boxed(選用) 統計資料引數。如果沒有,系統就會停用統計資料。

無預設

ENUMS

RecorderError 嚴格

類型:uint32

fuchsia.power.metrics/recorder.fidl 中定義

與錄音工具方法相關的錯誤。 如果請求包含以下錯誤,就會失敗,且 影響到現有記錄工作

名稱說明
1

表示要求指標記錄中找不到任何驅動程式庫。

2

表示提供的取樣間隔無效。

3

如果已為 指定的用戶端。

4

表示記錄要求含有重複的指標類型。

5

表示有效客戶總數達到 許可上限 (由 MAX_CONCURRENT_CLIENTS = 20 定義,範圍: 以便確保記憶體用量有限)。

6

表示統計資料已啟用,而且統計資料間隔無效 而不是每個 Pod 的名稱

7

表示要求因內部錯誤而失敗。

聯合國

指標嚴格

fuchsia.power.metrics/recorder.fidl 中定義

錄音工具方法中要求的指標類型。

OrdinalVariant類型說明
temperature Temperature
cpu_load CpuLoad
power Power
gpu_usage GpuUsage
network_activity NetworkActivity

Recorder_StartLoggingForever_Result 嚴格

fuchsia.power.metrics/recorder.fidl 中定義

OrdinalVariant類型說明
response Recorder_StartLoggingForever_Response
err RecorderError

Recorder_StartLogging_Result 嚴格

fuchsia.power.metrics/recorder.fidl 中定義

OrdinalVariant類型說明
response Recorder_StartLogging_Response
err RecorderError

ALIASES

名稱說明
ClientId string[16]