blob: 725bb8c7ffc3cddd1180b31bf095f39f5f2c2ba8 [file] [log] [blame]
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;
}