Add GRPC operation metrics panels to Maestro dashboard#6019
Add GRPC operation metrics panels to Maestro dashboard#6019garrickdabbs wants to merge 1 commit into
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: garrickdabbs The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Pull request overview
This PR updates the Maestro Server Grafana dashboard to add operation-level visibility for Maestro gRPC metrics, introducing new panels intended to break down request volume, error rate, latency, and message throughput by operation (and sometimes source).
Changes:
- Added 4 new time series panels (IDs 10–13) to the Maestro Server dashboard for gRPC operation-level observability.
- Introduced PromQL queries that group by
operation(andsource) for request rate, error rate, p95 latency, and message rate.
| "uid": "${datasource}" | ||
| }, | ||
| "editorMode": "code", | ||
| "expr": "sum by (operation, source) (rate(grpc_server_called_total{namespace=~\"$namespace\", type=\"Publish\"}[5m]))", |
| "uid": "${datasource}" | ||
| }, | ||
| "editorMode": "code", | ||
| "expr": "sum by (operation) (rate(grpc_server_processed_total{namespace=~\"$namespace\", code!=\"OK\"}[5m])) / sum by (operation) (rate(grpc_server_processed_total{namespace=~\"$namespace\"}[5m]))", |
| "uid": "${datasource}" | ||
| }, | ||
| "editorMode": "code", | ||
| "expr": "histogram_quantile(0.95, sum by (operation, le) (rate(grpc_server_processed_duration_seconds_bucket{namespace=~\"$namespace\"}[5m])))", |
| "uid": "${datasource}" | ||
| }, | ||
| "editorMode": "code", | ||
| "expr": "sum by (operation, source) (rate(grpc_server_message_received_total{namespace=~\"$namespace\"}[5m]))", |
| "title": "GRPC Request Rate by Operation", | ||
| "type": "timeseries", | ||
| "description": "Rate of GRPC Publish requests by operation type (create, update, delete) and source consumer" |
| "title": "GRPC Error Rate by Operation", | ||
| "type": "timeseries", | ||
| "description": "Error rate (non-OK status codes) by operation type" |
| "title": "GRPC P95 Latency by Operation", | ||
| "type": "timeseries", | ||
| "description": "95th percentile request latency by operation type" |
| "title": "GRPC Message Rate by Operation", | ||
| "type": "timeseries", | ||
| "description": "Rate of messages received by operation type and source consumer" |
Adds 4 new Grafana panels to visualize Maestro GRPC server metrics with operation-level granularity using the new non-breaking metrics. Panels added: 1. GRPC Request Rate by Operation - req/sec by operation and source 2. GRPC Error Rate by Operation - error % by operation 3. GRPC P95 Latency by Operation - 95th percentile latency 4. GRPC Message Rate by Operation - msg/sec by operation and source Uses new non-breaking metrics with '_by_operation' suffix: - grpc_server_called_total_by_operation - grpc_server_processed_total_by_operation - grpc_server_processed_duration_seconds_by_operation - grpc_server_message_received_total_by_operation No impact on existing dashboards - these are NEW panels using NEW metrics. Requires: openshift-online/maestro PR Azure#555 Related: ARO-26754 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1635345 to
ab4c8dd
Compare
| "uid": "${datasource}" | ||
| }, | ||
| "editorMode": "code", | ||
| "expr": "sum by (operation, source) (rate(grpc_server_called_total_by_operation{namespace=~\"$namespace\", type=\"Publish\"}[5m]))", |
| "uid": "${datasource}" | ||
| }, | ||
| "editorMode": "code", | ||
| "expr": "sum by (operation) (rate(grpc_server_processed_total_by_operation{namespace=~\"$namespace\", code!=\"OK\"}[5m])) / sum by (operation) (rate(grpc_server_processed_total_by_operation{namespace=~\"$namespace\"}[5m]))", |
| "uid": "${datasource}" | ||
| }, | ||
| "editorMode": "code", | ||
| "expr": "histogram_quantile(0.95, sum by (operation, le) (rate(grpc_server_processed_duration_seconds_by_operation_bucket{namespace=~\"$namespace\"}[5m])))", |
| "uid": "${datasource}" | ||
| }, | ||
| "editorMode": "code", | ||
| "expr": "sum by (operation, source) (rate(grpc_server_message_received_total_by_operation{namespace=~\"$namespace\"}[5m]))", |
|
@garrickdabbs: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Add GRPC operation metrics panels to Maestro dashboard
Summary
Adds 4 new Grafana panels to the Maestro server dashboard to visualize GRPC server metrics with operation-level granularity. These panels use the new non-breaking
_by_operationmetrics and have zero impact on existing dashboards.Changes
Modified Files
observability/grafana-dashboards/maestro/maestro-server.json:
New Panels
1. GRPC Request Rate by Operation
sum by (operation, source) (rate(grpc_server_called_total_by_operation{namespace=~"$namespace", type="Publish"}[5m])){{operation}} ({{source}})2. GRPC Error Rate by Operation
sum by (operation) (rate(grpc_server_processed_total_by_operation{namespace=~"$namespace", code!="OK"}[5m])) / sum by (operation) (rate(grpc_server_processed_total_by_operation{namespace=~"$namespace"}[5m])){{operation}}3. GRPC P95 Latency by Operation
histogram_quantile(0.95, sum by (operation, le) (rate(grpc_server_processed_duration_seconds_by_operation_bucket{namespace=~"$namespace"}[5m]))){{operation}}4. GRPC Message Rate by Operation
sum by (operation, source) (rate(grpc_server_message_received_total_by_operation{namespace=~"$namespace"}[5m])){{operation}} ({{source}})Non-Breaking Metrics Used
These panels use the NEW metrics with
_by_operationsuffix:grpc_server_called_total_by_operationgrpc_server_processed_total_by_operationgrpc_server_processed_duration_seconds_by_operationgrpc_server_message_received_total_by_operationImportant: These are NEW metrics that coexist with the old metrics. Existing panels using
grpc_server_*(without_by_operation) continue working unchanged.Dependencies
Deployment Flexibility
Because this is a non-breaking change:
Visual Layout
The dashboard now has 7 rows:
Testing
Verification Steps
Expected Behavior
With Maestro metrics deployed:
Before Maestro metrics deployed:
Benefits
Example Insights
From GRPC Request Rate panel:
From GRPC Error Rate panel:
From GRPC P95 Latency panel:
From GRPC Message Rate panel:
Backwards Compatibility
✅ 100% Backwards Compatible
_by_operationmetrics onlyRelated
Checklist
_by_operationmetrics (non-breaking)Screenshots
Screenshots will be added after Maestro metrics are deployed and panels populate with data.