| syntax = "proto3"; |
| |
| option go_package = "github.com/opencord/voltha/protos/go/voltha"; |
| |
| package voltha; |
| |
| import "meta.proto"; |
| import "google/api/annotations.proto"; |
| |
| message ConfigEventType { |
| enum ConfigEventType { |
| add = 0; // A new config has been added |
| remove = 1; // A config has been removed |
| update = 2; // A config has been updated |
| } |
| } |
| |
| message ConfigEvent { |
| ConfigEventType.ConfigEventType type = 1; |
| |
| string hash = 2; // hash for this change, can be used for quick lookup |
| string data = 3; // the actual new data, in json format |
| } |
| |
| message KpiEventType { |
| enum KpiEventType { |
| slice = 0; // slice: a set of path/metric data for same time-stamp |
| ts = 1; // time-series: array of data for same metric |
| } |
| } |
| |
| /* |
| * Struct to convey a dictionary of metric metadata. |
| */ |
| message MetricMetaData { |
| string title = 1; // Metric group or individual metric name |
| double ts = 2; // UTC time-stamp of data (seconds since epoch) of |
| // when the metric or metric group was collected. |
| // If this is a 15-min historical group, it is the |
| // time of the collection and reporting, not the |
| // start or end of the 15-min group interval. |
| |
| string logical_device_id = 3; // The logical device ID of the VOLTHA |
| // (equivalent to the DPID that ONOS has |
| // for the VOLTHA device without the |
| // 'of:' prefix |
| string serial_no = 4; // The OLT, ONU, ... device serial number |
| string device_id = 5; // The OLT, ONU, ... physical device ID |
| |
| map<string, string> context = 6; // Name value pairs that provide additional |
| // context information on the metrics being |
| // reported. |
| } |
| |
| /* |
| * Struct to convey a dictionary of metric->value pairs. Typically used in |
| * pure shared-timestamp or shared-timestamp + shared object prefix situations. |
| */ |
| message MetricValuePairs { |
| |
| // Metric / value pairs. |
| map<string, float> metrics = 1; |
| |
| } |
| |
| /* |
| * Struct to group metadata for a metric (or group of metrics) with the key-value |
| * pairs of collected metrics |
| */ |
| message MetricInformation { |
| MetricMetaData metadata = 1; |
| map<string, float> metrics = 2; |
| } |
| |
| /* |
| * Legacy KPI Event structured. In mid-August, the KPI event format was updated |
| * to a more easily parsable format. See VOL-1140 |
| * for more information. |
| */ |
| message KpiEvent { |
| |
| KpiEventType.KpiEventType type = 1; |
| |
| // Fields used when for slice: |
| |
| float ts = 2; // UTC time-stamp of data in slice mode (seconds since epoc) |
| |
| map<string, MetricValuePairs> prefixes = 3; |
| |
| } |
| |
| message KpiEvent2 { |
| // Type of KPI Event |
| KpiEventType.KpiEventType type = 1; |
| |
| // Fields used when for slice: |
| double ts = 2; // UTC time-stamp of data in slice mode (seconds since epoch) |
| // of the time this entire KpiEvent was published to the kafka bus |
| |
| repeated MetricInformation slice_data = 3; |
| } |
| |
| /* |
| * Identify to the area of the system impacted by the alarm |
| */ |
| message AlarmEventType { |
| enum AlarmEventType { |
| COMMUNICATION = 0; |
| ENVIRONMENT = 1; |
| EQUIPMENT = 2; |
| SERVICE = 3; |
| PROCESSING = 4; |
| SECURITY = 5; |
| } |
| } |
| |
| /* |
| * Identify to the functional category originating the alarm |
| */ |
| message AlarmEventCategory { |
| enum AlarmEventCategory { |
| PON = 0; |
| OLT = 1; |
| ONT = 2; |
| ONU = 3; |
| NNI = 4; |
| } |
| } |
| |
| /* |
| * Active state of the alarm |
| */ |
| message AlarmEventState { |
| enum AlarmEventState { |
| RAISED = 0; |
| CLEARED = 1; |
| } |
| } |
| |
| /* |
| * Identify the overall impact of the alarm on the system |
| */ |
| message AlarmEventSeverity { |
| enum AlarmEventSeverity { |
| INDETERMINATE = 0; |
| WARNING = 1; |
| MINOR = 2; |
| MAJOR = 3; |
| CRITICAL = 4; |
| } |
| } |
| |
| /* |
| * |
| */ |
| message AlarmEvent { |
| // Unique ID for this alarm. e.g. voltha.some_olt.1234 |
| string id = 1; |
| |
| // Refers to the area of the system impacted by the alarm |
| AlarmEventType.AlarmEventType type = 2; |
| |
| // Refers to functional category of the alarm |
| AlarmEventCategory.AlarmEventCategory category = 3; |
| |
| // Current active state of the alarm |
| AlarmEventState.AlarmEventState state = 4; |
| |
| // Overall impact of the alarm on the system |
| AlarmEventSeverity.AlarmEventSeverity severity = 5; |
| |
| // Timestamp at which the alarm was first raised |
| float raised_ts = 6; |
| |
| // Timestamp at which the alarm was reported |
| float reported_ts = 7; |
| |
| // Timestamp at which the alarm has changed since it was raised |
| float changed_ts = 8; |
| |
| // Identifier of the originating resource of the alarm |
| string resource_id = 9; |
| |
| // Textual explanation of the alarm |
| string description = 10; |
| |
| // Key/Value storage for extra information that may give context to the alarm |
| map<string, string> context = 11; |
| |
| // logical device id |
| string logical_device_id = 12; |
| |
| // alarm_type name indicates clearly the name of the alarm |
| string alarm_type_name = 13; |
| } |