diff --git a/grafana/provisioning/dashboards/side-car-dashboard.json b/grafana/provisioning/dashboards/side-car-dashboard.json index 31eef0372..f596f07c8 100644 --- a/grafana/provisioning/dashboards/side-car-dashboard.json +++ b/grafana/provisioning/dashboards/side-car-dashboard.json @@ -53,7 +53,7 @@ { "datasource": { "type": "prometheus", - "uid": "grafanacloud-prom" + "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { @@ -72,8 +72,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -103,12 +102,12 @@ }, "showHeader": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { "type": "prometheus", - "uid": "grafanacloud-prom" + "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "exemplar": false, @@ -152,8 +151,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] } @@ -185,7 +183,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { @@ -232,8 +230,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] } @@ -264,7 +261,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { @@ -274,9 +271,22 @@ "editorMode": "code", "expr": "sum by (job) (rate(side_car_provider_status_responses{job=~\"${job}\", status=\"success\", provider=~\"${provider}\"}[$__range]))", "instant": false, - "legendFormat": "{{job}}", + "legendFormat": "{{job}} prices / sec", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "sum by (job) (increase(side_car_provider_status_responses{job=~\"${job}\", status=\"success\", provider=~\"${provider}\"}[$__range]))", + "hide": false, + "instant": false, + "legendFormat": "{{job}} total prices", + "range": true, + "refId": "B" } ], "title": "Number of Prices Fetched / Sec in Range", @@ -301,8 +311,7 @@ "mode": "absolute", "steps": [ { - "color": "dark-red", - "value": null + "color": "dark-red" }, { "color": "semi-dark-green", @@ -338,7 +347,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { @@ -371,8 +380,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" } ] } @@ -404,7 +412,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { @@ -473,8 +481,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "#EAB839", @@ -545,8 +552,7 @@ "mode": "absolute", "steps": [ { - "color": "semi-dark-red", - "value": null + "color": "semi-dark-red" }, { "color": "semi-dark-green", @@ -582,7 +588,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { @@ -648,7 +654,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { @@ -799,7 +805,7 @@ "type": "timeseries" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, @@ -807,254 +813,8 @@ "y": 63 }, "id": 44, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "USD ($)", - "axisPlacement": "left", - "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" - } - }, - "links": [ - { - "targetBlank": true, - "title": "Provider drilldown", - "url": "https://skipprotocol.grafana.net/d/fdl46t0q7u7eod/slinky-sidecar-provider-status?${DS_PROMETHEUS:queryparam}&var-job=All&var-id=All&var-provider=${__field.labels.provider}&var-market_map_provider=dydx_api&orgId=1" - } - ], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "side_car_aggregated_price" - }, - "properties": [ - { - "id": "custom.lineWidth", - "value": 7 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 0, - "y": 2 - }, - "id": 137, - "maxPerRow": 2, - "options": { - "legend": { - "calcs": [ - "lastNotNull", - "min", - "max", - "mean" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "repeat": "id", - "repeatDirection": "v", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "expr": "side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"}", - "instant": false, - "legendFormat": "index {{job}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "side_car_provider_price{job=~\"${job}\", id=~\"${id}\", provider=~\"${provider}\"}", - "hide": false, - "instant": false, - "legendFormat": "{{provider}} {{job}}", - "range": true, - "refId": "B" - } - ], - "title": "${id} Market", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "# Providers", - "axisPlacement": "auto", - "axisSoftMax": 12, - "fillOpacity": 80, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineWidth": 3, - "scaleDistribution": { - "type": "linear" - }, - "thresholdsStyle": { - "mode": "line+area" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red" - }, - { - "color": "dark-blue", - "value": 3 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 15, - "w": 12, - "x": 12, - "y": 2 - }, - "id": 283, - "options": { - "barRadius": 0, - "barWidth": 0.52, - "fullHighlight": false, - "groupWidth": 0.7, - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "orientation": "auto", - "showValue": "auto", - "stacking": "none", - "tooltip": { - "mode": "single", - "sort": "none" - }, - "xField": "Time", - "xTickLabelRotation": 0, - "xTickLabelSpacing": -100 - }, - "repeat": "id", - "repeatDirection": "v", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "editorMode": "code", - "expr": "side_car_health_check_market_providers{job=~\"${job}\", id=~\"${id}\"}", - "instant": false, - "legendFormat": "{{id}} {{job}}", - "range": true, - "refId": "A" - } - ], - "title": "Number of Available Provider Prices for ${id}", - "type": "barchart" - } - ], - "title": "Side Car Aggregated Prices", - "type": "row" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 64 - }, - "id": 47, "panels": [], - "title": "Side Car Provider Health", + "title": "Side Car Aggregated Prices", "type": "row" }, { @@ -1062,44 +822,37 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "description": "Percentage of requests from sidecar to data provider that were successful in the time range of the dashboard", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, - "decimals": 1, "mappings": [], - "noValue": "MISSING", "thresholds": { "mode": "absolute", "steps": [ { - "color": "red" - }, - { - "color": "orange", - "value": 0.85 + "color": "dark-red" }, { "color": "green", - "value": 0.95 + "value": 0 } ] }, - "unit": "percentunit" + "unit": "percent" }, "overrides": [] }, "gridPos": { - "h": 4, - "w": 12, + "h": 15, + "w": 1, "x": 0, - "y": 65 + "y": 64 }, - "id": 49, + "id": 1158, "options": { - "colorMode": "background_solid", + "colorMode": "value", "graphMode": "none", "justifyMode": "center", "orientation": "auto", @@ -1115,99 +868,63 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", + "repeat": "id", + "repeatDirection": "v", "targets": [ { "datasource": { "type": "prometheus", - "uid": "${DS_PROMETHEUS}" + "uid": "adp6sdhuns3k0e" }, "editorMode": "code", - "exemplar": false, - "expr": "(sum by (provider) (increase(side_car_api_http_status_code{job=\"${job}\",status_code=\"2XX\"}[$__range]))) / (sum by (provider) (increase(side_car_api_http_status_code{job=\"${job}\"}[$__range])))", - "instant": true, - "legendFormat": "{{provider}}", - "range": false, + "expr": "100 * (avg_over_time(side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"}[5m]) - side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"} offset 5m) / side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"} offset 5m", + "instant": false, + "legendFormat": "5m", + "range": true, "refId": "A" - } - ], - "title": "Data Provider HTTP 2XX % in Range", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Percentage of web socket messages from sidecar to data provider that were successful handled in the time range of the dashboard.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "noValue": "MISSING", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red" - }, - { - "color": "orange", - "value": 0.85 - }, - { - "color": "green", - "value": 0.98 - } - ] + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "unit": "percentunit" + "editorMode": "code", + "expr": "100 * (avg_over_time(side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"}[1h]) - side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"} offset 1h) / side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"} offset 1h", + "hide": false, + "instant": false, + "legendFormat": "1h", + "range": true, + "refId": "B" }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 12, - "x": 12, - "y": 65 - }, - "id": 57, - "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "center", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "100 * (avg_over_time(side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"}[6h]) - side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"} offset 6h) / side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"} offset 6h", + "hide": false, + "instant": false, + "legendFormat": "6h", + "range": true, + "refId": "C" }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.1.0-71799", - "targets": [ { "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum by (provider) (increase(side_car_web_socket_data_handler_status{job=\"${job}\",status=~\"create_message_success|handle_message_success|heartbeat_success\"}[$__range]))) / (sum by (provider) (increase(side_car_web_socket_data_handler_status{job=\"${job}\"}[$__range])))", + "expr": "100 * (avg_over_time(side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"}[24h]) - side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"} offset 24h) / side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"} offset 24h", + "hide": false, "instant": false, - "legendFormat": "{{provider}}", + "legendFormat": "24h", "range": true, - "refId": "A" + "refId": "D" } ], - "title": "Data Provider Successful WebSocket Message Handling % in Range", + "title": "Price Change in Time Range for ${id}", "type": "stat" }, { @@ -1215,7 +932,6 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -1225,12 +941,12 @@ "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", - "axisLabel": "Requests / sec", - "axisPlacement": "auto", + "axisLabel": "USD ($)", + "axisPlacement": "left", "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 31, - "gradientMode": "opacity", + "fillOpacity": 0, + "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, @@ -1253,7 +969,13 @@ "mode": "off" } }, - "decimals": 2, + "links": [ + { + "targetBlank": true, + "title": "Provider drilldown", + "url": "https://skipprotocol.grafana.net/d/fdl46t0q7u7eod/slinky-sidecar-provider-status?${DS_PROMETHEUS:queryparam}&var-job=All&var-id=All&var-provider=${__field.labels.provider}&var-market_map_provider=dydx_api&orgId=1" + } + ], "mappings": [], "thresholds": { "mode": "absolute", @@ -1266,128 +988,79 @@ "value": 80 } ] - }, - "unit": "locale" + } }, "overrides": [ { "matcher": { - "id": "byRegexp", - "options": "/.*1.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "light-blue", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": "/.*2.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "green", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": "/.*3.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "dark-blue", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": "/.*4.*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": "/.*5.*/" + "id": "byName", + "options": "side_car_aggregated_price" }, "properties": [ { - "id": "color", - "value": { - "fixedColor": "red", - "mode": "fixed" - } + "id": "custom.lineWidth", + "value": 7 } ] } ] }, "gridPos": { - "h": 12, - "w": 12, - "x": 0, - "y": 69 + "h": 15, + "w": 11, + "x": 1, + "y": 64 }, - "id": 46, + "id": 137, + "maxPerRow": 2, "options": { "legend": { "calcs": [ + "lastNotNull", "min", "max", - "mean", - "lastNotNull" + "mean" ], "displayMode": "table", "placement": "bottom", - "showLegend": true, - "sortBy": "Name", - "sortDesc": false + "showLegend": true }, "tooltip": { - "mode": "multi", + "mode": "single", "sort": "none" } }, + "repeat": "id", + "repeatDirection": "v", "targets": [ { "datasource": { "type": "prometheus", - "uid": "${DS_PROMETHEUS}" + "uid": "PBFA97CFB590B2093" }, "editorMode": "code", - "expr": "sum(rate(side_car_api_http_status_code{job=\"${job}\"}[$__range])) by (status_code,provider)", + "expr": "side_car_aggregated_price{job=~\"${job}\", id=~\"${id}\"}", "instant": false, - "legendFormat": "{{provider}} - {{status_code}}", + "legendFormat": "index {{job}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "side_car_provider_price{job=~\"${job}\", id=~\"${id}\", provider=~\"${provider}\"}", + "hide": false, + "instant": false, + "legendFormat": "{{provider}} {{job}}", + "range": true, + "refId": "B" } ], - "title": "Data Provider HTTP Status Code / sec", + "title": "${id} Market", "type": "timeseries" }, { @@ -1404,35 +1077,22 @@ "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", - "axisLabel": "# of Reads / Sec", + "axisLabel": "# Providers", "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 29, - "gradientMode": "opacity", + "axisSoftMax": 12, + "fillOpacity": 80, + "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 5, + "lineWidth": 3, "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, "thresholdsStyle": { - "mode": "off" + "mode": "line+area" } }, "mappings": [], @@ -1440,7 +1100,11 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "dark-red" + }, + { + "color": "dark-blue", + "value": 3 } ] } @@ -1448,30 +1112,36 @@ "overrides": [] }, "gridPos": { - "h": 12, + "h": 15, "w": 12, "x": 12, - "y": 69 + "y": 64 }, - "id": 994, + "id": 283, "options": { + "barRadius": 0, + "barWidth": 0.52, + "fullHighlight": false, + "groupWidth": 0.7, "legend": { - "calcs": [ - "lastNotNull", - "max", - "min", - "mean" - ], - "displayMode": "table", + "calcs": [], + "displayMode": "list", "placement": "bottom", "showLegend": true }, + "orientation": "auto", + "showValue": "auto", + "stacking": "none", "tooltip": { "mode": "single", "sort": "none" - } + }, + "xField": "Time", + "xTickLabelRotation": 0, + "xTickLabelSpacing": -100 }, - "pluginVersion": "11.1.0-71516", + "repeat": "id", + "repeatDirection": "v", "targets": [ { "datasource": { @@ -1479,214 +1149,39 @@ "uid": "grafanacloud-prom" }, "editorMode": "code", - "expr": "rate(side_car_web_socket_connection_status{job=~\"${job}\", provider=~\"${provider}\", status=~\"read_success\"}[5m])", + "expr": "side_car_health_check_market_providers{job=~\"${job}\", id=~\"${id}\"}", "instant": false, - "legendFormat": "{{provider}}", + "legendFormat": "{{id}} {{job}}", "range": true, "refId": "A" } ], - "title": "# of Successful Reads / Sec by Provider in Range", - "type": "timeseries" + "title": "Number of Available Provider Prices for ${id}", + "type": "barchart" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 1129 + }, + "id": 47, + "panels": [], + "title": "Side Car Provider Health", + "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "description": "Percentage of requests from sidecar to data provider that were successful in the time range of the dashboard", "fieldConfig": { "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - }, - "fieldMinMax": false - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 81 - }, - "id": 419, - "options": { - "calculate": false, - "calculation": { - "xBuckets": { - "mode": "size", - "value": "" - } - }, - "cellGap": 1, - "cellValues": { - "unit": "ms" - }, - "color": { - "exponent": 0.3, - "fill": "dark-orange", - "max": 2000, - "min": 0, - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "RdYlGn", - "steps": 125 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "unknown", - "value": "Latency" - }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisLabel": "Provider", - "axisPlacement": "left", - "reverse": false, - "unit": "ms" - } - }, - "pluginVersion": "11.1.0-71799", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.5, sum(rate(side_car_api_response_latency_bucket{job=~\"${job}\"}[$__range])) by (le, provider))", - "instant": false, - "legendFormat": "{{provider}}", - "range": true, - "refId": "A" - } - ], - "title": "Median Round Trip Latency by API Provider", - "type": "heatmap" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - }, - "fieldMinMax": false - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 81 - }, - "id": 546, - "options": { - "calculate": false, - "calculation": { - "xBuckets": { - "mode": "size", - "value": "" - } - }, - "cellGap": 1, - "cellValues": { - "unit": "ms" - }, - "color": { - "exponent": 0.3, - "fill": "dark-green", - "max": 2000, - "min": 0, - "mode": "scheme", - "reverse": false, - "scale": "linear", - "scheme": "RdYlGn", - "steps": 97 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-9 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "unknown", - "value": "Latency" - }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisLabel": "Provider", - "axisPlacement": "left", - "reverse": true, - "unit": "ms" - } - }, - "pluginVersion": "11.1.0-71799", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.5, sum(rate(side_car_web_socket_response_time_bucket{job=~\"${job}\", provider=~\"${provider}\"}[$__range])) by (le, provider))", - "instant": false, - "legendFormat": "{{provider}}", - "range": true, - "refId": "A" - } - ], - "title": "Median Latency between Message Receives by WebSocket Provider", - "type": "heatmap" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Percentage of reads that were successfully made on the underlying connection by the data provider in the range. Note that a lower percentage doesn't necessarily imply that the connection is bad - it could just mean that it has received fewer updates.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" + "color": { + "mode": "thresholds" }, "decimals": 1, "mappings": [], @@ -1695,15 +1190,15 @@ "mode": "absolute", "steps": [ { - "color": "dark-red" + "color": "red" }, { - "color": "semi-dark-yellow", + "color": "orange", "value": 0.85 }, { - "color": "semi-dark-green", - "value": 0.98 + "color": "green", + "value": 0.95 } ] }, @@ -1713,14 +1208,14 @@ }, "gridPos": { "h": 4, - "w": 24, + "w": 12, "x": 0, - "y": 89 + "y": 1130 }, - "id": 58, + "id": 49, "options": { "colorMode": "background_solid", - "graphMode": "area", + "graphMode": "none", "justifyMode": "center", "orientation": "auto", "percentChangeColorMode": "standard", @@ -1735,22 +1230,23 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", - "expr": "(sum by (provider) (increase(side_car_web_socket_connection_status{job=\"${job}\",status=~\"read_success\"}[$__range]))) / (sum by (provider) (increase(side_car_web_socket_connection_status{job=\"${job}\",status=~\"read_success|read_err\"}[$__range])))", - "instant": false, - "legendFormat": "__auto", - "range": true, + "exemplar": false, + "expr": "(sum by (provider) (increase(side_car_api_http_status_code{job=\"${job}\",status_code=\"2XX\"}[$__range]))) / (sum by (provider) (increase(side_car_api_http_status_code{job=\"${job}\"}[$__range])))", + "instant": true, + "legendFormat": "{{provider}}", + "range": false, "refId": "A" } ], - "title": "Data Provider Successful WebSocket Connection Reads % in Range", + "title": "Data Provider HTTP 2XX % in Range", "type": "stat" }, { @@ -1758,14 +1254,15 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "description": "The percentage of successful writes made by web socket data providers in the range.", + "description": "Percentage of web socket messages from sidecar to data provider that were successful handled in the time range of the dashboard.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, + "decimals": 1, "mappings": [], - "noValue": "OK", + "noValue": "MISSING", "thresholds": { "mode": "absolute", "steps": [ @@ -1773,11 +1270,11 @@ "color": "dark-red" }, { - "color": "semi-dark-yellow", + "color": "orange", "value": 0.85 }, { - "color": "semi-dark-green", + "color": "green", "value": 0.98 } ] @@ -1788,14 +1285,14 @@ }, "gridPos": { "h": 4, - "w": 24, - "x": 0, - "y": 93 + "w": 12, + "x": 12, + "y": 1130 }, - "id": 59, + "id": 57, "options": { "colorMode": "background_solid", - "graphMode": "area", + "graphMode": "none", "justifyMode": "center", "orientation": "auto", "percentChangeColorMode": "standard", @@ -1810,7 +1307,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { @@ -1818,14 +1315,14 @@ "uid": "PBFA97CFB590B2093" }, "editorMode": "code", - "expr": "(sum by (provider) (increase(side_car_web_socket_connection_status{job=\"${job}\",status=~\"write_success|dial_success\"}[$__range]))) / (sum by (provider) (increase(side_car_web_socket_connection_status{job=\"${job}\",status=~\"write_success|write_err|dial_success|dial_error\"}[$__range])))", + "expr": "(sum by (provider) (increase(side_car_web_socket_data_handler_status{job=\"${job}\",status=~\"create_message_success|handle_message_success|heartbeat_success\"}[$__range]))) / (sum by (provider) (increase(side_car_web_socket_data_handler_status{job=\"${job}\"}[$__range])))", "instant": false, - "legendFormat": "__auto", + "legendFormat": "{{provider}}", "range": true, "refId": "A" } ], - "title": "Data Provider Successful WebSocket Connection Writes % in Range", + "title": "Data Provider Successful WebSocket Message Handling % in Range", "type": "stat" }, { @@ -1833,74 +1330,1004 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "description": "This metric tracks the total number of times a successful connection was created to the relevant providers.", + "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Requests / sec", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 31, + "gradientMode": "opacity", + "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" + } + }, + "decimals": 2, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "locale" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/.*1.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "light-blue", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/.*2.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/.*3.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-blue", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/.*4.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "yellow", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/.*5.*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 12, + "w": 12, + "x": 0, + "y": 1134 + }, + "id": 46, + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean", + "lastNotNull" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true, + "sortBy": "Name", + "sortDesc": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "sum(rate(side_car_api_http_status_code{job=\"${job}\"}[$__range])) by (status_code,provider)", + "instant": false, + "legendFormat": "{{provider}} - {{status_code}}", + "range": true, + "refId": "A" + } + ], + "title": "Data Provider HTTP Status Code / sec", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "# of Reads / Sec", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 29, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "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" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 12, + "w": 12, + "x": 12, + "y": 1134 + }, + "id": 994, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "max", + "min", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "11.1.0-71516", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "editorMode": "code", + "expr": "rate(side_car_web_socket_connection_status{job=~\"${job}\", provider=~\"${provider}\", status=~\"read_success\"}[5m])", + "instant": false, + "legendFormat": "{{provider}}", + "range": true, + "refId": "A" + } + ], + "title": "# of Successful Reads / Sec by Provider in Range", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "fieldMinMax": false + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 1146 + }, + "id": 419, + "options": { + "calculate": false, + "calculation": { + "xBuckets": { + "mode": "size", + "value": "" + } + }, + "cellGap": 1, + "cellValues": { + "unit": "ms" + }, + "color": { + "exponent": 0.3, + "fill": "dark-orange", + "max": 2000, + "min": 0, + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "RdYlGn", + "steps": 125 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "unknown", + "value": "Latency" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisLabel": "Provider", + "axisPlacement": "left", + "reverse": false, + "unit": "ms" + } + }, + "pluginVersion": "11.2.0-72125", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.5, sum(rate(side_car_api_response_latency_bucket{job=~\"${job}\"}[$__range])) by (le, provider))", + "instant": false, + "legendFormat": "{{provider}}", + "range": true, + "refId": "A" + } + ], + "title": "Median Round Trip Latency by API Provider", + "type": "heatmap" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + }, + "fieldMinMax": false + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 1146 + }, + "id": 546, + "options": { + "calculate": false, + "calculation": { + "xBuckets": { + "mode": "size", + "value": "" + } + }, + "cellGap": 1, + "cellValues": { + "unit": "ms" + }, + "color": { + "exponent": 0.3, + "fill": "dark-green", + "max": 2000, + "min": 0, + "mode": "scheme", + "reverse": false, + "scale": "linear", + "scheme": "RdYlGn", + "steps": 97 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "unknown", + "value": "Latency" + }, + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": false + }, + "yAxis": { + "axisLabel": "Provider", + "axisPlacement": "left", + "reverse": true, + "unit": "ms" + } + }, + "pluginVersion": "11.2.0-72125", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "editorMode": "code", + "expr": "histogram_quantile(0.5, sum(rate(side_car_web_socket_response_time_bucket{job=~\"${job}\", provider=~\"${provider}\"}[$__range])) by (le, provider))", + "instant": false, + "legendFormat": "{{provider}}", + "range": true, + "refId": "A" + } + ], + "title": "Median Latency between Message Receives by WebSocket Provider", + "type": "heatmap" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Percentage of reads that were successfully made on the underlying connection by the data provider in the range. Note that a lower percentage doesn't necessarily imply that the connection is bad - it could just mean that it has received fewer updates.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 1, + "mappings": [], + "noValue": "MISSING", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red" + }, + { + "color": "semi-dark-yellow", + "value": 0.85 + }, + { + "color": "semi-dark-green", + "value": 0.98 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 24, + "x": 0, + "y": 1154 + }, + "id": 58, + "options": { + "colorMode": "background_solid", + "graphMode": "area", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.0-72125", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "(sum by (provider) (increase(side_car_web_socket_connection_status{job=\"${job}\",status=~\"read_success\"}[$__range]))) / (sum by (provider) (increase(side_car_web_socket_connection_status{job=\"${job}\",status=~\"read_success|read_err\"}[$__range])))", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Data Provider Successful WebSocket Connection Reads % in Range", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "The percentage of successful writes made by web socket data providers in the range.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "noValue": "OK", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red" + }, + { + "color": "semi-dark-yellow", + "value": 0.85 + }, + { + "color": "semi-dark-green", + "value": 0.98 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 24, + "x": 0, + "y": 1158 + }, + "id": 59, + "options": { + "colorMode": "background_solid", + "graphMode": "area", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.0-72125", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "(sum by (provider) (increase(side_car_web_socket_connection_status{job=\"${job}\",status=~\"write_success|dial_success\"}[$__range]))) / (sum by (provider) (increase(side_car_web_socket_connection_status{job=\"${job}\",status=~\"write_success|write_err|dial_success|dial_error\"}[$__range])))", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Data Provider Successful WebSocket Connection Writes % in Range", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "This metric tracks the total number of times a successful connection was created to the relevant providers.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "blue" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 24, + "x": 0, + "y": 1162 + }, + "id": 993, + "options": { + "colorMode": "background", + "graphMode": "area", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "diff" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.0-72125", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "editorMode": "code", + "exemplar": false, + "expr": "side_car_web_socket_connection_status{job=~\"${job}\", provider=~\"${provider}\", status=\"healthy\"}", + "instant": false, + "legendFormat": "{{provider}}", + "range": true, + "refId": "A" + } + ], + "title": "Total # of New WebSocket Connections in Range", + "type": "stat" + }, + { + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 1166 + }, + "id": 55, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 0, + "y": 110 + }, + "id": 1004, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.0-72125", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "editorMode": "code", + "expr": "count(sum (increase(side_car_health_check_provider_updates_total{job=~\"$job\", id=~\"${id}\", provider=~\"${provider}\", success=~\"false|true\"}[$__range])) by (id))", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "# of Price Feeds for ${provider}", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 3, + "y": 110 + }, + "id": 1023, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.0-72125", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" + }, + "editorMode": "code", + "expr": "count((sum by (provider, id) (increase(side_car_health_check_provider_updates_total{job=\"${job}\", success=\"true\", provider=~\"${provider}\"}[$__range])) / sum by (provider, id) (increase(side_car_health_check_provider_updates_total{job=\"${job}\", provider=~\"${provider}\", success=~\"true|false\"}[$__range]))) > 0.95)", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "# of Price Feeds with > 95% Success Rate", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Percentage of how often we were able to successfully retrieve a price from a provider per market when expected.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 2, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red" + }, + { + "color": "semi-dark-orange", + "value": 0.75 + }, + { + "color": "semi-dark-green", + "value": 0.95 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 18, + "x": 6, + "y": 110 + }, + "id": 93, + "options": { + "colorMode": "background_solid", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.0-72125", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "1 - (\n sum by (provider, id) \n (increase(side_car_health_check_provider_updates_total{job=\"${job}\", success=\"false\", provider=~\"${provider}\"}[$__range])) \n / \n sum by (provider, id) \n (increase(side_car_health_check_provider_updates_total{job=\"${job}\", provider=~\"${provider}\", success=~\"true|false\"}[$__range]))\n)", + "instant": false, + "legendFormat": "{{id}}", + "range": true, + "refId": "A" + } + ], + "title": "Data Provider ${provider} Fetch Success % in Range", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "% Success Rate", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "smooth", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "dashed" + } + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "yellow", + "value": 90 + } + ] + } + }, + "overrides": [] }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "semi-dark-green", - "value": 4 + "gridPos": { + "h": 11, + "w": 24, + "x": 0, + "y": 117 + }, + "id": 1051, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "grafanacloud-prom" }, - { - "color": "dark-red", - "value": 10 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 24, - "x": 0, - "y": 97 - }, - "id": 993, - "options": { - "colorMode": "background", - "graphMode": "area", - "justifyMode": "center", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "diff" + "editorMode": "code", + "expr": "(1 - (\n sum by (provider, id) \n (increase(side_car_health_check_provider_updates_total{job=\"${job}\", success=\"false\", provider=~\"${provider}\"}[$__range])) \n / \n sum by (provider, id) \n (increase(side_car_health_check_provider_updates_total{job=\"${job}\", provider=~\"${provider}\", success=~\"true|false\"}[$__range]))\n)) * 100", + "instant": false, + "legendFormat": "{{id}}", + "range": true, + "refId": "A" + } ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.1.0-71799", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "editorMode": "code", - "exemplar": false, - "expr": "side_car_web_socket_connection_status{job=~\"${job}\", provider=~\"${provider}\", status=\"healthy\"}", - "instant": false, - "legendFormat": "{{provider}}", - "range": true, - "refId": "A" + "title": "Price Feed Success Rate", + "type": "timeseries" } ], - "title": "Total # of New WebSocket Connections in Range", - "type": "stat" + "repeat": "provider", + "repeatDirection": "h", + "title": "Detailed Side Car ${provider} Market Health", + "type": "row" }, { "collapsed": false, @@ -1908,13 +2335,11 @@ "h": 1, "w": 24, "x": 0, - "y": 101 + "y": 1188 }, - "id": 55, + "id": 980, "panels": [], - "repeat": "provider", - "repeatDirection": "h", - "title": "Detailed Side Car ${provider} Market Health", + "title": "Solana Node Provider Health", "type": "row" }, { @@ -1932,7 +2357,11 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "dark-red" + }, + { + "color": "semi-dark-green", + "value": 95 } ] } @@ -1940,16 +2369,16 @@ "overrides": [] }, "gridPos": { - "h": 7, - "w": 3, + "h": 8, + "w": 12, "x": 0, - "y": 102 + "y": 1189 }, - "id": 1004, + "id": 981, "options": { "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", + "graphMode": "area", + "justifyMode": "auto", "orientation": "auto", "percentChangeColorMode": "standard", "reduceOptions": { @@ -1963,22 +2392,22 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.2.0-72125", "targets": [ { "datasource": { "type": "prometheus", - "uid": "grafanacloud-prom" + "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", - "expr": "count(sum (increase(side_car_health_check_provider_updates_total{job=~\"$job\", id=~\"${id}\", provider=~\"${provider}\", success=~\"false|true\"}[$__range])) by (id))", + "expr": " sum(rate(\n side_car_api_rpc_status_code{job=~\"${job}\", provider=\"raydium_api\", status_code=\"ok\"}[5m]\n )) by (provider, endpoint) /\n sum(rate(\n side_car_api_rpc_status_code{job=~\"${job}\", provider=\"raydium_api\"}[5m]\n )) by (provider, endpoint) * 100", "instant": false, - "legendFormat": "__auto", + "legendFormat": "{{provider}} - {{endpoint}}", "range": true, "refId": "A" } ], - "title": "# of Price Feeds for ${provider}", + "title": "Solana Node Provider Health", "type": "stat" }, { @@ -1989,136 +2418,92 @@ "fieldConfig": { "defaults": { "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 3, - "x": 3, - "y": 102 - }, - "id": 1023, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.1.0-71799", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" + "mode": "palette-classic" }, - "editorMode": "code", - "expr": "count((sum by (provider, id) (increase(side_car_health_check_provider_updates_total{job=\"${job}\", success=\"true\", provider=~\"${provider}\"}[$__range])) / sum by (provider, id) (increase(side_car_health_check_provider_updates_total{job=\"${job}\", provider=~\"${provider}\", success=~\"true|false\"}[$__range]))) > 0.95)", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "# of Price Feeds with > 95% Success Rate", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Percentage of how often we were able to successfully retrieve a price from a provider per market when expected.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" + "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" + } }, - "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { - "color": "dark-red" - }, - { - "color": "semi-dark-orange", - "value": 0.75 + "color": "green" }, { - "color": "semi-dark-green", - "value": 0.95 + "color": "red", + "value": 80 } ] - }, - "unit": "percentunit" + } }, "overrides": [] }, "gridPos": { - "h": 7, - "w": 18, - "x": 6, - "y": 102 + "h": 8, + "w": 12, + "x": 12, + "y": 1189 }, - "id": 93, + "id": 982, "options": { - "colorMode": "background_solid", - "graphMode": "none", - "justifyMode": "center", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "pluginVersion": "11.1.0-71799", + "pluginVersion": "11.1.0-70903", "targets": [ { "datasource": { "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", - "expr": "1 - (\n sum by (provider, id) \n (increase(side_car_health_check_provider_updates_total{job=\"${job}\", success=\"false\", provider=~\"${provider}\"}[$__range])) \n / \n sum by (provider, id) \n (increase(side_car_health_check_provider_updates_total{job=\"${job}\", provider=~\"${provider}\", success=~\"true|false\"}[$__range]))\n)", + "expr": "sum(rate(side_car_api_response_latency_sum{provider=\"raydium_api\", job=~\"${job}\"}[5m])) by (le, endpoint) / sum(rate(side_car_api_response_latency_count{provider=\"raydium_api\", job=~\"${job}\"}[5m])) by (le, endpoint)", "instant": false, - "legendFormat": "{{id}}", + "legendFormat": "__auto", "range": true, "refId": "A" } ], - "title": "Data Provider ${provider} Fetch Success % in Range", - "type": "stat" + "title": "Solana Node Provider Latency", + "type": "timeseries" }, { "datasource": { @@ -2134,7 +2519,7 @@ "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", - "axisLabel": "% Success Rate", + "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", @@ -2146,25 +2531,23 @@ "viz": false }, "insertNulls": false, - "lineInterpolation": "smooth", + "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", - "spanNulls": true, + "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { - "mode": "dashed" + "mode": "off" } }, "mappings": [], - "max": 100, - "min": 0, "thresholds": { "mode": "absolute", "steps": [ @@ -2172,8 +2555,8 @@ "color": "green" }, { - "color": "yellow", - "value": 90 + "color": "red", + "value": 80 } ] } @@ -2181,21 +2564,16 @@ "overrides": [] }, "gridPos": { - "h": 11, - "w": 24, - "x": 0, - "y": 109 + "h": 8, + "w": 12, + "x": 12, + "y": 1197 }, - "id": 1051, + "id": 983, "options": { "legend": { - "calcs": [ - "lastNotNull", - "min", - "max", - "mean" - ], - "displayMode": "table", + "calcs": [], + "displayMode": "list", "placement": "bottom", "showLegend": true }, @@ -2208,289 +2586,18 @@ { "datasource": { "type": "prometheus", - "uid": "grafanacloud-prom" + "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", - "expr": "(1 - (\n sum by (provider, id) \n (increase(side_car_health_check_provider_updates_total{job=\"${job}\", success=\"false\", provider=~\"${provider}\"}[$__range])) \n / \n sum by (provider, id) \n (increase(side_car_health_check_provider_updates_total{job=\"${job}\", provider=~\"${provider}\", success=~\"true|false\"}[$__range]))\n)) * 100", + "expr": "histogram_quantile(0.95, sum(rate(side_car_api_response_latency_bucket{provider=\"raydium_api\", job=~\"${job}\"}[5m])) by (le, endpoint))", "instant": false, - "legendFormat": "{{id}}", + "legendFormat": "__auto", "range": true, "refId": "A" } ], - "title": "Price Feed Success Rate", + "title": "p95 Solana RPC Node Latency", "type": "timeseries" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 462 - }, - "id": 980, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red" - }, - { - "color": "semi-dark-green", - "value": 95 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 121 - }, - "id": 981, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.1.0-71799", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "editorMode": "code", - "expr": " sum(rate(\n side_car_api_rpc_status_code{job=~\"${job}\", provider=\"raydium_api\", status_code=\"ok\"}[5m]\n )) by (provider, endpoint) /\n sum(rate(\n side_car_api_rpc_status_code{job=~\"${job}\", provider=\"raydium_api\"}[5m]\n )) by (provider, endpoint) * 100", - "instant": false, - "legendFormat": "{{provider}} - {{endpoint}}", - "range": true, - "refId": "A" - } - ], - "title": "Solana Node Provider Health", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "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": 8, - "w": 12, - "x": 12, - "y": 121 - }, - "id": 982, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.1.0-70903", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "editorMode": "code", - "expr": "sum(rate(side_car_api_response_latency_sum{provider=\"raydium_api\", job=~\"${job}\"}[5m])) by (le, endpoint) / sum(rate(side_car_api_response_latency_count{provider=\"raydium_api\", job=~\"${job}\"}[5m])) by (le, endpoint)", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Solana Node Provider Latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "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": 8, - "w": 12, - "x": 12, - "y": 129 - }, - "id": 983, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "grafanacloud-prom" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.95, sum(rate(side_car_api_response_latency_bucket{provider=\"raydium_api\", job=~\"${job}\"}[5m])) by (le, endpoint))", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "p95 Solana RPC Node Latency", - "type": "timeseries" - } - ], - "title": "Solana Node Provider Health", - "type": "row" } ], "refresh": "30s", @@ -2501,8 +2608,8 @@ { "current": { "selected": false, - "text": "default", - "value": "default" + "text": "self-hosted-prometheus-prod", + "value": "adp6sdhuns3k0e" }, "hide": 0, "includeAll": false, @@ -2520,8 +2627,12 @@ { "current": { "selected": false, - "text": "All", - "value": "$__all" + "text": [ + "slinky-customer-dydx-vpn-staging-sidecar-0" + ], + "value": [ + "slinky-customer-dydx-vpn-staging-sidecar-0" + ] }, "datasource": { "type": "prometheus", @@ -2547,12 +2658,12 @@ }, { "current": { - "selected": true, + "selected": false, "text": [ - "All" + "mog/usd" ], "value": [ - "$__all" + "mog/usd" ] }, "datasource": { @@ -2580,7 +2691,7 @@ { "allValue": "", "current": { - "selected": true, + "selected": false, "text": [ "All" ], @@ -2614,8 +2725,12 @@ "allValue": "", "current": { "selected": false, - "text": "dydx_api", - "value": "dydx_api" + "text": [ + "All" + ], + "value": [ + "$__all" + ] }, "datasource": { "type": "prometheus", @@ -2642,7 +2757,7 @@ ] }, "time": { - "from": "now-30m", + "from": "now-6h", "to": "now" }, "timepicker": { @@ -2656,6 +2771,6 @@ "timezone": "", "title": "Slinky SideCar Dashboard", "uid": "cdca49ue665mocd", - "version": 131, + "version": 144, "weekStart": "" } \ No newline at end of file