From cc4104b5650ee2aa78ce1e39692d39769d94de9d Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Tue, 14 Jul 2026 11:30:00 +0100 Subject: [PATCH] fix(telemetry): conditional filter-dimension legends + 30m span-nulls Panel legends only showed the node (service_instance_id); the perf-iac filter dimensions (xrpl_branch, xrpl_node_role) never appeared, so baseline-vs-test series were indistinguishable. Each node-referencing target now injects its curated name via label_replace(...,"series",...) and uses the Prometheus "__auto" legend, which shows only labels that vary across the displayed series. A renameByRegex chain reshapes the auto output into "Name [node, role]-[branch, work_item]", collapsing empty groups so a dimension appears only when the filter widens it. Aggregating queries gain xrpl_branch/xrpl_node_role in their by() so those labels survive; multi- dimension legends keep their rich label set and append branch/role. Quantile panels surfaced the quantile via the panel title (q$quantile), since {{quantile}} is a dashboard variable, not a series label. Timeseries panels now connect only null gaps shorter than 30m (spanNulls=1800000): brief scrape gaps bridge, genuine outages stay broken. Non-node panels (heatmaps, rows, tables, state timelines, category/bucket series) are left unchanged. Applied to all 14 dashboards. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../grafana/dashboards/consensus-health.json | 1217 ++++- .../grafana/dashboards/fee-market.json | 654 ++- .../grafana/dashboards/job-queue.json | 730 ++- .../grafana/dashboards/ledger-data-sync.json | 1399 +++++- .../grafana/dashboards/ledger-operations.json | 611 ++- .../grafana/dashboards/network-traffic.json | 932 +++- .../grafana/dashboards/node-health.json | 3981 ++++++++++++++++- .../dashboards/overlay-traffic-detail.json | 808 +++- .../grafana/dashboards/peer-network.json | 528 ++- .../grafana/dashboards/peer-quality.json | 518 ++- .../grafana/dashboards/rpc-pathfinding.json | 1141 ++++- .../grafana/dashboards/rpc-performance.json | 1428 +++++- .../dashboards/transaction-overview.json | 1254 +++++- .../grafana/dashboards/validator-health.json | 1467 +++++- 14 files changed, 15630 insertions(+), 1038 deletions(-) diff --git a/docker/telemetry/grafana/dashboards/consensus-health.json b/docker/telemetry/grafana/dashboards/consensus-health.json index fc733490dd..22676a0374 100644 --- a/docker/telemetry/grafana/dashboards/consensus-health.json +++ b/docker/telemetry/grafana/dashboards/consensus-health.json @@ -30,8 +30,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.validation.send\"}[$__rate_interval]))", - "legendFormat": "Validations / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.validation.send\"}[$__rate_interval])), \"series\", \"Validations / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -40,7 +40,86 @@ }, "overrides": [] }, - "id": 1 + "id": 1, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Consensus Mode Over Time", @@ -64,8 +143,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (consensus_mode, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.ledger_close\"}[$__rate_interval]))", - "legendFormat": "{{consensus_mode}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (consensus_mode, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.ledger_close\"}[$__rate_interval])), \"series\", \"$1\", \"consensus_mode\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -73,7 +152,7 @@ "unit": "ops", "custom": { "axisLabel": "Events / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -81,7 +160,86 @@ }, "overrides": [] }, - "id": 2 + "id": 2, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|consensus_mode)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Consensus Proposals Sent Rate", @@ -105,8 +263,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.proposal.send\"}[$__rate_interval]))", - "legendFormat": "Proposals / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.proposal.send\"}[$__rate_interval])), \"series\", \"Proposals / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -114,7 +272,7 @@ "unit": "ops", "custom": { "axisLabel": "Proposals / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -122,7 +280,86 @@ }, "overrides": [] }, - "id": 3 + "id": 3, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Accept vs Close Rate", @@ -146,16 +383,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.accept\"}[$__rate_interval]))", - "legendFormat": "Accepts / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.accept\"}[$__rate_interval])), \"series\", \"Accepts / Sec\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.ledger_close\"}[$__rate_interval]))", - "legendFormat": "Closes / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.ledger_close\"}[$__rate_interval])), \"series\", \"Closes / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -163,7 +400,7 @@ "unit": "ops", "custom": { "axisLabel": "Events / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -171,7 +408,86 @@ }, "overrides": [] }, - "id": 4 + "id": 4, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Validation vs Close Rate", @@ -195,16 +511,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.validation.send\"}[$__rate_interval]))", - "legendFormat": "Validations / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.validation.send\"}[$__rate_interval])), \"series\", \"Validations / Sec\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.ledger_close\"}[$__rate_interval]))", - "legendFormat": "Closes / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.ledger_close\"}[$__rate_interval])), \"series\", \"Closes / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -212,7 +528,7 @@ "unit": "ops", "custom": { "axisLabel": "Events / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -220,7 +536,86 @@ }, "overrides": [] }, - "id": 5 + "id": 5, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Time to Reach Consensus (p50/p95)", @@ -265,7 +660,7 @@ "unit": "ms", "custom": { "axisLabel": "Time to Consensus (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -308,7 +703,7 @@ "unit": "ms", "custom": { "axisLabel": "Time to Consensus (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -357,7 +752,7 @@ "unit": "short", "custom": { "axisLabel": "Ledgers in Window", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -401,7 +796,7 @@ "unit": "ms", "custom": { "axisLabel": "Round Time (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -433,8 +828,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.update_positions\"}[5m])))", - "legendFormat": "P95 Update [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.update_positions\"}[5m]))), \"series\", \"P95 Update\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -442,7 +837,7 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -450,7 +845,86 @@ }, "overrides": [] }, - "id": 10 + "id": 10, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Close Duration", @@ -474,8 +948,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.ledger_close\"}[5m])))", - "legendFormat": "P95 Close Duration [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.ledger_close\"}[5m]))), \"series\", \"P95 Close Duration\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -483,7 +957,7 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -491,7 +965,86 @@ }, "overrides": [] }, - "id": 11 + "id": 11, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Apply Duration (doAccept)", @@ -509,8 +1062,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.accept.apply\"}[5m])))", - "legendFormat": "P95 Apply Duration [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", consensus_mode=~\"$consensus_mode\", span_name=\"consensus.accept.apply\"}[5m]))), \"series\", \"P95 Apply Duration\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -518,7 +1071,7 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -526,7 +1079,86 @@ }, "overrides": [] }, - "id": 12 + "id": 12, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Consensus Accept Duration Heatmap", @@ -582,8 +1214,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (close_time_correct, service_instance_id) (rate(span_calls_total{span_name=\"consensus.accept.apply\", consensus_mode=~\"$consensus_mode\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "{{close_time_correct}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (close_time_correct, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{span_name=\"consensus.accept.apply\", consensus_mode=~\"$consensus_mode\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"$1\", \"close_time_correct\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -591,7 +1223,7 @@ "unit": "ops", "custom": { "axisLabel": "Rounds / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -604,15 +1236,78 @@ { "id": "renameByRegex", "options": { - "regex": ".*true.*", - "renamePattern": "Agreed" + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|close_time_correct)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" } }, { "id": "renameByRegex", "options": { - "regex": ".*false.*", - "renamePattern": "Disagreed" + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" } } ] @@ -634,7 +1329,8 @@ "lineInterpolation": "stepAfter", "pointSize": 5, "showPoints": "auto", - "axisLabel": "Count / Milliseconds" + "axisLabel": "Count / Milliseconds", + "spanNulls": 1800000 }, "unit": "short" }, @@ -853,8 +1549,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (consensus_state) (increase(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.accept\", consensus_state!=\"\"}[$__rate_interval]))", - "legendFormat": "{{consensus_state}}" + "expr": "label_replace(sum by (consensus_state, xrpl_branch, xrpl_node_role) (increase(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.accept\", consensus_state!=\"\"}[$__rate_interval])), \"series\", \"$1\", \"consensus_state\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -868,29 +1564,78 @@ { "id": "renameByRegex", "options": { - "regex": "yes", - "renamePattern": "Agreed" + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|consensus_state)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" } }, { "id": "renameByRegex", "options": { - "regex": "moved_on", - "renamePattern": "Moved On (partial)" + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" } }, { "id": "renameByRegex", "options": { - "regex": "expired", - "renamePattern": "Expired (timeout)" + "regex": "/,\\s*\\]/g", + "renamePattern": "]" } }, { "id": "renameByRegex", "options": { - "regex": "^no$", - "renamePattern": "No Consensus" + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" } } ] @@ -917,16 +1662,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.accept\", consensus_state=\"moved_on\"}[$__rate_interval]))", - "legendFormat": "moved_on [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.accept\", consensus_state=\"moved_on\"}[$__rate_interval])), \"series\", \"moved_on\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.accept\", consensus_state=\"expired\"}[$__rate_interval]))", - "legendFormat": "expired [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.accept\", consensus_state=\"expired\"}[$__rate_interval])), \"series\", \"expired\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -934,7 +1679,7 @@ "unit": "ops", "custom": { "axisLabel": "Failures / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -942,7 +1687,86 @@ }, "overrides": [] }, - "id": 19 + "id": 19, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Consensus Stall Rate", @@ -966,16 +1790,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.check\", consensus_stalled=\"true\"}[$__rate_interval]))", - "legendFormat": "Stalled [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.check\", consensus_stalled=\"true\"}[$__rate_interval])), \"series\", \"Stalled\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.check\", consensus_stalled=\"false\"}[$__rate_interval]))", - "legendFormat": "Not Stalled [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.check\", consensus_stalled=\"false\"}[$__rate_interval])), \"series\", \"Not Stalled\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -983,7 +1807,7 @@ "unit": "ops", "custom": { "axisLabel": "Checks / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -991,7 +1815,86 @@ }, "overrides": [] }, - "id": 20 + "id": 20, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Consensus Mode-Change Rate by Target Mode", @@ -1015,8 +1918,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (mode_new, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.mode_change\"}[$__rate_interval]))", - "legendFormat": "{{mode_new}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (mode_new, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.mode_change\"}[$__rate_interval])), \"series\", \"$1\", \"mode_new\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1024,7 +1927,7 @@ "unit": "ops", "custom": { "axisLabel": "Mode Changes / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -1032,7 +1935,86 @@ }, "overrides": [] }, - "id": 21 + "id": 21, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|mode_new)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger History Mismatch Rate by Reason", @@ -1056,8 +2038,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (reason, service_instance_id) (rate(ledger_history_mismatch_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "{{reason}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (reason, service_instance_id, xrpl_branch, xrpl_node_role) (rate(ledger_history_mismatch_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"$1\", \"reason\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1065,7 +2047,7 @@ "unit": "ops", "custom": { "axisLabel": "Mismatches / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -1073,7 +2055,86 @@ }, "overrides": [] }, - "id": 22 + "id": 22, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|reason)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, @@ -1229,7 +2290,7 @@ { "name": "node", "label": "Node", - "description": "Filter by rippled node (service.instance.id — e.g. Node-1)", + "description": "Filter by rippled node (service.instance.id \u2014 e.g. Node-1)", "type": "query", "query": "label_values(target_info, service_instance_id)", "datasource": { diff --git a/docker/telemetry/grafana/dashboards/fee-market.json b/docker/telemetry/grafana/dashboards/fee-market.json index 22b278d74e..ef39596153 100644 --- a/docker/telemetry/grafana/dashboards/fee-market.json +++ b/docker/telemetry/grafana/dashboards/fee-market.json @@ -31,16 +31,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_count\"}", - "legendFormat": "Queue Depth [{{service_instance_id}}]" + "expr": "label_replace(txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_count\"}, \"series\", \"Queue Depth\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_max_size\"}", - "legendFormat": "Max Capacity [{{service_instance_id}}]" + "expr": "label_replace(txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_max_size\"}, \"series\", \"Max Capacity\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -50,14 +50,94 @@ "axisLabel": "Transactions", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transactions Per Ledger", @@ -81,16 +161,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_in_ledger\"}", - "legendFormat": "In Ledger [{{service_instance_id}}]" + "expr": "label_replace(txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_in_ledger\"}, \"series\", \"In Ledger\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_per_ledger\"}", - "legendFormat": "Expected Per Ledger [{{service_instance_id}}]" + "expr": "label_replace(txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_per_ledger\"}, \"series\", \"Expected Per Ledger\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -100,14 +180,94 @@ "axisLabel": "Transactions", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Fee Escalation Levels", @@ -131,32 +291,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_reference_fee_level\"}", - "legendFormat": "Reference Fee Level [{{service_instance_id}}]" + "expr": "label_replace(txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_reference_fee_level\"}, \"series\", \"Reference Fee Level\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_min_processing_fee_level\"}", - "legendFormat": "Min Processing Fee Level [{{service_instance_id}}]" + "expr": "label_replace(txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_min_processing_fee_level\"}, \"series\", \"Min Processing Fee Level\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_med_fee_level\"}", - "legendFormat": "Median Fee Level [{{service_instance_id}}]" + "expr": "label_replace(txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_med_fee_level\"}, \"series\", \"Median Fee Level\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_open_ledger_fee_level\"}", - "legendFormat": "Open Ledger Fee Level [{{service_instance_id}}]" + "expr": "label_replace(txq_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"txq_open_ledger_fee_level\"}, \"series\", \"Open Ledger Fee Level\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -170,14 +330,94 @@ "scaleDistribution": { "type": "log", "log": 2 - } + }, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Load Factor Breakdown", @@ -201,32 +441,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor\"}", - "legendFormat": "Combined Load Factor [{{service_instance_id}}]" + "expr": "label_replace(load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor\"}, \"series\", \"Combined Load Factor\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_server\"}", - "legendFormat": "Server [{{service_instance_id}}]" + "expr": "label_replace(load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_server\"}, \"series\", \"Server\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_fee_escalation\"}", - "legendFormat": "Fee Escalation [{{service_instance_id}}]" + "expr": "label_replace(load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_fee_escalation\"}, \"series\", \"Fee Escalation\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_fee_queue\"}", - "legendFormat": "Fee Queue [{{service_instance_id}}]" + "expr": "label_replace(load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_fee_queue\"}, \"series\", \"Fee Queue\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -236,7 +476,8 @@ "axisLabel": "Multiplier", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 5 + "fillOpacity": 5, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" @@ -259,7 +500,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Load Factor Components", @@ -283,24 +603,24 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_local\"}", - "legendFormat": "Local [{{service_instance_id}}]" + "expr": "label_replace(load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_local\"}, \"series\", \"Local\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_net\"}", - "legendFormat": "Network [{{service_instance_id}}]" + "expr": "label_replace(load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_net\"}, \"series\", \"Network\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_cluster\"}", - "legendFormat": "Cluster [{{service_instance_id}}]" + "expr": "label_replace(load_factor_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"load_factor_cluster\"}, \"series\", \"Cluster\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -310,14 +630,94 @@ "axisLabel": "Multiplier", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 5 + "fillOpacity": 5, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Queue Abandonment Rate (Expired)", @@ -341,8 +741,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(txq_expired_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "Expired / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(txq_expired_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"Expired / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -350,14 +750,93 @@ "unit": "ops", "custom": { "axisLabel": "Expired / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Queue Admission Rejections (Dropped)", @@ -381,8 +860,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (reason, service_instance_id) (rate(txq_dropped_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "{{reason}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (reason, service_instance_id, xrpl_branch, xrpl_node_role) (rate(txq_dropped_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"$1\", \"reason\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -390,14 +869,93 @@ "unit": "ops", "custom": { "axisLabel": "Dropped / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|reason)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/job-queue.json b/docker/telemetry/grafana/dashboards/job-queue.json index 0e6cdccac4..b58dfe8b59 100644 --- a/docker/telemetry/grafana/dashboards/job-queue.json +++ b/docker/telemetry/grafana/dashboards/job-queue.json @@ -35,21 +35,21 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.99, sum by (le) (rate(job_queued_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m])))", - "legendFormat": "p99 Wait" + "expr": "label_replace(histogram_quantile(0.99, sum by (le, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m]))), \"series\", \"p99 Wait\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.99, sum by (le) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m])))", - "legendFormat": "p99 Exec" + "expr": "label_replace(histogram_quantile(0.99, sum by (le, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m]))), \"series\", \"p99 Exec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { "defaults": { - "unit": "µs", + "unit": "\u00b5s", "min": 0, "thresholds": { "mode": "absolute", @@ -71,7 +71,86 @@ }, "overrides": [] }, - "id": 1 + "id": 1, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Job Throughput Rate (Per Second)", @@ -95,24 +174,24 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(job_queued_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval]))", - "legendFormat": "Queued/s [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval])), \"series\", \"Queued/s\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(job_started_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval]))", - "legendFormat": "Started/s [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_started_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval])), \"series\", \"Started/s\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(job_finished_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval]))", - "legendFormat": "Finished/s [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_finished_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval])), \"series\", \"Finished/s\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -123,7 +202,7 @@ "lineWidth": 2, "fillOpacity": 10, "axisLabel": "Operations / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -134,7 +213,86 @@ }, "overrides": [] }, - "id": 2 + "id": 2, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Per-Job-Type Queued Rate", @@ -163,8 +321,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(10, rate(job_queued_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval]))", - "legendFormat": "{{job_type}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, rate(job_queued_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval])), \"series\", \"$1\", \"job_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -175,7 +333,7 @@ "lineWidth": 1, "fillOpacity": 5, "axisLabel": "Operations / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -186,7 +344,86 @@ }, "overrides": [] }, - "id": 3 + "id": 3, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|job_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Per-Job-Type Finish Rate", @@ -215,8 +452,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(10, rate(job_finished_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval]))", - "legendFormat": "{{job_type}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, rate(job_finished_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[$__rate_interval])), \"series\", \"$1\", \"job_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -227,7 +464,7 @@ "lineWidth": 1, "fillOpacity": 5, "axisLabel": "Operations / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -238,7 +475,86 @@ }, "overrides": [] }, - "id": 4 + "id": 4, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|job_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Job Queue Wait Time", @@ -262,27 +578,27 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.75, sum by (le, service_instance_id) (rate(job_queued_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m])))", - "legendFormat": "p75 Wait [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.75, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m]))), \"series\", \"p75 Wait\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.99, sum by (le, service_instance_id) (rate(job_queued_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m])))", - "legendFormat": "p99 Wait [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.99, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m]))), \"series\", \"p99 Wait\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { "defaults": { - "unit": "µs", + "unit": "\u00b5s", "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 5, - "axisLabel": "Duration (μs)", - "spanNulls": true, + "axisLabel": "Duration (\u03bcs)", + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -293,7 +609,86 @@ }, "overrides": [] }, - "id": 5 + "id": 5, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Job Execution Time", @@ -317,27 +712,27 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.75, sum by (le, service_instance_id) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m])))", - "legendFormat": "p75 Exec [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.75, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m]))), \"series\", \"p75 Exec\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.99, sum by (le, service_instance_id) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m])))", - "legendFormat": "p99 Exec [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.99, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m]))), \"series\", \"p99 Exec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { "defaults": { - "unit": "µs", + "unit": "\u00b5s", "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 5, - "axisLabel": "Duration (μs)", - "spanNulls": true, + "axisLabel": "Duration (\u03bcs)", + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -348,7 +743,86 @@ }, "overrides": [] }, - "id": 6 + "id": 6, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Per-Job-Type Execution Time (p99)", @@ -377,19 +851,19 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(10, histogram_quantile(0.99, sum by (le, job_type, service_instance_id) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m]))))", - "legendFormat": "{{job_type}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, histogram_quantile(0.99, sum by (le, job_type, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", job_type=~\"$job_type\"}[5m])))), \"series\", \"$1\", \"job_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { "defaults": { - "unit": "µs", + "unit": "\u00b5s", "custom": { "drawStyle": "line", "lineWidth": 1, "fillOpacity": 5, - "axisLabel": "Duration (μs)", - "spanNulls": true, + "axisLabel": "Duration (\u03bcs)", + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -400,11 +874,90 @@ }, "overrides": [] }, - "id": 7 + "id": 7, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|job_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Overflow Rate", - "description": "###### What this is:\n*Rate at which transaction jobs are shed when the queue's transaction limit is exceeded.*\n\n###### How it's computed:\n*Per-second rate of the overflow counter over the dashboard's rate interval, scaled to per minute. The counter is observed from the overlay's cumulative overflow tally.*\n\n###### Reading it:\n*Near zero is healthy; a rising rate means the job queue is shedding transaction work under load.*\n\n###### Healthy range:\n*0 overflows per minute.*\n\n###### Watch for:\n*Any sustained non-zero rate — the node is dropping transaction jobs because the queue is saturated.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`registerParityCounters (observed from Overlay::getJqTransOverflow)`", + "description": "###### What this is:\n*Rate at which transaction jobs are shed when the queue's transaction limit is exceeded.*\n\n###### How it's computed:\n*Per-second rate of the overflow counter over the dashboard's rate interval, scaled to per minute. The counter is observed from the overlay's cumulative overflow tally.*\n\n###### Reading it:\n*Near zero is healthy; a rising rate means the job queue is shedding transaction work under load.*\n\n###### Healthy range:\n*0 overflows per minute.*\n\n###### Watch for:\n*Any sustained non-zero rate \u2014 the node is dropping transaction jobs because the queue is saturated.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`registerParityCounters (observed from Overlay::getJqTransOverflow)`", "type": "timeseries", "gridPos": { "h": 8, @@ -424,8 +977,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(jq_trans_overflow_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60", - "legendFormat": "Overflows/min [{{service_instance_id}}]" + "expr": "label_replace(rate(jq_trans_overflow_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60, \"series\", \"Overflows/min\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -452,7 +1005,7 @@ "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -463,7 +1016,86 @@ }, "overrides": [] }, - "id": 8 + "id": 8, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/ledger-data-sync.json b/docker/telemetry/grafana/dashboards/ledger-data-sync.json index dd84097eec..5811e47be1 100644 --- a/docker/telemetry/grafana/dashboards/ledger-data-sync.json +++ b/docker/telemetry/grafana/dashboards/ledger-data-sync.json @@ -31,16 +31,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_data_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Data Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Data Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_data_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Data Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Data Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -48,14 +48,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Data \u2014 Transaction", @@ -79,32 +158,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_data_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Set Candidate Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Set Candidate Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_data_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Set Candidate Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Set Candidate Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_data_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_data_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -112,14 +191,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Data \u2014 Account State", @@ -143,16 +301,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_data_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Node Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_data_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Node Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Node Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -160,14 +318,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Traffic \u2014 Ledger", @@ -191,16 +428,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Get In [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Get In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Share In [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Share In\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -208,14 +445,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Traffic \u2014 Transaction", @@ -239,32 +555,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Set Candidate Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Set Candidate Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Set Candidate Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Set Candidate Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -272,14 +588,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Traffic \u2014 Account State", @@ -303,16 +698,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -320,14 +715,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "GetObject \u2014 Ledger", @@ -351,16 +825,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -368,14 +842,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "GetObject \u2014 Transaction", @@ -399,32 +952,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_transaction_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transaction Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transaction Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_transaction_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transaction Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transaction Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -432,14 +985,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "GetObject \u2014 Account State", @@ -463,16 +1095,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -480,14 +1112,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "GetObject Messages \u2014 Ledger", @@ -511,8 +1222,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_ledger_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_ledger_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Get\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -520,14 +1231,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "GetObject Messages \u2014 Transaction", @@ -551,16 +1341,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_transaction_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transaction Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transaction Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_transaction_node_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_node_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Get\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -568,14 +1358,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "GetObject Messages \u2014 Account State", @@ -599,8 +1468,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_account_state_node_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_account_state_node_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Get\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -608,14 +1477,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "GetObject Messages \u2014 Specials", @@ -639,24 +1587,24 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_cas_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "CAS Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_cas_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"CAS Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_fetch_pack_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Fetch Pack Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_fetch_pack_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Fetch Pack Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_transactions_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transactions Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transactions_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transactions Get\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -664,14 +1612,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "GetObject \u2014 Specials", @@ -695,56 +1722,56 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_cas_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "CAS Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_cas_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"CAS Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_cas_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "CAS Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_cas_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"CAS Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_fetch_pack_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Fetch Pack Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_fetch_pack_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Fetch Pack Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_fetch_pack_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Fetch Pack Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_fetch_pack_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Fetch Pack Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_transactions_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transactions Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transactions_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transactions Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Aggregate Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Aggregate Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(getobject_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Aggregate Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Aggregate Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -752,14 +1779,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Overlay Traffic Heatmap (All Categories, Bytes In)", @@ -790,8 +1896,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(20, {service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", __name__=~\".*_bytes_in\", __name__!~\"total_.*\"})", - "legendFormat": "{{__name__}} [{{service_instance_id}}]" + "expr": "label_replace(topk(20, {service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", __name__=~\".*_bytes_in\", __name__!~\"total_.*\"}), \"series\", \"$1\", \"__name__\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -816,7 +1922,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|__name__)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/ledger-operations.json b/docker/telemetry/grafana/dashboards/ledger-operations.json index 7744e66a3f..3ab7ca3cc2 100644 --- a/docker/telemetry/grafana/dashboards/ledger-operations.json +++ b/docker/telemetry/grafana/dashboards/ledger-operations.json @@ -30,8 +30,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.build\"}[$__rate_interval]))", - "legendFormat": "Builds / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.build\"}[$__rate_interval])), \"series\", \"Builds / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -39,7 +39,86 @@ "unit": "ops" }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Build Duration", @@ -63,8 +142,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.build\"}[5m])))", - "legendFormat": "P95 Build Duration [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.build\"}[5m]))), \"series\", \"P95 Build Duration\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -72,14 +151,93 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Validation Rate", @@ -103,8 +261,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.validate\"}[$__rate_interval]))", - "legendFormat": "Validations / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.validate\"}[$__rate_interval])), \"series\", \"Validations / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -112,7 +270,86 @@ "unit": "ops" }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Build Duration Heatmap", @@ -173,8 +410,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.apply\"}[5m])))", - "legendFormat": "P95 tx.apply [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.apply\"}[5m]))), \"series\", \"P95 tx.apply\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -182,14 +419,93 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Apply Rate", @@ -213,8 +529,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.apply\"}[$__rate_interval]))", - "legendFormat": "tx.apply / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.apply\"}[$__rate_interval])), \"series\", \"tx.apply / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -222,14 +538,93 @@ "unit": "ops", "custom": { "axisLabel": "Operations / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Store Rate", @@ -253,8 +648,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.store\"}[$__rate_interval]))", - "legendFormat": "Stores / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.store\"}[$__rate_interval])), \"series\", \"Stores / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -262,11 +657,90 @@ "unit": "ops" }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Build vs Close Duration", - "description": "###### What this is:\n*Ledger build time compared with the total consensus ledger-close time, both at the 95th percentile.*\n\n###### How it's computed:\n*Two 95th-percentile duration series over 5 minutes: ledger construction and the full consensus close, per node.*\n\n###### Reading it:\n*Build should sit below close; the gap is consensus overhead outside construction.*\n\n###### Healthy range:\n*Close a bit above build; both workload-dependent and under the round interval.*\n\n###### Watch for:\n*A widening gap (consensus-pipeline overhead growing) or build time approaching close time.*\n\n###### Source:\n[BuildLedger.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/app/ledger/detail/BuildLedger.cpp) · [RCLConsensus.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/app/consensus/RCLConsensus.cpp)\n\n###### Function:\n`buildLedgerImpl ; RCLConsensus::Adaptor::onClose`", + "description": "###### What this is:\n*Ledger build time compared with the total consensus ledger-close time, both at the 95th percentile.*\n\n###### How it's computed:\n*Two 95th-percentile duration series over 5 minutes: ledger construction and the full consensus close, per node.*\n\n###### Reading it:\n*Build should sit below close; the gap is consensus overhead outside construction.*\n\n###### Healthy range:\n*Close a bit above build; both workload-dependent and under the round interval.*\n\n###### Watch for:\n*A widening gap (consensus-pipeline overhead growing) or build time approaching close time.*\n\n###### Source:\n[BuildLedger.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/app/ledger/detail/BuildLedger.cpp) \u00b7 [RCLConsensus.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/app/consensus/RCLConsensus.cpp)\n\n###### Function:\n`buildLedgerImpl ; RCLConsensus::Adaptor::onClose`", "type": "timeseries", "gridPos": { "h": 8, @@ -286,16 +760,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.build\"}[5m])))", - "legendFormat": "P95 ledger.build [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.build\"}[5m]))), \"series\", \"P95 ledger.build\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.ledger_close\"}[5m])))", - "legendFormat": "P95 consensus.ledger_close [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"consensus.ledger_close\"}[5m]))), \"series\", \"P95 consensus.ledger_close\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -303,14 +777,93 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, @@ -453,7 +1006,7 @@ { "name": "node", "label": "Node", - "description": "Filter by rippled node (service.instance.id — e.g. Node-1)", + "description": "Filter by rippled node (service.instance.id \u2014 e.g. Node-1)", "type": "query", "query": "label_values(target_info, service_instance_id)", "datasource": { diff --git a/docker/telemetry/grafana/dashboards/network-traffic.json b/docker/telemetry/grafana/dashboards/network-traffic.json index 8e0ecfa716..0d3be84eac 100644 --- a/docker/telemetry/grafana/dashboards/network-traffic.json +++ b/docker/telemetry/grafana/dashboards/network-traffic.json @@ -31,16 +31,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "peer_finder_active_inbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Inbound Peers [{{service_instance_id}}]" + "expr": "label_replace(peer_finder_active_inbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Inbound Peers\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "peer_finder_active_outbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Outbound Peers [{{service_instance_id}}]" + "expr": "label_replace(peer_finder_active_outbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Outbound Peers\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -48,14 +48,93 @@ "unit": "short", "custom": { "axisLabel": "Peers", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Peer Disconnects", @@ -79,8 +158,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "increase(overlay_peer_disconnects{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Disconnects [{{service_instance_id}}]" + "expr": "label_replace(increase(overlay_peer_disconnects{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Disconnects\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -88,14 +167,93 @@ "unit": "short", "custom": { "axisLabel": "Disconnects per interval", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Total Network Bytes", @@ -119,16 +277,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(total_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(total_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(total_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(total_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -136,14 +294,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Total Network Messages", @@ -167,16 +404,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(total_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Messages In [{{service_instance_id}}]" + "expr": "label_replace(rate(total_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Messages In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(total_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Messages Out [{{service_instance_id}}]" + "expr": "label_replace(rate(total_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Messages Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -184,14 +421,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Traffic", @@ -215,24 +531,24 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Messages In [{{service_instance_id}}]" + "expr": "label_replace(rate(transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Messages In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Messages Out [{{service_instance_id}}]" + "expr": "label_replace(rate(transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Messages Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(transactions_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Duplicate In [{{service_instance_id}}]" + "expr": "label_replace(rate(transactions_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -240,14 +556,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Proposal Traffic", @@ -271,32 +666,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proposals_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Proposals In [{{service_instance_id}}]" + "expr": "label_replace(rate(proposals_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Proposals In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proposals_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Proposals Out [{{service_instance_id}}]" + "expr": "label_replace(rate(proposals_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Proposals Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proposals_untrusted_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Untrusted In [{{service_instance_id}}]" + "expr": "label_replace(rate(proposals_untrusted_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Untrusted In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proposals_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Duplicate In [{{service_instance_id}}]" + "expr": "label_replace(rate(proposals_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -304,14 +699,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Validation Traffic", @@ -335,32 +809,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validations_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Validations In [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Validations In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validations_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Validations Out [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Validations Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validations_untrusted_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Untrusted In [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_untrusted_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Untrusted In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validations_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Duplicate In [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -368,14 +842,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Overlay Traffic by Category (Bytes In)", @@ -399,8 +952,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(10, label_replace(sum by (service_instance_id)(rate(transactions_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"transactions_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(proposals_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proposals_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(validations_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validations_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(overhead_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(overhead_overlay_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_overlay_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ping_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ping_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(status_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"status_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(havetxset_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"havetxset_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledgerdata_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledgerdata_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_account_state_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_set_candidate_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_set_candidate_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(set_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"set_get_bytes_in\",\"\",\"\"))", - "legendFormat": "{{__name__}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(transactions_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"transactions_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(proposals_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proposals_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(validations_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validations_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(overhead_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(overhead_overlay_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_overlay_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ping_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ping_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(status_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"status_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(havetxset_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"havetxset_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledgerdata_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledgerdata_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_account_state_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_set_candidate_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_set_candidate_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(set_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"set_get_bytes_in\",\"\",\"\")), \"series\", \"$1\", \"__name__\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -673,7 +1226,86 @@ ] } ] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|__name__)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Duplicate Traffic (Wasted Bandwidth)", @@ -697,48 +1329,48 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(transactions_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Duplicate In" + "expr": "label_replace(rate(transactions_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(transactions_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Duplicate Out" + "expr": "label_replace(rate(transactions_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Duplicate Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proposals_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Proposals Duplicate In" + "expr": "label_replace(rate(proposals_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Proposals Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proposals_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Proposals Duplicate Out" + "expr": "label_replace(rate(proposals_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Proposals Duplicate Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validations_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Validations Duplicate In" + "expr": "label_replace(rate(validations_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Validations Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validations_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Validations Duplicate Out" + "expr": "label_replace(rate(validations_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Validations Duplicate Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -746,14 +1378,93 @@ "unit": "Bps", "custom": { "axisLabel": "Throughput", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "All Traffic Categories (Detail)", @@ -777,8 +1488,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(15, label_replace(sum by (service_instance_id)(rate(getobject_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_account_state_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_cas_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_cas_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_cas_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_cas_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_fetch_pack_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_fetch_pack_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_fetch_pack_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_fetch_pack_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_ledger_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_ledger_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_transaction_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transaction_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transaction_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_transaction_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transaction_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(getobject_transactions_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transactions_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(have_transactions_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"have_transactions_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_account_state_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_account_state_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_set_candidate_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_data_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_set_candidate_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_set_candidate_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(ledger_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_set_candidate_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(overhead_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(overhead_cluster_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_cluster_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(overhead_manifest_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_manifest_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(overhead_overlay_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_overlay_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(proof_path_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proof_path_request_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(proof_path_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proof_path_response_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(proposals_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proposals_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(proposals_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proposals_duplicate_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(proposals_untrusted_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proposals_untrusted_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(replay_delta_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"replay_delta_request_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(replay_delta_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"replay_delta_response_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(requested_transactions_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"requested_transactions_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(set_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"set_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(set_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"set_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(squelch_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"squelch_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(squelch_ignored_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"squelch_ignored_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(squelch_suppressed_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"squelch_suppressed_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(transactions_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"transactions_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(transactions_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"transactions_duplicate_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(unknown_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"unknown_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(validations_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validations_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(validations_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validations_duplicate_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(validations_untrusted_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validations_untrusted_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id)(rate(validator_lists_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validator_lists_bytes_in\",\"\",\"\"))", - "legendFormat": "{{__name__}}" + "expr": "label_replace(topk(15, label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_account_state_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_cas_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_cas_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_cas_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_cas_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_fetch_pack_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_fetch_pack_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_fetch_pack_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_fetch_pack_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_ledger_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_ledger_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_transaction_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transaction_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transaction_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_transaction_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transaction_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(getobject_transactions_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"getobject_transactions_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(have_transactions_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"have_transactions_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_account_state_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_account_state_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_account_state_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_set_candidate_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_data_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_data_transaction_set_candidate_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_node_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_node_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_set_candidate_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(ledger_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"ledger_transaction_set_candidate_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(overhead_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(overhead_cluster_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_cluster_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(overhead_manifest_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_manifest_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(overhead_overlay_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"overhead_overlay_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(proof_path_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proof_path_request_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(proof_path_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proof_path_response_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(proposals_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proposals_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(proposals_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proposals_duplicate_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(proposals_untrusted_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"proposals_untrusted_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(replay_delta_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"replay_delta_request_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(replay_delta_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"replay_delta_response_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(requested_transactions_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"requested_transactions_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(set_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"set_get_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(set_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"set_share_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(squelch_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"squelch_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(squelch_ignored_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"squelch_ignored_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(squelch_suppressed_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"squelch_suppressed_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(transactions_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"transactions_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(transactions_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"transactions_duplicate_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(unknown_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"unknown_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(validations_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validations_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(validations_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validations_duplicate_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(validations_untrusted_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validations_untrusted_bytes_in\",\"\",\"\") or label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role)(rate(validator_lists_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])),\"__name__\",\"validator_lists_bytes_in\",\"\",\"\")), \"series\", \"$1\", \"__name__\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -786,14 +1497,93 @@ "unit": "Bps", "custom": { "axisLabel": "Throughput", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|__name__)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/node-health.json b/docker/telemetry/grafana/dashboards/node-health.json index a92d5695c0..c785157af8 100644 --- a/docker/telemetry/grafana/dashboards/node-health.json +++ b/docker/telemetry/grafana/dashboards/node-health.json @@ -31,8 +31,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "ledgermaster_validated_ledger_age{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Validated Age [{{service_instance_id}}]" + "expr": "label_replace(ledgermaster_validated_ledger_age{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Validated Age\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -57,7 +57,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Published Ledger Age", @@ -81,8 +160,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "ledgermaster_published_ledger_age{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Published Age [{{service_instance_id}}]" + "expr": "label_replace(ledgermaster_published_ledger_age{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Published Age\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -107,7 +186,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Operating Mode (Time Share)", @@ -131,40 +289,40 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "Full [{{service_instance_id}}]" + "expr": "label_replace(rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"Full\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "Tracking [{{service_instance_id}}]" + "expr": "label_replace(rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"Tracking\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "Syncing [{{service_instance_id}}]" + "expr": "label_replace(rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"Syncing\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "Connected [{{service_instance_id}}]" + "expr": "label_replace(rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"Connected\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "Disconnected [{{service_instance_id}}]" + "expr": "label_replace(rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"Disconnected\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -174,14 +332,93 @@ "max": 1, "custom": { "axisLabel": "Time Share", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Operating Mode Transitions", @@ -205,40 +442,40 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "state_accounting_full_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Full [{{service_instance_id}}]" + "expr": "label_replace(state_accounting_full_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Full\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "state_accounting_tracking_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Tracking [{{service_instance_id}}]" + "expr": "label_replace(state_accounting_tracking_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Tracking\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "state_accounting_syncing_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Syncing [{{service_instance_id}}]" + "expr": "label_replace(state_accounting_syncing_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Syncing\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "state_accounting_connected_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Connected [{{service_instance_id}}]" + "expr": "label_replace(state_accounting_connected_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Connected\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "state_accounting_disconnected_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Disconnected [{{service_instance_id}}]" + "expr": "label_replace(state_accounting_disconnected_transitions{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Disconnected\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -246,14 +483,93 @@ "unit": "short", "custom": { "axisLabel": "Transitions", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "I/O Latency", @@ -277,8 +593,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(ios_latency_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "P95 I/O Latency [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(ios_latency_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"P95 I/O Latency\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -286,14 +602,93 @@ "unit": "ms", "custom": { "axisLabel": "Latency (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Job Queue Depth", @@ -317,8 +712,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "jobq_job_count{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Job Queue Depth [{{service_instance_id}}]" + "expr": "label_replace(jobq_job_count{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Job Queue Depth\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -326,14 +721,93 @@ "unit": "short", "custom": { "axisLabel": "Jobs", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Fetch Rate", @@ -357,8 +831,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_fetches_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Fetches / Sec [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_fetches_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Fetches / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -367,7 +841,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger History Mismatches", @@ -391,8 +944,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledger_history_mismatch_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Mismatches / Sec [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_history_mismatch_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Mismatches / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -413,7 +966,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "NodeStore I/O", @@ -449,8 +1081,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_total\"}[$__rate_interval])", - "legendFormat": "Reads Total [{{service_instance_id}}]", + "expr": "label_replace(rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_total\"}[$__rate_interval]), \"series\", \"Reads Total\", \"\", \"\")", + "legendFormat": "__auto", "refId": "A" }, { @@ -458,8 +1090,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_hit\"}[$__rate_interval])", - "legendFormat": "Reads Hit (cache) [{{service_instance_id}}]", + "expr": "label_replace(rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_hit\"}[$__rate_interval]), \"series\", \"Reads Hit (cache)\", \"\", \"\")", + "legendFormat": "__auto", "refId": "B" }, { @@ -467,8 +1099,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_writes\"}[$__rate_interval])", - "legendFormat": "Writes Total [{{service_instance_id}}]", + "expr": "label_replace(rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_writes\"}[$__rate_interval]), \"series\", \"Writes Total\", \"\", \"\")", + "legendFormat": "__auto", "refId": "C" } ], @@ -479,14 +1111,94 @@ "axisLabel": "Operations / Sec", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "NodeStore Cache Hit Ratio", @@ -510,8 +1222,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_hit\"}[$__rate_interval]) / ignoring(metric) rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_total\"}[$__rate_interval])", - "legendFormat": "Cache Hit Ratio [{{service_instance_id}}]", + "expr": "label_replace(rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_hit\"}[$__rate_interval]) / ignoring(metric) rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_total\"}[$__rate_interval]), \"series\", \"Cache Hit Ratio\", \"\", \"\")", + "legendFormat": "__auto", "refId": "A" } ], @@ -522,14 +1234,94 @@ "axisLabel": "Operations / Sec", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "NodeStore Write Load & Read Queue", @@ -553,16 +1345,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"write_load\"}", - "legendFormat": "Write Load [{{service_instance_id}}]" + "expr": "label_replace(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"write_load\"}, \"series\", \"Write Load\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"read_queue\"}", - "legendFormat": "Read Queue [{{service_instance_id}}]" + "expr": "label_replace(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"read_queue\"}, \"series\", \"Read Queue\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -572,7 +1364,8 @@ "axisLabel": "Count", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" @@ -595,7 +1388,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "NodeStore Bytes Read/Written", @@ -619,16 +1491,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_read_bytes\"}[$__rate_interval])", - "legendFormat": "Bytes Read [{{service_instance_id}}]" + "expr": "label_replace(rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_read_bytes\"}[$__rate_interval]), \"series\", \"Bytes Read\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_written_bytes\"}[$__rate_interval])", - "legendFormat": "Bytes Written [{{service_instance_id}}]" + "expr": "label_replace(rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_written_bytes\"}[$__rate_interval]), \"series\", \"Bytes Written\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -638,14 +1510,94 @@ "axisLabel": "Throughput", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "NodeStore Read Threads", @@ -669,8 +1621,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"read_threads_running\"}", - "legendFormat": "Read Threads Running [{{service_instance_id}}]", + "expr": "label_replace(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"read_threads_running\"}, \"series\", \"Read Threads Running\", \"\", \"\")", + "legendFormat": "__auto", "refId": "A" }, { @@ -678,8 +1630,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"read_threads_total\"}", - "legendFormat": "Read Threads Total [{{service_instance_id}}]", + "expr": "label_replace(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"read_threads_total\"}, \"series\", \"Read Threads Total\", \"\", \"\")", + "legendFormat": "__auto", "refId": "B" }, { @@ -687,8 +1639,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"read_request_bundle\"}", - "legendFormat": "Read Request Bundle [{{service_instance_id}}]", + "expr": "label_replace(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"read_request_bundle\"}, \"series\", \"Read Request Bundle\", \"\", \"\")", + "legendFormat": "__auto", "refId": "C" } ], @@ -699,14 +1651,94 @@ "axisLabel": "Threads / Bundle", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "NodeStore Read Busy Ratio", @@ -730,8 +1762,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_duration_us\"}[$__rate_interval]) / 1e6", - "legendFormat": "Read Busy Ratio [{{service_instance_id}}]", + "expr": "label_replace(rate(nodestore_state{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"node_reads_duration_us\"}[$__rate_interval]) / 1e6, \"series\", \"Read Busy Ratio\", \"\", \"\")", + "legendFormat": "__auto", "refId": "A" } ], @@ -742,14 +1774,94 @@ "axisLabel": "Threads / Bundle", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Cache Hit Rates", @@ -785,24 +1897,24 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"SLE_hit_rate\"}", - "legendFormat": "SLE Hit Rate [{{service_instance_id}}]" + "expr": "label_replace(cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"SLE_hit_rate\"}, \"series\", \"SLE Hit Rate\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"ledger_hit_rate\"}", - "legendFormat": "Ledger Hit Rate [{{service_instance_id}}]" + "expr": "label_replace(cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"ledger_hit_rate\"}, \"series\", \"Ledger Hit Rate\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"AL_hit_rate\"}", - "legendFormat": "AcceptedLedger Hit Rate [{{service_instance_id}}]" + "expr": "label_replace(cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"AL_hit_rate\"}, \"series\", \"AcceptedLedger Hit Rate\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -815,7 +1927,7 @@ "lineWidth": 2, "fillOpacity": 10, "axisLabel": "Hit Rate", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -825,7 +1937,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Cache Sizes", @@ -849,32 +2040,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"treenode_cache_size\"}", - "legendFormat": "TreeNode Cache [{{service_instance_id}}]" + "expr": "label_replace(cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"treenode_cache_size\"}, \"series\", \"TreeNode Cache\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"treenode_track_size\"}", - "legendFormat": "TreeNode Track [{{service_instance_id}}]" + "expr": "label_replace(cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"treenode_track_size\"}, \"series\", \"TreeNode Track\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"fullbelow_size\"}", - "legendFormat": "FullBelow [{{service_instance_id}}]" + "expr": "label_replace(cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"fullbelow_size\"}, \"series\", \"FullBelow\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"AL_size\"}", - "legendFormat": "AcceptedLedger Size [{{service_instance_id}}]" + "expr": "label_replace(cache_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"AL_size\"}, \"series\", \"AcceptedLedger Size\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -884,14 +2075,94 @@ "axisLabel": "Entries", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Object Instance Counts", @@ -932,8 +2203,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(15, object_count{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", type=~\"$type\"})", - "legendFormat": "{{type}} [{{service_instance_id}}]" + "expr": "label_replace(topk(15, object_count{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", type=~\"$type\"}), \"series\", \"$1\", \"type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -943,14 +2214,94 @@ "axisLabel": "Instances", "drawStyle": "line", "lineWidth": 1, - "fillOpacity": 5 + "fillOpacity": 5, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Server Info", @@ -986,8 +2337,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"server_state\"}", - "legendFormat": "State [{{service_instance_id}}]" + "expr": "label_replace(server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"server_state\"}, \"series\", \"State\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1043,7 +2394,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Uptime", @@ -1067,8 +2497,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"uptime\"}", - "legendFormat": "Uptime [{{service_instance_id}}]" + "expr": "label_replace(server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"uptime\"}, \"series\", \"Uptime\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1077,7 +2507,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Peer Count", @@ -1101,8 +2610,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"peers\"}", - "legendFormat": "Peers [{{service_instance_id}}]" + "expr": "label_replace(server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"peers\"}, \"series\", \"Peers\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1111,7 +2620,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Validated Ledger Seq", @@ -1135,8 +2723,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"validated_ledger_seq\"}", - "legendFormat": "Seq [{{service_instance_id}}]" + "expr": "label_replace(server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"validated_ledger_seq\"}, \"series\", \"Seq\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1145,7 +2733,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Last Close \u2014 Proposers", @@ -1169,8 +2836,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"last_close_proposers\"}", - "legendFormat": "Proposers [{{service_instance_id}}]", + "expr": "label_replace(server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"last_close_proposers\"}, \"series\", \"Proposers\", \"\", \"\")", + "legendFormat": "__auto", "refId": "A" } ], @@ -1181,14 +2848,94 @@ "axisLabel": "Proposers", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Last Close \u2014 Converge Time", @@ -1212,8 +2959,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"last_close_converge_time_ms\"}", - "legendFormat": "Converge Time ms [{{service_instance_id}}]", + "expr": "label_replace(server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"last_close_converge_time_ms\"}, \"series\", \"Converge Time ms\", \"\", \"\")", + "legendFormat": "__auto", "refId": "A" } ], @@ -1224,14 +2971,94 @@ "axisLabel": "Proposers", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Build Version", @@ -1290,8 +3117,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"ledger_current_index\"}", - "legendFormat": "Current Ledger [{{service_instance_id}}]" + "expr": "label_replace(server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"ledger_current_index\"}, \"series\", \"Current Ledger\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1300,7 +3127,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "NuDB Storage Size", @@ -1324,8 +3230,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "storage_detail{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"nudb_bytes\"}", - "legendFormat": "NuDB Size [{{service_instance_id}}]" + "expr": "label_replace(storage_detail{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"nudb_bytes\"}, \"series\", \"NuDB Size\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1335,14 +3241,94 @@ "axisLabel": "Size", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Complete Ledgers & DB", @@ -1411,24 +3397,24 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "db_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"db_kb_total\"}", - "legendFormat": "Total KB [{{service_instance_id}}]" + "expr": "label_replace(db_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"db_kb_total\"}, \"series\", \"Total KB\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "db_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"db_kb_ledger\"}", - "legendFormat": "Ledger KB [{{service_instance_id}}]" + "expr": "label_replace(db_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"db_kb_ledger\"}, \"series\", \"Ledger KB\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "db_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"db_kb_transaction\"}", - "legendFormat": "Transaction KB [{{service_instance_id}}]" + "expr": "label_replace(db_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"db_kb_transaction\"}, \"series\", \"Transaction KB\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1438,14 +3424,94 @@ "axisLabel": "Size (KB)", "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Historical Fetch Rate", @@ -1469,8 +3535,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "db_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"historical_perminute\"}", - "legendFormat": "Fetches/min [{{service_instance_id}}]" + "expr": "label_replace(db_metrics{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"historical_perminute\"}, \"series\", \"Fetches/min\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1479,7 +3545,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Peer Disconnects (Resources)", @@ -1503,8 +3648,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"peer_disconnects_resources\"}", - "legendFormat": "Resource Disconnects [{{service_instance_id}}]" + "expr": "label_replace(server_info{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", metric=\"peer_disconnects_resources\"}, \"series\", \"Resource Disconnects\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1513,14 +3658,94 @@ "custom": { "drawStyle": "line", "lineWidth": 2, - "fillOpacity": 10 + "fillOpacity": 10, + "spanNulls": 1800000 }, "color": { "mode": "palette-classic" } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Economy", @@ -1556,8 +3781,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "ledger_economy{metric=\"base_fee_xrp\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Base Fee [{{service_instance_id}}]" + "expr": "label_replace(ledger_economy{metric=\"base_fee_xrp\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Base Fee\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1566,7 +3791,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Reserve Base (drops)", @@ -1590,8 +3894,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "ledger_economy{metric=\"reserve_base_xrp\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Reserve Base [{{service_instance_id}}]" + "expr": "label_replace(ledger_economy{metric=\"reserve_base_xrp\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Reserve Base\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1600,7 +3904,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Reserve Inc (drops)", @@ -1624,8 +4007,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "ledger_economy{metric=\"reserve_inc_xrp\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Reserve Inc [{{service_instance_id}}]" + "expr": "label_replace(ledger_economy{metric=\"reserve_inc_xrp\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Reserve Inc\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1634,7 +4017,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Age", @@ -1658,8 +4120,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "ledger_economy{metric=\"ledger_age_seconds\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Ledger Age [{{service_instance_id}}]" + "expr": "label_replace(ledger_economy{metric=\"ledger_age_seconds\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Ledger Age\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1686,7 +4148,7 @@ "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3, @@ -1696,7 +4158,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Rate", @@ -1720,8 +4261,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "ledger_economy{metric=\"transaction_rate\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Tx Rate [{{service_instance_id}}]" + "expr": "label_replace(ledger_economy{metric=\"transaction_rate\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Tx Rate\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1732,7 +4273,7 @@ "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -1742,7 +4283,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Extended Metrics", @@ -1757,7 +4377,7 @@ "panels": [] }, { - "title": "Key Jobs Execution Time", + "title": "Key Jobs Execution Time (q$quantile)", "description": "###### What this is:\n*Execution time for the most critical job types at the selected quantile.*\n\n###### How it's computed:\n*Per-job-type execution durations aggregated to the chosen quantile per node over a 5-minute window.*\n\n###### Reading it:\n*Lower is better; each line is one job type's run time.*\n\n###### Healthy range:\n*A few to tens of milliseconds for most jobs; workload-dependent.*\n\n###### Watch for:\n*Spikes on key jobs (accept, transaction, write) indicate processing bottlenecks.*\n\n###### Source:\n[JobTypeData.h](https://github.com/XRPLF/rippled/blob/develop/include/xrpl/core/JobTypeData.h)\n\n###### Function:\n`JobTypeData`", "type": "timeseries", "gridPos": { @@ -1778,88 +4398,88 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"acceptLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Accept Ledger [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"acceptLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Accept Ledger\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"advanceLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Advance Ledger [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"advanceLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Advance Ledger\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"transaction\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Transaction [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"transaction\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Transaction\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"writeObjects\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Write Objects [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"writeObjects\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Write Objects\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"heartbeat\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Heartbeat [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"heartbeat\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Heartbeat\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"sweep\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Sweep [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"sweep\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Sweep\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"trustedValidation\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Trusted Validation [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"trustedValidation\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Trusted Validation\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"trustedProposal\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Trusted Proposal [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"trustedProposal\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Trusted Proposal\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"publishNewLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Publish New Ledger [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"publishNewLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Publish New Ledger\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"clientRPC\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Client RPC [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"clientRPC\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Client RPC\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_running_us_bucket{job_type=\"ledgerData\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Ledger Data [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{job_type=\"ledgerData\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Ledger Data\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1867,17 +4487,96 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { - "title": "Key Jobs Dequeue Wait Time", + "title": "Key Jobs Dequeue Wait Time (q$quantile)", "description": "###### What this is:\n*Time critical jobs wait in the queue before running, at the selected quantile.*\n\n###### How it's computed:\n*Per-job-type queue-wait durations aggregated to the chosen quantile per node over a 5-minute window.*\n\n###### Reading it:\n*Lower is better; each line is one job type's wait time.*\n\n###### Healthy range:\n*Near zero to a few milliseconds when the queue is keeping up.*\n\n###### Watch for:\n*High waits mean the queue is backlogged and jobs are scheduled late.*\n\n###### Source:\n[JobTypeData.h](https://github.com/XRPLF/rippled/blob/develop/include/xrpl/core/JobTypeData.h)\n\n###### Function:\n`JobTypeData`", "type": "timeseries", "gridPos": { @@ -1898,88 +4597,88 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"acceptLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Accept Ledger [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"acceptLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Accept Ledger\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"advanceLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Advance Ledger [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"advanceLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Advance Ledger\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"transaction\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Transaction [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"transaction\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Transaction\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"writeObjects\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Write Objects [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"writeObjects\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Write Objects\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"heartbeat\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Heartbeat [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"heartbeat\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Heartbeat\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"sweep\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Sweep [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"sweep\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Sweep\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"trustedValidation\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Trusted Validation [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"trustedValidation\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Trusted Validation\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"trustedProposal\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Trusted Proposal [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"trustedProposal\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Trusted Proposal\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"publishNewLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Publish New Ledger [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"publishNewLedger\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Publish New Ledger\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"clientRPC\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Client RPC [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"clientRPC\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Client RPC\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, service_instance_id) (rate(job_queued_us_bucket{job_type=\"ledgerData\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "Ledger Data [{{quantile}}]" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{job_type=\"ledgerData\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"Ledger Data\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -1987,14 +4686,93 @@ "unit": "ms", "custom": { "axisLabel": "Wait Time (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "FullBelowCache Size", @@ -2018,8 +4796,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "node_family_full_below_cache_size{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "FullBelowCache Size" + "expr": "label_replace(node_family_full_below_cache_size{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"FullBelowCache Size\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -2027,14 +4805,93 @@ "unit": "short", "custom": { "axisLabel": "Entries", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "FullBelowCache Hit Rate", @@ -2058,8 +4915,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "node_family_full_below_cache_hit_rate{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Hit Rate" + "expr": "label_replace(node_family_full_below_cache_hit_rate{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Hit Rate\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -2085,7 +4942,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Publish Gap", @@ -2109,8 +5045,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "ledgermaster_published_ledger_age{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"} - ledgermaster_validated_ledger_age{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Publish Gap" + "expr": "label_replace(ledgermaster_published_ledger_age{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"} - ledgermaster_validated_ledger_age{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Publish Gap\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -2134,7 +5070,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "State Duration Rate (Full vs Tracking)", @@ -2158,16 +5173,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / 1000000", - "legendFormat": "Full Mode Rate" + "expr": "label_replace(rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / 1000000, \"series\", \"Full Mode Rate\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / 1000000", - "legendFormat": "Tracking Mode Rate" + "expr": "label_replace(rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / 1000000, \"series\", \"Tracking Mode Rate\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -2175,14 +5190,93 @@ "unit": "short", "custom": { "axisLabel": "Rate (s/s)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "All Jobs Execution Time (Detail)", @@ -2206,8 +5300,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, job_type) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "{{job_type}}" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, job_type, xrpl_branch, xrpl_node_role) (rate(job_running_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"$1\", \"job_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -2215,14 +5309,93 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|job_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "All Jobs Dequeue Wait (Detail)", @@ -2246,8 +5419,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile($quantile, sum by (le, job_type) (rate(job_queued_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "{{job_type}}" + "expr": "label_replace(histogram_quantile($quantile, sum by (le, job_type, xrpl_branch, xrpl_node_role) (rate(job_queued_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"$1\", \"job_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -2255,14 +5428,93 @@ "unit": "ms", "custom": { "axisLabel": "Wait Time (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|job_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Acquire Duration (Inbound Fetch)", @@ -2286,8 +5538,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.acquire\"}[5m])))", - "legendFormat": "P95 Acquire [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.acquire\"}[5m]))), \"series\", \"P95 Acquire\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -2295,14 +5547,93 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledger Acquire Rate by Outcome", @@ -2326,8 +5657,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (outcome, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.acquire\"}[$__rate_interval]))", - "legendFormat": "{{outcome}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (outcome, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"ledger.acquire\"}[$__rate_interval])), \"series\", \"$1\", \"outcome\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -2335,14 +5666,93 @@ "unit": "ops", "custom": { "axisLabel": "Acquisitions / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|outcome)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Operating Mode (State Timeline)", @@ -2462,8 +5872,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "% Time in Full [{{service_instance_id}}]" + "expr": "label_replace(rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) / (rate(state_accounting_disconnected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_connected_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_syncing_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_tracking_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) + rate(state_accounting_full_duration{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"% Time in Full\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -2491,7 +5901,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json index 02b73b992b..387fb9dc32 100644 --- a/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json +++ b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json @@ -31,48 +31,48 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(squelch_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Squelch In [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Squelch In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(squelch_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Squelch Out [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Squelch Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(squelch_suppressed_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Suppressed In [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_suppressed_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Suppressed In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(squelch_suppressed_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Suppressed Out [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_suppressed_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Suppressed Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(squelch_ignored_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ignored In [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_ignored_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ignored In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(squelch_ignored_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ignored Out [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_ignored_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ignored Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -80,14 +80,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Overhead Traffic Breakdown (Bytes)", @@ -111,48 +190,48 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(overhead_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Base Overhead In [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Base Overhead In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(overhead_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Base Overhead Out [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Base Overhead Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(overhead_cluster_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Cluster In [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_cluster_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Cluster In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(overhead_cluster_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Cluster Out [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_cluster_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Cluster Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(overhead_manifest_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Manifest In [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_manifest_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Manifest In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(overhead_manifest_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Manifest Out [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_manifest_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Manifest Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -160,14 +239,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Validator List Traffic", @@ -191,32 +349,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validator_lists_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(validator_lists_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validator_lists_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(validator_lists_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validator_lists_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Messages In [{{service_instance_id}}]" + "expr": "label_replace(rate(validator_lists_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Messages In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validator_lists_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Messages Out [{{service_instance_id}}]" + "expr": "label_replace(rate(validator_lists_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Messages Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -224,7 +382,7 @@ "unit": "cps", "custom": { "axisLabel": "Count", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -248,7 +406,86 @@ ] } ] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Set Get/Share Traffic (Bytes)", @@ -272,32 +509,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(set_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Set Get In [{{service_instance_id}}]" + "expr": "label_replace(rate(set_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Set Get In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(set_get_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Set Get Out [{{service_instance_id}}]" + "expr": "label_replace(rate(set_get_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Set Get Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(set_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Set Share In [{{service_instance_id}}]" + "expr": "label_replace(rate(set_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Set Share In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(set_share_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Set Share Out [{{service_instance_id}}]" + "expr": "label_replace(rate(set_share_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Set Share Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -305,14 +542,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Have/Requested Transactions (Messages)", @@ -336,32 +652,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(have_transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Have TX In [{{service_instance_id}}]" + "expr": "label_replace(rate(have_transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Have TX In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(have_transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Have TX Out [{{service_instance_id}}]" + "expr": "label_replace(rate(have_transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Have TX Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(requested_transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Requested TX In [{{service_instance_id}}]" + "expr": "label_replace(rate(requested_transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Requested TX In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(requested_transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Requested TX Out [{{service_instance_id}}]" + "expr": "label_replace(rate(requested_transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Requested TX Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -369,14 +685,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Unknown / Unclassified Traffic", @@ -400,32 +795,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "unknown_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Unknown Bytes In [{{service_instance_id}}]" + "expr": "label_replace(unknown_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Unknown Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "unknown_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Unknown Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(unknown_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Unknown Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "unknown_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Unknown Messages In [{{service_instance_id}}]" + "expr": "label_replace(unknown_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Unknown Messages In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "unknown_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Unknown Messages Out [{{service_instance_id}}]" + "expr": "label_replace(unknown_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Unknown Messages Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -433,7 +828,7 @@ "unit": "short", "custom": { "axisLabel": "Count", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -457,7 +852,86 @@ ] } ] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Proof Path Traffic", @@ -481,32 +955,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proof_path_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Request Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(proof_path_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Request Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proof_path_request_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Request Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(proof_path_request_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Request Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proof_path_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Response Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(proof_path_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Response Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(proof_path_response_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Response Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(proof_path_response_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Response Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -514,14 +988,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Replay Delta Traffic", @@ -545,32 +1098,32 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(replay_delta_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Request Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(replay_delta_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Request Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(replay_delta_request_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Request Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(replay_delta_request_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Request Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(replay_delta_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Response Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(replay_delta_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Response Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(replay_delta_response_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Response Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(replay_delta_response_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Response Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -578,14 +1131,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/peer-network.json b/docker/telemetry/grafana/dashboards/peer-network.json index 6f807a5f50..31d81b28f2 100644 --- a/docker/telemetry/grafana/dashboards/peer-network.json +++ b/docker/telemetry/grafana/dashboards/peer-network.json @@ -31,8 +31,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"peer.proposal.receive\"}[$__rate_interval]))", - "legendFormat": "Proposals Received / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"peer.proposal.receive\"}[$__rate_interval])), \"series\", \"Proposals Received / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -40,14 +40,93 @@ "unit": "ops", "custom": { "axisLabel": "Proposals / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Peer Validation Receive Rate", @@ -71,8 +150,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"peer.validation.receive\"}[$__rate_interval]))", - "legendFormat": "Validations Received / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"peer.validation.receive\"}[$__rate_interval])), \"series\", \"Validations Received / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -80,14 +159,93 @@ "unit": "ops", "custom": { "axisLabel": "Validations / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Proposals Trusted vs Untrusted", @@ -111,8 +269,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (proposal_trusted, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", proposal_trusted=~\"$proposal_trusted\", span_name=\"peer.proposal.receive\"}[$__rate_interval]))", - "legendFormat": "Trusted = {{proposal_trusted}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (proposal_trusted, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", proposal_trusted=~\"$proposal_trusted\", span_name=\"peer.proposal.receive\"}[$__rate_interval])), \"series\", \"Trusted = $1\", \"proposal_trusted\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -120,7 +278,86 @@ "unit": "ops" }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|proposal_trusted)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Validations Trusted vs Untrusted", @@ -144,8 +381,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (validation_trusted, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", validation_trusted=~\"$validation_trusted\", span_name=\"peer.validation.receive\"}[$__rate_interval]))", - "legendFormat": "Trusted = {{validation_trusted}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (validation_trusted, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", validation_trusted=~\"$validation_trusted\", span_name=\"peer.validation.receive\"}[$__rate_interval])), \"series\", \"Trusted = $1\", \"validation_trusted\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -153,7 +390,86 @@ "unit": "ops" }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|validation_trusted)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Reduce-Relay Peer Selection", @@ -177,24 +493,24 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "reduce_relay_metrics{metric=\"selected_peers\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Selected [{{service_instance_id}}]" + "expr": "label_replace(reduce_relay_metrics{metric=\"selected_peers\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Selected\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "reduce_relay_metrics{metric=\"suppressed_peers\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Suppressed [{{service_instance_id}}]" + "expr": "label_replace(reduce_relay_metrics{metric=\"suppressed_peers\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Suppressed\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "reduce_relay_metrics{metric=\"not_enabled_peers\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Not Enabled [{{service_instance_id}}]" + "expr": "label_replace(reduce_relay_metrics{metric=\"not_enabled_peers\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Not Enabled\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -202,14 +518,93 @@ "unit": "short", "custom": { "axisLabel": "Peer Count", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Reduce-Relay Missing-Tx Frequency", @@ -233,8 +628,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "reduce_relay_metrics{metric=\"missing_tx_freq\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Missing Tx Freq [{{service_instance_id}}]" + "expr": "label_replace(reduce_relay_metrics{metric=\"missing_tx_freq\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Missing Tx Freq\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -242,14 +637,93 @@ "unit": "short", "custom": { "axisLabel": "Frequency", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, @@ -392,7 +866,7 @@ { "name": "node", "label": "Node", - "description": "Filter by rippled node (service.instance.id — e.g. Node-1)", + "description": "Filter by rippled node (service.instance.id \u2014 e.g. Node-1)", "type": "query", "query": "label_values(target_info, service_instance_id)", "datasource": { diff --git a/docker/telemetry/grafana/dashboards/peer-quality.json b/docker/telemetry/grafana/dashboards/peer-quality.json index 38876b9db8..0844d0c254 100644 --- a/docker/telemetry/grafana/dashboards/peer-quality.json +++ b/docker/telemetry/grafana/dashboards/peer-quality.json @@ -31,8 +31,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "peer_quality{metric=\"peer_latency_p90_ms\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "P90 Latency [{{service_instance_id}}]" + "expr": "label_replace(peer_quality{metric=\"peer_latency_p90_ms\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"P90 Latency\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -43,7 +43,7 @@ "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -69,7 +69,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Insane/Diverged Peers", @@ -93,8 +172,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "peer_quality{metric=\"peers_insane_count\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Insane Peers [{{service_instance_id}}]" + "expr": "label_replace(peer_quality{metric=\"peers_insane_count\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Insane Peers\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -119,7 +198,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Higher Version Peers %", @@ -143,8 +301,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "peer_quality{metric=\"peers_higher_version_pct\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Higher Version % [{{service_instance_id}}]" + "expr": "label_replace(peer_quality{metric=\"peers_higher_version_pct\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Higher Version %\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -171,7 +329,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Upgrade Recommended", @@ -195,8 +432,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "peer_quality{metric=\"upgrade_recommended\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Upgrade [{{service_instance_id}}]" + "expr": "label_replace(peer_quality{metric=\"upgrade_recommended\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Upgrade\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -237,7 +474,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Resource Disconnects", @@ -261,8 +577,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "server_info{metric=\"peer_disconnects_resources\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Disconnects [{{service_instance_id}}]" + "expr": "label_replace(server_info{metric=\"peer_disconnects_resources\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Disconnects\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -273,7 +589,7 @@ "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -283,7 +599,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Inbound vs Outbound Peers", @@ -309,16 +704,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "peer_finder_active_inbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Inbound [{{service_instance_id}}]" + "expr": "label_replace(peer_finder_active_inbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Inbound\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "peer_finder_active_outbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Outbound [{{service_instance_id}}]" + "expr": "label_replace(peer_finder_active_outbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Outbound\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -366,7 +761,86 @@ ] } ] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/rpc-pathfinding.json b/docker/telemetry/grafana/dashboards/rpc-pathfinding.json index 3bf8310f10..ea75a57cb1 100644 --- a/docker/telemetry/grafana/dashboards/rpc-pathfinding.json +++ b/docker/telemetry/grafana/dashboards/rpc-pathfinding.json @@ -31,8 +31,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(rpc_requests_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Requests / Sec [{{service_instance_id}}]" + "expr": "label_replace(rate(rpc_requests_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Requests / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -40,7 +40,86 @@ "unit": "reqps" }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Response Time", @@ -64,8 +143,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(rpc_time_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "P95 Response Time [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_time_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"P95 Response Time\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -73,18 +152,97 @@ "unit": "ms", "custom": { "axisLabel": "Latency (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Response Size", - "description": "⚠ Instrument mismatch — values unreliable. Response size is recorded through the millisecond-scaled event histogram (rpc_size_milliseconds_bucket), so byte values saturate at the top time bucket (5000) and the percentiles are not true byte sizes. A dedicated byte-unit histogram is needed to fix this; tracked separately. Treat this panel as indicative only until then.\n\n###### What this is:\n*The 95th-percentile size of RPC response payloads in bytes.*\n\n###### How it's computed:\n*95th-percentile of response payload sizes over the dashboard rate interval, per node.*\n\n###### Reading it:\n*Smaller is cheaper; large responses cost bandwidth and memory.*\n\n###### Healthy range:\n*Workload-dependent; small for status queries, large for bulk data queries.*\n\n###### Watch for:\n*Growth in large responses, consistent with expensive queries or API misuse.*\n\n###### Source:\n[ServerHandler.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/rpc/detail/ServerHandler.cpp)\n\n###### Function:\n`ServerHandler ctor`", + "description": "\u26a0 Instrument mismatch \u2014 values unreliable. Response size is recorded through the millisecond-scaled event histogram (rpc_size_milliseconds_bucket), so byte values saturate at the top time bucket (5000) and the percentiles are not true byte sizes. A dedicated byte-unit histogram is needed to fix this; tracked separately. Treat this panel as indicative only until then.\n\n###### What this is:\n*The 95th-percentile size of RPC response payloads in bytes.*\n\n###### How it's computed:\n*95th-percentile of response payload sizes over the dashboard rate interval, per node.*\n\n###### Reading it:\n*Smaller is cheaper; large responses cost bandwidth and memory.*\n\n###### Healthy range:\n*Workload-dependent; small for status queries, large for bulk data queries.*\n\n###### Watch for:\n*Growth in large responses, consistent with expensive queries or API misuse.*\n\n###### Source:\n[ServerHandler.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/rpc/detail/ServerHandler.cpp)\n\n###### Function:\n`ServerHandler ctor`", "type": "timeseries", "gridPos": { "h": 8, @@ -104,8 +262,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(rpc_size_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "P95 Response Size [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_size_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"P95 Response Size\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -113,14 +271,93 @@ "unit": "decbytes", "custom": { "axisLabel": "Size (Bytes)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Response Time Distribution", @@ -144,24 +381,24 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.9, sum by (le, service_instance_id) (rate(rpc_time_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "P90 [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.9, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_time_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"P90\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(rpc_time_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "P95 [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_time_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"P95\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.99, sum by (le, service_instance_id) (rate(rpc_time_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "P99 [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.99, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_time_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"P99\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -169,14 +406,93 @@ "unit": "ms", "custom": { "axisLabel": "Latency (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Pathfinding Fast Duration", @@ -200,8 +516,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(pathfind_fast_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "P95 Fast Pathfind [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(pathfind_fast_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"P95 Fast Pathfind\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -209,14 +525,93 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Pathfinding Full Duration", @@ -240,8 +635,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(pathfind_full_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m])))", - "legendFormat": "P95 Full Pathfind [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(pathfind_full_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[5m]))), \"series\", \"P95 Full Pathfind\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -249,14 +644,93 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Resource Warnings Rate", @@ -280,8 +754,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(warn_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Warnings / Sec [{{service_instance_id}}]" + "expr": "label_replace(rate(warn_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Warnings / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -305,7 +779,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Resource Drops Rate", @@ -329,8 +882,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(drop_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Drops / Sec [{{service_instance_id}}]" + "expr": "label_replace(rate(drop_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Drops / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -354,7 +907,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "gRPC Request Rate by Method (Spans)", @@ -378,8 +1010,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (method, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$grpc_method\", span_name=~\"grpc\\\\..*\"}[$__rate_interval]))", - "legendFormat": "{{method}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (method, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$grpc_method\", span_name=~\"grpc\\\\..*\"}[$__rate_interval])), \"series\", \"$1\", \"method\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -387,14 +1019,93 @@ "unit": "ops", "custom": { "axisLabel": "Calls / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|method)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "gRPC Latency P95 by Method (Spans)", @@ -418,8 +1129,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, method, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$grpc_method\", span_name=~\"grpc\\\\..*\"}[5m])))", - "legendFormat": "{{method}} [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, method, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$grpc_method\", span_name=~\"grpc\\\\..*\"}[5m]))), \"series\", \"$1\", \"method\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -427,14 +1138,93 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|method)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "gRPC Error Rate by Status (Spans)", @@ -458,8 +1248,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (grpc_status, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"grpc\\\\..*\", grpc_status!=\"\"}[$__rate_interval]))", - "legendFormat": "{{grpc_status}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (grpc_status, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"grpc\\\\..*\", grpc_status!=\"\"}[$__rate_interval])), \"series\", \"$1\", \"grpc_status\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -467,14 +1257,93 @@ "unit": "ops", "custom": { "axisLabel": "Calls / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|grpc_status)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Pathfinding Compute Duration (Spans)", @@ -498,8 +1367,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"pathfind.compute\"}[5m])))", - "legendFormat": "P95 Compute [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"pathfind.compute\"}[5m]))), \"series\", \"P95 Compute\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -507,18 +1376,97 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Pathfinding Request & Discovery Rate (Spans)", - "description": "###### What this is:\n*The rate of client path requests versus path-discovery passes.*\n\n###### How it's computed:\n*Per-second rates of path requests and discovery passes over 5 minutes, per node.*\n\n###### Reading it:\n*Discovery cost tracks request demand; useful for subscription-heavy nodes.*\n\n###### Healthy range:\n*Workload-dependent; both zero without pathfinding clients.*\n\n###### Watch for:\n*Discovery rate climbing out of proportion to requests, a cost driver for subscription-heavy nodes.*\n\n###### Source:\n[PathFind.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/rpc/handlers/orderbook/PathFind.cpp) · [PathRequest.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/rpc/detail/PathRequest.cpp)\n\n###### Function:\n`doPathFind ; PathRequest::findPaths`", + "description": "###### What this is:\n*The rate of client path requests versus path-discovery passes.*\n\n###### How it's computed:\n*Per-second rates of path requests and discovery passes over 5 minutes, per node.*\n\n###### Reading it:\n*Discovery cost tracks request demand; useful for subscription-heavy nodes.*\n\n###### Healthy range:\n*Workload-dependent; both zero without pathfinding clients.*\n\n###### Watch for:\n*Discovery rate climbing out of proportion to requests, a cost driver for subscription-heavy nodes.*\n\n###### Source:\n[PathFind.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/rpc/handlers/orderbook/PathFind.cpp) \u00b7 [PathRequest.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/rpc/detail/PathRequest.cpp)\n\n###### Function:\n`doPathFind ; PathRequest::findPaths`", "type": "timeseries", "gridPos": { "h": 8, @@ -538,16 +1486,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"pathfind.request\"}[$__rate_interval]))", - "legendFormat": "Requests / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"pathfind.request\"}[$__rate_interval])), \"series\", \"Requests / Sec\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"pathfind.discover\"}[$__rate_interval]))", - "legendFormat": "Discoveries / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"pathfind.discover\"}[$__rate_interval])), \"series\", \"Discoveries / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -555,14 +1503,93 @@ "unit": "ops", "custom": { "axisLabel": "Operations / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/rpc-performance.json b/docker/telemetry/grafana/dashboards/rpc-performance.json index f674cd7f17..bdca2bdb27 100644 --- a/docker/telemetry/grafana/dashboards/rpc-performance.json +++ b/docker/telemetry/grafana/dashboards/rpc-performance.json @@ -43,8 +43,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (command, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\"}[$__rate_interval]))", - "legendFormat": "{{command}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (command, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\"}[$__rate_interval])), \"series\", \"$1\", \"command\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -52,7 +52,7 @@ "unit": "reqps", "custom": { "axisLabel": "Requests / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -60,7 +60,86 @@ }, "overrides": [] }, - "id": 1 + "id": 1, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|command)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Latency P95 by Command", @@ -84,8 +163,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, command, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\"}[5m])))", - "legendFormat": "P95 {{command}} [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, command, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\"}[5m]))), \"series\", \"P95 $1\", \"command\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -93,7 +172,7 @@ "unit": "ms", "custom": { "axisLabel": "Latency (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -101,7 +180,86 @@ }, "overrides": [] }, - "id": 2 + "id": 2, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|command)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Error Rate", @@ -125,8 +283,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (command, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\", status_code=\"STATUS_CODE_ERROR\"}[$__rate_interval])) / sum by (command, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\"}[$__rate_interval])) * 100", - "legendFormat": "{{command}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (command, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\", status_code=\"STATUS_CODE_ERROR\"}[$__rate_interval])) / sum by (command, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\"}[$__rate_interval])) * 100, \"series\", \"$1\", \"command\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -151,7 +309,86 @@ }, "overrides": [] }, - "id": 3 + "id": 3, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|command)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Latency Heatmap", @@ -213,16 +450,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=\"rpc.http_request\"}[$__rate_interval]))", - "legendFormat": "rpc.http_request / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=\"rpc.http_request\"}[$__rate_interval])), \"series\", \"rpc.http_request / Sec\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=\"rpc.process\"}[$__rate_interval]))", - "legendFormat": "rpc.process / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=\"rpc.process\"}[$__rate_interval])), \"series\", \"rpc.process / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -230,7 +467,7 @@ "unit": "reqps", "custom": { "axisLabel": "Requests / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -238,7 +475,86 @@ }, "overrides": [] }, - "id": 5 + "id": 5, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Success vs Error", @@ -262,16 +578,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\", status_code=\"STATUS_CODE_OK\"}[$__rate_interval]))", - "legendFormat": "Success [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\", status_code=\"STATUS_CODE_OK\"}[$__rate_interval])), \"series\", \"Success\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\", status_code=\"STATUS_CODE_ERROR\"}[$__rate_interval]))", - "legendFormat": "Error [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\", status_code=\"STATUS_CODE_ERROR\"}[$__rate_interval])), \"series\", \"Error\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -279,7 +595,7 @@ "unit": "ops", "custom": { "axisLabel": "Commands / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -287,7 +603,86 @@ }, "overrides": [] }, - "id": 6 + "id": 6, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Top Commands by Volume", @@ -311,8 +706,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(10, sum by (command, service_instance_id) (increase(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\"}[$__rate_interval])))", - "legendFormat": "{{command}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, sum by (command, service_instance_id, xrpl_branch, xrpl_node_role) (increase(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=~\"rpc.command.*\"}[$__rate_interval]))), \"series\", \"$1\", \"command\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -321,7 +716,86 @@ }, "overrides": [] }, - "id": 7 + "id": 7, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|command)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "WebSocket Message Rate", @@ -345,8 +819,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=\"rpc.ws_message\"}[$__rate_interval]))", - "legendFormat": "WS Messages / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", command=~\"$command\", span_name=\"rpc.ws_message\"}[$__rate_interval])), \"series\", \"WS Messages / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -355,7 +829,86 @@ }, "overrides": [] }, - "id": 8 + "id": 8, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Resource Cost by Command", @@ -384,8 +937,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (load_type) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"rpc.command.*\", load_type!=\"\"}[$__rate_interval]))", - "legendFormat": "{{load_type}}" + "expr": "label_replace(sum by (load_type, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"rpc.command.*\", load_type!=\"\"}[$__rate_interval])), \"series\", \"$1\", \"load_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -393,7 +946,7 @@ "unit": "ops", "custom": { "axisLabel": "Requests / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -401,7 +954,86 @@ }, "overrides": [] }, - "id": 9 + "id": 9, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|load_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Batch vs Single RPC Requests", @@ -425,16 +1057,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"rpc.process\", is_batch=\"true\"}[$__rate_interval]))", - "legendFormat": "Batch [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"rpc.process\", is_batch=\"true\"}[$__rate_interval])), \"series\", \"Batch\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"rpc.process\", is_batch=\"false\"}[$__rate_interval]))", - "legendFormat": "Single [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"rpc.process\", is_batch=\"false\"}[$__rate_interval])), \"series\", \"Single\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -442,7 +1074,7 @@ "unit": "ops", "custom": { "axisLabel": "Requests / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -450,7 +1082,86 @@ }, "overrides": [] }, - "id": 10 + "id": 10, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "id": 12, @@ -467,7 +1178,7 @@ }, { "title": "RPC Call Rate (All Methods)", - "description": "###### What this is:\n*Overall rate of RPC method calls that started, finished, and errored, across all methods.*\n\n###### How it's computed:\n*Per-second rate of each counter over a 5-minute window, summed per node.*\n\n###### Reading it:\n*Started should closely track finished; errored should be a small fraction.*\n\n###### Healthy range:\n*Workload-dependent; started ≈ finished, errored near zero.*\n\n###### Watch for:\n*A growing gap between started and finished (calls hanging), or an errored line that rises with load.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`recordRpcStarted / recordRpcFinished / recordRpcErrored`", + "description": "###### What this is:\n*Overall rate of RPC method calls that started, finished, and errored, across all methods.*\n\n###### How it's computed:\n*Per-second rate of each counter over a 5-minute window, summed per node.*\n\n###### Reading it:\n*Started should closely track finished; errored should be a small fraction.*\n\n###### Healthy range:\n*Workload-dependent; started \u2248 finished, errored near zero.*\n\n###### Watch for:\n*A growing gap between started and finished (calls hanging), or an errored line that rises with load.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`recordRpcStarted / recordRpcFinished / recordRpcErrored`", "type": "timeseries", "gridPos": { "h": 8, @@ -487,24 +1198,24 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(rpc_method_started_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval]))", - "legendFormat": "Started/s [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_method_started_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval])), \"series\", \"Started/s\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(rpc_method_finished_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval]))", - "legendFormat": "Finished/s [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_method_finished_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval])), \"series\", \"Finished/s\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(rpc_method_errored_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval]))", - "legendFormat": "Errored/s [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_method_errored_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval])), \"series\", \"Errored/s\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -515,7 +1226,7 @@ "lineWidth": 2, "fillOpacity": 10, "axisLabel": "Operations / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -526,7 +1237,86 @@ }, "overrides": [] }, - "id": 13 + "id": 13, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Per-Method Call Rate (Top 10)", @@ -555,8 +1345,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(10, rate(rpc_method_started_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval]))", - "legendFormat": "{{method}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, rate(rpc_method_started_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval])), \"series\", \"$1\", \"method\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -567,7 +1357,7 @@ "lineWidth": 1, "fillOpacity": 5, "axisLabel": "Operations / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -578,11 +1368,90 @@ }, "overrides": [] }, - "id": 14 + "id": 14, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|method)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Per-Method Error Rate (Top 10)", - "description": "###### What this is:\n*The ten RPC methods producing the most errors.*\n\n###### How it's computed:\n*Per-second error rate over 5 minutes, per method, top ten.*\n\n###### Reading it:\n*Normally near zero; persistent errors point to a specific failing method.*\n\n###### Healthy range:\n*Near zero for well-behaved traffic.*\n\n###### Watch for:\n*Sustained errors concentrated on one method — a broken client, a bad input, or probing.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`recordRpcErrored`", + "description": "###### What this is:\n*The ten RPC methods producing the most errors.*\n\n###### How it's computed:\n*Per-second error rate over 5 minutes, per method, top ten.*\n\n###### Reading it:\n*Normally near zero; persistent errors point to a specific failing method.*\n\n###### Healthy range:\n*Near zero for well-behaved traffic.*\n\n###### Watch for:\n*Sustained errors concentrated on one method \u2014 a broken client, a bad input, or probing.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`recordRpcErrored`", "type": "timeseries", "gridPos": { "h": 8, @@ -607,8 +1476,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(10, rate(rpc_method_errored_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval]))", - "legendFormat": "{{method}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, rate(rpc_method_errored_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval])), \"series\", \"$1\", \"method\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -619,7 +1488,7 @@ "lineWidth": 1, "fillOpacity": 5, "axisLabel": "Operations / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -630,11 +1499,90 @@ }, "overrides": [] }, - "id": 15 + "id": 15, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|method)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Latency - All Methods", - "description": "###### What this is:\n*Aggregate RPC handler latency across all methods (p75 and p99).*\n\n###### How it's computed:\n*Percentiles of the method-duration histogram over a 5-minute window.*\n\n###### Reading it:\n*p75 reflects typical responsiveness; p99 captures the slow tail.*\n\n###### Healthy range:\n*Sub-millisecond to low-millisecond for light commands; heavier commands run longer.*\n\n###### Watch for:\n*A rising p99 while p75 stays flat — a subset of calls degrading, often from expensive queries.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`recordRpcFinished`", + "description": "###### What this is:\n*Aggregate RPC handler latency across all methods (p75 and p99).*\n\n###### How it's computed:\n*Percentiles of the method-duration histogram over a 5-minute window.*\n\n###### Reading it:\n*p75 reflects typical responsiveness; p99 captures the slow tail.*\n\n###### Healthy range:\n*Sub-millisecond to low-millisecond for light commands; heavier commands run longer.*\n\n###### Watch for:\n*A rising p99 while p75 stays flat \u2014 a subset of calls degrading, often from expensive queries.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`recordRpcFinished`", "type": "timeseries", "gridPos": { "h": 8, @@ -654,27 +1602,27 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.75, sum by (le, service_instance_id) (rate(rpc_method_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[5m])))", - "legendFormat": "p75 [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.75, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_method_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[5m]))), \"series\", \"p75\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.99, sum by (le, service_instance_id) (rate(rpc_method_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[5m])))", - "legendFormat": "p99 [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.99, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_method_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[5m]))), \"series\", \"p99\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { "defaults": { - "unit": "µs", + "unit": "\u00b5s", "custom": { "drawStyle": "line", "lineWidth": 2, "fillOpacity": 5, - "axisLabel": "Duration (μs)", - "spanNulls": true, + "axisLabel": "Duration (\u03bcs)", + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -685,7 +1633,86 @@ }, "overrides": [] }, - "id": 16 + "id": 16, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Per-Method Latency (p99, Top 10 Slowest)", @@ -714,19 +1741,19 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(10, histogram_quantile(0.99, sum by (le, method, service_instance_id) (rate(rpc_method_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[5m]))))", - "legendFormat": "{{method}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, histogram_quantile(0.99, sum by (le, method, service_instance_id, xrpl_branch, xrpl_node_role) (rate(rpc_method_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[5m])))), \"series\", \"$1\", \"method\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { "defaults": { - "unit": "µs", + "unit": "\u00b5s", "custom": { "drawStyle": "line", "lineWidth": 1, "fillOpacity": 5, - "axisLabel": "Duration (μs)", - "spanNulls": true, + "axisLabel": "Duration (\u03bcs)", + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -737,11 +1764,90 @@ }, "overrides": [] }, - "id": 17 + "id": 17, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|method)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "RPC Error Ratio by Method", - "description": "###### What this is:\n*The methods with the highest error rates, for spotting failure hotspots.*\n\n###### How it's computed:\n*Per-second error rate over 5 minutes, per method, top ten.*\n\n###### Reading it:\n*Highlights where failures concentrate.*\n\n###### Healthy range:\n*Near zero.*\n\n###### Watch for:\n*One method with a persistently high error rate — malformed requests or targeted probing.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`recordRpcErrored`", + "description": "###### What this is:\n*The methods with the highest error rates, for spotting failure hotspots.*\n\n###### How it's computed:\n*Per-second error rate over 5 minutes, per method, top ten.*\n\n###### Reading it:\n*Highlights where failures concentrate.*\n\n###### Healthy range:\n*Near zero.*\n\n###### Watch for:\n*One method with a persistently high error rate \u2014 malformed requests or targeted probing.*\n\n###### Source:\n[MetricsRegistry.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/telemetry/MetricsRegistry.cpp)\n\n###### Function:\n`recordRpcErrored`", "type": "timeseries", "gridPos": { "h": 8, @@ -766,8 +1872,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "topk(10, rate(rpc_method_errored_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval]) / (rate(rpc_method_started_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval]) > 0))", - "legendFormat": "{{method}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, rate(rpc_method_errored_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval]) / (rate(rpc_method_started_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[$__rate_interval]) > 0)), \"series\", \"$1\", \"method\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -780,7 +1886,7 @@ "lineWidth": 1, "fillOpacity": 5, "axisLabel": "Error Ratio", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -807,7 +1913,86 @@ }, "overrides": [] }, - "id": 18 + "id": 18, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|method)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Current RPC Latency (p99 Gauge)", @@ -835,13 +2020,13 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.99, sum by (le) (rate(rpc_method_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[5m])))", - "legendFormat": "p99 Latency" + "expr": "label_replace(histogram_quantile(0.99, sum by (le, xrpl_branch, xrpl_node_role) (rate(rpc_method_us_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", method=~\"$method\"}[5m]))), \"series\", \"p99 Latency\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { "defaults": { - "unit": "µs", + "unit": "\u00b5s", "min": 0, "thresholds": { "mode": "absolute", @@ -863,7 +2048,86 @@ }, "overrides": [] }, - "id": 19 + "id": 19, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, @@ -1006,7 +2270,7 @@ { "name": "node", "label": "Node", - "description": "Filter by rippled node (service.instance.id — e.g. Node-1)", + "description": "Filter by rippled node (service.instance.id \u2014 e.g. Node-1)", "type": "query", "query": "label_values(target_info, service_instance_id)", "datasource": { diff --git a/docker/telemetry/grafana/dashboards/transaction-overview.json b/docker/telemetry/grafana/dashboards/transaction-overview.json index dfb6d68a9c..a183b27354 100644 --- a/docker/telemetry/grafana/dashboards/transaction-overview.json +++ b/docker/telemetry/grafana/dashboards/transaction-overview.json @@ -10,7 +10,7 @@ "panels": [ { "title": "Transaction Apply Failed Rate", - "description": "###### What this is:\n*Transactions that fail during the apply (transactor) stage, per second — i.e. the transactor ran but the result was not tesSUCCESS.*\n\n###### How it's computed:\n*Per-second rate of tx.transactor spans at the apply stage whose ter_result is not tesSUCCESS, over the dashboard rate interval, per node.*\n\n###### Reading it:\n*A steady low background is normal (tefPAST_SEQ, tecUNFUNDED, etc.); the transactor legitimately rejects many transactions.*\n\n###### Healthy range:\n*A low, stable rate; workload-dependent.*\n\n###### Watch for:\n*A sharp rise above baseline, which points to a submission pattern that is systematically failing at apply.*\n\n###### Source:\n[Transactor.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/app/tx/detail/Transactor.cpp)\n\n###### Function:\n`Transactor::operator()`", + "description": "###### What this is:\n*Transactions that fail during the apply (transactor) stage, per second \u2014 i.e. the transactor ran but the result was not tesSUCCESS.*\n\n###### How it's computed:\n*Per-second rate of tx.transactor spans at the apply stage whose ter_result is not tesSUCCESS, over the dashboard rate interval, per node.*\n\n###### Reading it:\n*A steady low background is normal (tefPAST_SEQ, tecUNFUNDED, etc.); the transactor legitimately rejects many transactions.*\n\n###### Healthy range:\n*A low, stable rate; workload-dependent.*\n\n###### Watch for:\n*A sharp rise above baseline, which points to a submission pattern that is systematically failing at apply.*\n\n###### Source:\n[Transactor.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/app/tx/detail/Transactor.cpp)\n\n###### Function:\n`Transactor::operator()`", "type": "stat", "gridPos": { "h": 4, @@ -31,8 +31,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.transactor\", stage=\"apply\", ter_result!~\"tesSUCCESS|\"}[$__rate_interval]))", - "legendFormat": "Failed / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.transactor\", stage=\"apply\", ter_result!~\"tesSUCCESS|\"}[$__rate_interval])), \"series\", \"Failed / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -57,7 +57,86 @@ }, "overrides": [] }, - "id": 1 + "id": 1, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Processing Latency by Type", @@ -87,8 +166,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, tx_type, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.process\", tx_type=~\"$tx_type\"}[5m])))", - "legendFormat": "{{tx_type}} [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, tx_type, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.process\", tx_type=~\"$tx_type\"}[5m]))), \"series\", \"$1\", \"tx_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -96,7 +175,7 @@ "unit": "ms", "custom": { "axisLabel": "Latency (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -104,7 +183,86 @@ }, "overrides": [] }, - "id": 2 + "id": 2, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|tx_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Rate by Type", @@ -134,8 +292,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (tx_type, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.process\", tx_type=~\"$tx_type\"}[$__rate_interval]))", - "legendFormat": "{{tx_type}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (tx_type, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.process\", tx_type=~\"$tx_type\"}[$__rate_interval])), \"series\", \"$1\", \"tx_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -143,7 +301,7 @@ "unit": "ops", "custom": { "axisLabel": "TX / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -151,7 +309,86 @@ }, "overrides": [] }, - "id": 3 + "id": 3, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|tx_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Results by Type", @@ -181,8 +418,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (tx_type, ter_result, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.process\", tx_type=~\"$tx_type\", ter_result=~\"$ter_result\", ter_result!=\"tesSUCCESS\"}[$__rate_interval]))", - "legendFormat": "{{tx_type}} [{{ter_result}}, {{service_instance_id}}]" + "expr": "sum by (tx_type, ter_result, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.process\", tx_type=~\"$tx_type\", ter_result=~\"$ter_result\", ter_result!=\"tesSUCCESS\"}[$__rate_interval]))", + "legendFormat": "{{tx_type}} [{{ter_result}}, {{service_instance_id}}] [{{xrpl_branch}}, {{xrpl_node_role}}]" } ], "fieldConfig": { @@ -190,7 +427,7 @@ "unit": "ops", "custom": { "axisLabel": "Failed TX / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -223,8 +460,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (suppressed, service_instance_id) (rate(span_calls_total{span_name=\"tx.receive\", tx_type=~\"$tx_type\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "Suppressed [{{suppressed}}, {{service_instance_id}}]" + "expr": "label_replace(sum by (suppressed, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{span_name=\"tx.receive\", tx_type=~\"$tx_type\", service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"Suppressed [$1\", \"suppressed\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -232,7 +469,7 @@ "unit": "ops", "custom": { "axisLabel": "Transactions / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -240,7 +477,86 @@ }, "overrides": [] }, - "id": 5 + "id": 5, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|suppressed)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Processing Rate", @@ -265,16 +581,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.process\", tx_type=~\"$tx_type\"}[$__rate_interval]))", - "legendFormat": "tx.process / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.process\", tx_type=~\"$tx_type\"}[$__rate_interval])), \"series\", \"tx.process / Sec\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.receive\", tx_type=~\"$tx_type\"}[$__rate_interval]))", - "legendFormat": "tx.receive / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.receive\", tx_type=~\"$tx_type\"}[$__rate_interval])), \"series\", \"tx.receive / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -282,7 +598,7 @@ "unit": "ops", "custom": { "axisLabel": "Transactions / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -290,7 +606,86 @@ }, "overrides": [] }, - "id": 6 + "id": 6, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Path Distribution", @@ -321,11 +716,90 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (local, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", local=~\"$tx_origin\", span_name=\"tx.process\", tx_type=~\"$tx_type\"}[$__rate_interval]))", - "legendFormat": "Local [{{local}}, {{service_instance_id}}]" + "expr": "label_replace(sum by (local, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", local=~\"$tx_origin\", span_name=\"tx.process\", tx_type=~\"$tx_type\"}[$__rate_interval])), \"series\", \"Local [$1\", \"local\", \"(.*)\")", + "legendFormat": "__auto" } ], - "id": 7 + "id": 7, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|local)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Transaction Processing Duration Heatmap", @@ -394,8 +868,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, tx_type, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.transactor\", tx_type=~\"$tx_type\"}[5m])))", - "legendFormat": "{{tx_type}} [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, tx_type, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.transactor\", tx_type=~\"$tx_type\"}[5m]))), \"series\", \"$1\", \"tx_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -403,7 +877,7 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -411,7 +885,86 @@ }, "overrides": [] }, - "id": 10 + "id": 10, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|tx_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "TxQ Accept: Applied Ratio per Node (State Timeline)", @@ -429,17 +982,12 @@ "alignValue": "center", "rowHeight": 0.85, "tooltip": { - "mode": "multi", - "sort": "desc", - "maxHeight": 500 + "mode": "single" }, "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true - }, - "tooltip": { - "mode": "single" } }, "targets": [ @@ -464,9 +1012,18 @@ "thresholds": { "mode": "absolute", "steps": [ - { "color": "red", "value": 0 }, - { "color": "yellow", "value": 0.7 }, - { "color": "green", "value": 0.9 } + { + "color": "red", + "value": 0 + }, + { + "color": "yellow", + "value": 0.7 + }, + { + "color": "green", + "value": 0.9 + } ] }, "custom": { @@ -506,8 +1063,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "label_replace(label_replace(label_replace(histogram_quantile(0.95, sum by (le, stage, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"tx.preflight|tx.preclaim|tx.transactor\", stage=~\"$stage\"}[5m]))), \"stage\", \"Preflight\", \"stage\", \"preflight\"), \"stage\", \"Preclaim\", \"stage\", \"preclaim\"), \"stage\", \"Apply\", \"stage\", \"apply\")", - "legendFormat": "{{stage}} [{{service_instance_id}}]" + "expr": "label_replace(label_replace(label_replace(label_replace(histogram_quantile(0.95, sum by (le, stage, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"tx.preflight|tx.preclaim|tx.transactor\", stage=~\"$stage\"}[5m]))), \"stage\", \"Preflight\", \"stage\", \"preflight\"), \"stage\", \"Preclaim\", \"stage\", \"preclaim\"), \"stage\", \"Apply\", \"stage\", \"apply\"), \"series\", \"$1\", \"stage\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -515,7 +1072,7 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -523,7 +1080,86 @@ }, "overrides": [] }, - "id": 12 + "id": 12, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|stage)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Tx Apply Pipeline Failure Rate by Stage", @@ -553,8 +1189,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "label_replace(label_replace(label_replace(sum by (stage, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"tx.preflight|tx.preclaim|tx.transactor\", stage=~\"$stage\", ter_result!~\"tesSUCCESS|\"}[$__rate_interval])), \"stage\", \"Preflight\", \"stage\", \"preflight\"), \"stage\", \"Preclaim\", \"stage\", \"preclaim\"), \"stage\", \"Apply\", \"stage\", \"apply\")", - "legendFormat": "{{stage}} [{{service_instance_id}}]" + "expr": "label_replace(label_replace(label_replace(label_replace(sum by (stage, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"tx.preflight|tx.preclaim|tx.transactor\", stage=~\"$stage\", ter_result!~\"tesSUCCESS|\"}[$__rate_interval])), \"stage\", \"Preflight\", \"stage\", \"preflight\"), \"stage\", \"Preclaim\", \"stage\", \"preclaim\"), \"stage\", \"Apply\", \"stage\", \"apply\"), \"series\", \"$1\", \"stage\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -562,7 +1198,7 @@ "unit": "ops", "custom": { "axisLabel": "Failed Spans / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -570,7 +1206,86 @@ }, "overrides": [] }, - "id": 13 + "id": 13, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|stage)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Tx Apply Pipeline Latency by Type and Stage (p95)", @@ -600,8 +1315,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "label_replace(label_replace(label_replace(histogram_quantile(0.95, sum by (le, tx_type, stage, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"tx.preflight|tx.preclaim|tx.transactor\", tx_type=~\"$tx_type\", stage=~\"$stage\"}[5m]))), \"stage\", \"Preflight\", \"stage\", \"preflight\"), \"stage\", \"Preclaim\", \"stage\", \"preclaim\"), \"stage\", \"Apply\", \"stage\", \"apply\")", - "legendFormat": "{{tx_type}} [{{stage}}, {{service_instance_id}}]" + "expr": "label_replace(label_replace(label_replace(histogram_quantile(0.95, sum by (le, tx_type, stage, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=~\"tx.preflight|tx.preclaim|tx.transactor\", tx_type=~\"$tx_type\", stage=~\"$stage\"}[5m]))), \"stage\", \"Preflight\", \"stage\", \"preflight\"), \"stage\", \"Preclaim\", \"stage\", \"preclaim\"), \"stage\", \"Apply\", \"stage\", \"apply\")", + "legendFormat": "{{tx_type}} [{{stage}}, {{service_instance_id}}] [{{xrpl_branch}}, {{xrpl_node_role}}]" } ], "fieldConfig": { @@ -609,7 +1324,7 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -642,8 +1357,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.apply\"}[5m])))", - "legendFormat": "tx.apply [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"tx.apply\"}[5m]))), \"series\", \"tx.apply\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -651,7 +1366,7 @@ "unit": "ms", "custom": { "axisLabel": "Latency (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -659,7 +1374,86 @@ }, "overrides": [] }, - "id": 15 + "id": 15, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "TxQ Enqueue Rate by Transaction Type", @@ -684,8 +1478,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (tx_type, service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.enqueue\"}[$__rate_interval]))", - "legendFormat": "{{tx_type}} [{{service_instance_id}}]" + "expr": "label_replace(sum by (tx_type, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.enqueue\"}[$__rate_interval])), \"series\", \"$1\", \"tx_type\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -693,7 +1487,7 @@ "unit": "ops", "custom": { "axisLabel": "Enqueues / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -701,7 +1495,86 @@ }, "overrides": [] }, - "id": 16 + "id": 16, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le|tx_type)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Queue Bypass Ratio (Direct Apply vs Enqueue)", @@ -726,8 +1599,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.apply_direct\"}[$__rate_interval])) / clamp_min(sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.apply_direct\"}[$__rate_interval])) + sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.enqueue\"}[$__rate_interval])), 1)", - "legendFormat": "Direct-Apply Fraction [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.apply_direct\"}[$__rate_interval])) / clamp_min(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.apply_direct\"}[$__rate_interval])) + sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.enqueue\"}[$__rate_interval])), 1), \"series\", \"Direct-Apply Fraction\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -735,7 +1608,7 @@ "unit": "percentunit", "custom": { "axisLabel": "Bypass Fraction", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -743,7 +1616,86 @@ }, "overrides": [] }, - "id": 18 + "id": 18, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Queue Accept (Drain) Duration per Ledger", @@ -768,8 +1720,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "histogram_quantile(0.95, sum by (le, service_instance_id) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.accept\"}[5m])))", - "legendFormat": "Drain [{{service_instance_id}}]" + "expr": "label_replace(histogram_quantile(0.95, sum by (le, service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_duration_milliseconds_bucket{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.accept\"}[5m]))), \"series\", \"Drain\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -777,7 +1729,7 @@ "unit": "ms", "custom": { "axisLabel": "Duration (ms)", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -785,7 +1737,86 @@ }, "overrides": [] }, - "id": 19 + "id": 19, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Queue Cleanup Rate (Expired Entries)", @@ -810,8 +1841,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "sum by (service_instance_id) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.cleanup\"}[$__rate_interval]))", - "legendFormat": "Cleanups / Sec [{{service_instance_id}}]" + "expr": "label_replace(sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(span_calls_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", span_name=\"txq.cleanup\"}[$__rate_interval])), \"series\", \"Cleanups / Sec\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -819,7 +1850,7 @@ "unit": "ops", "custom": { "axisLabel": "Cleanups / Sec", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -827,7 +1858,86 @@ }, "overrides": [] }, - "id": 20 + "id": 20, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/validator-health.json b/docker/telemetry/grafana/dashboards/validator-health.json index 406c43669d..56a1a6a54a 100644 --- a/docker/telemetry/grafana/dashboards/validator-health.json +++ b/docker/telemetry/grafana/dashboards/validator-health.json @@ -43,8 +43,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validation_agreement{metric=\"agreement_pct_1h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Agreement 1h [{{service_instance_id}}]" + "expr": "label_replace(validation_agreement{metric=\"agreement_pct_1h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Agreement 1h\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -71,7 +71,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Agreement % (24h)", @@ -95,8 +174,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validation_agreement{metric=\"agreement_pct_24h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Agreement 24h [{{service_instance_id}}]" + "expr": "label_replace(validation_agreement{metric=\"agreement_pct_24h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Agreement 24h\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -123,7 +202,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Agreements vs Missed (1h)", @@ -149,16 +307,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validation_agreement{metric=\"agreements_1h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Agreements 1h [{{service_instance_id}}]" + "expr": "label_replace(validation_agreement{metric=\"agreements_1h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Agreements 1h\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validation_agreement{metric=\"missed_1h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Missed 1h [{{service_instance_id}}]" + "expr": "label_replace(validation_agreement{metric=\"missed_1h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Missed 1h\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -191,7 +349,86 @@ ] } ] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Agreements vs Missed (24h)", @@ -217,16 +454,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validation_agreement{metric=\"agreements_24h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Agreements 24h [{{service_instance_id}}]" + "expr": "label_replace(validation_agreement{metric=\"agreements_24h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Agreements 24h\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validation_agreement{metric=\"missed_24h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Missed 24h [{{service_instance_id}}]" + "expr": "label_replace(validation_agreement{metric=\"missed_24h\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Missed 24h\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -259,7 +496,86 @@ ] } ] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Validation Rates", @@ -295,8 +611,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validations_sent_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60", - "legendFormat": "Sent/min [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_sent_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60, \"series\", \"Sent/min\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -321,7 +637,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Validations Checked Rate", @@ -345,8 +740,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validations_checked_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60", - "legendFormat": "Checked/min [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_checked_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60, \"series\", \"Checked/min\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -355,7 +750,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Amendment Blocked", @@ -379,8 +853,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validator_health{metric=\"amendment_blocked\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Blocked [{{service_instance_id}}]" + "expr": "label_replace(validator_health{metric=\"amendment_blocked\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Blocked\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -421,7 +895,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "UNL Expiry (days)", @@ -445,8 +998,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validator_health{metric=\"unl_expiry_days\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "UNL Expiry [{{service_instance_id}}]" + "expr": "label_replace(validator_health{metric=\"unl_expiry_days\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"UNL Expiry\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -471,7 +1024,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "UNL Blocked", @@ -495,8 +1127,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validator_health{metric=\"unl_blocked\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "UNL Blocked [{{service_instance_id}}]" + "expr": "label_replace(validator_health{metric=\"unl_blocked\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"UNL Blocked\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -537,7 +1169,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Agreement/Missed Counters (Rate)", @@ -561,16 +1272,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validation_agreements_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60", - "legendFormat": "Agreements/min [{{service_instance_id}}]" + "expr": "label_replace(rate(validation_agreements_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60, \"series\", \"Agreements/min\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(validation_missed_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60", - "legendFormat": "Missed/min [{{service_instance_id}}]" + "expr": "label_replace(rate(validation_missed_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60, \"series\", \"Missed/min\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -581,7 +1292,7 @@ "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -607,7 +1318,86 @@ ] } ] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Server State & Consensus", @@ -643,8 +1433,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validator_health{metric=\"validation_quorum\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Quorum [{{service_instance_id}}]" + "expr": "label_replace(validator_health{metric=\"validation_quorum\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Quorum\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -653,7 +1443,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "State Value Timeline", @@ -677,8 +1546,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "state_tracking{metric=\"state_value\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "State [{{service_instance_id}}]" + "expr": "label_replace(state_tracking{metric=\"state_value\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"State\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -689,7 +1558,7 @@ "drawStyle": "line", "lineWidth": 2, "fillOpacity": 10, - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -699,7 +1568,86 @@ } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Time in Current State", @@ -723,8 +1671,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "state_tracking{metric=\"time_in_current_state_seconds\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Time in State [{{service_instance_id}}]" + "expr": "label_replace(state_tracking{metric=\"time_in_current_state_seconds\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Time in State\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -733,7 +1681,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "State Changes Rate", @@ -757,8 +1784,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "3600 * sum by (service_instance_id) (rate(state_changes_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]))", - "legendFormat": "Changes/hr [{{service_instance_id}}]" + "expr": "label_replace(3600 * sum by (service_instance_id, xrpl_branch, xrpl_node_role) (rate(state_changes_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])), \"series\", \"Changes/hr\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -783,7 +1810,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Ledgers Closed Rate", @@ -807,8 +1913,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "rate(ledgers_closed_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60", - "legendFormat": "Closed/min [{{service_instance_id}}]" + "expr": "label_replace(rate(ledgers_closed_total{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]) * 60, \"series\", \"Closed/min\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -833,7 +1939,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Agreement % (7d)", @@ -857,8 +2042,8 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validation_agreement{metric=\"agreement_pct_7d\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Agreement 7d [{{service_instance_id}}]" + "expr": "label_replace(validation_agreement{metric=\"agreement_pct_7d\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Agreement 7d\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -885,7 +2070,86 @@ "custom": {} }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Agreements vs Missed (7d)", @@ -909,16 +2173,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validation_agreement{metric=\"agreements_7d\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Agreements 7d [{{service_instance_id}}]" + "expr": "label_replace(validation_agreement{metric=\"agreements_7d\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Agreements 7d\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "expr": "validation_agreement{metric=\"missed_7d\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Missed 7d [{{service_instance_id}}]" + "expr": "label_replace(validation_agreement{metric=\"missed_7d\",service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Missed 7d\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -926,14 +2190,93 @@ "unit": "short", "custom": { "axisLabel": "Count", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 } }, "overrides": [] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|le)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39,