// This protocol buffer definition is directly pulled from Prometheus' remote write
// specification. This specification allows us to read any "prom-like" metric offloading
// systems, spiritually similar to how we support telegraf.
//
// Spec and details (there are nuances) can be found https://prometheus.io/docs/specs/remote_write_spec/
syntax = "proto3";
// TODO(jnewman): move these to the right directory when we fix the python package generation
// buf:lint:ignore PACKAGE_VERSION_SUFFIX
// buf:lint:ignore PACKAGE_DIRECTORY_MATCH
package io.nominal.scout.api.proto;
option java_multiple_files = true;
option java_package = "io.nominal.scout.api.proto";
message WriteRequest {
repeated TimeSeries timeseries = 1;
// Cortex uses this field to determine the source of the write request.
// We reserve it to avoid any compatibility issues.
reserved 2;
// Prometheus uses this field to send metadata, but this is
// omitted from v1 of the spec as it is experimental.
reserved 3;
}
message TimeSeries {
repeated Label labels = 1;
repeated Sample samples = 2;
}
message Label {
string name = 1;
string value = 2;
}
message Sample {
double value = 1;
int64 timestamp = 2;
}