Flow Metrics
Aperture Agents emit an OpenTelemetry stream for flow data, which provides a comprehensive view of individual requests or features within services. This stream contains high-cardinality attributes that represent key attributes of the requests and features, allowing for a detailed analysis of system performance and behavior. The stream can be stored and visualized in Aperture Cloud, or ingested into popular OLAP databases such as Apache Druid.
Dimension Columns
Common
| Name | Type | Example Values | Description | Flow Control Integrations |
|---|---|---|---|---|
| aperture.source | single | sdk, envoy | Aperture Flow source | SDKs, Envoy |
| aperture.decision_type | single | DECISION_TYPE_ACCEPTED, DECISION_TYPE_REJECTED | Decision type taken by policy | SDKs, Envoy |
| aperture.reject_reason | single | REJECT_REASON_NONE, REJECT_REASON_RATE_LIMITED, REJECT_REASON_NO_TOKENS, REJECT_REASON_NOT_SAMPLED | Reject reason of the decision taken by policy | SDKs, Envoy |
| aperture.rate_limiters | multi-value | "policy_name:s1, component_id:18, policy_hash:5kZjj" | Rate limiters matched to the traffic | SDKs, Envoy |
| aperture.dropping_rate_limiters | multi-value | "policy_name:s1, component_id:18, policy_hash:5kZjj" | Rate limiters dropping the traffic | SDKs, Envoy |
| aperture.load_schedulers | multi-value | "policy_name:s1, component_id:13, policy_hash:5kZjj" | Concurrency limiters matched to the traffic | SDKs, Envoy |
| aperture.dropping_load_schedulers | multi-value | "policy_name:s1, component_id:13, policy_hash:5kZjj" | Concurrency limiters dropping the traffic | SDKs, Envoy |
| aperture.samplers | multi-value | "policy_name:s1, component_id:18, policy_hash:5kZjj" | Samplers matched to the traffic | SDKs, Envoy |
| aperture.dropping_samplers | multi-value | "policy_name:s1, component_id:18, policy_hash:5kZjj" | Samplers dropping the traffic | SDKs, Envoy |
| aperture.workloads | multi-value | "policy_name:s1, component_id:13, workload_index:0, policy_hash:5kZjj" | Workloads matched to the traffic | SDKs, Envoy |
| aperture.dropping_workloads | multi-value | "policy_name:s1, component_id:13, workload_index:0, policy_hash:5kZjj" | Workloads dropping the traffic | SDKs, Envoy |
| aperture.flux_meters | multi-value | s1 | Flux Meters matched to the traffic | SDKs, Envoy |
| aperture.flow_label_keys | multi-value | http.host, http.method, http.request.header.content_length | Flow labels matched to the traffic | SDKs, Envoy |
| aperture.classifiers | multi-value | "policy_name:s1, classifier_index:0" | Classifiers matched to the traffic | SDKs, Envoy |
| aperture.classifier_errors | multi-value | "[ERROR_NONE, ERROR_EVAL_FAILED, ERROR_EMPTY_RESULTSET, ERROR_AMBIGUOUS_RESULTSET, ERROR_MULTI_EXPRESSION, ERROR_EXPRESSION_NOT_MAP], policy_name:s1, classifier_index:0" | Encountered classifier errors for specified policy | SDKs, Envoy |
| aperture.services | multi-value | s1.demoapp.svc.cluster.local, s2.demoapp.svc.cluster.local | Services to which metrics refer | SDKs, Envoy |
| aperture.control_point | single | type:TYPE_INGRESS, type:TYPE_EGRESS | Control point to which metrics refer | SDKs, Envoy |
| aperture.flow.status | single | OK, Error | Denotes OK or Error across all protocols | SDKs, Envoy |
| response_received | single | true, false | Designates whether a response was received | SDKs, Envoy |
HTTP
| Name | Type | Example Values | Description | Flow Control Integrations |
|---|---|---|---|---|
| http.status_code | single | 200, 429, 503 | HTTP status code of the response | Envoy |
| http.request_content_length | single | 0, 53 | Length of the HTTP request content in bytes | Envoy |
| http.response_content_length | single | 201, 77 | Length of the HTTP response content in bytes | Envoy |
| http.method | single | GET, POST | HTTP method of the response | Envoy |
| http.target | single | /request | Target endpoint of the response | Envoy |
| http.host | single | s1.demoapp.svc.cluster.local, s2.demoapp.svc.cluster.local | Host address of the response | Envoy |
| http.scheme | single | http | HTTP scheme of the response | Envoy |
| http.flavor | single | 1.1 | HTTP protocol version | Envoy |
| {user-defined-labels} | Configured through Classifier | Envoy |
SDK
| Name | Type | Example Values | Description | Flow Control Integrations |
|---|---|---|---|---|
| aperture.cache_lookup_status | single | HIT, MISS | Result of result cache lookup | SDKs |
| aperture.cache_operation_status | single | SUCCESS, ERROR | Result of result cache operation | SDKs |
| aperture.global_cache_lookup_statuses | multi-value | HIT, MISS | Results of global cache lookups | SDKs |
| aperture.global_cache_operation_statuses | multi-value | SUCCESS, ERROR | Results of global cache operations | SDKs |
| {user-defined-labels} | Explicitly passed through FlowStart call in SDKs | SDKs |
Metric Columns
| Name | Type | Unit | Description |
|---|---|---|---|
| workload_duration_ms_sum | float | ms | Sum of duration of the workload |
| workload_duration_ms_min | float | ms | Min of duration of the workload |
| workload_duration_ms_max | float | ms | Max of duration of the workload |
| workload_duration_ms_sumOfSquares | float | ms | Sum of squares of duration of the workload |
| workload_duration_ms_datasketch | quantilesDoubleSketch | ms | Datasktech of Duration of the workload |
| flow_duration_ms_sum | float | ms | Sum of duration of the flow |
| flow_duration_ms_min | float | ms | Min of duration of the flow |
| flow_duration_ms_max | float | ms | Max of duration of the flow |
| flow_duration_ms_sumOfSquares | float | ms | Sum of squares of duration of the flow |
| flow_duration_ms_datasketch | quantilesDoubleSketch | ms | Sum of Aperture's processing duration |
| aperture_processing_duration_ms_min | float | ms | Min of Aperture's processing duration |
| aperture_processing_duration_ms_max | float | ms | Max of Aperture's processing duration |
| aperture_processing_duration_ms_sumOfSquares | float | ms | Sum of squares of Aperture's processing duration |
| aperture_processing_duration_ms_datasketch | quantilesDoubleSketch | ms | Datasktech of Aperture's processing duration |
| http.request_content_length_sum | int | bytes | Sum of length of the HTTP request content |
| http.request_content_length_min | int | bytes | Min of length of the HTTP request content |
| http.request_content_length_max | int | bytes | Max of length of the HTTP request content |
| http.request_content_length_sumOfSquares | int | bytes | Sum of squares of length of the HTTP request content |
| http.response_content_length_sum | int | bytes | Sum of length of the HTTP response content |
| http.response_content_length_min | int | bytes | Min of length of the HTTP response content |
| http.response_content_length_max | int | bytes | Max of length of the HTTP response content |
| http.response_content_length_sumOfSquares | int | bytes | Sum of squares of length of the HTTP response content |