這個檔案內含介面,可讓用戶端記錄與指標相關聯的事件。系統會收集這些事件,並在稍後分析。指標會彙整在與客戶相關聯的專案底下。這些物件每個都有整數 ID,而這些 ID 會做為這個檔案中方法的參數使用。指標也可以有一或多個相關聯的維度,然後在記錄事件時,以事件程式碼向量的形式傳送這些維度。
用量:先使用 MetricEventLoggerFactory 取得專案的 MetricEventLogger,接著,請使用事件的 Log*() 方法,在事件發生時記錄事件。
這項服務在 Fuchsia 的預設實作為 Cobalt。如要進一步瞭解如何將這些介面與 Cobalt 搭配使用,請參閱 README.md。
專家
MetricEventLogger
定義於 fuchsia.metrics/metric_event_logger.fidl
與一項專案指標相關聯的事件記錄器。
記錄檔整數
記錄整數測量。
所記錄指標的 metric_id ID。
value 整數測量值。
event_codes 已排序的參數清單,每個指標維度各有一個清單。系統會根據這些參數匯總含有相同事件代碼的整數值。
要求
| 名稱 | 類型 | 
|---|---|
| metric_id | uint32 | 
| value | int64 | 
| event_codes | EventVector | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | MetricEventLogger_LogInteger_Result | 
記錄檔整數直方圖
記錄直方圖,提供許多近似整數測量值。
所記錄指標的 metric_id ID。
histogram 概略整數測量結果。請不要傳送沒有測量結果 (空白值區) 的值區。
event_codes 已排序的參數清單,每個指標維度各有一個清單。系統會根據這些參數,匯總具有相同事件代碼的直方圖。
要求
| 名稱 | 類型 | 
|---|---|
| metric_id | uint32 | 
| histogram | IntegerHistogram | 
| event_codes | EventVector | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | MetricEventLogger_LogIntegerHistogram_Result | 
記錄指標事件
大量記錄方法,相當於一次進行許多上述 Log*() 呼叫。
要求
| 名稱 | 類型 | 
|---|---|
| events | vector<MetricEvent>[500] | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | MetricEventLogger_LogMetricEvents_Result | 
記錄發生次數
記錄事件發生多次的情況。
所記錄指標的 metric_id ID。
count 事件發生的次數。這個值應為正數,系統會忽略值為 0。
event_codes 已排序的參數清單,每個指標維度各有一個清單。系統會按照這些參數匯總具有相同事件代碼的發生次數。
要求
| 名稱 | 類型 | 
|---|---|
| metric_id | uint32 | 
| count | uint64 | 
| event_codes | EventVector | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | MetricEventLogger_LogOccurrence_Result | 
記錄字串
記錄觀察到的字串值。
所記錄指標的 metric_id ID。
string_value 要記錄的字串。
event_codes 已排序的參數清單,每個指標維度各有一個清單。記錄字串的數量會根據這些參數單獨匯總。
要求
| 名稱 | 類型 | 
|---|---|
| metric_id | uint32 | 
| string_value | string[256] | 
| event_codes | EventVector | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | MetricEventLogger_LogString_Result | 
MetricEventLoggerFactory
定義於 fuchsia.metrics/metric_event_logger.fidl
用來為特定專案建立 MetricEventLogger 的工廠。
建立指標事件記錄器
為 project_spec 指定的專案建立 MetricEventLogger。
要求
| 名稱 | 類型 | 
|---|---|
| project_spec | ProjectSpec | 
| logger | server_end<MetricEventLogger> | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | MetricEventLoggerFactory_CreateMetricEventLogger_Result | 
CreateMetricEventLoggerWith 實驗
使用實驗中繼資料建立 MetricEventLogger。
這個臨時方法會將實驗資料直接從元件提供給 Cobalt。日後實驗狀態會由系統管理,並直接傳送至 Cobalt。如要使用這個介面,請先洽詢 Cobalt 團隊。
如要更新實驗狀態,請建立新的記錄器。
要求
| 名稱 | 類型 | 
|---|---|
| project_spec | ProjectSpec | 
| experiment_ids | vector<uint32>[100] | 
| logger | server_end<MetricEventLogger> | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result | 
結構
直方圖值區
定義於 fuchsia.metrics/metric_event_logger.fidl
直方圖的一個值區,由 LogIntegerHistogram 方法使用。
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| index | uint32 | 值區的索引。這個指標包含一系列 N+1 整數範圍值區的規格,從 0 (欠位值區) 到 N (溢位值區) 建立索引。 | 無預設 | 
| count | uint64 | 該值區中的值數量。 如要節省空間/記憶體/頻寬,請勿加入空值區。 | 無預設 | 
指標事件
定義於 fuchsia.metrics/metric_event_logger.fidl
曾傳送至 LogMetricEvents() 的事件規格。
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| metric_id | uint32 | 所記錄指標的 ID。 | 無預設 | 
| event_codes | EventVector | 
 | 無預設 | 
| payload | MetricEventPayload | 目前記錄事件的指標類型專屬資料。 | 無預設 | 
MetricEventLoggerFactory_CreateMetricEventLoggerWith 實驗_Response
定義於 fuchsia.metrics/metric_event_logger.fidl
<空白>
MetricEventLoggerFactory_CreateMetricEventLogger_Response
定義於 fuchsia.metrics/metric_event_logger.fidl
<空白>
MetricEventLogger_LogIntegerHistogram_Response
定義於 fuchsia.metrics/metric_event_logger.fidl
<空白>
MetricEventLogger_LogInteger_Response
定義於 fuchsia.metrics/metric_event_logger.fidl
<空白>
MetricEventLogger_LogMetricEvents_Response
定義於 fuchsia.metrics/metric_event_logger.fidl
<空白>
MetricEventLogger_記錄發生次數回應
定義於 fuchsia.metrics/metric_event_logger.fidl
<空白>
MetricEventLogger_LogString_Response
定義於 fuchsia.metrics/metric_event_logger.fidl
<空白>
表情符號
錯誤 strict 錯誤
類型:int32
定義於 fuchsia.metrics/metric_event_logger.fidl
MetricEventLogger 作業的錯誤代碼。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 無效引數 | 1 | 例如,提供的指標 ID 無效。 | 
| 事件數量過多 | 2 | 嘗試記錄序列化大小超過 MAX_BYTES_PER_EVENT 的事件。 | 
| BUFFER_FULL | 3 | 記錄器的本機緩衝區暫時已滿,目前無法處理任何事件。請稍後再試。這個條件相當罕見, | 
| 輕微 | 4 | |
| INTERNAL_ERROR | -1 | 各種錯誤發生時都會錄影。 | 
資料表
ProjectSpec
定義於 fuchsia.metrics/metric_event_logger.fidl
指定用於記錄事件的專案規格。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | customer_id | uint32 | 客戶 ID。如果省略 (例如設為 0),則預設值為「fuchsia」預設客戶的客戶 ID。 | 
| 2 | project_id | uint32 | 專案的 ID。 | 
聯合國
MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result strict
定義於 fuchsia.metrics/metric_event_logger.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Response | |
| 2 | err | Error | 
MetricEventLoggerFactory_CreateMetricEventLogger_Result strict
定義於 fuchsia.metrics/metric_event_logger.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | MetricEventLoggerFactory_CreateMetricEventLogger_Response | |
| 2 | err | Error | 
MetricEventLogger_LogIntegerHistogram_Result strict
定義於 fuchsia.metrics/metric_event_logger.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | MetricEventLogger_LogIntegerHistogram_Response | |
| 2 | err | Error | 
MetricEventLogger_LogInteger_Result strict
定義於 fuchsia.metrics/metric_event_logger.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | MetricEventLogger_LogInteger_Response | |
| 2 | err | Error | 
MetricEventLogger_LogMetricEvents_Result strict
定義於 fuchsia.metrics/metric_event_logger.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | MetricEventLogger_LogMetricEvents_Response | |
| 2 | err | Error | 
MetricEventLogger_Logocrrence_Result strict
定義於 fuchsia.metrics/metric_event_logger.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | MetricEventLogger_LogOccurrence_Response | |
| 2 | err | Error | 
MetricEventLogger_LogString_Result strict
定義於 fuchsia.metrics/metric_event_logger.fidl
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | MetricEventLogger_LogString_Response | |
| 2 | err | Error | 
MetricEventPayload 彈性
定義於 fuchsia.metrics/metric_event_logger.fidl
MetricEvent 的變異部分。
| 序數 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | count | uint64 | 事件發生的次數,請參閱 Logocrrence()。 | 
| 2 | integer_value | int64 | 計算的整數,請參閱 LogInteger()。 | 
| 3 | histogram | IntegerHistogram | 概略整數測量結果的集合,請參閱 LogIntegerHistogram()。 | 
| 4 | string_value | string[256] | 要記錄的字串,請參閱 LogString()。 | 
場景
| 名稱 | 值 | 類型 | 說明 | 
|---|---|---|---|
| MAX_BATCHED_EVENTS | 500 | uint32 | 單次 FIDL 呼叫可記錄的事件數量上限。 | 
| MAX_BYTES_PER_EVENT | 102400 | int64 | 單一事件的大小上限為 100 KB。 | 
| MAX_EXPERIMENT_IDS | 100 | uint32 | 可提供給單一記錄器的實驗 ID 數量上限。 | 
| MAX_HISTOGRAM_BUCKETS | 500 | uint32 | 這可做為每個事件的合理直方圖值區數量上限。 | 
| MAX_METRIC_DIMENSIONS | 10 | uint32 | 可與單一事件建立關聯的事件代碼數量上限。 | 
| MAX_STRING_EVENT_SIZE | 256 | uint32 | 字串事件的長度不得超過此時間。 | 
別名
| 名稱 | 值 | 說明 | 
|---|---|---|
| EventVector | vector[MAX_METRIC_DIMENSIONS]敬上 | 事件代碼的向量。用於下方的任一 Log*() 呼叫時,每個提供 metric_id 的指標維度都需要一個事件代碼,否則呼叫會傳回 INVALID_COUNTRYS。 | 
| IntegerHistogram | vector[MAX_HISTOGRAM_BUCKETS]敬上 | 將計數指派給多個整數範圍的直方圖。 為了節省空間/記憶體/頻寬,每個值區索引只應包含一次,請勿加入空值區。向量的順序不具實質意義 |