diff --git a/docker/telemetry/grafana/dashboards/ledger-data-sync.json b/docker/telemetry/grafana/dashboards/ledger-data-sync.json index 11868f5e15..31658ba322 100644 --- a/docker/telemetry/grafana/dashboards/ledger-data-sync.json +++ b/docker/telemetry/grafana/dashboards/ledger-data-sync.json @@ -10,7 +10,7 @@ "links": [], "panels": [ { - "title": "Ledger Data — Ledger", + "title": "Ledger Data \u2014 Ledger", "description": "###### What this is:\n*Inbound bytes for ledger-data message categories, split into aggregate get/share plus the transaction-set, transaction-node, and account-state-node sub-types the node receives from peers.*\n\n###### How it's computed:\n*Per-category inbound byte rate per node.*\n\n###### Reading it:\n*Normally low and flat once synced. Account-state-node traffic dominates during state sync; transaction-set-candidate traffic dominates during consensus catch-up.*\n\n###### Healthy range:\n*workload-dependent; low and steady on a synced node.*\n\n###### Watch for:\n*Sustained high account-state or tx-node inbound bytes on a node that should be caught up (repeated re-sync, missing history), or a single peer driving all traffic.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -30,15 +30,15 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_data_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Data Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Data Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_data_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Data Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Data Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -46,7 +46,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -54,10 +54,89 @@ }, "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": "Ledger Data — Transaction", + "title": "Ledger Data \u2014 Transaction", "description": "###### What this is:\n*Inbound bytes for ledger-data message categories, split into aggregate get/share plus the transaction-set, transaction-node, and account-state-node sub-types the node receives from peers.*\n\n###### How it's computed:\n*Per-category inbound byte rate per node.*\n\n###### Reading it:\n*Normally low and flat once synced. Account-state-node traffic dominates during state sync; transaction-set-candidate traffic dominates during consensus catch-up.*\n\n###### Healthy range:\n*workload-dependent; low and steady on a synced node.*\n\n###### Watch for:\n*Sustained high account-state or tx-node inbound bytes on a node that should be caught up (repeated re-sync, missing history), or a single peer driving all traffic.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -77,29 +156,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_data_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Set Candidate Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Set Candidate Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_data_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Set Candidate Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Set Candidate Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_data_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_data_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -107,7 +186,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -115,10 +194,89 @@ }, "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": "Ledger Data — Account State", + "title": "Ledger Data \u2014 Account State", "description": "###### What this is:\n*Inbound bytes for ledger-data message categories, split into aggregate get/share plus the transaction-set, transaction-node, and account-state-node sub-types the node receives from peers.*\n\n###### How it's computed:\n*Per-category inbound byte rate per node.*\n\n###### Reading it:\n*Normally low and flat once synced. Account-state-node traffic dominates during state sync; transaction-set-candidate traffic dominates during consensus catch-up.*\n\n###### Healthy range:\n*workload-dependent; low and steady on a synced node.*\n\n###### Watch for:\n*Sustained high account-state or tx-node inbound bytes on a node that should be caught up (repeated re-sync, missing history), or a single peer driving all traffic.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -138,15 +296,15 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_data_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Node Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_data_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Node Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_data_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Node Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -154,7 +312,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -162,10 +320,89 @@ }, "overrides": [] }, - "id": 3 + "id": 3, + "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 Traffic — Ledger", + "title": "Ledger Traffic \u2014 Ledger", "description": "###### What this is:\n*Inbound bytes for the older ledger share/get message categories and their tx-set, tx-node, and account-state sub-types.*\n\n###### How it's computed:\n*Per-category inbound byte rate per node.*\n\n###### Reading it:\n*Usually small; these legacy categories carry ledger-fetch traffic for peers using the older protocol.*\n\n###### Healthy range:\n*workload-dependent; low on a synced node.*\n\n###### Watch for:\n*Large sustained volumes indicating heavy fetch load or a peer repeatedly requesting the same data.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -185,15 +422,15 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Get In [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Get In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Share In [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Share In\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -201,7 +438,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -209,10 +446,89 @@ }, "overrides": [] }, - "id": 4 + "id": 4, + "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 Traffic — Transaction", + "title": "Ledger Traffic \u2014 Transaction", "description": "###### What this is:\n*Inbound bytes for the older ledger share/get message categories and their tx-set, tx-node, and account-state sub-types.*\n\n###### How it's computed:\n*Per-category inbound byte rate per node.*\n\n###### Reading it:\n*Usually small; these legacy categories carry ledger-fetch traffic for peers using the older protocol.*\n\n###### Healthy range:\n*workload-dependent; low on a synced node.*\n\n###### Watch for:\n*Large sustained volumes indicating heavy fetch load or a peer repeatedly requesting the same data.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -232,29 +548,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Set Candidate Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_transaction_set_candidate_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Set Candidate Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Set Candidate Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_transaction_set_candidate_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Set Candidate Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -262,7 +578,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -270,10 +586,89 @@ }, "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": "Ledger Traffic — Account State", + "title": "Ledger Traffic \u2014 Account State", "description": "###### What this is:\n*Inbound bytes for the older ledger share/get message categories and their tx-set, tx-node, and account-state sub-types.*\n\n###### How it's computed:\n*Per-category inbound byte rate per node.*\n\n###### Reading it:\n*Usually small; these legacy categories carry ledger-fetch traffic for peers using the older protocol.*\n\n###### Healthy range:\n*workload-dependent; low on a synced node.*\n\n###### Watch for:\n*Large sustained volumes indicating heavy fetch load or a peer repeatedly requesting the same data.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -293,15 +688,15 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Get [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(ledger_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Share [{{service_instance_id}}]" + "expr": "label_replace(rate(ledger_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -309,7 +704,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -317,10 +712,89 @@ }, "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": "GetObject — Ledger", + "title": "GetObject \u2014 Ledger", "description": "###### What this is:\n*Inbound bytes for object-fetch traffic broken down by object type: ledger headers, individual transactions, transaction-tree nodes, and state-tree nodes.*\n\n###### How it's computed:\n*Per-type inbound byte rate per node.*\n\n###### Reading it:\n*Small during steady state; grows when the node fetches missing tree nodes.*\n\n###### Healthy range:\n*workload-dependent; low when synced.*\n\n###### Watch for:\n*A large share on state/tx nodes for long periods (persistent gap-filling), meaning the node keeps catching up.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -340,15 +814,15 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_ledger_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_ledger_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -356,7 +830,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -364,10 +838,89 @@ }, "overrides": [] }, - "id": 7 + "id": 7, + "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": "GetObject — Transaction", + "title": "GetObject \u2014 Transaction", "description": "###### What this is:\n*Inbound bytes for object-fetch traffic broken down by object type: ledger headers, individual transactions, transaction-tree nodes, and state-tree nodes.*\n\n###### How it's computed:\n*Per-type inbound byte rate per node.*\n\n###### Reading it:\n*Small during steady state; grows when the node fetches missing tree nodes.*\n\n###### Healthy range:\n*workload-dependent; low when synced.*\n\n###### Watch for:\n*A large share on state/tx nodes for long periods (persistent gap-filling), meaning the node keeps catching up.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -387,29 +940,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_transaction_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transaction Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transaction Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_transaction_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transaction Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transaction Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -417,7 +970,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -425,10 +978,89 @@ }, "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" + } + } + ] }, { - "title": "GetObject — Account State", + "title": "GetObject \u2014 Account State", "description": "###### What this is:\n*Inbound bytes for object-fetch traffic broken down by object type: ledger headers, individual transactions, transaction-tree nodes, and state-tree nodes.*\n\n###### How it's computed:\n*Per-type inbound byte rate per node.*\n\n###### Reading it:\n*Small during steady state; grows when the node fetches missing tree nodes.*\n\n###### Healthy range:\n*workload-dependent; low when synced.*\n\n###### Watch for:\n*A large share on state/tx nodes for long periods (persistent gap-filling), meaning the node keeps catching up.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -448,15 +1080,15 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_account_state_node_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_account_state_node_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -464,7 +1096,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -472,10 +1104,89 @@ }, "overrides": [] }, - "id": 9 + "id": 9, + "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": "GetObject Messages — Ledger", + "title": "GetObject Messages \u2014 Ledger", "description": "###### What this is:\n*Count of individual object-fetch request/response messages per object type.*\n\n###### How it's computed:\n*Per-type inbound message rate per node.*\n\n###### Reading it:\n*Many messages with few bytes means small piecemeal fetches; few messages with many bytes means large batch transfers.*\n\n###### Healthy range:\n*workload-dependent.*\n\n###### Watch for:\n*High message counts with tiny payloads sustained over time (inefficient per-node fetching).*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -495,8 +1206,8 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_ledger_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ledger Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_ledger_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ledger Get\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -504,7 +1215,7 @@ "unit": "cps", "custom": { "axisLabel": "Messages In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -512,10 +1223,89 @@ }, "overrides": [] }, - "id": 10 + "id": 10, + "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": "GetObject Messages — Transaction", + "title": "GetObject Messages \u2014 Transaction", "description": "###### What this is:\n*Count of individual object-fetch request/response messages per object type.*\n\n###### How it's computed:\n*Per-type inbound message rate per node.*\n\n###### Reading it:\n*Many messages with few bytes means small piecemeal fetches; few messages with many bytes means large batch transfers.*\n\n###### Healthy range:\n*workload-dependent.*\n\n###### Watch for:\n*High message counts with tiny payloads sustained over time (inefficient per-node fetching).*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -535,15 +1325,15 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_transaction_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transaction Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transaction Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_transaction_node_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Node Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transaction_node_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Node Get\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -551,7 +1341,7 @@ "unit": "cps", "custom": { "axisLabel": "Messages In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -559,10 +1349,89 @@ }, "overrides": [] }, - "id": 11 + "id": 11, + "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": "GetObject Messages — Account State", + "title": "GetObject Messages \u2014 Account State", "description": "###### What this is:\n*Count of individual object-fetch request/response messages per object type.*\n\n###### How it's computed:\n*Per-type inbound message rate per node.*\n\n###### Reading it:\n*Many messages with few bytes means small piecemeal fetches; few messages with many bytes means large batch transfers.*\n\n###### Healthy range:\n*workload-dependent.*\n\n###### Watch for:\n*High message counts with tiny payloads sustained over time (inefficient per-node fetching).*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -582,8 +1451,8 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_account_state_node_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Account State Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_account_state_node_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Account State Get\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -591,7 +1460,7 @@ "unit": "cps", "custom": { "axisLabel": "Messages In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -599,10 +1468,89 @@ }, "overrides": [] }, - "id": 12 + "id": 12, + "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": "GetObject Messages — Specials", + "title": "GetObject Messages \u2014 Specials", "description": "###### What this is:\n*Count of individual object-fetch request/response messages per object type.*\n\n###### How it's computed:\n*Per-type inbound message rate per node.*\n\n###### Reading it:\n*Many messages with few bytes means small piecemeal fetches; few messages with many bytes means large batch transfers.*\n\n###### Healthy range:\n*workload-dependent.*\n\n###### Watch for:\n*High message counts with tiny payloads sustained over time (inefficient per-node fetching).*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -622,22 +1570,22 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_cas_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "CAS Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_cas_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"CAS Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_fetch_pack_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Fetch Pack Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_fetch_pack_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Fetch Pack Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_transactions_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transactions Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transactions_get_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transactions Get\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -645,7 +1593,7 @@ "unit": "cps", "custom": { "axisLabel": "Messages In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -653,10 +1601,89 @@ }, "overrides": [] }, - "id": 13 + "id": 13, + "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": "GetObject — Specials", + "title": "GetObject \u2014 Specials", "description": "###### What this is:\n*Aggregate object-fetch inbound bytes plus special buckets: content-addressed storage fetches, bulk fetch-pack downloads used during catch-up, and bulk transaction fetches.*\n\n###### How it's computed:\n*Per-category inbound byte rate per node.*\n\n###### Reading it:\n*Fetch-pack rises sharply while catching up a range of ledgers; near zero when fully synced.*\n\n###### Healthy range:\n*workload-dependent; low when synced.*\n\n###### Watch for:\n*Continuous fetch-pack traffic (node never fully catches up) or unexpectedly high content-store volume.*\n\n###### Source:\n[OverlayImpl.cpp](https://github.com/XRPLF/rippled/blob/develop/src/xrpld/overlay/detail/OverlayImpl.cpp)\n\n###### Function:\n`OverlayImpl ctor (TrafficGauges)`", "type": "timeseries", "gridPos": { @@ -676,50 +1703,50 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_cas_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "CAS Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_cas_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"CAS Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_cas_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "CAS Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_cas_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"CAS Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_fetch_pack_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Fetch Pack Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_fetch_pack_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Fetch Pack Share\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_fetch_pack_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Fetch Pack Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_fetch_pack_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Fetch Pack Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_transactions_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Transactions Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_transactions_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Transactions Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Aggregate Get [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Aggregate Get\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(getobject_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Aggregate Share [{{service_instance_id}}]" + "expr": "label_replace(rate(getobject_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Aggregate Share\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -727,7 +1754,7 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes In", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -735,7 +1762,86 @@ }, "overrides": [] }, - "id": 14 + "id": 14, + "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": "Overlay Traffic Heatmap (All Categories, Bytes In)", @@ -765,8 +1871,8 @@ "datasource": { "type": "prometheus" }, - "expr": "topk(20, {service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", __name__=~\".*_bytes_in\", __name__!~\"total_.*\"})", - "legendFormat": "{{__name__}} [{{service_instance_id}}]" + "expr": "label_replace(topk(20, {service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", __name__=~\".*_bytes_in\", __name__!~\"total_.*\"}), \"series\", \"$1\", \"__name__\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -792,7 +1898,86 @@ }, "overrides": [] }, - "id": 15 + "id": 15, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|__name__)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/network-traffic.json b/docker/telemetry/grafana/dashboards/network-traffic.json index bdc5a07b86..7627b0a592 100644 --- a/docker/telemetry/grafana/dashboards/network-traffic.json +++ b/docker/telemetry/grafana/dashboards/network-traffic.json @@ -30,15 +30,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 Peers [{{service_instance_id}}]" + "expr": "label_replace(peer_finder_active_inbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Inbound Peers\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "peer_finder_active_outbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Outbound Peers [{{service_instance_id}}]" + "expr": "label_replace(peer_finder_active_outbound_peers{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Outbound Peers\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -46,14 +46,93 @@ "unit": "short", "custom": { "axisLabel": "Peers", - "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 Disconnects", @@ -76,8 +155,8 @@ "datasource": { "type": "prometheus" }, - "expr": "increase(overlay_peer_disconnects{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Disconnects [{{service_instance_id}}]" + "expr": "label_replace(increase(overlay_peer_disconnects{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Disconnects\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -85,14 +164,93 @@ "unit": "short", "custom": { "axisLabel": "Disconnects per interval", - "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": "Total Network Bytes", @@ -115,15 +273,15 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(total_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(total_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(total_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(total_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -131,14 +289,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "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": "Total Network Messages", @@ -161,15 +398,15 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(total_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Messages In [{{service_instance_id}}]" + "expr": "label_replace(rate(total_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Messages In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(total_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Messages Out [{{service_instance_id}}]" + "expr": "label_replace(rate(total_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Messages Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -177,14 +414,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "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 Traffic", @@ -207,22 +523,22 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Messages In [{{service_instance_id}}]" + "expr": "label_replace(rate(transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Messages In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Messages Out [{{service_instance_id}}]" + "expr": "label_replace(rate(transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Messages Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(transactions_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Duplicate In [{{service_instance_id}}]" + "expr": "label_replace(rate(transactions_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -230,14 +546,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "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": "Proposal Traffic", @@ -260,29 +655,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(proposals_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Proposals In [{{service_instance_id}}]" + "expr": "label_replace(rate(proposals_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Proposals In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(proposals_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Proposals Out [{{service_instance_id}}]" + "expr": "label_replace(rate(proposals_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Proposals Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(proposals_untrusted_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Untrusted In [{{service_instance_id}}]" + "expr": "label_replace(rate(proposals_untrusted_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Untrusted In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(proposals_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Duplicate In [{{service_instance_id}}]" + "expr": "label_replace(rate(proposals_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -290,14 +685,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "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": "Validation Traffic", @@ -320,29 +794,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(validations_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Validations In [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Validations In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(validations_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Validations Out [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Validations Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(validations_untrusted_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Untrusted In [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_untrusted_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Untrusted In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(validations_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Duplicate In [{{service_instance_id}}]" + "expr": "label_replace(rate(validations_duplicate_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -350,14 +824,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "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": "Overlay Traffic by Category (Bytes In)", @@ -380,8 +933,8 @@ "datasource": { "type": "prometheus" }, - "expr": "topk(10, rate({service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", __name__=~\".*_bytes_in\", __name__!~\"total_.*\"}[$__rate_interval]))", - "legendFormat": "{{__name__}} [{{service_instance_id}}]" + "expr": "label_replace(topk(10, rate({service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\", __name__=~\".*_bytes_in\", __name__!~\"total_.*\"}[$__rate_interval])), \"series\", \"$1\", \"__name__\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -654,7 +1207,86 @@ ] } ] - } + }, + "transformations": [ + { + "id": "renameByRegex", + "options": { + "regex": "/\\b(?:__name__|job|metric|service_name|service_version|deployment_environment|instance|xrpl_network_type|__name__)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] }, { "title": "Duplicate Traffic (Wasted Bandwidth)", @@ -677,43 +1309,43 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(transactions_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Duplicate In" + "expr": "label_replace(rate(transactions_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(transactions_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "TX Duplicate Out" + "expr": "label_replace(rate(transactions_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"TX Duplicate Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(proposals_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Proposals Duplicate In" + "expr": "label_replace(rate(proposals_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Proposals Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(proposals_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Proposals Duplicate Out" + "expr": "label_replace(rate(proposals_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Proposals Duplicate Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(validations_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Validations Duplicate In" + "expr": "label_replace(rate(validations_duplicate_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Validations Duplicate In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(validations_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Validations Duplicate Out" + "expr": "label_replace(rate(validations_duplicate_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Validations Duplicate Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -721,14 +1353,93 @@ "unit": "Bps", "custom": { "axisLabel": "Throughput", - "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": "All Traffic Categories (Detail)", @@ -751,8 +1462,8 @@ "datasource": { "type": "prometheus" }, - "expr": "topk(15, rate({__name__=~\".*_bytes_in\", __name__!~\"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": "{{__name__}}" + "expr": "label_replace(topk(15, rate({__name__=~\".*_bytes_in\", __name__!~\"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\", \"__name__\", \"(.*)\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -760,14 +1471,93 @@ "unit": "Bps", "custom": { "axisLabel": "Throughput", - "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|__name__)=\"[^\"]*\",?\\s*/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\{(?:series=\"([^\"]*)\",?\\s*)?(?:service_instance_id=\"([^\"]*)\",?\\s*)?(?:xrpl_branch=\"([^\"]*)\",?\\s*)?(?:xrpl_node_role=\"([^\"]*)\",?\\s*)?(?:xrpl_work_item=\"([^\"]*)\",?\\s*)?\\}/g", + "renamePattern": "$1 [$2, $4]-[$3, $5]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/,\\s*\\]/g", + "renamePattern": "]" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[,\\s*/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]-\\[/g", + "renamePattern": "[" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/-\\[\\]/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\[\\]\\s*$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s*\\[\\]\\s*$/g", + "renamePattern": "all" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/\\s{2,}/g", + "renamePattern": " " + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^\\s+|\\s+$/g", + "renamePattern": "" + } + }, + { + "id": "renameByRegex", + "options": { + "regex": "/^$/g", + "renamePattern": "all" + } + } + ] } ], "schemaVersion": 39, diff --git a/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json index 1f66d2cdf6..eb6fba98f8 100644 --- a/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json +++ b/docker/telemetry/grafana/dashboards/overlay-traffic-detail.json @@ -30,43 +30,43 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(squelch_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Squelch In [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Squelch In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(squelch_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Squelch Out [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Squelch Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(squelch_suppressed_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Suppressed In [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_suppressed_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Suppressed In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(squelch_suppressed_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Suppressed Out [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_suppressed_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Suppressed Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(squelch_ignored_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ignored In [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_ignored_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ignored In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(squelch_ignored_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Ignored Out [{{service_instance_id}}]" + "expr": "label_replace(rate(squelch_ignored_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Ignored Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -74,14 +74,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "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": "Overhead Traffic Breakdown (Bytes)", @@ -104,43 +183,43 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(overhead_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Base Overhead In [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Base Overhead In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(overhead_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Base Overhead Out [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Base Overhead Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(overhead_cluster_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Cluster In [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_cluster_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Cluster In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(overhead_cluster_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Cluster Out [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_cluster_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Cluster Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(overhead_manifest_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Manifest In [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_manifest_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Manifest In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(overhead_manifest_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Manifest Out [{{service_instance_id}}]" + "expr": "label_replace(rate(overhead_manifest_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Manifest Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -148,14 +227,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "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": "Validator List Traffic", @@ -178,29 +336,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(validator_lists_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(validator_lists_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(validator_lists_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(validator_lists_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(validator_lists_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Messages In [{{service_instance_id}}]" + "expr": "label_replace(rate(validator_lists_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Messages In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(validator_lists_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Messages Out [{{service_instance_id}}]" + "expr": "label_replace(rate(validator_lists_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Messages Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -208,7 +366,7 @@ "unit": "cps", "custom": { "axisLabel": "Count", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -232,7 +390,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" + } + } + ] }, { "title": "Set Get/Share Traffic (Bytes)", @@ -255,29 +492,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(set_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Set Get In [{{service_instance_id}}]" + "expr": "label_replace(rate(set_get_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Set Get In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(set_get_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Set Get Out [{{service_instance_id}}]" + "expr": "label_replace(rate(set_get_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Set Get Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(set_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Set Share In [{{service_instance_id}}]" + "expr": "label_replace(rate(set_share_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Set Share In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(set_share_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Set Share Out [{{service_instance_id}}]" + "expr": "label_replace(rate(set_share_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Set Share Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -285,14 +522,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "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": "Have/Requested Transactions (Messages)", @@ -315,29 +631,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(have_transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Have TX In [{{service_instance_id}}]" + "expr": "label_replace(rate(have_transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Have TX In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(have_transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Have TX Out [{{service_instance_id}}]" + "expr": "label_replace(rate(have_transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Have TX Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(requested_transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Requested TX In [{{service_instance_id}}]" + "expr": "label_replace(rate(requested_transactions_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Requested TX In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(requested_transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Requested TX Out [{{service_instance_id}}]" + "expr": "label_replace(rate(requested_transactions_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Requested TX Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -345,14 +661,93 @@ "unit": "cps", "custom": { "axisLabel": "Messages", - "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": "Unknown / Unclassified Traffic", @@ -375,29 +770,29 @@ "datasource": { "type": "prometheus" }, - "expr": "unknown_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Unknown Bytes In [{{service_instance_id}}]" + "expr": "label_replace(unknown_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Unknown Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "unknown_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Unknown Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(unknown_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Unknown Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "unknown_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Unknown Messages In [{{service_instance_id}}]" + "expr": "label_replace(unknown_messages_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Unknown Messages In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "unknown_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}", - "legendFormat": "Unknown Messages Out [{{service_instance_id}}]" + "expr": "label_replace(unknown_messages_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}, \"series\", \"Unknown Messages Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -405,7 +800,7 @@ "unit": "short", "custom": { "axisLabel": "Count", - "spanNulls": true, + "spanNulls": 1800000, "insertNulls": false, "showPoints": "auto", "pointSize": 3 @@ -429,7 +824,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" + } + } + ] }, { "title": "Proof Path Traffic", @@ -452,29 +926,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(proof_path_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Request Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(proof_path_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Request Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(proof_path_request_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Request Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(proof_path_request_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Request Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(proof_path_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Response Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(proof_path_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Response Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(proof_path_response_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Response Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(proof_path_response_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Response Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -482,14 +956,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "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": "Replay Delta Traffic", @@ -512,29 +1065,29 @@ "datasource": { "type": "prometheus" }, - "expr": "rate(replay_delta_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Request Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(replay_delta_request_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Request Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(replay_delta_request_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Request Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(replay_delta_request_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Request Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(replay_delta_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Response Bytes In [{{service_instance_id}}]" + "expr": "label_replace(rate(replay_delta_response_bytes_in{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Response Bytes In\", \"\", \"\")", + "legendFormat": "__auto" }, { "datasource": { "type": "prometheus" }, - "expr": "rate(replay_delta_response_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval])", - "legendFormat": "Response Bytes Out [{{service_instance_id}}]" + "expr": "label_replace(rate(replay_delta_response_bytes_out{service_instance_id=~\"$node\", deployment_environment=~\"$deployment_environment\", xrpl_network_type=~\"$xrpl_network_type\", service_name=~\"$service_name\", xrpl_work_item=~\"$xrpl_work_item\", xrpl_branch=~\"$xrpl_branch\", xrpl_node_role=~\"$xrpl_node_role\"}[$__rate_interval]), \"series\", \"Response Bytes Out\", \"\", \"\")", + "legendFormat": "__auto" } ], "fieldConfig": { @@ -542,14 +1095,93 @@ "unit": "Bps", "custom": { "axisLabel": "Bytes", - "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,