| <link rel="stylesheet" href="../style.css" /> |
| |
| [TOC] |
| # fuchsia.metrics |
| |
| <p>This file contains interfaces that allow clients to log events that are |
| associated with metrics. These events are collected and later analyzed. |
| Metrics are organized under a Project, which are associated with a Customer. |
| Each of these objects has an integer ID and those IDs are used as parameters |
| in the methods in this file. Metrics can also have one or more dimensions |
| associated with them, which are then passed as a vector of event codes when |
| logging the event.</p> |
| <p>Usage: First use MetricEventLoggerFactory to get a MetricEventLogger for your |
| project. Then you log Events as they occur, using the Log*() methods on it.</p> |
| <p>The default implementation of this service in Fuchsia is Cobalt. For more |
| details on how to use these interfaces with Cobalt, see README.md.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div> |
| |
| |
| ## **PROTOCOLS** |
| |
| ## MetricEventLogger {#MetricEventLogger} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=106)* |
| <p>A logger for events that are associated with one project's metrics.</p> |
| |
| |
| ### LogInteger {#MetricEventLogger.LogInteger} |
| |
| <p>Logs an integer measurement.</p> |
| <p><code>metric_id</code> ID of the metric being logged.</p> |
| <p><code>value</code> The integer measurement.</p> |
| <p><code>event_codes</code> Ordered list of parameters, one for each of the metric's |
| dimensions. Integer values with the same event codes are aggregated |
| based on these parameters.</p> |
| |
| |
| |
| #### Request {#MetricEventLogger.LogInteger_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>metric_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>value</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>event_codes</code></td> |
| <td> |
| <code><a class='link' href='#EventVector'>EventVector</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#MetricEventLogger.LogInteger_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogInteger_Result'>MetricEventLogger_LogInteger_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### LogIntegerHistogram {#MetricEventLogger.LogIntegerHistogram} |
| |
| <p>Logs a histogram giving many approximate integer measurements.</p> |
| <p><code>metric_id</code> ID of the metric being logged.</p> |
| <p><code>histogram</code> The collection of approximate integer measurements. Buckets |
| that have no measurement (empty buckets) should not be sent.</p> |
| <p><code>event_codes</code> Ordered list of parameters, one for each of the metric's |
| dimensions. Histograms with the same event codes are aggregated together |
| based on these parameters.</p> |
| |
| |
| |
| #### Request {#MetricEventLogger.LogIntegerHistogram_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>metric_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>histogram</code></td> |
| <td> |
| <code><a class='link' href='#IntegerHistogram'>IntegerHistogram</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>event_codes</code></td> |
| <td> |
| <code><a class='link' href='#EventVector'>EventVector</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#MetricEventLogger.LogIntegerHistogram_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogIntegerHistogram_Result'>MetricEventLogger_LogIntegerHistogram_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### LogMetricEvents {#MetricEventLogger.LogMetricEvents} |
| |
| <p>Bulk logging method, equivalent to making many of the above Log*() calls |
| at once.</p> |
| |
| |
| |
| #### Request {#MetricEventLogger.LogMetricEvents_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>events</code></td> |
| <td> |
| <code>vector<<a class='link' href='#MetricEvent'>MetricEvent</a>>[500]</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#MetricEventLogger.LogMetricEvents_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogMetricEvents_Result'>MetricEventLogger_LogMetricEvents_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### LogOccurrence {#MetricEventLogger.LogOccurrence} |
| |
| <p>Logs the fact that an event has occurred a number of times.</p> |
| <p><code>metric_id</code> ID of the metric being logged.</p> |
| <p><code>count</code> The number of times the event has occurred. The value should |
| be positive as a value of 0 is ignored.</p> |
| <p><code>event_codes</code> Ordered list of parameters, one for each of the metric's |
| dimensions. Occurrence counts with the same event codes are aggregated |
| based on these parameters.</p> |
| |
| |
| |
| #### Request {#MetricEventLogger.LogOccurrence_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>metric_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>count</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>event_codes</code></td> |
| <td> |
| <code><a class='link' href='#EventVector'>EventVector</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#MetricEventLogger.LogOccurrence_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogOccurrence_Result'>MetricEventLogger_LogOccurrence_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### LogString {#MetricEventLogger.LogString} |
| |
| <p>Logs a string value that was observed.</p> |
| <p><code>metric_id</code> ID of the metric being logged.</p> |
| <p><code>string_value</code> The string to log.</p> |
| <p><code>event_codes</code> Ordered list of parameters, one for each of the metric's |
| dimensions. Counts of logged strings are aggregated separately based on |
| these parameters.</p> |
| |
| |
| |
| #### Request {#MetricEventLogger.LogString_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>metric_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>string_value</code></td> |
| <td> |
| <code>string[256]</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>event_codes</code></td> |
| <td> |
| <code><a class='link' href='#EventVector'>EventVector</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#MetricEventLogger.LogString_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogString_Result'>MetricEventLogger_LogString_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## MetricEventLoggerFactory {#MetricEventLoggerFactory} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=72)* |
| <p>A factory that is used to create a MetricEventLogger for a specific project.</p> |
| |
| |
| ### CreateMetricEventLogger {#MetricEventLoggerFactory.CreateMetricEventLogger} |
| |
| <p>Create a MetricEventLogger for the project specified by <code>project_spec</code>.</p> |
| |
| |
| |
| #### Request {#MetricEventLoggerFactory.CreateMetricEventLogger_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>project_spec</code></td> |
| <td> |
| <code><a class='link' href='#ProjectSpec'>ProjectSpec</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>logger</code></td> |
| <td> |
| <code>server_end<<a class='link' href='#MetricEventLogger'>MetricEventLogger</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#MetricEventLoggerFactory.CreateMetricEventLogger_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLoggerFactory_CreateMetricEventLogger_Result'>MetricEventLoggerFactory_CreateMetricEventLogger_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### CreateMetricEventLoggerWithExperiments {#MetricEventLoggerFactory.CreateMetricEventLoggerWithExperiments} |
| |
| <p>Create a MetricEventLogger with experiment metadata.</p> |
| <p>This temporary method exposes experiment data to Cobalt directly from |
| components. In the future, experiment state will be managed by the |
| system and passed directly to Cobalt. Contact the Cobalt team before |
| using this interface.</p> |
| <p>To update experiment state create a new logger.</p> |
| |
| |
| |
| #### Request {#MetricEventLoggerFactory.CreateMetricEventLoggerWithExperiments_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>project_spec</code></td> |
| <td> |
| <code><a class='link' href='#ProjectSpec'>ProjectSpec</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>experiment_ids</code></td> |
| <td> |
| <code>vector<uint32>[100]</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>logger</code></td> |
| <td> |
| <code>server_end<<a class='link' href='#MetricEventLogger'>MetricEventLogger</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#MetricEventLoggerFactory.CreateMetricEventLoggerWithExperiments_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result'>MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **STRUCTS** |
| |
| ### HistogramBucket {#HistogramBucket data-text="HistogramBucket"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=238)* |
| <p>One bucket of a histogram, used by the method LogIntegerHistogram.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="HistogramBucket.index"> |
| <td><code>index</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>The index of the bucket. The metric includes a specification |
| of a sequence of N+1 integer-range buckets that are indexed from |
| 0, the underflow bucket, to N, the overflow bucket.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="HistogramBucket.count"> |
| <td><code>count</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| <td><p>The number of values in that bucket. |
| To save space/memory/bandwidth, empty buckets should not be included.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### MetricEvent {#MetricEvent data-text="MetricEvent"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=190)* |
| <p>A specification of an event that occurred to be passed to LogMetricEvents().</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="MetricEvent.metric_id"> |
| <td><code>metric_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>ID of the metric being logged.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="MetricEvent.event_codes"> |
| <td><code>event_codes</code></td> |
| <td> |
| <code><a class='link' href='#EventVector'>EventVector</a></code> |
| </td> |
| <td><p><code>event_codes</code> Ordered list of parameters, one for each of the metric's |
| dimensions.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="MetricEvent.payload"> |
| <td><code>payload</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventPayload'>MetricEventPayload</a></code> |
| </td> |
| <td><p>The metric-type-specific data for the event being logged.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Response {#MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Response data-text="MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Response"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=91)* |
| |
| <EMPTY> |
| |
| ### MetricEventLoggerFactory_CreateMetricEventLogger_Response {#MetricEventLoggerFactory_CreateMetricEventLogger_Response data-text="MetricEventLoggerFactory_CreateMetricEventLogger_Response"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=77)* |
| |
| <EMPTY> |
| |
| ### MetricEventLogger_LogIntegerHistogram_Response {#MetricEventLogger_LogIntegerHistogram_Response data-text="MetricEventLogger_LogIntegerHistogram_Response"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=152)* |
| |
| <EMPTY> |
| |
| ### MetricEventLogger_LogInteger_Response {#MetricEventLogger_LogInteger_Response data-text="MetricEventLogger_LogInteger_Response"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=136)* |
| |
| <EMPTY> |
| |
| ### MetricEventLogger_LogMetricEvents_Response {#MetricEventLogger_LogMetricEvents_Response data-text="MetricEventLogger_LogMetricEvents_Response"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=173)* |
| |
| <EMPTY> |
| |
| ### MetricEventLogger_LogOccurrence_Response {#MetricEventLogger_LogOccurrence_Response data-text="MetricEventLogger_LogOccurrence_Response"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=121)* |
| |
| <EMPTY> |
| |
| ### MetricEventLogger_LogString_Response {#MetricEventLogger_LogString_Response data-text="MetricEventLogger_LogString_Response"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=167)* |
| |
| <EMPTY> |
| |
| |
| ## **ENUMS** |
| |
| ### Error [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Error data-text="Error"} |
| Type: <code>int32</code> |
| |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=40)* |
| <p>Error codes for MetricEventLogger operations.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="Error.INVALID_ARGUMENTS"> |
| <td><h3 id="Error.INVALID_ARGUMENTS" class="add-link hide-from-toc">INVALID_ARGUMENTS</h3></td> |
| <td><code>1</code></td> |
| <td><p>For example, the supplied metric id is invalid.</p> |
| </td> |
| </tr> |
| <tr id="Error.EVENT_TOO_BIG"> |
| <td><h3 id="Error.EVENT_TOO_BIG" class="add-link hide-from-toc">EVENT_TOO_BIG</h3></td> |
| <td><code>2</code></td> |
| <td><p>An attempt was made to log an Event whose serialized size exceeds |
| MAX_BYTES_PER_EVENT.</p> |
| </td> |
| </tr> |
| <tr id="Error.BUFFER_FULL"> |
| <td><h3 id="Error.BUFFER_FULL" class="add-link hide-from-toc">BUFFER_FULL</h3></td> |
| <td><code>3</code></td> |
| <td><p>The logger's local buffer is temporarily full and cannot handle any more |
| Events at this time. Try again later. This condition should be rare.</p> |
| </td> |
| </tr> |
| <tr id="Error.SHUT_DOWN"> |
| <td><h3 id="Error.SHUT_DOWN" class="add-link hide-from-toc">SHUT_DOWN</h3></td> |
| <td><code>4</code></td> |
| <td></td> |
| </tr> |
| <tr id="Error.INTERNAL_ERROR"> |
| <td><h3 id="Error.INTERNAL_ERROR" class="add-link hide-from-toc">INTERNAL_ERROR</h3></td> |
| <td><code>-1</code></td> |
| <td><p>Catch-all for unexpected errors.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **TABLES** |
| |
| ### ProjectSpec {#ProjectSpec data-text="ProjectSpec"} |
| |
| |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=61)* |
| <p>A specification identifying a project to log events for.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ProjectSpec.customer_id"> |
| <td><h3 id="ProjectSpec.customer_id" class="add-link hide-from-toc">1</h3></td> |
| <td><code>customer_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>The customer ID. If omitted (i.e. set to 0) then it defaults to the |
| customer ID for the default "fuchsia" customer.</p> |
| </td> |
| </tr> |
| <tr id="ProjectSpec.project_id"> |
| <td><h3 id="ProjectSpec.project_id" class="add-link hide-from-toc">2</h3></td> |
| <td><code>project_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>The ID of the project.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **UNIONS** |
| |
| ### MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result data-text="MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=91)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result.response"> |
| <td><h3 id="MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Response'>MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result.err"> |
| <td><h3 id="MetricEventLoggerFactory_CreateMetricEventLoggerWithExperiments_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### MetricEventLoggerFactory_CreateMetricEventLogger_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#MetricEventLoggerFactory_CreateMetricEventLogger_Result data-text="MetricEventLoggerFactory_CreateMetricEventLogger_Result"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=77)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="MetricEventLoggerFactory_CreateMetricEventLogger_Result.response"> |
| <td><h3 id="MetricEventLoggerFactory_CreateMetricEventLogger_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLoggerFactory_CreateMetricEventLogger_Response'>MetricEventLoggerFactory_CreateMetricEventLogger_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MetricEventLoggerFactory_CreateMetricEventLogger_Result.err"> |
| <td><h3 id="MetricEventLoggerFactory_CreateMetricEventLogger_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### MetricEventLogger_LogIntegerHistogram_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#MetricEventLogger_LogIntegerHistogram_Result data-text="MetricEventLogger_LogIntegerHistogram_Result"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=152)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="MetricEventLogger_LogIntegerHistogram_Result.response"> |
| <td><h3 id="MetricEventLogger_LogIntegerHistogram_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogIntegerHistogram_Response'>MetricEventLogger_LogIntegerHistogram_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MetricEventLogger_LogIntegerHistogram_Result.err"> |
| <td><h3 id="MetricEventLogger_LogIntegerHistogram_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### MetricEventLogger_LogInteger_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#MetricEventLogger_LogInteger_Result data-text="MetricEventLogger_LogInteger_Result"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=136)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="MetricEventLogger_LogInteger_Result.response"> |
| <td><h3 id="MetricEventLogger_LogInteger_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogInteger_Response'>MetricEventLogger_LogInteger_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MetricEventLogger_LogInteger_Result.err"> |
| <td><h3 id="MetricEventLogger_LogInteger_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### MetricEventLogger_LogMetricEvents_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#MetricEventLogger_LogMetricEvents_Result data-text="MetricEventLogger_LogMetricEvents_Result"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=173)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="MetricEventLogger_LogMetricEvents_Result.response"> |
| <td><h3 id="MetricEventLogger_LogMetricEvents_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogMetricEvents_Response'>MetricEventLogger_LogMetricEvents_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MetricEventLogger_LogMetricEvents_Result.err"> |
| <td><h3 id="MetricEventLogger_LogMetricEvents_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### MetricEventLogger_LogOccurrence_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#MetricEventLogger_LogOccurrence_Result data-text="MetricEventLogger_LogOccurrence_Result"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=121)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="MetricEventLogger_LogOccurrence_Result.response"> |
| <td><h3 id="MetricEventLogger_LogOccurrence_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogOccurrence_Response'>MetricEventLogger_LogOccurrence_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MetricEventLogger_LogOccurrence_Result.err"> |
| <td><h3 id="MetricEventLogger_LogOccurrence_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### MetricEventLogger_LogString_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#MetricEventLogger_LogString_Result data-text="MetricEventLogger_LogString_Result"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=167)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="MetricEventLogger_LogString_Result.response"> |
| <td><h3 id="MetricEventLogger_LogString_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#MetricEventLogger_LogString_Response'>MetricEventLogger_LogString_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="MetricEventLogger_LogString_Result.err"> |
| <td><h3 id="MetricEventLogger_LogString_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#Error'>Error</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### MetricEventPayload [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#MetricEventPayload data-text="MetricEventPayload"} |
| *Defined in [fuchsia.metrics/metric_event_logger.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=203)* |
| <p>The variadic part of a MetricEvent.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="MetricEventPayload.count"> |
| <td><h3 id="MetricEventPayload.count" class="add-link hide-from-toc">1</h3></td> |
| <td><code>count</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| <td><p>The number of times the event has occurred, see LogOccurrence().</p> |
| </td> |
| </tr> |
| <tr id="MetricEventPayload.integer_value"> |
| <td><h3 id="MetricEventPayload.integer_value" class="add-link hide-from-toc">2</h3></td> |
| <td><code>integer_value</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| <td><p>The integer measured, see LogInteger().</p> |
| </td> |
| </tr> |
| <tr id="MetricEventPayload.histogram"> |
| <td><h3 id="MetricEventPayload.histogram" class="add-link hide-from-toc">3</h3></td> |
| <td><code>histogram</code></td> |
| <td> |
| <code><a class='link' href='#IntegerHistogram'>IntegerHistogram</a></code> |
| </td> |
| <td><p>The collection of approximate integer measurements, see |
| LogIntegerHistogram().</p> |
| </td> |
| </tr> |
| <tr id="MetricEventPayload.string_value"> |
| <td><h3 id="MetricEventPayload.string_value" class="add-link hide-from-toc">4</h3></td> |
| <td><code>string_value</code></td> |
| <td> |
| <code>string[256]</code> |
| </td> |
| <td><p>The string to log, see LogString().</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| |
| ## **CONSTANTS** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr> |
| <tr id="MAX_BATCHED_EVENTS"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=28">MAX_BATCHED_EVENTS</a></td> |
| <td> |
| <code>500</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Maximum number of events that may be logged in a single FIDL call.</p> |
| </td> |
| </tr> |
| <tr id="MAX_BYTES_PER_EVENT"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=21">MAX_BYTES_PER_EVENT</a></td> |
| <td> |
| <code>102400</code> |
| </td> |
| <td><code>int64</code></td> |
| <td><p>The maximum size of a single Event is 100 KB.</p> |
| </td> |
| </tr> |
| <tr id="MAX_EXPERIMENT_IDS"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=37">MAX_EXPERIMENT_IDS</a></td> |
| <td> |
| <code>100</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Maximum number of experiment ids that can be provided to a single logger.</p> |
| </td> |
| </tr> |
| <tr id="MAX_HISTOGRAM_BUCKETS"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=25">MAX_HISTOGRAM_BUCKETS</a></td> |
| <td> |
| <code>500</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>This is intended as a reasonable maximum number of histogram buckets per |
| event.</p> |
| </td> |
| </tr> |
| <tr id="MAX_METRIC_DIMENSIONS"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=34">MAX_METRIC_DIMENSIONS</a></td> |
| <td> |
| <code>10</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Maximum number of event codes that can be associated with a single event.</p> |
| </td> |
| </tr> |
| <tr id="MAX_STRING_EVENT_SIZE"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=31">MAX_STRING_EVENT_SIZE</a></td> |
| <td> |
| <code>256</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>String events should not be longer than this.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ## **ALIASES** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="EventVector"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=97">EventVector</a></td> |
| <td> |
| <code>vector</code>[<code><a class='link' href='#MAX_METRIC_DIMENSIONS'>MAX_METRIC_DIMENSIONS</a></code>]</td> |
| <td><p>A vector of event codes. When used in one of the Log*() calls below, |
| there must be one event code for each dimension of the metric whose |
| metric_id is supplied, or else the call will return INVALID_ARGUMENTS.</p> |
| </td> |
| </tr> |
| <tr id="IntegerHistogram"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.metrics/metric_event_logger.fidl;l=103">IntegerHistogram</a></td> |
| <td> |
| <code>vector</code>[<code><a class='link' href='#MAX_HISTOGRAM_BUCKETS'>MAX_HISTOGRAM_BUCKETS</a></code>]</td> |
| <td><p>A histogram that assigns a count to each of several integer ranges. |
| To save space/memory/bandwidth, each bucket index should only be included |
| once, and empty buckets should not be included. The order of the vector |
| is immaterial.</p> |
| </td> |
| </tr> |
| </table> |