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 injects its curated name via
label_replace(...,"series",...) and uses the "__auto" legend, which shows
only labels that vary across the displayed series. A word-boundary-anchored
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 surface the quantile via the panel title (q$quantile),
since {{quantile}} is a dashboard variable, not a series label.

Timeseries panels 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 12:18:04 +01:00
parent 1a2b210214
commit f8bc8dee48
14 changed files with 15644 additions and 1052 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -30,15 +30,15 @@
"datasource": {
"type": "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"
},
"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": {
@@ -48,14 +48,94 @@
"axisLabel": "Transactions",
"drawStyle": "line",
"lineWidth": 2,
"fillOpacity": 10
"fillOpacity": 10,
"spanNulls": 1800000
},
"color": {
"mode": "palette-classic"
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Transactions Per Ledger",
@@ -78,15 +158,15 @@
"datasource": {
"type": "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"
},
"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": {
@@ -96,14 +176,94 @@
"axisLabel": "Transactions",
"drawStyle": "line",
"lineWidth": 2,
"fillOpacity": 10
"fillOpacity": 10,
"spanNulls": 1800000
},
"color": {
"mode": "palette-classic"
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Fee Escalation Levels",
@@ -126,29 +286,29 @@
"datasource": {
"type": "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"
},
"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"
},
"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"
},
"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": {
@@ -162,14 +322,94 @@
"scaleDistribution": {
"type": "log",
"log": 2
}
},
"spanNulls": 1800000
},
"color": {
"mode": "palette-classic"
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Load Factor Breakdown",
@@ -192,29 +432,29 @@
"datasource": {
"type": "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"
},
"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"
},
"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"
},
"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": {
@@ -224,7 +464,8 @@
"axisLabel": "Multiplier",
"drawStyle": "line",
"lineWidth": 2,
"fillOpacity": 5
"fillOpacity": 5,
"spanNulls": 1800000
},
"color": {
"mode": "palette-classic"
@@ -247,7 +488,86 @@
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Load Factor Components",
@@ -270,22 +590,22 @@
"datasource": {
"type": "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"
},
"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"
},
"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": {
@@ -295,14 +615,94 @@
"axisLabel": "Multiplier",
"drawStyle": "line",
"lineWidth": 2,
"fillOpacity": 5
"fillOpacity": 5,
"spanNulls": 1800000
},
"color": {
"mode": "palette-classic"
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type)=\"[^\"]*\",?\\s*/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g",
"renamePattern": "$1 [$2, $4]-[$3, $5]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/,\\s*\\]/g",
"renamePattern": "]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[,\\s*/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]-\\[/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/-\\[\\]/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]\\s*$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s*\\[\\]\\s*$/g",
"renamePattern": "all"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\s{2,}/g",
"renamePattern": " "
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s+|\\s+$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^$/g",
"renamePattern": "all"
}
}
]
},
{
"title": "Queue Abandonment Rate (Expired)",
@@ -325,8 +725,8 @@
"datasource": {
"type": "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": {
@@ -334,14 +734,93 @@
"unit": "ops",
"custom": {
"axisLabel": "Expired / Sec",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type)=\"[^\"]*\",?\\s*/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g",
"renamePattern": "$1 [$2, $4]-[$3, $5]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/,\\s*\\]/g",
"renamePattern": "]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[,\\s*/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]-\\[/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/-\\[\\]/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]\\s*$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s*\\[\\]\\s*$/g",
"renamePattern": "all"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\s{2,}/g",
"renamePattern": " "
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s+|\\s+$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^$/g",
"renamePattern": "all"
}
}
]
},
{
"title": "Queue Admission Rejections (Dropped)",
@@ -364,8 +843,8 @@
"datasource": {
"type": "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": {
@@ -373,14 +852,93 @@
"unit": "ops",
"custom": {
"axisLabel": "Dropped / Sec",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|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

@@ -34,20 +34,20 @@
"datasource": {
"type": "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"
},
"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",
@@ -69,7 +69,86 @@
},
"overrides": []
},
"id": 1
"id": 1,
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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 Throughput Rate (Per Second)",
@@ -92,22 +171,22 @@
"datasource": {
"type": "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"
},
"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"
},
"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": {
@@ -118,7 +197,7 @@
"lineWidth": 2,
"fillOpacity": 10,
"axisLabel": "Operations / Sec",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
@@ -129,7 +208,86 @@
},
"overrides": []
},
"id": 2
"id": 2,
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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 Queued Rate",
@@ -157,8 +315,8 @@
"datasource": {
"type": "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": {
@@ -169,7 +327,7 @@
"lineWidth": 1,
"fillOpacity": 5,
"axisLabel": "Operations / Sec",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
@@ -180,7 +338,86 @@
},
"overrides": []
},
"id": 3
"id": 3,
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|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",
@@ -208,8 +445,8 @@
"datasource": {
"type": "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": {
@@ -220,7 +457,7 @@
"lineWidth": 1,
"fillOpacity": 5,
"axisLabel": "Operations / Sec",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
@@ -231,7 +468,86 @@
},
"overrides": []
},
"id": 4
"id": 4,
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|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",
@@ -254,26 +570,26 @@
"datasource": {
"type": "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"
},
"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
@@ -284,7 +600,86 @@
},
"overrides": []
},
"id": 5
"id": 5,
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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 Execution Time",
@@ -307,26 +702,26 @@
"datasource": {
"type": "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"
},
"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
@@ -337,7 +732,86 @@
},
"overrides": []
},
"id": 6
"id": 6,
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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 Execution Time (p99)",
@@ -365,19 +839,19 @@
"datasource": {
"type": "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
@@ -388,11 +862,90 @@
},
"overrides": []
},
"id": 7
"id": 7,
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|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,
@@ -411,8 +964,8 @@
"datasource": {
"type": "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": {
@@ -439,7 +992,7 @@
"drawStyle": "line",
"lineWidth": 2,
"fillOpacity": 10,
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
@@ -450,7 +1003,86 @@
},
"overrides": []
},
"id": 8
"id": 8,
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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"
}
}
]
}
],
"schemaVersion": 39,

File diff suppressed because it is too large Load Diff

View File

@@ -29,8 +29,8 @@
"datasource": {
"type": "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": {
@@ -38,7 +38,86 @@
"unit": "ops"
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type)=\"[^\"]*\",?\\s*/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g",
"renamePattern": "$1 [$2, $4]-[$3, $5]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/,\\s*\\]/g",
"renamePattern": "]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[,\\s*/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]-\\[/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/-\\[\\]/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]\\s*$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s*\\[\\]\\s*$/g",
"renamePattern": "all"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\s{2,}/g",
"renamePattern": " "
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s+|\\s+$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^$/g",
"renamePattern": "all"
}
}
]
},
{
"title": "Ledger Build Duration",
@@ -61,8 +140,8 @@
"datasource": {
"type": "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": {
@@ -70,14 +149,93 @@
"unit": "ms",
"custom": {
"axisLabel": "Duration (ms)",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type)=\"[^\"]*\",?\\s*/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g",
"renamePattern": "$1 [$2, $4]-[$3, $5]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/,\\s*\\]/g",
"renamePattern": "]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[,\\s*/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]-\\[/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/-\\[\\]/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]\\s*$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s*\\[\\]\\s*$/g",
"renamePattern": "all"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\s{2,}/g",
"renamePattern": " "
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s+|\\s+$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^$/g",
"renamePattern": "all"
}
}
]
},
{
"title": "Ledger Validation Rate",
@@ -100,8 +258,8 @@
"datasource": {
"type": "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": {
@@ -109,7 +267,86 @@
"unit": "ops"
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type)=\"[^\"]*\",?\\s*/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g",
"renamePattern": "$1 [$2, $4]-[$3, $5]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/,\\s*\\]/g",
"renamePattern": "]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[,\\s*/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]-\\[/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/-\\[\\]/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]\\s*$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s*\\[\\]\\s*$/g",
"renamePattern": "all"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\s{2,}/g",
"renamePattern": " "
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s+|\\s+$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^$/g",
"renamePattern": "all"
}
}
]
},
{
"title": "Ledger Build Duration Heatmap",
@@ -168,8 +405,8 @@
"datasource": {
"type": "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": {
@@ -177,14 +414,93 @@
"unit": "ms",
"custom": {
"axisLabel": "Duration (ms)",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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 Apply Rate",
@@ -207,8 +523,8 @@
"datasource": {
"type": "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": {
@@ -216,14 +532,93 @@
"unit": "ops",
"custom": {
"axisLabel": "Operations / Sec",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type)=\"[^\"]*\",?\\s*/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g",
"renamePattern": "$1 [$2, $4]-[$3, $5]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/,\\s*\\]/g",
"renamePattern": "]"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[,\\s*/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]-\\[/g",
"renamePattern": "["
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/-\\[\\]/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\[\\]\\s*$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s*\\[\\]\\s*$/g",
"renamePattern": "all"
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/\\s{2,}/g",
"renamePattern": " "
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^\\s+|\\s+$/g",
"renamePattern": ""
}
},
{
"id": "renameByRegex",
"options": {
"regex": "/^$/g",
"renamePattern": "all"
}
}
]
},
{
"title": "Ledger Store Rate",
@@ -246,8 +641,8 @@
"datasource": {
"type": "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": {
@@ -255,11 +650,90 @@
"unit": "ops"
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "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,
@@ -278,15 +752,15 @@
"datasource": {
"type": "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"
},
"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": {
@@ -294,14 +768,93 @@
"unit": "ms",
"custom": {
"axisLabel": "Duration (ms)",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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"
}
}
]
}
],
"schemaVersion": 39,
@@ -431,7 +984,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 it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -30,8 +30,8 @@
"datasource": {
"type": "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": {
@@ -39,14 +39,93 @@
"unit": "ops",
"custom": {
"axisLabel": "Proposals / Sec",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Peer Validation Receive Rate",
@@ -69,8 +148,8 @@
"datasource": {
"type": "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": {
@@ -78,14 +157,93 @@
"unit": "ops",
"custom": {
"axisLabel": "Validations / Sec",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Proposals Trusted vs Untrusted",
@@ -108,8 +266,8 @@
"datasource": {
"type": "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": {
@@ -117,7 +275,86 @@
"unit": "ops"
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|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",
@@ -140,8 +377,8 @@
"datasource": {
"type": "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": {
@@ -149,7 +386,86 @@
"unit": "ops"
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|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",
@@ -172,22 +488,22 @@
"datasource": {
"type": "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"
},
"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"
},
"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": {
@@ -195,14 +511,93 @@
"unit": "short",
"custom": {
"axisLabel": "Peer Count",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Reduce-Relay Missing-Tx Frequency",
@@ -225,8 +620,8 @@
"datasource": {
"type": "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": {
@@ -234,14 +629,93 @@
"unit": "short",
"custom": {
"axisLabel": "Frequency",
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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"
}
}
]
}
],
"schemaVersion": 39,
@@ -371,7 +845,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

@@ -30,8 +30,8 @@
"datasource": {
"type": "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": {
@@ -42,7 +42,7 @@
"drawStyle": "line",
"lineWidth": 2,
"fillOpacity": 10,
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
@@ -68,7 +68,86 @@
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Insane/Diverged Peers",
@@ -91,8 +170,8 @@
"datasource": {
"type": "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": {
@@ -117,7 +196,86 @@
"custom": {}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Higher Version Peers %",
@@ -140,8 +298,8 @@
"datasource": {
"type": "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": {
@@ -168,7 +326,86 @@
"custom": {}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Upgrade Recommended",
@@ -191,8 +428,8 @@
"datasource": {
"type": "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": {
@@ -233,7 +470,86 @@
"custom": {}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Resource Disconnects",
@@ -256,8 +572,8 @@
"datasource": {
"type": "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": {
@@ -268,7 +584,7 @@
"drawStyle": "line",
"lineWidth": 2,
"fillOpacity": 10,
"spanNulls": true,
"spanNulls": 1800000,
"insertNulls": false,
"showPoints": "auto",
"pointSize": 3
@@ -278,7 +594,86 @@
}
},
"overrides": []
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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": "Inbound vs Outbound Peers",
@@ -303,15 +698,15 @@
"datasource": {
"type": "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"
},
"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": {
@@ -359,7 +754,86 @@
]
}
]
}
},
"transformations": [
{
"id": "renameByRegex",
"options": {
"regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_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"
}
}
]
}
],
"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