metrics.proto

Package : rpc.solo.io

Top

metrics.proto

Table of Contents

CiliumMetrics

Field Type Label Description
timestamps []google.protobuf.Timestamp repeated
forwardedSent []uint64 repeated
forwardedReceived []uint64 repeated
policyDrops []uint64 repeated

EdgeMetricsRequest

Field Type Label Description
edgeSelectors []rpc.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

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

EdgeMetricsResponse.EdgeMetrics

Field Type Label Description
sourceWorkloadId string Identifier for the source workload.
targetWorkloadId string Identifier for the target workload.
httpMetrics rpc.solo.io.HttpMetrics HTTP Metrics over time for a network edge with a single source and target.
tcpMetrics rpc.solo.io.TcpMetrics TCP Metrics over time for a network edge with a single source and target
ciliumMetrics rpc.solo.io.CiliumMetrics Cilium Metrics over time for a network edge with a single source and target

EdgeSelector

Field Type Label Description
sourceWorkloadId string Specify the source workload. If omitted, retrieve edges targeting this workload and originating from any workload.
targetWorkloadId string Specify the target workload. If omitted, retrieve edges originating from this workload and targeting any workload.

HttpMetrics

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 rpc.solo.io.HttpMetrics.RequestLatencies Percentiles for request latencies, measured in milliseconds.
security rpc.solo.io.HttpMetrics.Security Describes the security policy, if any, applied to this network edge.

HttpMetrics.RequestLatencies

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

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

Field Type Label Description
workloadIds []string repeated A list of 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

Field Type Label Description
nodeMetrics []rpc.solo.io.NodeMetricsResponse.NodeMetrics repeated Metrics for each selected node.

NodeMetricsResponse.NodeMetrics

Field Type Label Description
workloadId string Identifier for the workload associated with the metrics.
outgoingMetrics rpc.solo.io.HttpMetrics HTTP Metrics over time for all requests originating from a single workload.
incomingMetrics rpc.solo.io.HttpMetrics HTTP Metrics over time for all requests targeting a single workload.
tcpMetrics rpc.solo.io.TcpMetrics
ciliumMetrics rpc.solo.io.CiliumMetrics
activeEjectionCounts []rpc.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

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