...

Text file src/github.com/emissary-ingress/emissary/v3/api/envoy/service/metrics/v2/metrics_service.proto

Documentation: github.com/emissary-ingress/emissary/v3/api/envoy/service/metrics/v2

     1syntax = "proto3";
     2
     3package envoy.service.metrics.v2;
     4
     5import "envoy/api/v2/core/base.proto";
     6
     7import "io/prometheus/client/metrics.proto";
     8
     9import "udpa/annotations/status.proto";
    10import "validate/validate.proto";
    11
    12option java_package = "io.envoyproxy.envoy.service.metrics.v2";
    13option java_outer_classname = "MetricsServiceProto";
    14option java_multiple_files = true;
    15option go_package = "github.com/envoyproxy/go-control-plane/envoy/service/metrics/v2;metricsv2";
    16option java_generic_services = true;
    17option (udpa.annotations.file_status).package_version_status = FROZEN;
    18
    19// [#protodoc-title: Metrics service]
    20
    21// Service for streaming metrics to server that consumes the metrics data. It uses Prometheus metric
    22// data model as a standard to represent metrics information.
    23service MetricsService {
    24  // Envoy will connect and send StreamMetricsMessage messages forever. It does not expect any
    25  // response to be sent as nothing would be done in the case of failure.
    26  rpc StreamMetrics(stream StreamMetricsMessage) returns (StreamMetricsResponse) {
    27  }
    28}
    29
    30message StreamMetricsResponse {
    31}
    32
    33message StreamMetricsMessage {
    34  message Identifier {
    35    // The node sending metrics over the stream.
    36    api.v2.core.Node node = 1 [(validate.rules).message = {required: true}];
    37  }
    38
    39  // Identifier data effectively is a structured metadata. As a performance optimization this will
    40  // only be sent in the first message on the stream.
    41  Identifier identifier = 1;
    42
    43  // A list of metric entries
    44  repeated io.prometheus.client.MetricFamily envoy_metrics = 2;
    45}

View as plain text