photoncloud-monorepo/metricstor/crates/metricstor-api/proto/remote_write.proto
centra 5c6eb04a46 T036: Add VM cluster deployment configs for nixos-anywhere
- netboot-base.nix with SSH key auth
- Launch scripts for node01/02/03
- Node configuration.nix and disko.nix
- Nix modules for first-boot automation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 09:59:19 +09:00

62 lines
2 KiB
Protocol Buffer

// Prometheus Remote Write Protocol v1
// Reference: https://prometheus.io/docs/concepts/remote_write_spec/
//
// This proto definition is based on the Prometheus remote write specification
// for push-based metric ingestion. It's compatible with Prometheus, VictoriaMetrics,
// and other systems that implement the remote write protocol.
syntax = "proto3";
package prometheus;
// WriteRequest is the top-level message for remote write operations.
// Clients send a WriteRequest containing multiple time series to the server.
message WriteRequest {
// Time series data to be written
repeated TimeSeries timeseries = 1;
// Metadata about the time series (optional, not used in v1)
// Reserved for future use with metadata support
// repeated MetricMetadata metadata = 3;
}
// TimeSeries represents a single time series with its labels and samples.
// A time series is uniquely identified by its label set.
message TimeSeries {
// Set of labels that uniquely identify this time series
// Must include at least one label, typically __name__ for the metric name
repeated Label labels = 1;
// Samples (data points) for this time series
// Samples must be ordered by timestamp (ascending)
repeated Sample samples = 2;
// Exemplars are optional (used for tracing correlation)
// Not implemented in initial version
// repeated Exemplar exemplars = 3;
}
// Label is a key-value pair that identifies a time series dimension.
// Examples: {__name__="http_requests_total", method="GET", status="200"}
message Label {
// Label name (e.g., "__name__", "job", "instance")
string name = 1;
// Label value
string value = 2;
}
// Sample is a single data point in a time series.
message Sample {
// Metric value (float64)
double value = 1;
// Timestamp in milliseconds since Unix epoch
int64 timestamp = 2;
}
// WriteResponse is returned after a successful write operation.
message WriteResponse {
// Empty for successful writes
// Error information is conveyed via gRPC status codes
}