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) <noreply@anthropic.com>
This commit is contained in:
Pratik Mankawde
2026-07-14 11:30:00 +01:00
parent cb1ca17442
commit cc4104b565
14 changed files with 15630 additions and 1038 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -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,

View File

@@ -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,

File diff suppressed because it is too large Load Diff

View File

@@ -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": {

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -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": {

View File

@@ -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,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff