214 lines
4.4 KiB
Protocol Buffer
214 lines
4.4 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
// The OpenMetrics protobuf schema which defines the protobuf wire format.
|
|
// Ensure to interpret "required" as semantically required for a valid message.
|
|
// All string fields MUST be UTF-8 encoded strings.
|
|
package openmetrics;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
// The top-level container type that is encoded and sent over the wire.
|
|
message MetricSet {
|
|
// Each MetricFamily has one or more MetricPoints for a single Metric.
|
|
repeated MetricFamily metric_families = 1;
|
|
}
|
|
|
|
// One or more Metrics for a single MetricFamily, where each Metric
|
|
// has one or more MetricPoints.
|
|
message MetricFamily {
|
|
// Required.
|
|
string name = 1;
|
|
|
|
// Optional.
|
|
MetricType type = 2;
|
|
|
|
// Optional.
|
|
string unit = 3;
|
|
|
|
// Optional.
|
|
string help = 4;
|
|
|
|
// Optional.
|
|
repeated Metric metrics = 5;
|
|
}
|
|
|
|
// The type of a Metric.
|
|
enum MetricType {
|
|
// Unknown must use unknown MetricPoint values.
|
|
UNKNOWN = 0;
|
|
// Gauge must use gauge MetricPoint values.
|
|
GAUGE = 1;
|
|
// Counter must use counter MetricPoint values.
|
|
COUNTER = 2;
|
|
// State set must use state set MetricPoint values.
|
|
STATE_SET = 3;
|
|
// Info must use info MetricPoint values.
|
|
INFO = 4;
|
|
// Histogram must use histogram value MetricPoint values.
|
|
HISTOGRAM = 5;
|
|
// Gauge histogram must use histogram value MetricPoint values.
|
|
GAUGE_HISTOGRAM = 6;
|
|
// Summary quantiles must use summary value MetricPoint values.
|
|
SUMMARY = 7;
|
|
}
|
|
|
|
// A single metric with a unique set of labels within a metric family.
|
|
message Metric {
|
|
// Optional.
|
|
repeated Label labels = 1;
|
|
|
|
// Optional.
|
|
repeated MetricPoint metric_points = 2;
|
|
}
|
|
|
|
// A name-value pair. These are used in multiple places: identifying
|
|
// timeseries, value of INFO metrics, and exemplars in Histograms.
|
|
message Label {
|
|
// Required.
|
|
string name = 1;
|
|
|
|
// Required.
|
|
string value = 2;
|
|
}
|
|
|
|
// A MetricPoint in a Metric.
|
|
message MetricPoint {
|
|
// Required.
|
|
oneof value {
|
|
UnknownValue unknown_value = 1;
|
|
GaugeValue gauge_value = 2;
|
|
CounterValue counter_value = 3;
|
|
HistogramValue histogram_value = 4;
|
|
StateSetValue state_set_value = 5;
|
|
InfoValue info_value = 6;
|
|
SummaryValue summary_value = 7;
|
|
}
|
|
|
|
// Optional.
|
|
google.protobuf.Timestamp timestamp = 8;
|
|
}
|
|
|
|
// Value for UNKNOWN MetricPoint.
|
|
message UnknownValue {
|
|
// Required.
|
|
oneof value {
|
|
double double_value = 1;
|
|
int64 int_value = 2;
|
|
}
|
|
}
|
|
|
|
// Value for GAUGE MetricPoint.
|
|
message GaugeValue {
|
|
// Required.
|
|
oneof value {
|
|
double double_value = 1;
|
|
int64 int_value = 2;
|
|
}
|
|
}
|
|
|
|
// Value for COUNTER MetricPoint.
|
|
message CounterValue {
|
|
// Required.
|
|
oneof total {
|
|
double double_value = 1;
|
|
uint64 int_value = 2;
|
|
}
|
|
|
|
// The time values began being collected for this counter.
|
|
// Optional.
|
|
google.protobuf.Timestamp created = 3;
|
|
|
|
// Optional.
|
|
Exemplar exemplar = 4;
|
|
}
|
|
|
|
// Value for HISTOGRAM or GAUGE_HISTOGRAM MetricPoint.
|
|
message HistogramValue {
|
|
// Optional.
|
|
oneof sum {
|
|
double double_value = 1;
|
|
int64 int_value = 2;
|
|
}
|
|
|
|
// Optional.
|
|
uint64 count = 3;
|
|
|
|
// The time values began being collected for this histogram.
|
|
// Optional.
|
|
google.protobuf.Timestamp created = 4;
|
|
|
|
// Optional.
|
|
repeated Bucket buckets = 5;
|
|
|
|
// Bucket is the number of values for a bucket in the histogram
|
|
// with an optional exemplar.
|
|
message Bucket {
|
|
// Required.
|
|
uint64 count = 1;
|
|
|
|
// Optional.
|
|
double upper_bound = 2;
|
|
|
|
// Optional.
|
|
Exemplar exemplar = 3;
|
|
}
|
|
}
|
|
|
|
message Exemplar {
|
|
// Required.
|
|
double value = 1;
|
|
|
|
// Optional.
|
|
google.protobuf.Timestamp timestamp = 2;
|
|
|
|
// Labels are additional information about the exemplar value (e.g. trace id).
|
|
// Optional.
|
|
repeated Label label = 3;
|
|
}
|
|
|
|
// Value for STATE_SET MetricPoint.
|
|
message StateSetValue {
|
|
// Optional.
|
|
repeated State states = 1;
|
|
|
|
message State {
|
|
// Required.
|
|
bool enabled = 1;
|
|
|
|
// Required.
|
|
string name = 2;
|
|
}
|
|
}
|
|
|
|
// Value for INFO MetricPoint.
|
|
message InfoValue {
|
|
// Optional.
|
|
repeated Label info = 1;
|
|
}
|
|
|
|
// Value for SUMMARY MetricPoint.
|
|
message SummaryValue {
|
|
// Optional.
|
|
oneof sum {
|
|
double double_value = 1;
|
|
int64 int_value = 2;
|
|
}
|
|
|
|
// Optional.
|
|
uint64 count = 3;
|
|
|
|
// The time sum and count values began being collected for this summary.
|
|
// Optional.
|
|
google.protobuf.Timestamp created = 4;
|
|
|
|
// Optional.
|
|
repeated Quantile quantile = 5;
|
|
|
|
message Quantile {
|
|
// Required.
|
|
double quantile = 1;
|
|
|
|
// Required.
|
|
double value = 2;
|
|
}
|
|
}
|