這個檔案內含介面,可讓用戶端記錄與指標相關聯的事件。系統會收集這些事件,並在稍後分析。指標會彙整在與客戶相關聯的專案底下。這些物件每個都有整數 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 ]敬上 |
將計數指派給多個整數範圍的直方圖。 為了節省空間/記憶體/頻寬,每個值區索引只應包含一次,請勿加入空值區。向量的順序不具實質意義 |