metrics.proto

Package : observability.enterprise.mesh.gloo.solo.io

Top

metrics.proto

Table of Contents

EdgeMetricsRequest

Request for metrics aggregated for one or more network edges over time.

Field Type Label Description
edgeSelectors []observability.enterprise.mesh.gloo.solo.io.EdgeSelector repeated Select the edges (i.e. (source, target) workload pairs) whose metrics should be retrieved. Leave empty to retrieve metrics for all edges.
time google.protobuf.Timestamp The time which the metrics represent. Defaults to the present time if not specified.
window google.protobuf.Duration The duration over which the metrics are computed, floored to the minute. I.e. metrics are returned for the the time window defined by [time - window, time]. Defaults to 5 minutes.
step google.protobuf.Duration The duration for each sample in the range, floored to the minute. I.e. metrics are returned for the the time window defined by [time - window, time]. Defaults to 2 minutes.

EdgeMetricsResponse

Metrics aggregated for a network edge over time.

Field Type Label Description
edgeMetrics []observability.enterprise.mesh.gloo.solo.io.EdgeMetricsResponse.EdgeMetrics repeated Metrics over time for a set of network edges.

EdgeMetricsResponse.EdgeMetrics

Metrics over time for a single network edge.

Field Type Label Description
sourceWorkloadRef core.skv2.solo.io.ClusterObjectRef Reference to the source workload.
targetWorkloadRef core.skv2.solo.io.ClusterObjectRef Reference to the target workload.
httpMetrics observability.enterprise.mesh.gloo.solo.io.HttpMetrics HTTP Metrics over time for a network edge with a single source and target.
tcpMetrics observability.enterprise.mesh.gloo.solo.io.TcpMetrics TCP Metrics over time for a network edge with a single source and target

EdgeSelector

Select the workloads whose metrics should be retrieved. Leave empty to retrieve metrics for all workloads.

Field Type Label Description
source observability.enterprise.mesh.gloo.solo.io.NodeSelector Specify the source workload. If omitted, retrieve edges targeting this workload and originating from any workload.
target observability.enterprise.mesh.gloo.solo.io.NodeSelector Specify the target workload. If omitted, retrieve edges originating from this workload and targeting any workload.

HttpMetrics

HTTP Metrics sampled over time.

Field Type Label Description
timestamps []google.protobuf.Timestamp repeated
requestCount []uint64 repeated The number of requests.
successCount []uint64 repeated The number of successful requests.
failureCount []uint64 repeated The number of failed requests.
requestLatencies observability.enterprise.mesh.gloo.solo.io.HttpMetrics.RequestLatencies Percentiles for request latencies, measured in milliseconds.
security observability.enterprise.mesh.gloo.solo.io.HttpMetrics.Security Describes the security policy, if any, applied to this network edge.

HttpMetrics.RequestLatencies

Percentiles for request latencies, measured in milliseconds.

Field Type Label Description
p99 []uint64 repeated 99th percentile request latency.
p90 []uint64 repeated 90th percentile request latency.
p50 []uint64 repeated 50th percentile request latency.

HttpMetrics.Security

Describes the security policy, if any, applied to this network edge.

Field Type Label Description
securityPolicy string Describes the security policy of the connection.
sourcePrincipal string The identity of the source workload, only populated if mTLS is enabled.”
destinationPrincipal string The identity of the destination, only populated if mTLS is enabled.

NodeMetricsRequest

Request for metrics aggregated for a network node over time.

Field Type Label Description
nodeSelectors []observability.enterprise.mesh.gloo.solo.io.NodeSelector repeated Select the workloads whose metrics should be retrieved. Leave empty to retrieve metrics for all workloads.
time google.protobuf.Timestamp The time which the metrics represent. Defaults to the present time if not specified.
window google.protobuf.Duration The duration over which the metrics are computed, floored to the minute. I.e. metrics are returned for the the time window defined by [time - window, time]. Defaults to 5 minutes.
step google.protobuf.Duration The duration for each sample in the range, floored to the minute. I.e. metrics are returned for the the time window defined by [time - window, time]. If omitted, defaults to the value of window, which represents a request for a single sample.

NodeMetricsResponse

Metrics aggregated for one or more network nodes over time.

Field Type Label Description
nodeMetrics []observability.enterprise.mesh.gloo.solo.io.NodeMetricsResponse.NodeMetrics repeated Metrics for each selected node.

NodeMetricsResponse.NodeMetrics

Metrics for single node.

Field Type Label Description
workloadRef core.skv2.solo.io.ClusterObjectRef Reference to the workload associated with the metrics.
outgoingMetrics observability.enterprise.mesh.gloo.solo.io.HttpMetrics HTTP Metrics over time for all requests originating from a single workload.
incomingMetrics observability.enterprise.mesh.gloo.solo.io.HttpMetrics HTTP Metrics over time for all requests targeting a single workload.
tcpMetrics observability.enterprise.mesh.gloo.solo.io.TcpMetrics
activeEjectionCounts []observability.enterprise.mesh.gloo.solo.io.NodeMetricsResponse.NodeMetrics.ActiveEjectionCountsEntry repeated Counts of active ejections for outgoing requests originating from this service. Sidecars must be annotated to record outlier detection in order to populate this data. The key of each k/v pair is a combination of the service/namespace/owner that the ejections are tied to. Due to system limitations, we cannot differentiate between workloads of the ejected service. For example, we could say that the reviews service has ejections, but we wouldn't know if it's Caused by reviews-v1, reviews-v2, or both. This is not included in the metrics struct because it is not temporal - active ejections either exist, or they aren't active anymore. Also this data is node-only.

NodeMetricsResponse.NodeMetrics.ActiveEjectionCountsEntry

Field Type Label Description
key string
value int32

NodeSelector

Select the workloads whose metrics should be retrieved. Leave empty to retrieve metrics for all workloads.

Field Type Label Description
workloadSelector common.mesh.gloo.solo.io.WorkloadSelector Select workloads by matchers.
workloadRef core.skv2.solo.io.ClusterObjectRef Select workloads by direct reference.

TcpMetrics

Field Type Label Description
timestamps []google.protobuf.Timestamp repeated
bytesSent []uint64 repeated
bytesReceived []uint64 repeated

MetricsSource

Method Name Request Type Response Type Description
GetNodeMetrics NodeMetricsRequest NodeMetricsResponse
GetEdgeMetrics EdgeMetricsRequest EdgeMetricsResponse