diff --git a/AkkaDotNet.LargeNetworkTests.sln b/AkkaDotNet.LargeNetworkTests.sln
index 18d63d4..5255fd6 100644
--- a/AkkaDotNet.LargeNetworkTests.sln
+++ b/AkkaDotNet.LargeNetworkTests.sln
@@ -27,10 +27,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "backend", "backend", "{BE2E
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AkkaDotNet.Messages", "src\shared\AkkaDotNet.Messages\AkkaDotNet.Messages.csproj", "{8F96042B-A435-4789-A92A-67B9C433E293}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{A0685D0A-4F42-433E-8727-101007B3DF9D}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{74F9830C-C907-4576-8A21-18A0790147D7}"
ProjectSection(SolutionItems) = preProject
src\Directory.Build.props = src\Directory.Build.props
src\Directory.Packages.props = src\Directory.Packages.props
+ global.json = global.json
+ NuGet.config = NuGet.config
EndProjectSection
EndProject
Global
diff --git a/k8s/local/environment/grafana-configmap.yaml b/k8s/local/environment/grafana-configmap.yaml
index 4e2faf3..b1c16c6 100644
--- a/k8s/local/environment/grafana-configmap.yaml
+++ b/k8s/local/environment/grafana-configmap.yaml
@@ -24,37 +24,44 @@ metadata:
app: grafana
name: grafana-dashs
data:
- k8s-dashboard.json: |
+ k8s-dashboard.json: |
{
- "__inputs": [{
- "name": "DS_PROMETHEUS",
- "label": "prometheus",
- "description": "",
- "type": "datasource",
- "pluginId": "prometheus",
- "pluginName": "Prometheus"
- }],
- "__requires": [{
- "type": "panel",
- "id": "singlestat",
- "name": "Singlestat",
- "version": ""
- }, {
- "type": "panel",
- "id": "graph",
- "name": "Graph",
- "version": ""
- }, {
- "type": "grafana",
- "id": "grafana",
- "name": "Grafana",
- "version": "3.1.0"
- }, {
- "type": "datasource",
- "id": "prometheus",
- "name": "Prometheus",
- "version": "1.0.0"
- }],
+ "__inputs": [
+ {
+ "name": "DS_PROMETHEUS",
+ "label": "prometheus",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "prometheus",
+ "pluginName": "Prometheus"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "panel",
+ "id": "singlestat",
+ "name": "Singlestat",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph",
+ "version": ""
+ },
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "3.1.0"
+ },
+ {
+ "type": "datasource",
+ "id": "prometheus",
+ "name": "Prometheus",
+ "version": "1.0.0"
+ }
+ ],
"id": null,
"title": "Kubernetes Pod Resources",
"description": "Shows resource usage of Kubernetes pods.",
@@ -64,1219 +71,2139 @@ data:
"style": "dark",
"timezone": "browser",
"editable": true,
- "hideControls": false,
- "sharedCrosshair": false,
- "rows": [{
- "collapse": false,
- "editable": true,
- "height": "250px",
- "panels": [{
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "height": "180px",
- "id": 4,
- "interval": null,
- "isNew": true,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [{
- "name": "value to text",
- "value": 1
- }, {
- "name": "range to text",
- "value": 2
- }],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [{
- "from": "null",
- "text": "N/A",
- "to": "null"
- }],
- "span": 4,
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "targets": [{
- "expr": "sum (container_memory_working_set_bytes{id=\"/\",instance=~\"^$instance$\"}) / sum (machine_memory_bytes{instance=~\"^$instance$\"}) * 100",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "",
- "refId": "A",
- "step": 2
- }],
- "thresholds": "65, 90",
- "timeFrom": "1m",
- "timeShift": null,
- "title": "Memory Working Set",
- "transparent": false,
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [{
- "op": "=",
- "text": "N/A",
- "value": "null"
- }],
- "valueName": "current"
- }, {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
+ "hideControls": false,
+ "sharedCrosshair": false,
+ "rows": [
+ {
+ "collapse": false,
+ "editable": true,
+ "height": "250px",
+ "panels": [
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "prometheus",
+ "editable": true,
+ "error": false,
+ "format": "percent",
+ "gauge":
+ {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "180px",
+ "id": 4,
+ "interval": null,
+ "isNew": true,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline":
+ {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "targets": [
+ {
+ "expr": "sum (container_memory_working_set_bytes{id=\"/\",instance=~\"^$instance$\"}) / sum (machine_memory_bytes{instance=~\"^$instance$\"}) * 100",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "",
+ "refId": "A",
+ "step": 2
+ }
+ ],
+ "thresholds": "65, 90",
+ "timeFrom": "1m",
+ "timeShift": null,
+ "title": "Memory Working Set",
+ "transparent": false,
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "format": "percent",
+ "gauge":
+ {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "180px",
+ "id": 6,
+ "interval": null,
+ "isNew": true,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline":
+ {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "targets": [
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{id=\"/\",instance=~\"^$instance$\"}[1m])) / sum (machine_cpu_cores{instance=~\"^$instance$\"}) * 100",
+ "interval": "10s",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": "65, 90",
+ "timeFrom": "1m",
+ "timeShift": null,
+ "title": "Cpu Usage",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": true,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "format": "percent",
+ "gauge":
+ {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": true,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "180px",
+ "id": 7,
+ "interval": null,
+ "isNew": true,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 4,
+ "sparkline":
+ {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "targets": [
+ {
+ "expr": "sum(container_fs_usage_bytes{id=\"/\",instance=~\"^$instance$\"}) / sum(container_fs_limit_bytes{id=\"/\",instance=~\"^$instance$\"}) * 100",
+ "interval": "10s",
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "metric": "",
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": "65, 90",
+ "timeFrom": "1m",
+ "timeShift": null,
+ "title": "Filesystem Usage",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "format": "bytes",
+ "gauge":
+ {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "1px",
+ "hideTimeOverride": true,
+ "id": 9,
+ "interval": null,
+ "isNew": true,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "20%",
+ "prefix": "",
+ "prefixFontSize": "20%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline":
+ {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "targets": [
+ {
+ "expr": "sum(container_memory_working_set_bytes{id=\"/\",instance=~\"^$instance$\"})",
+ "interval": "10s",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": "1m",
+ "title": "Used",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "format": "bytes",
+ "gauge":
+ {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "1px",
+ "hideTimeOverride": true,
+ "id": 10,
+ "interval": null,
+ "isNew": true,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline":
+ {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "targets": [
+ {
+ "expr": "sum (machine_memory_bytes{instance=~\"^$instance$\"})",
+ "interval": "10s",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": "1m",
+ "title": "Total",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "format": "none",
+ "gauge":
+ {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "1px",
+ "hideTimeOverride": true,
+ "id": 11,
+ "interval": null,
+ "isNew": true,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " cores",
+ "postfixFontSize": "30%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline":
+ {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "targets": [
+ {
+ "expr": "sum (rate (container_cpu_usage_seconds_total{id=\"/\",instance=~\"^$instance$\"}[1m]))",
+ "interval": "10s",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": "1m",
+ "timeShift": null,
+ "title": "Used",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "format": "none",
+ "gauge":
+ {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "1px",
+ "hideTimeOverride": true,
+ "id": 12,
+ "interval": null,
+ "isNew": true,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " cores",
+ "postfixFontSize": "30%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline":
+ {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "targets": [
+ {
+ "expr": "sum (machine_cpu_cores{instance=~\"^$instance$\"})",
+ "interval": "10s",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": "1m",
+ "title": "Total",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "format": "bytes",
+ "gauge":
+ {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "1px",
+ "hideTimeOverride": true,
+ "id": 13,
+ "interval": null,
+ "isNew": true,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline":
+ {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "targets": [
+ {
+ "expr": "sum(container_fs_usage_bytes{id=\"/\",instance=~\"^$instance$\"})",
+ "interval": "10s",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": "1m",
+ "title": "Used",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "rgba(50, 172, 45, 0.97)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(245, 54, 54, 0.9)"
+ ],
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "format": "bytes",
+ "gauge":
+ {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "height": "1px",
+ "hideTimeOverride": true,
+ "id": 14,
+ "interval": null,
+ "isNew": true,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": "",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "span": 2,
+ "sparkline":
+ {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": false
+ },
+ "targets": [
+ {
+ "expr": "sum (container_fs_limit_bytes{id=\"/\",instance=~\"^$instance$\"})",
+ "interval": "10s",
+ "intervalFactor": 1,
+ "refId": "A",
+ "step": 10
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": "1m",
+ "title": "Total",
+ "type": "singlestat",
+ "valueFontSize": "50%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid":
+ {
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)",
+ "thresholdLine": false
+ },
+ "height": "200px",
+ "id": 32,
+ "isNew": true,
+ "legend":
+ {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "max": false,
+ "min": false,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(container_network_receive_bytes_total{instance=~\"^$instance$\",namespace=~\"^$namespace$\"}[1m]))",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "receive",
+ "metric": "network",
+ "refId": "A",
+ "step": 240
+ },
+ {
+ "expr": "- sum(rate(container_network_transmit_bytes_total{instance=~\"^$instance$\",namespace=~\"^$namespace$\"}[1m]))",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "transmit",
+ "metric": "network",
+ "refId": "B",
+ "step": 240
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Network",
+ "tooltip":
+ {
+ "msResolution": false,
+ "shared": true,
+ "sort": 0,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis":
+ {
+ "show": true
+ },
+ "yaxes": [
+ {
+ "format": "Bps",
+ "label": "transmit / receive",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "Bps",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "showTitle": true,
+ "title": "all pods"
+ },
+ {
+ "collapse": false,
+ "editable": true,
+ "height": "250px",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "prometheus",
+ "decimals": 3,
+ "editable": true,
+ "error": false,
+ "fill": 0,
+ "grid":
+ {
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "height": "",
+ "id": 17,
+ "isNew": true,
+ "legend":
+ {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": false,
+ "min": false,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": null,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(rate(container_cpu_usage_seconds_total{image!=\"\",name=~\"^k8s_.*\",kubernetes_io_hostname=~\"^$Node$\"}[1m])) by (pod_name)",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "{{ pod_name }}",
+ "metric": "container_cpu",
+ "refId": "A",
+ "step": 240
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Cpu Usage",
+ "tooltip":
+ {
+ "msResolution": true,
+ "shared": false,
+ "sort": 2,
+ "value_type": "cumulative"
+ },
+ "transparent": false,
+ "type": "graph",
+ "xaxis":
+ {
+ "show": true
+ },
+ "yaxes": [
+ {
+ "format": "none",
+ "label": "cores",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "fill": 0,
+ "grid":
+ {
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 33,
+ "isNew": true,
+ "legend":
+ {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": false,
+ "min": false,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": null,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum (container_memory_working_set_bytes{image!=\"\",name=~\"^k8s_.*\",instance=~\"^$instance$\",namespace=~\"^$namespace$\"}) by (pod_name)",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "{{ pod_name }}",
+ "metric": "",
+ "refId": "A",
+ "step": 240
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory Working Set",
+ "tooltip":
+ {
+ "msResolution": false,
+ "shared": false,
+ "sort": 2,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis":
+ {
+ "show": true
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": "used",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid":
+ {
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 16,
+ "isNew": true,
+ "legend":
+ {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": false,
+ "min": false,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "sort": "avg",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum (rate (container_network_receive_bytes_total{image!=\"\",name=~\"^k8s_.*\",instance=~\"^$instance$\",namespace=~\"^$namespace$\"}[1m])) by (pod_name)",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "{{ pod_name }} < in",
+ "metric": "network",
+ "refId": "A",
+ "step": 240
+ },
+ {
+ "expr": "- sum (rate (container_network_transmit_bytes_total{image!=\"\",name=~\"^k8s_.*\",instance=~\"^$instance$\",namespace=~\"^$namespace$\"}[1m])) by (pod_name)",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "{{ pod_name }} > out",
+ "metric": "network",
+ "refId": "B",
+ "step": 240
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Network",
+ "tooltip":
+ {
+ "msResolution": false,
+ "shared": false,
+ "sort": 2,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis":
+ {
+ "show": true
+ },
+ "yaxes": [
+ {
+ "format": "Bps",
+ "label": "transmit / receive",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "prometheus",
+ "decimals": 2,
+ "editable": true,
+ "error": false,
+ "fill": 1,
+ "grid":
+ {
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 34,
+ "isNew": true,
+ "legend":
+ {
+ "alignAsTable": true,
+ "avg": true,
+ "current": true,
+ "hideEmpty": true,
+ "hideZero": true,
+ "max": false,
+ "min": false,
+ "rightSide": true,
+ "show": true,
+ "sideWidth": 200,
+ "sort": "current",
+ "sortDesc": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 2,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 12,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "sum(container_fs_usage_bytes{image!=\"\",name=~\"^k8s_.*\",instance=~\"^$instance$\",namespace=~\"^$namespace$\"}) by (pod_name)",
+ "interval": "",
+ "intervalFactor": 2,
+ "legendFormat": "{{ pod_name }}",
+ "metric": "network",
+ "refId": "A",
+ "step": 240
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Filesystem",
+ "tooltip":
+ {
+ "msResolution": false,
+ "shared": false,
+ "sort": 2,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "xaxis":
+ {
+ "show": true
+ },
+ "yaxes": [
+ {
+ "format": "bytes",
+ "label": "used",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "showTitle": true,
+ "title": "each pod"
+ }
+ ],
+ "time":
+ {
+ "from": "now-3d",
+ "to": "now"
+ },
+ "timepicker":
+ {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "templating":
+ {
+ "list": [
+ {
+ "allValue": ".*",
+ "current": {},
+ "datasource": "prometheus",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Instance",
+ "multi": false,
+ "name": "instance",
+ "options": [],
+ "query": "label_values(instance)",
+ "refresh": 1,
+ "regex": "",
+ "type": "query"
+ },
+ {
+ "current": {},
+ "datasource": "prometheus",
+ "hide": 0,
+ "includeAll": true,
+ "label": "Namespace",
+ "multi": true,
+ "name": "namespace",
+ "options": [],
+ "query": "label_values(namespace)",
+ "refresh": 1,
+ "regex": "",
+ "type": "query"
+ }
+ ]
+ },
+ "annotations":
+ {
+ "list": []
+ },
+ "refresh": false,
+ "schemaVersion": 12,
+ "version": 8,
+ "links": [],
+ "gnetId": 737
+ }
+ akkadotnet-dashboard.json: |
+ {
+ "__inputs": [
+ {
+ "name": "DS_PROMETHEUS",
+ "label": "prometheus",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "prometheus",
+ "pluginName": "Prometheus"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "panel",
+ "id": "bargauge",
+ "name": "Bar gauge",
+ "version": ""
+ },
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "8.2.6"
+ },
+ {
+ "type": "panel",
+ "id": "graph",
+ "name": "Graph (old)",
+ "version": ""
+ },
+ {
+ "type": "datasource",
+ "id": "prometheus",
+ "name": "Prometheus",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "stat",
+ "name": "Stat",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "table",
+ "name": "Table",
+ "version": ""
+ },
+ {
+ "type": "panel",
+ "id": "table-old",
+ "name": "Table (old)",
+ "version": ""
+ }
+ ],
+ "annotations":
+ {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "prometheus",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "description": "System-wide Akka.NET metrics used for profiling Akka.NET performance. Gathered via Phobos and OpenTelemetry.",
+ "editable": true,
+ "fiscalYearStartMonth": 0,
+ "gnetId": 15637,
+ "graphTooltip": 0,
+ "id": 4,
+ "iteration": 1710430141324,
+ "links": [],
+ "liveNow": false,
+ "panels": [
+ {
+ "collapsed": false,
"datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "height": "180px",
- "id": 6,
- "interval": null,
- "isNew": true,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [{
- "name": "value to text",
- "value": 1
- }, {
- "name": "range to text",
- "value": 2
- }],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [{
- "from": "null",
- "text": "N/A",
- "to": "null"
- }],
- "span": 4,
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
+ "gridPos":
+ {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 0
},
- "targets": [{
- "expr": "sum(rate(container_cpu_usage_seconds_total{id=\"/\",instance=~\"^$instance$\"}[1m])) / sum (machine_cpu_cores{instance=~\"^$instance$\"}) * 100",
- "interval": "10s",
- "intervalFactor": 1,
- "refId": "A",
- "step": 10
- }],
- "thresholds": "65, 90",
- "timeFrom": "1m",
- "timeShift": null,
- "title": "Cpu Usage",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [{
- "op": "=",
- "text": "N/A",
- "value": "null"
- }],
- "valueName": "current"
- }, {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
+ "id": 23,
+ "panels": [],
+ "title": "Cluster Status",
+ "type": "row"
+ },
+ {
"datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "height": "180px",
- "id": 7,
- "interval": null,
- "isNew": true,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [{
- "name": "value to text",
- "value": 1
- }, {
- "name": "range to text",
- "value": 2
- }],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [{
- "from": "null",
- "text": "N/A",
- "to": "null"
- }],
- "span": 4,
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
+ "description": "Total number of active Akka.Cluster Members.",
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "mappings": [],
+ "thresholds":
+ {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
},
- "targets": [{
- "expr": "sum(container_fs_usage_bytes{id=\"/\",instance=~\"^$instance$\"}) / sum(container_fs_limit_bytes{id=\"/\",instance=~\"^$instance$\"}) * 100",
- "interval": "10s",
- "intervalFactor": 1,
- "legendFormat": "",
- "metric": "",
- "refId": "A",
- "step": 10
- }],
- "thresholds": "65, 90",
- "timeFrom": "1m",
- "timeShift": null,
- "title": "Filesystem Usage",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [{
- "op": "=",
- "text": "N/A",
- "value": "null"
- }],
- "valueName": "current"
- }, {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "format": "bytes",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "height": "1px",
- "hideTimeOverride": true,
- "id": 9,
- "interval": null,
- "isNew": true,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [{
- "name": "value to text",
- "value": 1
- }, {
- "name": "range to text",
- "value": 2
- }],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "20%",
- "prefix": "",
- "prefixFontSize": "20%",
- "rangeMaps": [{
- "from": "null",
- "text": "N/A",
- "to": "null"
- }],
- "span": 2,
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
+ "gridPos":
+ {
+ "h": 7,
+ "w": 19,
+ "x": 0,
+ "y": 1
},
- "targets": [{
- "expr": "sum(container_memory_working_set_bytes{id=\"/\",instance=~\"^$instance$\"})",
- "interval": "10s",
- "intervalFactor": 1,
- "refId": "A",
- "step": 10
- }],
- "thresholds": "",
- "timeFrom": "1m",
- "title": "Used",
- "type": "singlestat",
- "valueFontSize": "50%",
- "valueMaps": [{
- "op": "=",
- "text": "N/A",
- "value": "null"
- }],
- "valueName": "current"
- }, {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "format": "bytes",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "height": "1px",
- "hideTimeOverride": true,
- "id": 10,
- "interval": null,
- "isNew": true,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [{
- "name": "value to text",
- "value": 1
- }, {
- "name": "range to text",
- "value": 2
- }],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [{
- "from": "null",
- "text": "N/A",
- "to": "null"
- }],
- "span": 2,
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
+ "id": 25,
+ "options":
+ {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions":
+ {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "text": {},
+ "textMode": "auto"
},
- "targets": [{
- "expr": "sum (machine_memory_bytes{instance=~\"^$instance$\"})",
- "interval": "10s",
- "intervalFactor": 1,
- "refId": "A",
- "step": 10
- }],
- "thresholds": "",
- "timeFrom": "1m",
- "title": "Total",
- "type": "singlestat",
- "valueFontSize": "50%",
- "valueMaps": [{
- "op": "=",
- "text": "N/A",
- "value": "null"
- }],
- "valueName": "current"
- }, {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
+ "pluginVersion": "8.2.6",
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "ceil(avg(akka_cluster_members{status=\"Up\"}))",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "Up",
+ "refId": "A"
+ },
+ {
+ "exemplar": true,
+ "expr": "ceil(avg(akka_cluster_members{status=\"WeaklyUp\"}))",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "WeaklyUp",
+ "refId": "B"
+ },
+ {
+ "exemplar": true,
+ "expr": "ceil(avg(akka_cluster_members{status=\"Joining\"}))",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "Joining",
+ "refId": "C"
+ },
+ {
+ "exemplar": true,
+ "expr": "ceil(avg(akka_cluster_members{status=\"Leaving\"}))",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "Leaving",
+ "refId": "D"
+ },
+ {
+ "exemplar": true,
+ "expr": "ceil(avg(akka_cluster_members{status=\"Exiting\"}))",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "Exiting",
+ "refId": "E"
+ },
+ {
+ "exemplar": true,
+ "expr": "ceil(avg(akka_cluster_members{status=\"Down\"}))",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "Down",
+ "refId": "F"
+ }
],
- "datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "height": "1px",
- "hideTimeOverride": true,
- "id": 11,
- "interval": null,
- "isNew": true,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [{
- "name": "value to text",
- "value": 1
- }, {
- "name": "range to text",
- "value": 2
- }],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": " cores",
- "postfixFontSize": "30%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [{
- "from": "null",
- "text": "N/A",
- "to": "null"
- }],
- "span": 2,
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "targets": [{
- "expr": "sum (rate (container_cpu_usage_seconds_total{id=\"/\",instance=~\"^$instance$\"}[1m]))",
- "interval": "10s",
- "intervalFactor": 1,
- "refId": "A",
- "step": 10
- }],
- "thresholds": "",
- "timeFrom": "1m",
+ "timeFrom": null,
"timeShift": null,
- "title": "Used",
- "type": "singlestat",
- "valueFontSize": "50%",
- "valueMaps": [{
- "op": "=",
- "text": "N/A",
- "value": "null"
- }],
- "valueName": "current"
- }, {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
+ "title": "Active Cluster Size",
+ "transformations": [],
+ "type": "stat"
+ },
+ {
"datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "height": "1px",
- "hideTimeOverride": true,
- "id": 12,
- "interval": null,
- "isNew": true,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [{
- "name": "value to text",
- "value": 1
- }, {
- "name": "range to text",
- "value": 2
- }],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": " cores",
- "postfixFontSize": "30%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [{
- "from": "null",
- "text": "N/A",
- "to": "null"
- }],
- "span": 2,
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
+ "description": "All nodes in the cluster that are detected to be unreachable.",
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "mappings": [],
+ "thresholds":
+ {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 1
+ }
+ ]
+ }
+ },
+ "overrides": []
},
- "targets": [{
- "expr": "sum (machine_cpu_cores{instance=~\"^$instance$\"})",
- "interval": "10s",
- "intervalFactor": 1,
- "refId": "A",
- "step": 10
- }],
- "thresholds": "",
- "timeFrom": "1m",
- "title": "Total",
- "type": "singlestat",
- "valueFontSize": "50%",
- "valueMaps": [{
- "op": "=",
- "text": "N/A",
- "value": "null"
- }],
- "valueName": "current"
- }, {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "format": "bytes",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "height": "1px",
- "hideTimeOverride": true,
- "id": 13,
- "interval": null,
- "isNew": true,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [{
- "name": "value to text",
- "value": 1
- }, {
- "name": "range to text",
- "value": 2
- }],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [{
- "from": "null",
- "text": "N/A",
- "to": "null"
- }],
- "span": 2,
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
+ "gridPos":
+ {
+ "h": 7,
+ "w": 5,
+ "x": 19,
+ "y": 1
},
- "targets": [{
- "expr": "sum(container_fs_usage_bytes{id=\"/\",instance=~\"^$instance$\"})",
- "interval": "10s",
- "intervalFactor": 1,
- "refId": "A",
- "step": 10
- }],
- "thresholds": "",
- "timeFrom": "1m",
- "title": "Used",
- "type": "singlestat",
- "valueFontSize": "50%",
- "valueMaps": [{
- "op": "=",
- "text": "N/A",
- "value": "null"
- }],
- "valueName": "current"
- }, {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "format": "bytes",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "height": "1px",
- "hideTimeOverride": true,
- "id": 14,
- "interval": null,
- "isNew": true,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [{
- "name": "value to text",
- "value": 1
- }, {
- "name": "range to text",
- "value": 2
- }],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [{
- "from": "null",
- "text": "N/A",
- "to": "null"
- }],
- "span": 2,
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
+ "id": 27,
+ "options":
+ {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions":
+ {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "text": {},
+ "textMode": "auto"
},
- "targets": [{
- "expr": "sum (container_fs_limit_bytes{id=\"/\",instance=~\"^$instance$\"})",
- "interval": "10s",
- "intervalFactor": 1,
- "refId": "A",
- "step": 10
- }],
- "thresholds": "",
- "timeFrom": "1m",
- "title": "Total",
- "type": "singlestat",
- "valueFontSize": "50%",
- "valueMaps": [{
- "op": "=",
- "text": "N/A",
- "value": "null"
- }],
- "valueName": "current"
- }, {
+ "pluginVersion": "8.2.6",
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "ceil(avg(akka_cluster_reachable_members{status=\"False\"}))",
+ "instant": true,
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Unreachable Nodes",
+ "type": "stat"
+ },
+ {
"aliasColors": {},
"bars": false,
+ "dashLength": 10,
+ "dashes": false,
"datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
+ "description": "Tracks all nodes by their membership status and reachability.",
"fill": 1,
- "grid": {
- "threshold1": null,
- "threshold1Color": "rgba(216, 200, 27, 0.27)",
- "threshold2": null,
- "threshold2Color": "rgba(234, 112, 112, 0.22)",
- "thresholdLine": false
- },
- "height": "200px",
- "id": 32,
- "isNew": true,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
+ "fillGradient": 0,
+ "gridPos":
+ {
+ "h": 6,
+ "w": 24,
+ "x": 0,
+ "y": 8
+ },
+ "hiddenSeries": false,
+ "id": 29,
+ "legend":
+ {
+ "avg": false,
+ "current": false,
"max": false,
"min": false,
- "rightSide": true,
"show": true,
- "sideWidth": 200,
- "sort": "current",
- "sortDesc": true,
"total": false,
- "values": true
+ "values": false
},
"lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options":
+ {
+ "alertThreshold": true
+ },
"percentage": false,
- "pointradius": 5,
+ "pluginVersion": "8.2.6",
+ "pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
- "span": 12,
+ "spaceLength": 10,
"stack": false,
- "steppedLine": false,
- "targets": [{
- "expr": "sum(rate(container_network_receive_bytes_total{instance=~\"^$instance$\",namespace=~\"^$namespace$\"}[1m]))",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "receive",
- "metric": "network",
- "refId": "A",
- "step": 240
- }, {
- "expr": "- sum(rate(container_network_transmit_bytes_total{instance=~\"^$instance$\",namespace=~\"^$namespace$\"}[1m]))",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "transmit",
- "metric": "network",
- "refId": "B",
- "step": 240
- }],
+ "steppedLine": true,
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "ceil(avg by(status)(akka_cluster_members))",
+ "interval": "",
+ "legendFormat": "{{status}}",
+ "refId": "A"
+ },
+ {
+ "exemplar": true,
+ "expr": "ceil(avg(akka_cluster_reachable_members{status=\"False\"}))",
+ "instant": false,
+ "interval": "",
+ "legendFormat": "Unreachable",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [],
"timeFrom": null,
+ "timeRegions": [],
"timeShift": null,
- "title": "Network",
- "tooltip": {
- "msResolution": false,
+ "title": "Cluster Nodes by Status",
+ "tooltip":
+ {
"shared": true,
"sort": 0,
- "value_type": "cumulative"
+ "value_type": "individual"
},
- "transparent": false,
"type": "graph",
- "xaxis": {
- "show": true
+ "xaxis":
+ {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
},
- "yaxes": [{
- "format": "Bps",
- "label": "transmit / receive",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }, {
- "format": "Bps",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }]
- }],
- "showTitle": true,
- "title": "all pods"
- }, {
- "collapse": false,
- "editable": true,
- "height": "250px",
- "panels": [{
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis":
+ {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "collapsed": false,
+ "datasource": "prometheus",
+ "gridPos":
+ {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 14
+ },
+ "id": 8,
+ "panels": [],
+ "title": "Logging and Error Rates",
+ "type": "row"
+ },
+ {
"aliasColors": {},
"bars": false,
+ "dashLength": 10,
+ "dashes": false,
"datasource": "prometheus",
- "decimals": 3,
- "editable": true,
- "error": false,
- "fill": 0,
- "grid": {
- "threshold1": null,
- "threshold1Color": "rgba(216, 200, 27, 0.27)",
- "threshold2": null,
- "threshold2Color": "rgba(234, 112, 112, 0.22)"
- },
- "height": "",
- "id": 17,
- "isNew": true,
- "legend": {
+ "description": "Total aggregate logging activity per-second for each node in an Akka.NET cluster.",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos":
+ {
+ "h": 8,
+ "w": 24,
+ "x": 0,
+ "y": 15
+ },
+ "hiddenSeries": false,
+ "id": 6,
+ "legend":
+ {
"alignAsTable": true,
- "avg": true,
- "current": true,
- "hideEmpty": true,
- "hideZero": true,
+ "avg": false,
+ "current": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
- "sideWidth": null,
- "sort": "current",
- "sortDesc": true,
"total": false,
- "values": true
+ "values": false
},
"lines": true,
- "linewidth": 2,
+ "linewidth": 1,
"links": [],
- "nullPointMode": "connected",
+ "nullPointMode": "null",
+ "options":
+ {
+ "alertThreshold": true
+ },
"percentage": false,
+ "pluginVersion": "8.2.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
- "seriesOverrides": [],
- "span": 12,
+ "seriesOverrides": [
+ {
+ "alias": "error",
+ "color": "#F2495C",
+ "fill": 1
+ },
+ {
+ "alias": "warning",
+ "color": "#FA6400",
+ "fill": 2
+ },
+ {
+ "alias": "info",
+ "color": "#73BF69"
+ },
+ {
+ "alias": "debug",
+ "color": "#C8F2C2"
+ }
+ ],
+ "spaceLength": 10,
"stack": false,
"steppedLine": false,
- "targets": [{
- "expr": "sum(rate(container_cpu_usage_seconds_total{image!=\"\",name=~\"^k8s_.*\",kubernetes_io_hostname=~\"^$Node$\"}[1m])) by (pod_name)",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{ pod_name }}",
- "metric": "container_cpu",
- "refId": "A",
- "step": 240
- }],
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "sum by(level)(increase(akka_logs_events_total{cluster_role=~\"$role\",akka_address=~\"$address\"}[1m]))",
+ "format": "time_series",
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "{{level}}",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
"timeFrom": null,
+ "timeRegions": [],
"timeShift": null,
- "title": "Cpu Usage",
- "tooltip": {
- "msResolution": true,
- "shared": false,
- "sort": 2,
- "value_type": "cumulative"
- },
- "transparent": false,
+ "title": "Cluster Logging Activity",
+ "tooltip":
+ {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
"type": "graph",
- "xaxis": {
- "show": true
+ "xaxis":
+ {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
},
- "yaxes": [{
- "format": "none",
- "label": "cores",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }, {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }]
- }, {
- "aliasColors": {},
- "bars": false,
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis":
+ {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "prometheus",
+ "description": "Groups all exceptions detected in Akka.NET logs by type.",
+ "fontSize": "100%",
+ "gridPos":
+ {
+ "h": 9,
+ "w": 12,
+ "x": 0,
+ "y": 23
+ },
+ "id": 10,
+ "links": [],
+ "pageSize": null,
+ "scroll": true,
+ "showHeader": true,
+ "sort":
+ {
+ "col": 0,
+ "desc": true
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "align": "auto",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "link": false,
+ "pattern": "Time",
+ "type": "hidden"
+ },
+ {
+ "alias": "",
+ "align": "auto",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "sum by(cluster_role,akka_address,exceptiontype)(ceil(increase(akka_logs_events_total{cluster_role=~\"$role\",akka_address=~\"$address\",exceptiontype=~\".+\"}[5m])))",
+ "format": "table",
+ "instant": true,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "title": "Exceptions by Type (over 5m)",
+ "transform": "table",
+ "type": "table-old"
+ },
+ {
+ "cacheTimeout": null,
"datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "fill": 0,
- "grid": {
- "threshold1": null,
- "threshold1Color": "rgba(216, 200, 27, 0.27)",
- "threshold2": null,
- "threshold2Color": "rgba(234, 112, 112, 0.22)"
- },
- "id": 33,
- "isNew": true,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "hideEmpty": true,
- "hideZero": true,
- "max": false,
- "min": false,
- "rightSide": true,
- "show": true,
- "sideWidth": null,
- "sort": "current",
- "sortDesc": true,
- "total": false,
- "values": true
+ "description": "Total errors logged by Akka.NET over past 5 minutes, cumulative for all roles / cluster / exception types.",
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "mappings": [
+ {
+ "options":
+ {
+ "match": "null",
+ "result":
+ {
+ "text": "N/A"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "thresholds":
+ {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "none"
+ },
+ "overrides": []
},
- "lines": true,
- "linewidth": 2,
+ "gridPos":
+ {
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 23
+ },
+ "id": 12,
+ "interval": null,
"links": [],
- "nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "span": 12,
- "stack": false,
- "steppedLine": false,
- "targets": [{
- "expr": "sum (container_memory_working_set_bytes{image!=\"\",name=~\"^k8s_.*\",instance=~\"^$instance$\",namespace=~\"^$namespace$\"}) by (pod_name)",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{ pod_name }}",
- "metric": "",
- "refId": "A",
- "step": 240
- }],
- "timeFrom": null,
- "timeShift": null,
- "title": "Memory Working Set",
- "tooltip": {
- "msResolution": false,
- "shared": false,
- "sort": 2,
- "value_type": "cumulative"
+ "maxDataPoints": 100,
+ "options":
+ {
+ "colorMode": "value",
+ "graphMode": "area",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions":
+ {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "text": {},
+ "textMode": "auto"
},
- "type": "graph",
- "xaxis": {
- "show": true
+ "pluginVersion": "8.2.6",
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "sum(increase(akka_logs_events_total{level=\"error\",cluster_role=~\"$role\",akka_address=~\"$address\"}[5m]))",
+ "format": "time_series",
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "title": "Total Errors Logged (5m)",
+ "type": "stat"
+ },
+ {
+ "collapsed": false,
+ "datasource": "prometheus",
+ "gridPos":
+ {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 32
},
- "yaxes": [{
- "format": "bytes",
- "label": "used",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }, {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }]
- }, {
+ "id": 2,
+ "panels": [],
+ "repeat": "role",
+ "title": "Actor Metrics [$role]",
+ "type": "row"
+ },
+ {
"aliasColors": {},
"bars": false,
+ "dashLength": 10,
+ "dashes": false,
"datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
+ "description": "The full set of Akka.NET actors running on all nodes for all roles in a cluster.",
"fill": 1,
- "grid": {
- "threshold1": null,
- "threshold1Color": "rgba(216, 200, 27, 0.27)",
- "threshold2": null,
- "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ "fillGradient": 0,
+ "gridPos":
+ {
+ "h": 9,
+ "w": 12,
+ "x": 0,
+ "y": 33
},
- "id": 16,
- "isNew": true,
- "legend": {
+ "hiddenSeries": false,
+ "id": 4,
+ "legend":
+ {
"alignAsTable": true,
- "avg": true,
- "current": true,
- "hideEmpty": true,
- "hideZero": true,
+ "avg": false,
+ "current": false,
"max": false,
"min": false,
- "rightSide": true,
+ "rightSide": false,
"show": true,
- "sideWidth": 200,
- "sort": "avg",
- "sortDesc": true,
"total": false,
- "values": true
+ "values": false
},
"lines": true,
- "linewidth": 2,
+ "linewidth": 1,
"links": [],
"nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "span": 12,
- "stack": false,
- "steppedLine": false,
- "targets": [{
- "expr": "sum (rate (container_network_receive_bytes_total{image!=\"\",name=~\"^k8s_.*\",instance=~\"^$instance$\",namespace=~\"^$namespace$\"}[1m])) by (pod_name)",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{ pod_name }} < in",
- "metric": "network",
- "refId": "A",
- "step": 240
- }, {
- "expr": "- sum (rate (container_network_transmit_bytes_total{image!=\"\",name=~\"^k8s_.*\",instance=~\"^$instance$\",namespace=~\"^$namespace$\"}[1m])) by (pod_name)",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{ pod_name }} > out",
- "metric": "network",
- "refId": "B",
- "step": 240
- }],
- "timeFrom": null,
- "timeShift": null,
- "title": "Network",
- "tooltip": {
- "msResolution": false,
- "shared": false,
- "sort": 2,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "show": true
- },
- "yaxes": [{
- "format": "Bps",
- "label": "transmit / receive",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }, {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }]
- }, {
- "aliasColors": {},
- "bars": false,
- "datasource": "prometheus",
- "decimals": 2,
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {
- "threshold1": null,
- "threshold1Color": "rgba(216, 200, 27, 0.27)",
- "threshold2": null,
- "threshold2Color": "rgba(234, 112, 112, 0.22)"
- },
- "id": 34,
- "isNew": true,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "hideEmpty": true,
- "hideZero": true,
- "max": false,
- "min": false,
- "rightSide": true,
- "show": true,
- "sideWidth": 200,
- "sort": "current",
- "sortDesc": true,
- "total": false,
- "values": true
+ "options":
+ {
+ "alertThreshold": true
},
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "null",
"percentage": false,
+ "pluginVersion": "8.2.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
+ "repeat": null,
+ "repeatDirection": "h",
"seriesOverrides": [],
- "span": 12,
+ "spaceLength": 10,
"stack": false,
"steppedLine": false,
- "targets": [{
- "expr": "sum(container_fs_usage_bytes{image!=\"\",name=~\"^k8s_.*\",instance=~\"^$instance$\",namespace=~\"^$namespace$\"}) by (pod_name)",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{ pod_name }}",
- "metric": "network",
- "refId": "A",
- "step": 240
- }],
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "sum by(cluster_role,akka_address)(akka_actor_live_actors{cluster_role=~\"$role\",akka_address=~\"$address\"})",
+ "format": "time_series",
+ "instant": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "Total Actors [{{cluster_role}} ({{akka_address}})]",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [],
"timeFrom": null,
+ "timeRegions": [],
"timeShift": null,
- "title": "Filesystem",
- "tooltip": {
- "msResolution": false,
- "shared": false,
- "sort": 2,
- "value_type": "cumulative"
+ "title": "Total Akka.NET Actors",
+ "tooltip":
+ {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
},
"type": "graph",
- "xaxis": {
- "show": true
+ "xaxis":
+ {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
},
- "yaxes": [{
- "format": "bytes",
- "label": "used",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }, {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }]
- }],
- "showTitle": true,
- "title": "each pod"
- }],
- "time": {
- "from": "now-3d",
- "to": "now"
- },
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ],
- "time_options": [
- "5m",
- "15m",
- "1h",
- "6h",
- "12h",
- "24h",
- "2d",
- "7d",
- "30d"
- ]
- },
- "templating": {
- "list": [{
- "allValue": ".*",
- "current": {},
- "datasource": "prometheus",
- "hide": 0,
- "includeAll": true,
- "label": "Instance",
- "multi": false,
- "name": "instance",
- "options": [],
- "query": "label_values(instance)",
- "refresh": 1,
- "regex": "",
- "type": "query"
- }, {
- "current": {},
- "datasource": "prometheus",
- "hide": 0,
- "includeAll": true,
- "label": "Namespace",
- "multi": true,
- "name": "namespace",
- "options": [],
- "query": "label_values(namespace)",
- "refresh": 1,
- "regex": "",
- "type": "query"
- }]
- },
- "annotations": {
- "list": []
- },
- "refresh": false,
- "schemaVersion": 12,
- "version": 8,
- "links": [],
- "gnetId": 737
- }
- akkadotnet-dashboard.json: |
- {
- "__inputs": [{
- "name": "DS_PROMETHEUS",
- "label": "prometheus",
- "description": "",
- "type": "datasource",
- "pluginId": "prometheus",
- "pluginName": "Prometheus"
- }],
- "annotations": {
- "list": [
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis":
{
- "builtIn": 1,
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations & Alerts",
- "type": "dashboard"
+ "align": false,
+ "alignLevel": null
}
- ]
- },
- "description": "System-wide Akka.NET metrics used for profiling Akka.NET performance. Gathered via Phobos and OpenTelemetry.",
- "editable": true,
- "gnetId": 15637,
- "graphTooltip": 0,
- "id": 4,
- "iteration": 1645797823962,
- "links": [],
- "panels": [
- {
- "collapsed": false,
- "datasource": "prometheus",
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 0
- },
- "id": 23,
- "panels": [],
- "title": "Cluster Status",
- "type": "row"
},
{
+ "cacheTimeout": null,
"datasource": "prometheus",
- "description": "Total number of active Akka.Cluster Members.",
- "fieldConfig": {
- "defaults": {
- "custom": {},
- "mappings": [],
- "thresholds": {
+ "description": "Cumulative Akka.NET messaging throughput across all selected nodes and roles.",
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "mappings": [
+ {
+ "options":
+ {
+ "match": "null",
+ "result":
+ {
+ "text": "N/A"
+ }
+ },
+ "type": "special"
+ }
+ ],
+ "thresholds":
+ {
"mode": "absolute",
"steps": [
{
@@ -1288,90 +2215,170 @@ data:
"value": 80
}
]
- }
+ },
+ "unit": "reqps"
},
"overrides": []
},
- "gridPos": {
- "h": 7,
- "w": 19,
- "x": 0,
- "y": 1
+ "gridPos":
+ {
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 33
},
- "id": 25,
- "options": {
+ "id": 16,
+ "interval": null,
+ "links": [],
+ "maxDataPoints": 100,
+ "options":
+ {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
- "orientation": "auto",
- "reduceOptions": {
+ "orientation": "horizontal",
+ "reduceOptions":
+ {
"calcs": [
- "mean"
+ "last"
],
"fields": "",
"values": false
},
+ "text": {},
"textMode": "auto"
},
- "pluginVersion": "7.3.7",
+ "pluginVersion": "8.2.6",
"targets": [
{
- "expr": "ceil(avg(akka_cluster_members_members{status=\"Up\"}))",
- "instant": true,
+ "exemplar": true,
+ "expr": "sum(irate(akka_messages_recv_msgs_total{cluster_role=~\"$role\",akka_address=~\"$address\"}[1m]))",
+ "format": "time_series",
+ "instant": false,
"interval": "",
- "legendFormat": "Up",
+ "intervalFactor": 1,
+ "legendFormat": "",
"refId": "A"
- },
+ }
+ ],
+ "title": "Total Actor Throughput (msg/s)",
+ "type": "stat"
+ },
+ {
+ "datasource": "prometheus",
+ "description": "All actor counts by type.",
+ "fieldConfig":
+ {
+ "defaults":
{
- "expr": "ceil(avg(akka_cluster_members_members{status=\"WeaklyUp\"}))",
- "instant": true,
- "interval": "",
- "legendFormat": "WeaklyUp",
- "refId": "B"
+ "color":
+ {
+ "mode": "thresholds"
+ },
+ "custom":
+ {
+ "align": "auto",
+ "displayMode": "auto"
+ },
+ "mappings": [],
+ "thresholds":
+ {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
},
+ "overrides": []
+ },
+ "gridPos":
+ {
+ "h": 9,
+ "w": 12,
+ "x": 0,
+ "y": 42
+ },
+ "id": 14,
+ "links": [],
+ "options":
+ {
+ "showHeader": true
+ },
+ "pluginVersion": "8.2.6",
+ "targets": [
{
- "expr": "ceil(avg(akka_cluster_members_members{status=\"Joining\"}))",
+ "exemplar": true,
+ "expr": "topk(10,sum by(actortype)(akka_actor_live_actors{cluster_role=~\"$role\",akka_address=~\"$address\"}))",
+ "format": "table",
"instant": true,
"interval": "",
- "legendFormat": "Joining",
- "refId": "C"
- },
+ "intervalFactor": 1,
+ "legendFormat": "{{actortype}} created",
+ "refId": "A"
+ }
+ ],
+ "title": "Live Actors by Type",
+ "transformations": [
{
- "expr": "ceil(avg(akka_cluster_members_members{status=\"Leaving\"}))",
- "instant": true,
- "interval": "",
- "legendFormat": "Leaving",
- "refId": "D"
+ "id": "labelsToFields",
+ "options": {}
},
{
- "expr": "ceil(avg(akka_cluster_members_members{status=\"Exiting\"}))",
- "instant": true,
- "interval": "",
- "legendFormat": "Exiting",
- "refId": "E"
+ "id": "organize",
+ "options":
+ {
+ "excludeByName":
+ {
+ "Time": true
+ },
+ "indexByName": {},
+ "renameByName":
+ {
+ "Time": "",
+ "Value": "Alive",
+ "actortype": ""
+ }
+ }
},
{
- "expr": "ceil(avg(akka_cluster_members_members{status=\"Down\"}))",
- "instant": true,
- "interval": "",
- "legendFormat": "Down",
- "refId": "F"
+ "id": "sortBy",
+ "options":
+ {
+ "fields": {},
+ "sort": [
+ {
+ "desc": true,
+ "field": "Alive"
+ }
+ ]
+ }
}
],
- "timeFrom": null,
- "timeShift": null,
- "title": "Active Cluster Size",
- "transformations": [],
- "type": "stat"
+ "type": "table"
},
{
"datasource": "prometheus",
- "description": "All nodes in the cluster that are detected to be unreachable.",
- "fieldConfig": {
- "defaults": {
- "custom": {},
+ "description": "Top 10 actor type / exception type pairs, based on the number of crashes per second observed over a 30 minute timespan.",
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "custom":
+ {
+ "align": null,
+ "displayMode": "auto",
+ "filterable": false
+ },
"mappings": [],
- "thresholds": {
+ "thresholds":
+ {
"mode": "absolute",
"steps": [
{
@@ -1380,371 +2387,283 @@ data:
},
{
"color": "red",
- "value": 1
+ "value": 80
}
]
}
},
"overrides": []
},
- "gridPos": {
- "h": 7,
- "w": 5,
- "x": 19,
- "y": 1
+ "gridPos":
+ {
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 42
},
- "id": 27,
- "options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "mean"
- ],
- "fields": "",
- "values": false
- },
- "textMode": "auto"
+ "id": 20,
+ "options":
+ {
+ "showHeader": true
},
- "pluginVersion": "7.3.7",
+ "pluginVersion": "8.2.6",
"targets": [
{
- "expr": "ceil(avg(akka_cluster_reachable_members{status=\"False\"}))",
+ "exemplar": true,
+ "expr": "topk(10,sum by(actortype, exceptiontype)(rate(akka_actor_restarts_total[30m])))",
+ "format": "table",
"instant": true,
"interval": "",
- "legendFormat": "",
+ "legendFormat": "{{actortype}},{{exceptiontype}}",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
- "title": "Unreachable Nodes",
- "type": "stat"
+ "title": "Actor Crashes by Actor / Exception (Top 10)",
+ "type": "table"
},
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
"datasource": "prometheus",
- "description": "Tracks all nodes by their membership status and reachability.",
- "fieldConfig": {
- "defaults": {
- "custom": {}
+ "description": "Akka.NET message throughput by message type.",
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "mappings": [],
+ "thresholds":
+ {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "reqps"
},
"overrides": []
},
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 6,
- "w": 24,
+ "gridPos":
+ {
+ "h": 9,
+ "w": 12,
"x": 0,
- "y": 8
- },
- "hiddenSeries": false,
- "id": 29,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
+ "y": 51
},
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
+ "id": 18,
+ "options":
+ {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions":
+ {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true,
+ "text": {}
},
- "percentage": false,
- "pluginVersion": "7.3.7",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": true,
+ "pluginVersion": "8.2.6",
"targets": [
{
- "expr": "ceil(avg by(status)(akka_cluster_members_members))",
+ "exemplar": true,
+ "expr": "topk(10,sum by(messagetype)(rate(akka_messages_recv_msgs_total{cluster_role=~\"$role\",akka_address=~\"$address\"}[5m])))",
+ "hide": false,
+ "instant": true,
"interval": "",
- "legendFormat": "{{status}}",
+ "legendFormat": "{{messagetype}}",
"refId": "A"
},
{
- "expr": "ceil(avg(akka_cluster_reachable_members{status=\"False\"}))",
+ "exemplar": true,
+ "expr": "sum by(messagetype)(irate(akka_messages_recv_msgs_total{cluster_role=~\"$role\",akka_address=~\"$address\"}[1m]))",
+ "hide": true,
"instant": false,
"interval": "",
- "legendFormat": "Unreachable",
+ "legendFormat": "{{messagetype}}",
"refId": "B"
}
],
- "thresholds": [],
"timeFrom": null,
- "timeRegions": [],
"timeShift": null,
- "title": "Cluster Nodes by Status",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "collapsed": false,
- "datasource": "prometheus",
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 14
- },
- "id": 8,
- "panels": [],
- "title": "Logging and Error Rates",
- "type": "row"
+ "title": "Akka.NET Message Throughput by Type (Top 10)",
+ "transformations": [],
+ "type": "bargauge"
},
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
"datasource": "prometheus",
- "description": "Total aggregate logging activity per-second for each node in an Akka.NET cluster.",
- "fieldConfig": {
- "defaults": {
- "custom": {}
+ "description": "Akka.NET message throughput by message type.",
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "mappings": [],
+ "thresholds":
+ {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "short"
},
"overrides": []
},
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 8,
- "w": 24,
- "x": 0,
- "y": 15
- },
- "hiddenSeries": false,
- "id": 6,
- "legend": {
- "alignAsTable": true,
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "rightSide": true,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
+ "gridPos":
+ {
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 51
},
- "percentage": false,
- "pluginVersion": "7.3.7",
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [
- {
- "alias": "error",
- "color": "#F2495C",
- "fill": 1
- },
- {
- "alias": "warning",
- "color": "#FA6400",
- "fill": 2
- },
+ "id": 21,
+ "options":
+ {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions":
{
- "alias": "info",
- "color": "#73BF69"
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
},
- {
- "alias": "debug",
- "color": "#C8F2C2"
- }
- ],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
+ "showUnfilled": true,
+ "text": {}
+ },
+ "pluginVersion": "8.2.6",
"targets": [
{
- "expr": "sum by(level)(increase(akka_logs_events{cluster_role=~\"$role\",akka_address=~\"$address\"}[1m]))",
+ "exemplar": true,
+ "expr": "topk(10,sum by(messagetype)(increase(akka_messages_recv_msgs_total{cluster_role=~\"$role\",akka_address=~\"$address\"}[5m])))",
"format": "time_series",
- "instant": false,
+ "hide": false,
+ "instant": true,
"interval": "",
- "intervalFactor": 1,
- "legendFormat": "{{level}}",
+ "legendFormat": "{{messagetype}}",
"refId": "A"
}
],
- "thresholds": [],
"timeFrom": null,
- "timeRegions": [],
"timeShift": null,
- "title": "Cluster Logging Activity",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
+ "title": "Akka.NET Message Totals by Type (Top 10 over 5 minutes)",
+ "transformations": [],
+ "type": "bargauge"
},
{
- "columns": [],
+ "collapsed": false,
"datasource": "prometheus",
- "description": "Groups all exceptions detected in Akka.NET logs by type.",
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fontSize": "100%",
- "gridPos": {
- "h": 9,
- "w": 12,
+ "gridPos":
+ {
+ "h": 1,
+ "w": 24,
"x": 0,
- "y": 23
- },
- "id": 10,
- "links": [],
- "pageSize": null,
- "scroll": true,
- "showHeader": true,
- "sort": {
- "col": 0,
- "desc": true
+ "y": 88
},
- "styles": [
+ "id": 38,
+ "panels": [],
+ "repeat": "shardRegion",
+ "title": "Sharding Statistics [$shardRegion]",
+ "type": "row"
+ },
+ {
+ "datasource": "prometheus",
+ "description": "Shows the distribution of $shardRegion shards across all nodes in the cluster.",
+ "fieldConfig":
+ {
+ "defaults":
{
- "alias": "Time",
- "align": "auto",
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "link": false,
- "pattern": "Time",
- "type": "hidden"
+ "color":
+ {
+ "mode": "thresholds"
+ },
+ "mappings": [],
+ "thresholds":
+ {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
},
+ "overrides": []
+ },
+ "gridPos":
+ {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 89
+ },
+ "id": 56,
+ "options":
+ {
+ "displayMode": "gradient",
+ "orientation": "horizontal",
+ "reduceOptions":
{
- "alias": "",
- "align": "auto",
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
+ "calcs": [
+ "lastNotNull"
],
- "decimals": 2,
- "pattern": "/.*/",
- "thresholds": [],
- "type": "number",
- "unit": "short"
- }
- ],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true,
+ "text": {}
+ },
+ "pluginVersion": "8.2.6",
"targets": [
{
- "expr": "sum by(cluster_role,akka_address,exceptiontype)(ceil(increase(akka_logs_events{cluster_role=~\"$role\",akka_address=~\"$address\",exceptiontype=~\".+\"}[5m])))",
- "format": "table",
- "instant": true,
+ "exemplar": true,
+ "expr": "sum by(akka_address)(akka_cluster_sharding_shards{region=~\"$shardRegion\"})",
+ "hide": false,
+ "instant": false,
"interval": "",
- "intervalFactor": 1,
- "legendFormat": "",
+ "legendFormat": "{{akka_address}}",
"refId": "A"
}
],
- "title": "Exceptions by Type (over 5m)",
- "transform": "table",
- "type": "table-old"
+ "title": "Shard Distribution [$shardRegion]",
+ "type": "bargauge"
},
{
- "cacheTimeout": null,
"datasource": "prometheus",
- "description": "Total errors logged by Akka.NET over past 5 minutes, cumulative for all roles / cluster / exception types.",
- "fieldConfig": {
- "defaults": {
- "custom": {},
- "mappings": [
- {
- "id": 0,
- "op": "=",
- "text": "N/A",
- "type": 1,
- "value": "null"
- }
- ],
- "nullValueMode": "connected",
- "thresholds": {
+ "description": "Shows the distribution of $shardRegion entities across all nodes in the cluster. Please note that this number reflects the total number of ALIVE entity actors.",
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "color":
+ {
+ "mode": "thresholds"
+ },
+ "mappings": [],
+ "thresholds":
+ {
"mode": "absolute",
"steps": [
{
@@ -1756,377 +2675,348 @@ data:
"value": 80
}
]
- },
- "unit": "none"
+ }
},
"overrides": []
},
- "gridPos": {
- "h": 9,
+ "gridPos":
+ {
+ "h": 8,
"w": 12,
"x": 12,
- "y": 23
+ "y": 89
},
- "id": 12,
- "interval": null,
- "links": [],
- "maxDataPoints": 100,
- "options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
+ "id": 57,
+ "options":
+ {
+ "displayMode": "gradient",
"orientation": "horizontal",
- "reduceOptions": {
+ "reduceOptions":
+ {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
- "textMode": "auto"
+ "showUnfilled": true,
+ "text": {}
},
- "pluginVersion": "7.3.7",
+ "pluginVersion": "8.2.6",
"targets": [
{
- "expr": "sum(increase(akka_logs_events{level=\"error\",cluster_role=~\"$role\",akka_address=~\"$address\"}[5m]))",
- "format": "time_series",
+ "exemplar": true,
+ "expr": "sum by(akka_address)(akka_cluster_sharding_entities{region=~\"$shardRegion\"})",
+ "hide": false,
"instant": false,
"interval": "",
- "intervalFactor": 1,
- "legendFormat": "",
+ "legendFormat": "{{akka_address}}",
"refId": "A"
}
],
- "title": "Total Errors Logged (5m)",
- "type": "stat"
+ "title": "Entity Distribution [$shardRegion]",
+ "type": "bargauge"
+ }
+ ],
+ "refresh": "10s",
+ "schemaVersion": 32,
+ "style": "dark",
+ "tags": [
+ "akka.net",
+ "phobos"
+ ],
+ "templating":
+ {
+ "list": [
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "prometheus",
+ "definition": "label_values(cluster_role)",
+ "description": null,
+ "error": null,
+ "hide": 0,
+ "includeAll": true,
+ "label": "Role",
+ "multi": true,
+ "name": "role",
+ "options": [],
+ "query":
+ {
+ "query": "label_values(cluster_role)",
+ "refId": "prometheus-role-Variable-Query"
+ },
+ "refresh": 2,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "prometheus",
+ "definition": "label_values(akka_address)",
+ "description": null,
+ "error": null,
+ "hide": 0,
+ "includeAll": true,
+ "label": "address",
+ "multi": true,
+ "name": "address",
+ "options": [],
+ "query":
+ {
+ "query": "label_values(akka_address)",
+ "refId": "prometheus-address-Variable-Query"
+ },
+ "refresh": 2,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "prometheus",
+ "definition": "label_values(region)",
+ "description": "All of the available shardRegions in the current Akka.NET cluster.",
+ "error": null,
+ "hide": 0,
+ "includeAll": true,
+ "label": "shardRegion",
+ "multi": true,
+ "name": "shardRegion",
+ "options": [],
+ "query":
+ {
+ "query": "label_values(region)",
+ "refId": "StandardVariableQuery"
+ },
+ "refresh": 2,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "type": "query"
+ },
+ {
+ "datasource": "prometheus",
+ "description": null,
+ "error": null,
+ "filters": [],
+ "hide": 0,
+ "label": "",
+ "name": "Filters",
+ "skipUrlSync": false,
+ "type": "adhoc"
+ }
+ ]
+ },
+ "time":
+ {
+ "from": "now-5m",
+ "to": "now"
+ },
+ "timepicker":
+ {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "timezone": "",
+ "title": "Akka.NET Cluster + Phobos 2.1 Metrics (Prometheus Data Source)",
+ "uid": "fm-cB024k",
+ "version": 2
+ }
+ akkadotnet-latency-dashboard.json: |
+ {
+ "__inputs": [
+ {
+ "name": "DS_PROMETHEUS",
+ "label": "prometheus",
+ "description": "",
+ "type": "datasource",
+ "pluginId": "prometheus",
+ "pluginName": "Prometheus"
+ }
+ ],
+ "__requires": [
+ {
+ "type": "panel",
+ "id": "bargauge",
+ "name": "Bar gauge",
+ "version": ""
+ },
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "8.2.6"
+ },
+ {
+ "type": "panel",
+ "id": "heatmap",
+ "name": "Heatmap",
+ "version": ""
},
+ {
+ "type": "datasource",
+ "id": "prometheus",
+ "name": "Prometheus",
+ "version": "1.0.0"
+ }
+ ],
+ "annotations":
+ {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "prometheus",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "description": "Message-processing latency dashboard for Akka.NET Clusters using Phobos 2.0 and OpenTelemetry.",
+ "editable": true,
+ "fiscalYearStartMonth": 0,
+ "gnetId": 15638,
+ "graphTooltip": 0,
+ "id": null,
+ "iteration": 1710430223367,
+ "links": [],
+ "liveNow": false,
+ "panels": [
{
"collapsed": false,
"datasource": "prometheus",
- "gridPos": {
+ "gridPos":
+ {
"h": 1,
"w": 24,
"x": 0,
- "y": 32
+ "y": 0
},
- "id": 2,
+ "id": 7,
"panels": [],
- "repeat": "role",
- "scopedVars": {
- "role": {
- "selected": false,
- "text": "console",
- "value": "console"
- }
- },
- "title": "Actor Metrics",
+ "title": "[$msgtype] Cumulative Latencies",
"type": "row"
},
{
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "description": "The full set of Akka.NET actors running on all nodes for all roles in a cluster.",
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
+ "cards":
+ {
+ "cardPadding": null,
+ "cardRound": null
+ },
+ "color":
+ {
+ "cardColor": "#b4ff00",
+ "colorScale": "sqrt",
+ "colorScheme": "interpolateSpectral",
+ "exponent": 0.5,
+ "mode": "opacity"
},
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 9,
+ "dataFormat": "tsbuckets",
+ "datasource": "prometheus",
+ "description": "Heatmap of milliseconds of latency by $msgtype",
+ "gridPos":
+ {
+ "h": 8,
"w": 12,
"x": 0,
- "y": 33
- },
- "hiddenSeries": false,
- "id": 4,
- "legend": {
- "alignAsTable": true,
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": false
+ "y": 1
},
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "alertThreshold": true
+ "heatmap": {},
+ "hideZeroBuckets": false,
+ "highlightCards": true,
+ "id": 8,
+ "legend":
+ {
+ "show": false
},
- "percentage": false,
+ "maxDataPoints": 25,
"pluginVersion": "7.3.7",
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatDirection": "h",
- "scopedVars": {
- "role": {
- "selected": false,
- "text": "console",
- "value": "console"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
+ "reverseYBuckets": false,
"targets": [
{
- "expr": "sum by(cluster_role,akka_address)(akka_actor_created_starts{cluster_role=~\"$role\",akka_address=~\"$address\"}) - sum by(cluster_role,akka_address)(akka_actor_stopped_stops{cluster_role=~\"$role\",akka_address=~\"$address\"})",
- "format": "time_series",
+ "exemplar": true,
+ "expr": "sum(increase(akka_messages_latency_milliseconds_bucket{messagetype=~\"$msgtype\"}[$__interval])) by (le)",
+ "format": "heatmap",
"instant": false,
"interval": "",
- "intervalFactor": 1,
- "legendFormat": "Total Actors [{{cluster_role}} ({{akka_address}})]",
+ "legendFormat": "{{le}}",
"refId": "A"
}
],
- "thresholds": [],
"timeFrom": null,
- "timeRegions": [],
"timeShift": null,
- "title": "Total Akka.NET Actors",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
+ "title": "Latency Over Time [$msgtype ]",
+ "tooltip":
+ {
"show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "cacheTimeout": null,
- "datasource": "prometheus",
- "description": "Cumulative Akka.NET messaging throughput across all selected nodes and roles.",
- "fieldConfig": {
- "defaults": {
- "custom": {},
- "mappings": [
- {
- "id": 0,
- "op": "=",
- "text": "N/A",
- "type": 1,
- "value": "null"
- }
- ],
- "nullValueMode": "connected",
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "reqps"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 9,
- "w": 12,
- "x": 12,
- "y": 33
+ "showHistogram": false
},
- "id": 16,
- "interval": null,
- "links": [],
- "maxDataPoints": 100,
- "options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "horizontal",
- "reduceOptions": {
- "calcs": [
- "last"
- ],
- "fields": "",
- "values": false
- },
- "textMode": "auto"
+ "type": "heatmap",
+ "xAxis":
+ {
+ "show": true
},
- "pluginVersion": "7.3.7",
- "scopedVars": {
- "role": {
- "selected": false,
- "text": "console",
- "value": "console"
- }
+ "xBucketNumber": null,
+ "xBucketSize": null,
+ "yAxis":
+ {
+ "decimals": null,
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true,
+ "splitFactor": null
},
- "targets": [
- {
- "expr": "sum(irate(akka_messages_recv_msgs{cluster_role=~\"$role\",akka_address=~\"$address\"}[1m]))",
- "format": "time_series",
- "instant": false,
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "",
- "refId": "A"
- }
- ],
- "title": "Total Actor Throughput (msg/s)",
- "type": "stat"
+ "yBucketBound": "auto",
+ "yBucketNumber": null,
+ "yBucketSize": null
},
{
- "columns": [],
"datasource": "prometheus",
- "description": "Top 10 actor starts / stops by type.",
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fontSize": "100%",
- "gridPos": {
- "h": 9,
- "w": 12,
- "x": 0,
- "y": 42
- },
- "id": 14,
- "links": [],
- "pageSize": null,
- "scopedVars": {
- "role": {
- "selected": false,
- "text": "console",
- "value": "console"
- }
- },
- "scroll": true,
- "showHeader": true,
- "sort": {
- "col": 2,
- "desc": true
- },
- "styles": [
- {
- "alias": "Time",
- "align": "auto",
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "link": false,
- "pattern": "Time",
- "type": "date"
- },
- {
- "alias": "Created",
- "align": "auto",
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "decimals": 2,
- "pattern": "Value #A",
- "thresholds": [],
- "type": "number",
- "unit": "short"
- },
- {
- "alias": "Terminated",
- "align": "auto",
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "decimals": 2,
- "mappingType": 1,
- "pattern": "Value",
- "thresholds": [],
- "type": "number",
- "unit": "short"
- }
- ],
- "targets": [
- {
- "expr": "topk(10,sum by(actortype)(akka_actor_created_starts{cluster_role=~\"$role\",akka_address=~\"$address\"}))",
- "format": "table",
- "instant": true,
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "{{actortype}} created",
- "refId": "A"
- },
- {
- "expr": "topk(10,sum by(actortype)(akka_actor_stopped_stops{cluster_role=~\"$role\",akka_address=~\"$address\"}))",
- "instant": true,
- "interval": "",
- "legendFormat": "{{actortype}} terminated",
- "refId": "B"
- }
- ],
- "title": "Live Actors by Type (Top 10)",
- "transform": "table",
- "transformations": [
+ "description": "Heatmap of milliseconds of latency by $msgtype",
+ "fieldConfig":
+ {
+ "defaults":
{
- "id": "labelsToFields",
- "options": {}
- }
- ],
- "type": "table-old"
- },
- {
- "datasource": "prometheus",
- "description": "Top 10 actor type / exception type pairs, based on the number of crashes per second observed over a 30 minute timespan.",
- "fieldConfig": {
- "defaults": {
- "custom": {
- "align": null,
- "filterable": false
- },
"mappings": [],
- "thresholds": {
+ "thresholds":
+ {
"mode": "absolute",
"steps": [
{
@@ -2142,122 +3032,147 @@ data:
},
"overrides": []
},
- "gridPos": {
- "h": 9,
+ "gridPos":
+ {
+ "h": 8,
"w": 12,
"x": 12,
- "y": 42
- },
- "id": 20,
- "options": {
- "showHeader": true
+ "y": 1
},
- "pluginVersion": "7.3.7",
- "scopedVars": {
- "role": {
- "selected": false,
- "text": "console",
- "value": "console"
- }
+ "id": 9,
+ "maxDataPoints": 25,
+ "options":
+ {
+ "displayMode": "gradient",
+ "orientation": "auto",
+ "reduceOptions":
+ {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showUnfilled": true,
+ "text": {}
},
+ "pluginVersion": "8.2.6",
"targets": [
{
- "expr": "topk(10,sum by(actortype, exceptiontype)(rate(akka_actor_restarts_restarts[30m])))",
- "format": "table",
- "instant": true,
+ "exemplar": true,
+ "expr": "sum(akka_messages_latency_milliseconds_bucket{messagetype=~\"$msgtype\"}) by (le)",
+ "format": "heatmap",
+ "instant": false,
"interval": "",
- "legendFormat": "{{actortype}},{{exceptiontype}}",
+ "legendFormat": "{{le}}",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
- "title": "Actor Crashes by Actor / Exception (Top 10)",
- "type": "table"
+ "title": "Latency Distribution [$msgtype ]",
+ "type": "bargauge"
},
{
+ "collapsed": false,
"datasource": "prometheus",
- "description": "Akka.NET message throughput by message type.",
- "fieldConfig": {
- "defaults": {
- "custom": {},
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "reqps"
- },
- "overrides": []
+ "gridPos":
+ {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 9
},
- "gridPos": {
- "h": 9,
+ "id": 5,
+ "panels": [],
+ "title": "[$msgtype] Latencies When Processed by [$actortype]",
+ "type": "row"
+ },
+ {
+ "cards":
+ {
+ "cardPadding": null,
+ "cardRound": null
+ },
+ "color":
+ {
+ "cardColor": "#b4ff00",
+ "colorScale": "sqrt",
+ "colorScheme": "interpolateSpectral",
+ "exponent": 0.5,
+ "mode": "opacity"
+ },
+ "dataFormat": "tsbuckets",
+ "datasource": "prometheus",
+ "description": "Heatmap of milliseconds of latency by $actortype / $msgtype",
+ "gridPos":
+ {
+ "h": 8,
"w": 12,
"x": 0,
- "y": 51
+ "y": 10
},
- "id": 18,
- "options": {
- "displayMode": "gradient",
- "orientation": "horizontal",
- "reduceOptions": {
- "calcs": [
- "mean"
- ],
- "fields": "",
- "values": false
- },
- "showUnfilled": true
+ "heatmap": {},
+ "hideZeroBuckets": false,
+ "highlightCards": true,
+ "id": 2,
+ "legend":
+ {
+ "show": false
},
+ "maxDataPoints": 25,
"pluginVersion": "7.3.7",
- "scopedVars": {
- "role": {
- "selected": false,
- "text": "console",
- "value": "console"
- }
- },
+ "reverseYBuckets": false,
"targets": [
{
- "expr": "topk(10,sum by(messagetype)(rate(akka_messages_recv_msgs{cluster_role=~\"$role\",akka_address=~\"$address\"}[5m])))",
- "hide": false,
- "instant": true,
- "interval": "",
- "legendFormat": "{{messagetype}}",
- "refId": "A"
- },
- {
- "expr": "sum by(messagetype)(irate(akka_messages_recv_msgs{cluster_role=~\"$role\",akka_address=~\"$address\"}[1m]))",
- "hide": true,
+ "exemplar": true,
+ "expr": "sum(increase(akka_messages_latency_milliseconds_bucket{messagetype=~\"$msgtype\",actortype=~\"$actortype\"}[$__interval])) by (le)",
+ "format": "heatmap",
"instant": false,
"interval": "",
- "legendFormat": "{{messagetype}}",
- "refId": "B"
+ "legendFormat": "{{le}}",
+ "refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
- "title": "Akka.NET Message Throughput by Type (Top 10)",
- "transformations": [],
- "type": "bargauge"
+ "title": "Latency Over Time [$actortype / $msgtype ]",
+ "tooltip":
+ {
+ "show": true,
+ "showHistogram": false
+ },
+ "type": "heatmap",
+ "xAxis":
+ {
+ "show": true
+ },
+ "xBucketNumber": null,
+ "xBucketSize": null,
+ "yAxis":
+ {
+ "decimals": null,
+ "format": "short",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true,
+ "splitFactor": null
+ },
+ "yBucketBound": "auto",
+ "yBucketNumber": null,
+ "yBucketSize": null
},
{
"datasource": "prometheus",
- "description": "Akka.NET message throughput by message type.",
- "fieldConfig": {
- "defaults": {
- "custom": {},
+ "description": "Heatmap of milliseconds of latency by $actortype / $msgtype",
+ "fieldConfig":
+ {
+ "defaults":
+ {
"mappings": [],
- "thresholds": {
+ "thresholds":
+ {
"mode": "absolute",
"steps": [
{
@@ -2269,229 +3184,250 @@ data:
"value": 80
}
]
- },
- "unit": "short"
+ }
},
"overrides": []
},
- "gridPos": {
- "h": 9,
+ "gridPos":
+ {
+ "h": 8,
"w": 12,
"x": 12,
- "y": 51
+ "y": 10
},
- "id": 21,
- "options": {
+ "id": 3,
+ "maxDataPoints": 25,
+ "options":
+ {
"displayMode": "gradient",
- "orientation": "horizontal",
- "reduceOptions": {
+ "orientation": "auto",
+ "reduceOptions":
+ {
"calcs": [
"mean"
],
"fields": "",
"values": false
},
- "showUnfilled": true
- },
- "pluginVersion": "7.3.7",
- "scopedVars": {
- "role": {
- "selected": false,
- "text": "console",
- "value": "console"
- }
+ "showUnfilled": true,
+ "text": {}
},
+ "pluginVersion": "8.2.6",
"targets": [
{
- "expr": "topk(10,sum by(messagetype)(increase(akka_messages_recv_msgs{cluster_role=~\"$role\",akka_address=~\"$address\"}[5m])))",
- "format": "time_series",
- "hide": false,
- "instant": true,
+ "exemplar": true,
+ "expr": "sum(akka_messages_latency_milliseconds_bucket{messagetype=~\"$msgtype\",actortype=~\"$actortype\"}) by (le)",
+ "format": "heatmap",
+ "instant": false,
"interval": "",
- "legendFormat": "{{messagetype}}",
+ "legendFormat": "{{le}}",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
- "title": "Akka.NET Message Totals by Type (Top 10 over 5 minutes)",
- "transformations": [],
+ "title": "Latency Distribution [$actortype / $msgtype ]",
"type": "bargauge"
}
],
"refresh": "10s",
- "schemaVersion": 26,
+ "schemaVersion": 32,
"style": "dark",
- "tags": [
- "akka.net",
- "phobos"
- ],
- "templating": {
+ "tags": [],
+ "templating":
+ {
"list": [
{
"allValue": null,
- "current": {
- "selected": false,
- "text": "All",
- "value": "$__all"
- },
+ "current": {},
"datasource": "prometheus",
- "definition": "label_values(cluster_role)",
+ "definition": "label_values(messagetype)",
+ "description": null,
"error": null,
"hide": 0,
- "includeAll": true,
- "label": "Role",
- "multi": true,
- "name": "role",
+ "includeAll": false,
+ "label": "msgtype",
+ "multi": false,
+ "name": "msgtype",
"options": [],
- "query": "label_values(cluster_role)",
- "refresh": 1,
+ "query":
+ {
+ "query": "label_values(messagetype)",
+ "refId": "prometheus-msgtype-Variable-Query"
+ },
+ "refresh": 2,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"tagValuesQuery": "",
- "tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
- "current": {
- "selected": false,
- "text": "All",
- "value": "$__all"
- },
+ "current": {},
"datasource": "prometheus",
- "definition": "label_values(akka_address)",
+ "definition": "label_values(actortype)",
+ "description": null,
"error": null,
"hide": 0,
- "includeAll": true,
- "label": "address",
- "multi": true,
- "name": "address",
+ "includeAll": false,
+ "label": "actortype",
+ "multi": false,
+ "name": "actortype",
"options": [],
- "query": "label_values(akka_address)",
- "refresh": 1,
+ "query":
+ {
+ "query": "label_values(actortype)",
+ "refId": "prometheus-actortype-Variable-Query"
+ },
+ "refresh": 2,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"tagValuesQuery": "",
- "tags": [],
"tagsQuery": "",
"type": "query",
"useTags": false
- },
- {
- "datasource": null,
- "error": null,
- "filters": [],
- "hide": 0,
- "label": "",
- "name": "Filters",
- "skipUrlSync": false,
- "type": "adhoc"
}
]
},
- "time": {
+ "time":
+ {
"from": "now-5m",
"to": "now"
},
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ],
- "time_options": [
- "5m",
- "15m",
- "1h",
- "6h",
- "12h",
- "24h",
- "2d",
- "7d",
- "30d"
- ]
- },
+ "timepicker": {},
"timezone": "",
- "title": "Akka.NET Cluster + Phobos 2.x Metrics (Prometheus Data Source)",
- "uid": "fxcTFhb7z",
- "version": 1
+ "title": "Akka.NET Cluster + Phobos 2.1 Message Latency Metrics (Prometheus Data Source)",
+ "uid": "-MOG0hx7z",
+ "version": 2
}
- akkadotnet-latency-dashboard.json: |
- {
- "__inputs": [{
+ dotnet-monitor-dashboard.json: |
+ {
+ "__inputs": [
+ {
"name": "DS_PROMETHEUS",
"label": "prometheus",
"description": "",
"type": "datasource",
"pluginId": "prometheus",
"pluginName": "Prometheus"
- }],
- "annotations": {
+ }
+ ],
+ "__requires": [
+ {
+ "type": "grafana",
+ "id": "grafana",
+ "name": "Grafana",
+ "version": "8.2.6"
+ },
+ {
+ "type": "datasource",
+ "id": "prometheus",
+ "name": "Prometheus",
+ "version": "1.0.0"
+ },
+ {
+ "type": "panel",
+ "id": "timeseries",
+ "name": "Time series",
+ "version": ""
+ }
+ ],
+ "annotations":
+ {
"list": [
{
"builtIn": 1,
+ "datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
+ "target":
+ {
+ "limit": 100,
+ "matchAny": false,
+ "tags": [],
+ "type": "dashboard"
+ },
"type": "dashboard"
}
]
},
- "description": "Message-processing latency dashboard for Akka.NET Clusters using Phobos 2.0 and OpenTelemetry.",
+ "description": "",
"editable": true,
- "gnetId": 15638,
+ "fiscalYearStartMonth": 0,
+ "gnetId": null,
"graphTooltip": 0,
- "id": 3,
- "iteration": 1645798543780,
+ "id": null,
+ "iteration": 1649985042094,
"links": [],
+ "liveNow": false,
"panels": [
{
"collapsed": false,
- "datasource": "prometheus",
- "gridPos": {
+ "datasource": null,
+ "gridPos":
+ {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
- "id": 7,
+ "id": 20,
"panels": [],
- "title": "[$msgtype] Cumulative Latencies",
+ "title": ".NET ThreadPool",
"type": "row"
},
{
- "cards": {
- "cardPadding": null,
- "cardRound": null
- },
- "color": {
- "cardColor": "#b4ff00",
- "colorScale": "sqrt",
- "colorScheme": "interpolateSpectral",
- "exponent": 0.5,
- "mode": "opacity"
- },
- "dataFormat": "tsbuckets",
- "datasource": "prometheus",
- "description": "Heatmap of milliseconds of latency by $msgtype",
- "fieldConfig": {
- "defaults": {
- "custom": {},
+ "datasource": null,
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "color":
+ {
+ "mode": "palette-classic"
+ },
+ "custom":
+ {
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom":
+ {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution":
+ {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking":
+ {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle":
+ {
+ "mode": "off"
+ }
+ },
"mappings": [],
- "thresholds": {
+ "thresholds":
+ {
"mode": "absolute",
"steps": [
{
@@ -2507,66 +3443,179 @@ data:
},
"overrides": []
},
- "gridPos": {
+ "gridPos":
+ {
"h": 8,
"w": 12,
"x": 0,
"y": 1
},
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
- "id": 8,
- "legend": {
- "show": false
+ "id": 22,
+ "options":
+ {
+ "legend":
+ {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
+ },
+ "tooltip":
+ {
+ "mode": "single"
+ }
},
- "maxDataPoints": 25,
- "pluginVersion": "7.3.7",
- "reverseYBuckets": false,
"targets": [
{
- "expr": "sum(increase(akka_messages_latency_ms_bucket{messagetype=~\"$msgtype\"}[$__interval])) by (le)",
- "format": "heatmap",
- "instant": false,
+ "exemplar": true,
+ "expr": "systemruntime_threadpool_completed_items_count{app=~\"$app\",instance=~\"$instance\"}",
"interval": "",
- "legendFormat": "{{le}}",
+ "legendFormat": "completed items {{instance}}",
"refId": "A"
}
],
- "timeFrom": null,
- "timeShift": null,
- "title": "Latency Over Time [$msgtype ]",
- "tooltip": {
- "show": true,
- "showHistogram": false
+ "title": ".NET Threadpool Completed Items",
+ "type": "timeseries"
+ },
+ {
+ "datasource": null,
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "color":
+ {
+ "mode": "palette-classic"
+ },
+ "custom":
+ {
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom":
+ {
+ "legend": false,
+ "tooltip": false,
+ "viz": 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
+ }
+ ]
+ }
+ },
+ "overrides": []
},
- "type": "heatmap",
- "xAxis": {
- "show": true
+ "gridPos":
+ {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 1
},
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": null,
- "format": "short",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true,
- "splitFactor": null
+ "id": 24,
+ "options":
+ {
+ "legend":
+ {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
+ },
+ "tooltip":
+ {
+ "mode": "single"
+ }
},
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "systemruntime_threadpool_thread_count{app=~\"$app\",instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "thread_count {{instance}}",
+ "refId": "A"
+ }
+ ],
+ "title": ".NET Threadpool Thread Count",
+ "type": "timeseries"
},
{
- "datasource": "prometheus",
- "description": "Heatmap of milliseconds of latency by $msgtype",
- "fieldConfig": {
- "defaults": {
- "custom": {},
+ "datasource": null,
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "color":
+ {
+ "mode": "palette-classic"
+ },
+ "custom":
+ {
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom":
+ {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution":
+ {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking":
+ {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle":
+ {
+ "mode": "off"
+ }
+ },
"mappings": [],
- "thresholds": {
+ "thresholds":
+ {
"mode": "absolute",
"steps": [
{
@@ -2582,76 +3631,234 @@ data:
},
"overrides": []
},
- "gridPos": {
+ "gridPos":
+ {
"h": 8,
"w": 12,
- "x": 12,
- "y": 1
+ "x": 0,
+ "y": 9
},
- "id": 9,
- "maxDataPoints": 25,
- "options": {
- "displayMode": "gradient",
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "mean"
- ],
- "fields": "",
- "values": false
+ "id": 26,
+ "options":
+ {
+ "legend":
+ {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
},
- "showUnfilled": true
+ "tooltip":
+ {
+ "mode": "single"
+ }
},
- "pluginVersion": "7.3.7",
"targets": [
{
- "expr": "sum(akka_messages_latency_ms_bucket{messagetype=~\"$msgtype\"}) by (le)",
- "format": "heatmap",
- "instant": false,
+ "exemplar": true,
+ "expr": "systemruntime_threadpool_queue_length{app=~\"$app\",instance=~\"$instance\"}",
"interval": "",
- "legendFormat": "{{le}}",
+ "legendFormat": "queue_length {{instance}}",
"refId": "A"
}
],
- "timeFrom": null,
- "timeShift": null,
- "title": "Latency Distribution [$msgtype ]",
- "type": "bargauge"
+ "title": ".NET Threadpool Queue Length",
+ "type": "timeseries"
},
{
"collapsed": false,
- "datasource": "prometheus",
- "gridPos": {
+ "datasource": null,
+ "gridPos":
+ {
"h": 1,
"w": 24,
"x": 0,
- "y": 9
+ "y": 17
},
- "id": 5,
+ "id": 4,
"panels": [],
- "title": "[$msgtype] Latencies When Processed by [$actortype]",
+ "title": "CPU Utilization",
"type": "row"
},
{
- "cards": {
- "cardPadding": null,
- "cardRound": null
+ "datasource": null,
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "color":
+ {
+ "mode": "palette-classic"
+ },
+ "custom":
+ {
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom":
+ {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 2,
+ "pointSize": 5,
+ "scaleDistribution":
+ {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking":
+ {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle":
+ {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "max": 1,
+ "thresholds":
+ {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "purple",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "percentunit"
+ },
+ "overrides": [
+ {
+ "matcher":
+ {
+ "id": "byName",
+ "options": "CPU Usage"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value":
+ {
+ "fixedColor": "purple",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
},
- "color": {
- "cardColor": "#b4ff00",
- "colorScale": "sqrt",
- "colorScheme": "interpolateSpectral",
- "exponent": 0.5,
- "mode": "opacity"
+ "gridPos":
+ {
+ "h": 8,
+ "w": 7,
+ "x": 0,
+ "y": 18
},
- "dataFormat": "tsbuckets",
- "datasource": "prometheus",
- "description": "Heatmap of milliseconds of latency by $actortype / $msgtype",
- "fieldConfig": {
- "defaults": {
- "custom": {},
+ "id": 10,
+ "options":
+ {
+ "legend":
+ {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
+ },
+ "tooltip":
+ {
+ "mode": "single"
+ }
+ },
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "systemruntime_cpu_usage_ratio{app=~\"$app\",instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "CPU Usage {{instance}}",
+ "refId": "A"
+ }
+ ],
+ "title": "CPU",
+ "type": "timeseries"
+ },
+ {
+ "collapsed": false,
+ "datasource": null,
+ "gridPos":
+ {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 26
+ },
+ "id": 16,
+ "panels": [],
+ "title": "Memory and GC",
+ "type": "row"
+ },
+ {
+ "datasource": null,
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "color":
+ {
+ "mode": "palette-classic"
+ },
+ "custom":
+ {
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom":
+ {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineStyle":
+ {
+ "fill": "solid"
+ },
+ "lineWidth": 2,
+ "pointSize": 5,
+ "scaleDistribution":
+ {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": false,
+ "stacking":
+ {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle":
+ {
+ "mode": "off"
+ }
+ },
+ "decimals": 0,
"mappings": [],
- "thresholds": {
+ "thresholds":
+ {
"mode": "absolute",
"steps": [
{
@@ -2663,70 +3870,123 @@ data:
"value": 80
}
]
- }
+ },
+ "unit": "bytes"
},
"overrides": []
},
- "gridPos": {
+ "gridPos":
+ {
"h": 8,
- "w": 12,
+ "w": 8,
"x": 0,
- "y": 10
+ "y": 27
},
- "heatmap": {},
- "hideZeroBuckets": false,
- "highlightCards": true,
"id": 2,
- "legend": {
- "show": false
+ "options":
+ {
+ "legend":
+ {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
+ },
+ "tooltip":
+ {
+ "mode": "single"
+ }
},
- "maxDataPoints": 25,
- "pluginVersion": "7.3.7",
- "reverseYBuckets": false,
"targets": [
{
- "expr": "sum(increase(akka_messages_latency_ms_bucket{messagetype=~\"$msgtype\",actortype=~\"$actortype\"}[$__interval])) by (le)",
- "format": "heatmap",
- "instant": false,
+ "exemplar": true,
+ "expr": "systemruntime_gen_0_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
+ "hide": false,
"interval": "",
- "legendFormat": "{{le}}",
+ "legendFormat": "Gen 0 Size {{instance}}",
+ "refId": "B"
+ },
+ {
+ "exemplar": true,
+ "expr": "systemruntime_gen_1_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Gen 1 Size {{instance}}",
+ "refId": "C"
+ },
+ {
+ "exemplar": true,
+ "expr": "systemruntime_gen_2_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Gen 2 Size {{instance}}",
+ "refId": "D"
+ },
+ {
+ "exemplar": true,
+ "expr": "systemruntime_loh_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "LOH Size {{instance}}",
"refId": "A"
+ },
+ {
+ "exemplar": true,
+ "expr": "systemruntime_poh_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "POH Size {{instance}}",
+ "refId": "E"
}
],
- "timeFrom": null,
- "timeShift": null,
- "title": "Latency Over Time [$actortype / $msgtype ]",
- "tooltip": {
- "show": true,
- "showHistogram": false
- },
- "type": "heatmap",
- "xAxis": {
- "show": true
- },
- "xBucketNumber": null,
- "xBucketSize": null,
- "yAxis": {
- "decimals": null,
- "format": "short",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true,
- "splitFactor": null
- },
- "yBucketBound": "auto",
- "yBucketNumber": null,
- "yBucketSize": null
+ "title": "Generation Sizes",
+ "type": "timeseries"
},
{
- "datasource": "prometheus",
- "description": "Heatmap of milliseconds of latency by $actortype / $msgtype",
- "fieldConfig": {
- "defaults": {
- "custom": {},
+ "datasource": null,
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "color":
+ {
+ "mode": "palette-classic"
+ },
+ "custom":
+ {
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom":
+ {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "lineInterpolation": "linear",
+ "lineWidth": 2,
+ "pointSize": 5,
+ "scaleDistribution":
+ {
+ "type": "linear"
+ },
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking":
+ {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle":
+ {
+ "mode": "off"
+ }
+ },
"mappings": [],
- "thresholds": {
+ "thresholds":
+ {
"mode": "absolute",
"steps": [
{
@@ -2738,1114 +3998,440 @@ data:
"value": 80
}
]
- }
+ },
+ "unit": "percentunit"
},
- "overrides": []
+ "overrides": [
+ {
+ "matcher":
+ {
+ "id": "byName",
+ "options": "systemruntime_gc_fragmentation_ratio{instance=\"host.docker.internal:52323\", job=\"memoryleak\"}"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value":
+ {
+ "fixedColor": "orange",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher":
+ {
+ "id": "byName",
+ "options": "Total Fragmentation"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value":
+ {
+ "fixedColor": "blue",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
},
- "gridPos": {
+ "gridPos":
+ {
"h": 8,
- "w": 12,
- "x": 12,
- "y": 10
+ "w": 8,
+ "x": 8,
+ "y": 27
},
- "id": 3,
- "maxDataPoints": 25,
- "options": {
- "displayMode": "gradient",
- "orientation": "auto",
- "reduceOptions": {
- "calcs": [
- "mean"
- ],
- "fields": "",
- "values": false
+ "id": 12,
+ "options":
+ {
+ "legend":
+ {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
},
- "showUnfilled": true
+ "tooltip":
+ {
+ "mode": "single"
+ }
},
- "pluginVersion": "7.3.7",
"targets": [
{
- "expr": "sum(akka_messages_latency_ms_bucket{messagetype=~\"$msgtype\",actortype=~\"$actortype\"}) by (le)",
- "format": "heatmap",
- "instant": false,
+ "exemplar": true,
+ "expr": "systemruntime_gc_fragmentation_ratio{app=~\"$app\",instance=~\"$instance\"}/100",
"interval": "",
- "legendFormat": "{{le}}",
+ "legendFormat": "Total Fragmentation {{instance}}",
"refId": "A"
}
],
- "timeFrom": null,
- "timeShift": null,
- "title": "Latency Distribution [$actortype / $msgtype ]",
- "type": "bargauge"
- }
- ],
- "refresh": "10s",
- "schemaVersion": 26,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": [
- {
- "allValue": null,
- "current": {
- "selected": false,
- "text": "int",
- "value": "int"
- },
- "datasource": "prometheus",
- "definition": "label_values(messagetype)",
- "error": null,
- "hide": 0,
- "includeAll": false,
- "label": "msgtype",
- "multi": false,
- "name": "msgtype",
- "options": [],
- "query": "label_values(messagetype)",
- "refresh": 2,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- },
- {
- "allValue": null,
- "current": {
- "selected": false,
- "text": "Petabridge.Cmd.Remote.Actors.GlobalStatusActor",
- "value": "Petabridge.Cmd.Remote.Actors.GlobalStatusActor"
- },
- "datasource": "prometheus",
- "definition": "label_values(actortype)",
- "error": null,
- "hide": 0,
- "includeAll": false,
- "label": "actortype",
- "multi": false,
- "name": "actortype",
- "options": [],
- "query": "label_values(actortype)",
- "refresh": 2,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "tagValuesQuery": "",
- "tags": [],
- "tagsQuery": "",
- "type": "query",
- "useTags": false
- }
- ]
- },
- "time": {
- "from": "now-5m",
- "to": "now"
- },
- "timepicker": {},
- "timezone": "",
- "title": "Akka.NET Cluster + Phobos 2.x Message Latency Metrics (Prometheus Data Source)",
- "uid": "-MOG0hx7z",
- "version": 1
- }
- dotnet-monitor-dashboard.json: |
- {
- "__inputs": [
- {
- "name": "DS_PROMETHEUS",
- "label": "prometheus",
- "description": "",
- "type": "datasource",
- "pluginId": "prometheus",
- "pluginName": "Prometheus"
- }
- ],
- "__requires": [
- {
- "type": "grafana",
- "id": "grafana",
- "name": "Grafana",
- "version": "8.2.6"
- },
- {
- "type": "datasource",
- "id": "prometheus",
- "name": "Prometheus",
- "version": "1.0.0"
- },
+ "title": "GC Fragmentation",
+ "type": "timeseries"
+ },
+ {
+ "datasource": null,
+ "fieldConfig":
{
- "type": "panel",
- "id": "timeseries",
- "name": "Time series",
- "version": ""
- }
- ],
- "annotations": {
- "list": [
+ "defaults":
{
- "builtIn": 1,
- "datasource": "-- Grafana --",
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations & Alerts",
- "target": {
- "limit": 100,
- "matchAny": false,
- "tags": [],
- "type": "dashboard"
- },
- "type": "dashboard"
- }
- ]
- },
- "description": "",
- "editable": true,
- "fiscalYearStartMonth": 0,
- "gnetId": null,
- "graphTooltip": 0,
- "id": null,
- "iteration": 1649985042094,
- "links": [],
- "liveNow": false,
- "panels": [
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 0
- },
- "id": 20,
- "panels": [],
- "title": ".NET ThreadPool",
- "type": "row"
- },
- {
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": 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
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 1
- },
- "id": 22,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
+ "color":
+ {
+ "mode": "palette-classic"
},
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
+ "custom":
{
- "exemplar": true,
- "expr": "systemruntime_threadpool_completed_items_count{app=~\"$app\",instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "completed items {{instance}}",
- "refId": "A"
- }
- ],
- "title": ".NET Threadpool Completed Items",
- "type": "timeseries"
- },
- {
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom":
+ {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
},
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
+ "lineInterpolation": "linear",
+ "lineWidth": 3,
+ "pointSize": 5,
+ "scaleDistribution":
+ {
+ "type": "linear"
},
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking":
+ {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle":
+ {
+ "mode": "off"
}
},
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 12,
- "y": 1
- },
- "id": 24,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
+ "mappings": [],
+ "thresholds":
{
- "exemplar": true,
- "expr": "systemruntime_threadpool_thread_count{app=~\"$app\",instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "thread_count {{instance}}",
- "refId": "A"
- }
- ],
- "title": ".NET Threadpool Thread Count",
- "type": "timeseries"
- },
- {
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
},
- "thresholdsStyle": {
- "mode": "off"
+ {
+ "color": "red",
+ "value": 80
}
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": []
+ ]
+ }
},
- "gridPos": {
- "h": 8,
- "w": 12,
- "x": 0,
- "y": 9
+ "overrides": []
+ },
+ "gridPos":
+ {
+ "h": 8,
+ "w": 7,
+ "x": 16,
+ "y": 27
+ },
+ "id": 14,
+ "options":
+ {
+ "legend":
+ {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
},
- "id": 26,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
+ "tooltip":
+ {
+ "mode": "single"
+ }
+ },
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "systemruntime_time_in_gc_ratio{app=~\"$app\",instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "% Time in GC {{instance}}",
+ "refId": "A"
+ }
+ ],
+ "title": "GC",
+ "type": "timeseries"
+ },
+ {
+ "datasource": null,
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "color":
+ {
+ "mode": "palette-classic"
},
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
+ "custom":
{
- "exemplar": true,
- "expr": "systemruntime_threadpool_queue_length{app=~\"$app\",instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "queue_length {{instance}}",
- "refId": "A"
- }
- ],
- "title": ".NET Threadpool Queue Length",
- "type": "timeseries"
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 17
- },
- "id": 4,
- "panels": [],
- "title": "CPU Utilization",
- "type": "row"
- },
- {
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "bars",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom":
+ {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
},
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 2,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution":
+ {
+ "type": "linear"
},
- "mappings": [],
- "max": 1,
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "purple",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking":
+ {
+ "group": "A",
+ "mode": "none"
},
- "unit": "percentunit"
- },
- "overrides": [
+ "thresholdsStyle":
{
- "matcher": {
- "id": "byName",
- "options": "CPU Usage"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "purple",
- "mode": "fixed"
- }
- }
- ]
+ "mode": "off"
}
- ]
- },
- "gridPos": {
- "h": 8,
- "w": 7,
- "x": 0,
- "y": 18
- },
- "id": 10,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
+ },
+ "mappings": [],
+ "thresholds":
{
- "exemplar": true,
- "expr": "systemruntime_cpu_usage_ratio{app=~\"$app\",instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "CPU Usage {{instance}}",
- "refId": "A"
- }
- ],
- "title": "CPU",
- "type": "timeseries"
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 26
- },
- "id": 16,
- "panels": [],
- "title": "Memory and GC",
- "type": "row"
- },
- {
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineStyle": {
- "fill": "solid"
- },
- "lineWidth": 2,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "never",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
},
- "thresholdsStyle": {
- "mode": "off"
+ {
+ "color": "red",
+ "value": 80
}
- },
- "decimals": 0,
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "bytes"
+ ]
},
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 8,
- "x": 0,
- "y": 27
+ "unit": "bytes"
},
- "id": 2,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
+ "overrides": []
+ },
+ "gridPos":
+ {
+ "h": 8,
+ "w": 8,
+ "x": 0,
+ "y": 35
+ },
+ "id": 8,
+ "options":
+ {
+ "legend":
+ {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
},
- "targets": [
- {
- "exemplar": true,
- "expr": "systemruntime_gen_0_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "Gen 0 Size {{instance}}",
- "refId": "B"
- },
- {
- "exemplar": true,
- "expr": "systemruntime_gen_1_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "Gen 1 Size {{instance}}",
- "refId": "C"
- },
- {
- "exemplar": true,
- "expr": "systemruntime_gen_2_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "Gen 2 Size {{instance}}",
- "refId": "D"
- },
+ "tooltip":
+ {
+ "mode": "single"
+ }
+ },
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "systemruntime_alloc_rate_bytes{app=~\"$app\",instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "Alloc rate {{instance}}",
+ "refId": "A"
+ }
+ ],
+ "title": "Allocations",
+ "type": "timeseries"
+ },
+ {
+ "datasource": null,
+ "fieldConfig":
+ {
+ "defaults":
+ {
+ "color":
{
- "exemplar": true,
- "expr": "systemruntime_loh_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "LOH Size {{instance}}",
- "refId": "A"
+ "mode": "palette-classic"
},
+ "custom":
{
- "exemplar": true,
- "expr": "systemruntime_poh_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "POH Size {{instance}}",
- "refId": "E"
- }
- ],
- "title": "Generation Sizes",
- "type": "timeseries"
- },
- {
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 2,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 0,
+ "gradientMode": "none",
+ "hideFrom":
+ {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
},
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
+ "lineInterpolation": "linear",
+ "lineWidth": 1,
+ "pointSize": 5,
+ "scaleDistribution":
+ {
+ "type": "linear"
},
- "unit": "percentunit"
- },
- "overrides": [
+ "showPoints": "auto",
+ "spanNulls": false,
+ "stacking":
{
- "matcher": {
- "id": "byName",
- "options": "systemruntime_gc_fragmentation_ratio{instance=\"host.docker.internal:52323\", job=\"memoryleak\"}"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "orange",
- "mode": "fixed"
- }
- }
- ]
+ "group": "A",
+ "mode": "none"
},
+ "thresholdsStyle":
{
- "matcher": {
- "id": "byName",
- "options": "Total Fragmentation"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "blue",
- "mode": "fixed"
- }
- }
- ]
+ "mode": "off"
}
- ]
- },
- "gridPos": {
- "h": 8,
- "w": 8,
- "x": 8,
- "y": 27
- },
- "id": 12,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
- },
- "targets": [
+ },
+ "mappings": [],
+ "thresholds":
{
- "exemplar": true,
- "expr": "systemruntime_gc_fragmentation_ratio{app=~\"$app\",instance=~\"$instance\"}/100",
- "interval": "",
- "legendFormat": "Total Fragmentation {{instance}}",
- "refId": "A"
- }
- ],
- "title": "GC Fragmentation",
- "type": "timeseries"
- },
- {
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "lineInterpolation": "linear",
- "lineWidth": 3,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
},
- "thresholdsStyle": {
- "mode": "off"
+ {
+ "color": "red",
+ "value": 80
}
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 7,
- "x": 16,
- "y": 27
- },
- "id": 14,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
+ ]
},
- "tooltip": {
- "mode": "single"
- }
+ "unit": "bytes"
},
- "targets": [
- {
- "exemplar": true,
- "expr": "systemruntime_time_in_gc_ratio{app=~\"$app\",instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "% Time in GC {{instance}}",
- "refId": "A"
- }
- ],
- "title": "GC",
- "type": "timeseries"
+ "overrides": []
},
+ "gridPos":
{
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "bars",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": 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": "bytes"
- },
- "overrides": []
+ "h": 8,
+ "w": 8,
+ "x": 8,
+ "y": 35
+ },
+ "id": 6,
+ "options":
+ {
+ "legend":
+ {
+ "calcs": [],
+ "displayMode": "list",
+ "placement": "bottom"
},
- "gridPos": {
- "h": 8,
- "w": 8,
- "x": 0,
- "y": 35
+ "tooltip":
+ {
+ "mode": "single"
+ }
+ },
+ "targets": [
+ {
+ "exemplar": true,
+ "expr": "systemruntime_gc_heap_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
+ "interval": "",
+ "legendFormat": "GC Heap Size",
+ "refId": "A"
},
- "id": 8,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
+ {
+ "exemplar": true,
+ "expr": "systemruntime_working_set_bytes{app=~\"$app\",instance=~\"$instance\"}",
+ "hide": false,
+ "interval": "",
+ "legendFormat": "Working Set",
+ "refId": "B"
+ }
+ ],
+ "title": "Overall Sizes",
+ "type": "timeseries"
+ }
+ ],
+ "refresh": "5s",
+ "schemaVersion": 32,
+ "style": "dark",
+ "tags": [],
+ "templating":
+ {
+ "list": [
+ {
+ "allValue": null,
+ "current": {},
+ "datasource": "prometheus",
+ "definition": "label_values(app)",
+ "description": "Kubernetes Application Name (app:{variable})",
+ "error": null,
+ "hide": 0,
+ "includeAll": true,
+ "label": null,
+ "multi": false,
+ "name": "app",
+ "options": [],
+ "query":
+ {
+ "query": "label_values(app)",
+ "refId": "StandardVariableQuery"
},
- "targets": [
- {
- "exemplar": true,
- "expr": "systemruntime_alloc_rate_bytes{app=~\"$app\",instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "Alloc rate {{instance}}",
- "refId": "A"
- }
- ],
- "title": "Allocations",
- "type": "timeseries"
+ "refresh": 1,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "type": "query"
},
{
- "datasource": null,
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "drawStyle": "line",
- "fillOpacity": 0,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": 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": "bytes"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 8,
- "w": 8,
- "x": 8,
- "y": 35
- },
- "id": 6,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom"
- },
- "tooltip": {
- "mode": "single"
- }
+ "allValue": null,
+ "current": {},
+ "datasource": "prometheus",
+ "definition": "label_values(instance)",
+ "description": "The pod instance of each service",
+ "error": null,
+ "hide": 0,
+ "includeAll": true,
+ "label": "Instance",
+ "multi": false,
+ "name": "instance",
+ "options": [],
+ "query":
+ {
+ "query": "label_values(instance)",
+ "refId": "StandardVariableQuery"
},
- "targets": [
- {
- "exemplar": true,
- "expr": "systemruntime_gc_heap_size_bytes{app=~\"$app\",instance=~\"$instance\"}",
- "interval": "",
- "legendFormat": "GC Heap Size",
- "refId": "A"
- },
- {
- "exemplar": true,
- "expr": "systemruntime_working_set_bytes{app=~\"$app\",instance=~\"$instance\"}",
- "hide": false,
- "interval": "",
- "legendFormat": "Working Set",
- "refId": "B"
- }
- ],
- "title": "Overall Sizes",
- "type": "timeseries"
+ "refresh": 1,
+ "regex": "",
+ "skipUrlSync": false,
+ "sort": 0,
+ "type": "query"
}
- ],
- "refresh": "5s",
- "schemaVersion": 32,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": [
- {
- "allValue": null,
- "current": {},
- "datasource": "prometheus",
- "definition": "label_values(app)",
- "description": "Kubernetes Application Name (app:{variable})",
- "error": null,
- "hide": 0,
- "includeAll": true,
- "label": null,
- "multi": false,
- "name": "app",
- "options": [],
- "query": {
- "query": "label_values(app)",
- "refId": "StandardVariableQuery"
- },
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "type": "query"
- },
- {
- "allValue": null,
- "current": {},
- "datasource": "prometheus",
- "definition": "label_values(instance)",
- "description": "The pod instance of each service",
- "error": null,
- "hide": 0,
- "includeAll": true,
- "label": "Instance",
- "multi": false,
- "name": "instance",
- "options": [],
- "query": {
- "query": "label_values(instance)",
- "refId": "StandardVariableQuery"
- },
- "refresh": 1,
- "regex": "",
- "skipUrlSync": false,
- "sort": 0,
- "type": "query"
- }
- ]
- },
- "time": {
- "from": "now-5m",
- "to": "now"
- },
- "timepicker": {},
- "timezone": "",
- "title": "dotnet-monitor Kubernetes Dashboard",
- "uid": "FF-1G8U7z",
- "version": 1
- }
+ ]
+ },
+ "time":
+ {
+ "from": "now-5m",
+ "to": "now"
+ },
+ "timepicker": {},
+ "timezone": "",
+ "title": "dotnet-monitor Kubernetes Dashboard",
+ "uid": "FF-1G8U7z",
+ "version": 1
+ }
---
apiVersion: v1
kind: ConfigMap
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index a147004..ae96d28 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -21,6 +21,6 @@
1.4.0
1.5.17.1
1.5.17.1
- 1.7.1
+ 1.5.1-beta.1
\ No newline at end of file
diff --git a/src/shared/AkkaDotNet.Infrastructure/AkkaDotNet.Infrastructure.csproj b/src/shared/AkkaDotNet.Infrastructure/AkkaDotNet.Infrastructure.csproj
index 430c27a..2c185db 100644
--- a/src/shared/AkkaDotNet.Infrastructure/AkkaDotNet.Infrastructure.csproj
+++ b/src/shared/AkkaDotNet.Infrastructure/AkkaDotNet.Infrastructure.csproj
@@ -38,5 +38,4 @@
-