| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto3"; |
| |
| package cobalt; |
| |
| import "observation2.proto"; |
| |
| // An Event is the unit of data logged in Cobalt. |
| // |
| // Events are associated with a specific Metric. There is a different Event |
| // type for each Metric type. Events are also tagged with a day index indicating |
| // the day on which the event occurred. |
| message Event { |
| // An Event has one of the following types. These types correspond to |
| // the various Metric types defined in config/metric_definitions.proto. |
| oneof type { |
| OccurrenceEvent occurrence_event = 1; |
| CountEvent count_event = 2; |
| ElapsedTimeEvent elapsed_time_event = 3; |
| FrameRateEvent frame_rate_event = 4; |
| MemoryUsageEvent memory_usage_event = 5; |
| IntHistogramEvent int_histogram_event = 6; |
| StringUsedEvent string_used_event = 7; |
| CustomEvent custom_event = 999; |
| } |
| |
| // The three-part unique numerical identifier of the Metric that this |
| // Event is associated with. |
| uint32 customer_id = 1000; |
| uint32 project_id = 1001; |
| uint32 metric_id = 1002; |
| |
| // The index of the day on which this Event occurred. |
| uint32 day_index = 1003; |
| } |
| |
| // Records that an event has occurred. |
| message OccurrenceEvent { |
| // The event code for the event that occurred. |
| uint32 event_code = 1; |
| } |
| |
| // Records that an event occurred a number of times. |
| message CountEvent { |
| // The event codes for the event that occurred. There must be one event code |
| // given for each dimension specified in the metric definition. |
| repeated uint32 event_code = 1; |
| // The associated system component |
| string component = 2; |
| // Time over which the count was taken, in microseconds. |
| int64 period_duration_micros = 3; |
| // The number of times the event occurred. |
| int32 count = 4; |
| } |
| |
| // Records that an event occurred a number of times. |
| message ElapsedTimeEvent { |
| // The event codes for the event that occurred. There must be one event code |
| // given for each dimension specified in the metric definition. |
| repeated uint32 event_code = 1; |
| // The associated system component |
| string component = 2; |
| // The elapsed time in microseconds. |
| int64 elapsed_micros = 3; |
| } |
| |
| // Records a frame-rate. |
| message FrameRateEvent { |
| // The event codes for the event that occurred. There must be one event code |
| // given for each dimension specified in the metric definition. |
| repeated uint32 event_code = 1; |
| // The associated system component |
| string component = 2; |
| // round(frames-per-second * 1000) |
| int64 frames_per_1000_seconds = 3; |
| } |
| |
| // Records a memory-usage. |
| message MemoryUsageEvent { |
| // The event codes for the event that occurred. There must be one event code |
| // given for each dimension specified in the metric definition. |
| repeated uint32 event_code = 1; |
| // The associated system component |
| string component = 2; |
| // Memory usage in bytes. |
| int64 bytes = 3; |
| } |
| |
| // Records a histogram over a set of integer buckets. The semantics of the |
| // Metric must be specified in comments near the Metric definition. The |
| // numerical values of the buckets is specified in the |int_buckets| |
| // field of the MetricDefinition. |
| message IntHistogramEvent { |
| // The event codes for the event that occurred. There must be one event code |
| // given for each dimension specified in the metric definition. |
| repeated uint32 event_code = 1; |
| // The associated system component |
| string component = 2; |
| |
| // The set of bucket indices and their corresponding counts. |
| repeated HistogramBucket buckets = 3; |
| } |
| |
| // Records that a given string was used in a specific context. The semantics |
| // of the Metric must be specified in comments near the MetricDefintion. |
| // |
| // See comments in metric_definion.proto for Metric type STRING_USED. |
| message StringUsedEvent { |
| string str = 1; |
| } |
| |
| // Allows users of Cobalt to define custom Metrics with custom semantics. Each |
| // Custom event is a collection of CustomEventValues, each of which has a |
| // dimension name and a value associated with the event. |
| message CustomEvent { |
| // The keys are the names of the metric dimensions to which each ValuePart |
| // is associated. |
| map<string, CustomDimensionValue> values = 1; |
| } |