mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-21 14:20:56 +00:00
Merge branch 'pratik/otel-phase10-workload-validation' into pratik/otel-sync-diagnostics
This commit is contained in:
@@ -164,6 +164,7 @@ words:
|
||||
- itype
|
||||
- jemalloc
|
||||
- jlog
|
||||
- jmeter
|
||||
- jtnofill
|
||||
- keylet
|
||||
- keylets
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -1,6 +1,53 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": []
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "What this shows: Per-job-type throughput, queue wait times, and execution times for the node's internal worker job queue.\nUse it to: Find job types that are backing up or running slowly and causing internal processing delays.",
|
||||
"editable": true,
|
||||
|
||||
@@ -1,6 +1,53 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": []
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "What this shows: Ledger data exchange and object-fetch traffic between this node and its peers: ledger sync, tree-node retrieval, and transaction-set exchange.\nUse it to: See how much ledger data the node is pulling or serving and spot catch-up activity.",
|
||||
"editable": true,
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -14,7 +14,54 @@
|
||||
"uid": "log-derived-insights",
|
||||
"refresh": "60s",
|
||||
"annotations": {
|
||||
"list": []
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
}
|
||||
]
|
||||
},
|
||||
"templating": {
|
||||
"list": [
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -20,12 +20,29 @@
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(70, 70, 70)",
|
||||
"name": "Annotate perf-iac runs",
|
||||
"iconColor": "rgb(144, 133, 233)",
|
||||
"name": "Perf Runs (JMeter)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac"],
|
||||
"tags": ["perf-iac", "jmeter"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": false,
|
||||
"iconColor": "rgb(25, 158, 112)",
|
||||
"name": "Perf Runs (Locust)",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": ["perf-iac", "locust"],
|
||||
"type": "tags"
|
||||
},
|
||||
"type": "tags"
|
||||
|
||||
@@ -2012,6 +2012,51 @@ attributes from their own alloy pipeline. Outside those runs the labels are
|
||||
absent; leaving the filters on **All** keeps every dashboard rendering
|
||||
normally.
|
||||
|
||||
### Perf Run Annotations
|
||||
|
||||
Perf load windows are drawn on the dashboards as shaded region annotations
|
||||
rather than single markers. perf-iac's
|
||||
`.github/scripts/post_grafana_annotation.sh` opens an annotation when a load
|
||||
phase starts and closes it with an end time when that phase finishes, so the
|
||||
shaded band covers exactly the interval over which the load was applied.
|
||||
|
||||
Every dashboard carries two tag-matched annotation layers, one per load driver:
|
||||
|
||||
| Layer | Tags | Color |
|
||||
| -------------------- | --------------------- | ------ |
|
||||
| `Perf Runs (JMeter)` | `perf-iac` + `jmeter` | violet |
|
||||
| `Perf Runs (Locust)` | `perf-iac` + `locust` | aqua |
|
||||
|
||||
Both layers set `matchAny: false`, so a region is drawn only if it carries
|
||||
**both** of the layer's tags — the tag list is an AND, not an OR. Grafana tag
|
||||
matching is a superset AND-match with no negation, so a layer listing only
|
||||
`perf-iac` would also match every driver region, and "`perf-iac` but neither
|
||||
driver" cannot be expressed at all. That is why there is no catch-all layer
|
||||
beside these two: a generic layer could only ever redraw the same regions the
|
||||
driver layers already show, giving two overlapping bands and two tooltips for
|
||||
one load window.
|
||||
|
||||
JMeter posts **two** regions per load job, one around the warm-up phase and one
|
||||
around the measured phase. Locust posts **one**, for the measured phase only,
|
||||
because it has no warm-up step — so a Locust leg shows a single band where a
|
||||
JMeter leg shows two.
|
||||
|
||||
The driver tag is not something a run supplies. Each load workflow hardcodes it
|
||||
as a `LOAD_DRIVER` environment value (`reusable-jmeter-test.yml` sets `jmeter`,
|
||||
`reusable-locust-test.yml` sets `locust`), so it is never a dispatch input and no
|
||||
current workflow can omit it; the script warns in CI if one ever does. Alongside
|
||||
the driver, each region also carries the ticket (work item), the side (`test` or
|
||||
`baseline`), the ref, the commit, and the phase; blank values are dropped. The
|
||||
tooltip lists those, which is how one band is told from another when several runs
|
||||
overlap. The driver is carried only as a tag, not in the tooltip — which layer
|
||||
drew the band is what identifies it.
|
||||
|
||||
Two rendering limits are worth knowing. Grafana draws annotations only on time
|
||||
series, state timeline and candlestick panels, so on a board of mostly stats and
|
||||
gauges most panels show no band. And the shaded fill is rendered at 10% opacity,
|
||||
so the two drivers' colours are near-identical inside the band; the region's two
|
||||
full-colour dashed edges and the toolbar toggles are what tell them apart.
|
||||
|
||||
### Who owns which attribute
|
||||
|
||||
- **Node and service** come from xrpld config (`service_instance_id`,
|
||||
|
||||
Reference in New Issue
Block a user