...

Text file src/github.com/datawire/ambassador/v2/api/envoy/service/metrics/v3/metrics_service.proto

Documentation: github.com/datawire/ambassador/v2/api/envoy/service/metrics/v3

     1syntax = "proto3";
     2
     3package envoy.service.metrics.v3;
     4
     5import "envoy/config/core/v3/base.proto";
     6
     7import "metrics.proto";
     8
     9import "udpa/annotations/status.proto";
    10import "udpa/annotations/versioning.proto";
    11import "validate/validate.proto";
    12
    13option java_package = "io.envoyproxy.envoy.service.metrics.v3";
    14option java_outer_classname = "MetricsServiceProto";
    15option java_multiple_files = true;
    16option java_generic_services = true;
    17option (udpa.annotations.file_status).package_version_status = ACTIVE;
    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  option (udpa.annotations.versioning).previous_message_type =
    32      "envoy.service.metrics.v2.StreamMetricsResponse";
    33}
    34
    35message StreamMetricsMessage {
    36  option (udpa.annotations.versioning).previous_message_type =
    37      "envoy.service.metrics.v2.StreamMetricsMessage";
    38
    39  message Identifier {
    40    option (udpa.annotations.versioning).previous_message_type =
    41        "envoy.service.metrics.v2.StreamMetricsMessage.Identifier";
    42
    43    // The node sending metrics over the stream.
    44    config.core.v3.Node node = 1 [(validate.rules).message = {required: true}];
    45  }
    46
    47  // Identifier data effectively is a structured metadata. As a performance optimization this will
    48  // only be sent in the first message on the stream.
    49  Identifier identifier = 1;
    50
    51  // A list of metric entries
    52  repeated io.prometheus.client.MetricFamily envoy_metrics = 2;
    53}

View as plain text