diff --git a/contrib/grafana/networking.json b/contrib/grafana/networking.json index 7ac7a3d70d..cc0e497f15 100644 --- a/contrib/grafana/networking.json +++ b/contrib/grafana/networking.json @@ -32,7 +32,7 @@ }, "id": 7, "panels": [], - "title": "QUIC", + "title": "TPU", "type": "row" }, { @@ -83,7 +83,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -194,7 +195,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -262,7 +264,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "description": "", + "description": "Transaction count received in the current interval", "fieldConfig": { "defaults": { "color": { @@ -274,7 +276,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -319,14 +322,14 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(increase(quic_stream_closed_end{instance=~\"$instance\"}[$__range]))", + "expr": "sum(increase(quic_tile_txns_received_quic_fast{instance=~\"$instance\"}[$__range])) + sum(increase(quic_tile_txns_received_quic_frag{instance=~\"$instance\"}[$__range]))", "instant": true, "legendFormat": "__auto", "range": false, "refId": "A" } ], - "title": "QUIC Streams Recvd", + "title": "QUIC Txns Recvd", "type": "stat" }, { @@ -334,7 +337,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "description": "", + "description": "Transaction count failed in QUIC stream handling code (abandoned, too large, overrun). Not counting small streams", "fieldConfig": { "defaults": { "color": { @@ -346,7 +349,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -391,14 +395,14 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(increase(quic_stream_closed_conn_abort{instance=~\"$instance\"}[$__range])) + sum(increase(quic_stream_closed_drop{instance=~\"$instance\"}[$__range])) + + sum(increase(quic_stream_closed_peer_reset{instance=~\"$instance\"}[$__range]))", + "expr": "sum(increase(quic_tile_txns_abandoned{instance=~\"$instance\"}[$__range])) + sum(increase(quic_tile_quic_txn_too_large{instance=~\"$instance\"}[$__range])) + sum(increase(quic_tile_txns_overrun{instance=~\"$instance\"}[$__range]))", "instant": true, "legendFormat": "__auto", "range": false, "refId": "A" } ], - "title": "QUIC Streams Failed", + "title": "QUIC Txns Failed", "type": "stat" }, { @@ -406,7 +410,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "description": "", + "description": "Ratio of streams received vs streams started", "fieldConfig": { "defaults": { "color": { @@ -419,7 +423,8 @@ "mode": "absolute", "steps": [ { - "color": "red" + "color": "red", + "value": null }, { "color": "yellow", @@ -467,7 +472,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(increase(quic_stream_closed_end{instance=~\"$instance\"}[$__range])) / sum(increase(quic_stream_opened{instance=~\"$instance\"}[$__range]))", + "expr": "(sum(increase(quic_tile_txns_received_quic_fast{instance=~\"$instance\"}[$__range])) + sum(increase(quic_tile_txns_received_quic_frag{instance=~\"$instance\"}[$__range]))) / (sum(increase(quic_tile_txns_received_quic_fast{instance=~\"$instance\"}[$__range])) + sum(increase(quic_tile_txn_reasms_started{instance=~\"$instance\"}[$__range])))", "instant": true, "legendFormat": "__auto", "range": false, @@ -527,7 +532,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -595,14 +601,16 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - } + }, + "unit": "short" }, "overrides": [] }, @@ -697,7 +705,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -766,14 +775,16 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - } + }, + "unit": "short" }, "overrides": [] }, @@ -836,14 +847,16 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - } + }, + "unit": "short" }, "overrides": [] }, @@ -895,7 +908,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "description": "QUIC stream events per second\n(Each QUIC stream corresponds to one Solana transaction)\n\n- Success: Txn received and passed on to the block production pipeline\n- Dropped: Txn dropped due to excessive concurrency by the peer. (see `tiles.quic.max_concurrent_streams_per_connection` config option) \n- Conn Abort: Txn dropped because the connection closed", + "description": "QUIC stream events per second\n(Each QUIC stream corresponds to one Solana transaction)\n\n- QUIC Unfragmented Rcvd: Peer sent an entire transaction in one QUIC frame\n- QUIC Fragmented Rcvd: Peer sent a transaction fragment\n- QUIC Abandoned: Txn dropped because the connection closed\n- QUIC Overrun: Reassembly operation dropped because lack of buffer space\n- QUIC Txn Undersz: Stream fully received but it's smaller than the smallest valid transaction. Some clients abuse undersize streams as a ping mechanism but this is harmless to Firedancer\n- QUIC Txn Oversz: Stream byte received that is beyond the transaction MTU\n- UDP Rcvd: Peer sent an entire transaction in one UDP packet\n- UDP Undersz: UDP packet too small\n- UDP Oversz: UDP packet too large", "fieldConfig": { "defaults": { "color": { @@ -909,8 +922,8 @@ "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", + "fillOpacity": 41, + "gradientMode": "hue", "hideFrom": { "legend": false, "tooltip": false, @@ -927,7 +940,7 @@ "spanNulls": false, "stacking": { "group": "A", - "mode": "none" + "mode": "normal" }, "thresholdsStyle": { "mode": "off" @@ -938,7 +951,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -959,10 +973,14 @@ "id": 18, "options": { "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + "calcs": [ + "max" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true, + "sortBy": "Max", + "sortDesc": true }, "tooltip": { "mode": "single", @@ -976,12 +994,25 @@ "uid": "${datasource}" }, "editorMode": "code", - "expr": "sum(rate(quic_stream_closed_end{instance=~\"$instance\"}[$__rate_interval]))", + "expr": "sum(rate(quic_tile_txns_received_quic_fast{instance=~\"$instance\"}[$__rate_interval]))", "hide": false, "instant": false, - "legendFormat": "Success", + "legendFormat": "QUIC Unfragmented Rcvd", "range": true, - "refId": "B" + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(quic_tile_txns_received_quic_frag{instance=~\"$instance\"}[$__rate_interval]))", + "hide": false, + "instant": false, + "legendFormat": "QUIC Fragmented Rcvd", + "range": true, + "refId": "E" }, { "datasource": { @@ -989,10 +1020,10 @@ "uid": "${datasource}" }, "editorMode": "code", - "expr": "sum(rate(quic_stream_closed_drop{instance=~\"$instance\"}[$__rate_interval]))", + "expr": "sum(rate(quic_tile_txns_abandoned{instance=~\"$instance\"}[$__rate_interval]))", "hide": false, "instant": false, - "legendFormat": "Dropped", + "legendFormat": "QUIC Abandoned", "range": true, "refId": "C" }, @@ -1002,15 +1033,80 @@ "uid": "${datasource}" }, "editorMode": "code", - "expr": "sum(rate(quic_stream_closed_conn_abort{instance=~\"$instance\"}[$__rate_interval]))", + "expr": "sum(rate(quic_tile_txns_overrun{instance=~\"$instance\"}[$__rate_interval]))", "hide": false, "instant": false, - "legendFormat": "Conn Abort", + "legendFormat": "QUIC Overrun", "range": true, - "refId": "A" + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(quic_tile_quic_txn_too_small{instance=~\"$instance\"}[$__rate_interval]))", + "hide": false, + "instant": false, + "legendFormat": "QUIC Txn Undersz", + "range": true, + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(quic_tile_quic_txn_too_large{instance=~\"$instance\"}[$__rate_interval]))", + "hide": false, + "instant": false, + "legendFormat": "QUIC Txn Oversz", + "range": true, + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(quic_tile_txns_received_udp{instance=~\"$instance\"}[$__rate_interval]))", + "hide": false, + "instant": false, + "legendFormat": "UDP Rcvd", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(quic_tile_non_quic_packet_too_small{instance=~\"instance\"}[$__rate_interval]))", + "hide": false, + "instant": false, + "legendFormat": "UDP Undersz", + "range": true, + "refId": "H" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(quic_tile_non_quic_packet_too_large{instance=~\"instance\"}[$__rate_interval]))", + "hide": false, + "instant": false, + "legendFormat": "UDP Oversz", + "range": true, + "refId": "I" } ], - "title": "QUIC Streams", + "title": "TPU Transaction Rate", "type": "timeseries" }, { @@ -1061,7 +1157,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1170,7 +1267,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1293,7 +1391,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1316,7 +1415,7 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "right", + "placement": "bottom", "showLegend": true }, "tooltip": { @@ -1389,6 +1488,7 @@ "fieldConfig": { "defaults": { "color": { + "fixedColor": "red", "mode": "palette-classic" }, "custom": { @@ -1397,9 +1497,10 @@ "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", + "axisSoftMin": 0, "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 0, + "fillOpacity": 15, "gradientMode": "none", "hideFrom": { "legend": false, @@ -1407,9 +1508,9 @@ "viz": false }, "insertNulls": false, - "lineInterpolation": "linear", + "lineInterpolation": "stepBefore", "lineWidth": 1, - "pointSize": 5, + "pointSize": 3, "scaleDistribution": { "type": "linear" }, @@ -1424,25 +1525,15 @@ } }, "mappings": [], - "max": 1, - "min": 0, "thresholds": { "mode": "absolute", "steps": [ { - "color": "red" - }, - { - "color": "yellow", - "value": 0.6 - }, - { - "color": "green", - "value": 0.9 + "color": "red", + "value": null } ] - }, - "unit": "percentunit" + } }, "overrides": [] }, @@ -1452,20 +1543,19 @@ "x": 19, "y": 26 }, - "id": 23, + "id": 24, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", - "showLegend": false + "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, - "pluginVersion": "10.4.7", "targets": [ { "datasource": { @@ -1473,137 +1563,41 @@ "uid": "${datasource}" }, "editorMode": "code", - "exemplar": false, - "expr": "1 - sum(increase(quic_stream_closed_end{instance=~\"$instance\"}[$__rate_interval])) / sum(increase(quic_stream_opened{instance=~\"$instance\"}[$__rate_interval]))", + "expr": "increase(link_overrun_polling_frag_count{instance=~\"$instance\",kind=\"quic\"}[$__rate_interval])", "instant": false, - "legendFormat": "__auto", + "legendFormat": "QUIC drops", "range": true, "refId": "A" - } - ], - "title": "Stream Drop Rate", - "type": "timeseries" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 21, - "panels": [ + }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 4, - "x": 0, - "y": 34 - }, - "id": 22, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "editorMode": "code", + "expr": "increase(tile_context_switch_involuntary_count{instance=~\"$instance\",kind=\"quic\"}[$__rate_interval])", + "hide": false, + "instant": false, + "legendFormat": "Involuntary Context Switches", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "expr": "sum(rate(quic_tile_reassembly_append_error_oversize {instance=~\"$instance\"}[$__rate_interval])) +\nsum(rate(quic_tile_reassembly_append_error_skip {instance=~\"$instance\"}[$__rate_interval])) +\nsum(rate(quic_tile_reassembly_append_error_state {instance=~\"$instance\"}[$__rate_interval])) +\nsum(rate(quic_tile_reassembly_publish_error_oversize{instance=~\"$instance\"}[$__rate_interval])) +\nsum(rate(quic_tile_reassembly_publish_error_skip {instance=~\"$instance\"}[$__rate_interval])) +\nsum(rate(quic_tile_reassembly_publish_error_state {instance=~\"$instance\"}[$__rate_interval]))", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Reassembly Errors", - "type": "timeseries" + "editorMode": "code", + "expr": "increase(quic_frame_fail_parse{instance=~\"$instance\",kind=\"quic\"}[$__rate_interval])", + "hide": false, + "instant": false, + "legendFormat": "QUIC Parse Fail", + "range": true, + "refId": "C" } ], - "title": "TPU Reassembly", - "type": "row" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 34 - }, - "id": 8, - "panels": [], - "title": "Net Tile", - "type": "row" + "title": "QUIC RX Drops", + "type": "timeseries" }, { "datasource": { @@ -1623,8 +1617,8 @@ "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 20, - "gradientMode": "hue", + "fillOpacity": 0, + "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, @@ -1652,7 +1646,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1660,22 +1655,20 @@ } ] }, - "unit": "pps" + "unit": "s" }, "overrides": [] }, "gridPos": { - "h": 9, + "h": 8, "w": 12, "x": 0, - "y": 35 + "y": 33 }, - "id": 9, + "id": 28, "options": { "legend": { - "calcs": [ - "mean" - ], + "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true @@ -1685,6 +1678,7 @@ "sort": "none" } }, + "pluginVersion": "10.4.7", "targets": [ { "datasource": { @@ -1692,9 +1686,12 @@ "uid": "${datasource}" }, "editorMode": "code", - "expr": "sum(rate(net_tile_received_packets{instance=~\"$instance\"}[$__rate_interval])) - sum(rate(quic_received_packets{instance=~\"$instance\"}[$__rate_interval]))", + "exemplar": false, + "expr": "histogram_quantile(0.5, sum by (le) (increase(quic_receive_duration_seconds_bucket{instance=~\"$instance\"}[$__rate_interval])))", + "format": "time_series", "instant": false, - "legendFormat": "RX pps", + "interval": "", + "legendFormat": "p50", "range": true, "refId": "A" }, @@ -1704,15 +1701,58 @@ "uid": "${datasource}" }, "editorMode": "code", - "expr": "-sum(rate(net_tile_sent_packets{instance=~\"$instance\"}[$__rate_interval])) + sum(rate(quic_sent_packets{instance=~\"$instance\"}[$__rate_interval]))", + "exemplar": false, + "expr": "histogram_quantile(0.9, sum by (le) (increase(quic_receive_duration_seconds_bucket{instance=~\"$instance\"}[$__rate_interval])))", "hide": false, "instant": false, - "legendFormat": "TX pps", + "legendFormat": "p90", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "histogram_quantile(0.95, sum by (le) (increase(quic_receive_duration_seconds_bucket{instance=~\"$instance\"}[$__rate_interval])))", + "hide": false, + "instant": false, + "legendFormat": "p95", "range": true, "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "histogram_quantile(0.99, sum by (le) (increase(quic_receive_duration_seconds_bucket{instance=~\"$instance\"}[$__rate_interval])))", + "hide": false, + "instant": false, + "legendFormat": "p99", + "range": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "histogram_quantile(0.999, sum by (le) (increase(quic_receive_duration_seconds_bucket{instance=~\"$instance\"}[$__rate_interval])))", + "hide": false, + "instant": false, + "legendFormat": "p99.9", + "range": true, + "refId": "D" } ], - "title": "Non-QUIC packets", + "title": "QUIC RX Latency", "type": "timeseries" }, { @@ -1733,8 +1773,8 @@ "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 20, - "gradientMode": "hue", + "fillOpacity": 0, + "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, @@ -1762,7 +1802,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1770,22 +1811,20 @@ } ] }, - "unit": "bps" + "unit": "pps" }, "overrides": [] }, "gridPos": { - "h": 9, - "w": 8, + "h": 8, + "w": 7, "x": 12, - "y": 35 + "y": 33 }, - "id": 10, + "id": 25, "options": { "legend": { - "calcs": [ - "mean" - ], + "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true @@ -1802,9 +1841,9 @@ "uid": "${datasource}" }, "editorMode": "code", - "expr": "(sum(rate(net_tile_received_bytes{instance=~\"$instance\"}[$__rate_interval])) - sum(rate(quic_received_bytes{instance=~\"$instance\"}[$__rate_interval])))*8", + "expr": "sum(rate(quic_ack_tx_new{instance=~\"$instance\"}[$__rate_interval]))", "instant": false, - "legendFormat": "RX bitrate", + "legendFormat": "New", "range": true, "refId": "A" }, @@ -1814,69 +1853,150 @@ "uid": "${datasource}" }, "editorMode": "code", - "expr": "-sum(rate(net_tile_sent_bytes{instance=~\"$instance\"}[$__rate_interval]))*8", + "expr": "sum(rate(quic_ack_tx_merged{instance=~\"$instance\"}[$__rate_interval]))", "hide": false, "instant": false, - "legendFormat": "TX bitrate", + "legendFormat": "Merged", "range": true, "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(quic_ack_tx_cancel{instance=~\"$instance\"}[$__rate_interval]))", + "hide": false, + "instant": false, + "legendFormat": "Cancelled", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(quic_ack_tx_drop{instance=~\"$instance\"}[$__rate_interval]))", + "hide": false, + "instant": false, + "legendFormat": "Out of Buffers", + "range": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(quic_ack_tx_noop{instance=~\"$instance\"}[$__rate_interval]))", + "hide": false, + "instant": false, + "legendFormat": "Not ACK eliciting", + "range": true, + "refId": "E" } ], - "title": "Non-QUIC bandwidth", + "title": "QUIC ACK TX", "type": "timeseries" }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 41 + }, + "id": 8, + "panels": [], + "title": "Net Tile", + "type": "row" + }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "description": "Number of packets dropped in the current Grafana time interval", "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 20, + "gradientMode": "hue", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", "value": 80 } ] - } + }, + "unit": "pps" }, "overrides": [] }, "gridPos": { - "h": 3, - "w": 4, - "x": 20, - "y": 35 + "h": 9, + "w": 12, + "x": 0, + "y": 42 }, - "id": 5, - "maxDataPoints": 1, + "id": 9, "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { + "legend": { "calcs": [ - "lastNotNull" + "mean" ], - "fields": "", - "values": true + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "pluginVersion": "10.4.7", "targets": [ { "datasource": { @@ -1884,11 +2004,10 @@ "uid": "${datasource}" }, "editorMode": "code", - "exemplar": false, - "expr": "sum(increase(net_tile_xdp_rx_dropped_other{instance=~\"$instance\"}[$__range]) + increase(net_tile_xdp_rx_dropped_ring_full{instance=~\"$instance\"}[$__range]))", - "instant": true, - "legendFormat": "RX", - "range": false, + "expr": "sum(rate(net_tile_received_packets{instance=~\"$instance\"}[$__rate_interval])) - sum(rate(quic_received_packets{instance=~\"$instance\"}[$__rate_interval]))", + "instant": false, + "legendFormat": "RX pps", + "range": true, "refId": "A" }, { @@ -1897,17 +2016,127 @@ "uid": "${datasource}" }, "editorMode": "code", - "exemplar": false, - "expr": "sum(increase(net_tile_tx_dropped{instance=~\"$instance\"}[$__range]))", + "expr": "-sum(rate(net_tile_sent_packets{instance=~\"$instance\"}[$__rate_interval])) + sum(rate(quic_sent_packets{instance=~\"$instance\"}[$__rate_interval]))", "hide": false, - "instant": true, - "legendFormat": "TX", - "range": false, + "instant": false, + "legendFormat": "TX pps", + "range": true, "refId": "B" } ], - "title": "Dropped Packets", - "type": "stat" + "title": "Non-QUIC packets", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 20, + "gradientMode": "hue", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 12, + "y": 42 + }, + "id": 10, + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "(sum(rate(net_tile_received_bytes{instance=~\"$instance\"}[$__rate_interval])) - sum(rate(quic_received_bytes{instance=~\"$instance\"}[$__rate_interval])))*8", + "instant": false, + "legendFormat": "RX bitrate", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "-sum(rate(net_tile_sent_bytes{instance=~\"$instance\"}[$__rate_interval]))*8", + "hide": false, + "instant": false, + "legendFormat": "TX bitrate", + "range": true, + "refId": "B" + } + ], + "title": "Non-QUIC bandwidth", + "type": "timeseries" }, { "datasource": { @@ -1957,7 +2186,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1973,7 +2203,7 @@ "h": 6, "w": 4, "x": 20, - "y": 38 + "y": 42 }, "id": 6, "options": { @@ -2020,8 +2250,94 @@ ], "title": "Dropped Packet Rate", "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Number of packets dropped in the current Grafana time interval", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 20, + "y": 48 + }, + "id": 5, + "maxDataPoints": 1, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": true + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "10.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(net_tile_xdp_rx_dropped_other{instance=~\"$instance\"}[$__range]) + increase(net_tile_xdp_rx_dropped_ring_full{instance=~\"$instance\"}[$__range]))", + "instant": true, + "legendFormat": "RX", + "range": false, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(increase(net_tile_tx_dropped{instance=~\"$instance\"}[$__range]))", + "hide": false, + "instant": true, + "legendFormat": "TX", + "range": false, + "refId": "B" + } + ], + "title": "Dropped Packets", + "type": "stat" } ], + "refresh": "", "schemaVersion": 39, "tags": [], "templating": { @@ -2082,6 +2398,6 @@ "timezone": "utc", "title": "Firedancer Networking", "uid": "fb867872-560e-46ec-b867-3b8907951824", - "version": 13, + "version": 29, "weekStart": "" }