1978 lines
		
	
	
	
		
			50 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			1978 lines
		
	
	
	
		
			50 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
| {
 | |
|   "annotations": {
 | |
|     "list": [
 | |
|       {
 | |
|         "builtIn": 1,
 | |
|         "datasource": "-- Grafana --",
 | |
|         "enable": true,
 | |
|         "hide": true,
 | |
|         "iconColor": "rgba(0, 211, 255, 1)",
 | |
|         "name": "Annotations & Alerts",
 | |
|         "type": "dashboard"
 | |
|       },
 | |
|       {
 | |
|         "datasource": "-- Grafana --",
 | |
|         "enable": true,
 | |
|         "hide": true,
 | |
|         "iconColor": "#73BF69",
 | |
|         "limit": 100,
 | |
|         "name": "PromEx service start",
 | |
|         "showIn": 0,
 | |
|         "tags": ["prom_ex", "pinchflat", "start"],
 | |
|         "type": "tags"
 | |
|       },
 | |
|       {
 | |
|         "datasource": "-- Grafana --",
 | |
|         "enable": true,
 | |
|         "hide": true,
 | |
|         "iconColor": "#FF9830",
 | |
|         "limit": 100,
 | |
|         "name": "PromEx service stop",
 | |
|         "showIn": 0,
 | |
|         "tags": ["prom_ex", "pinchflat", "stop"],
 | |
|         "type": "tags"
 | |
|       }
 | |
|     ]
 | |
|   },
 | |
|   "description": "All the data that is presented here is captured by the PromEx Phoenix plugin (https://github.com/akoutmos/prom_ex/blob/master/lib/prom_ex/plugins/phoenix.ex)",
 | |
|   "editable": false,
 | |
|   "gnetId": null,
 | |
|   "graphTooltip": 1,
 | |
|   "id": null,
 | |
|   "links": [
 | |
|     {
 | |
|       "asDropdown": false,
 | |
|       "icon": "bolt",
 | |
|       "includeVars": false,
 | |
|       "keepTime": false,
 | |
|       "tags": [],
 | |
|       "targetBlank": true,
 | |
|       "title": "Sponsor PromEx",
 | |
|       "tooltip": "",
 | |
|       "type": "link",
 | |
|       "url": "https://github.com/sponsors/akoutmos"
 | |
|     },
 | |
|     {
 | |
|       "asDropdown": false,
 | |
|       "icon": "doc",
 | |
|       "includeVars": false,
 | |
|       "keepTime": false,
 | |
|       "tags": [],
 | |
|       "targetBlank": true,
 | |
|       "title": "Phoenix Plugin Docs",
 | |
|       "tooltip": "",
 | |
|       "type": "link",
 | |
|       "url": "https://hexdocs.pm/prom_ex/PromEx.Plugins.Phoenix.html"
 | |
|     }
 | |
|   ],
 | |
|   "panels": [
 | |
|     {
 | |
|       "collapsed": false,
 | |
|       "datasource": null,
 | |
|       "gridPos": {
 | |
|         "h": 1,
 | |
|         "w": 24,
 | |
|         "x": 0,
 | |
|         "y": 0
 | |
|       },
 | |
|       "id": 19,
 | |
|       "panels": [],
 | |
|       "title": "Overview",
 | |
|       "type": "row"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The Phoenix Endpoint module currently active for config metrics.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "thresholds": {
 | |
|             "mode": "absolute",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "none"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 4,
 | |
|         "w": 8,
 | |
|         "x": 0,
 | |
|         "y": 1
 | |
|       },
 | |
|       "id": 32,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "none",
 | |
|         "justifyMode": "auto",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["last"],
 | |
|           "fields": "/^endpoint$/",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "pinchflat_prom_ex_phoenix_endpoint_port_info{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}",
 | |
|           "instant": true,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Server Endpoint",
 | |
|       "transformations": [
 | |
|         {
 | |
|           "id": "labelsToFields",
 | |
|           "options": {}
 | |
|         }
 | |
|       ],
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The port that the server is listening on.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "thresholds": {
 | |
|             "mode": "absolute",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "none"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 4,
 | |
|         "w": 8,
 | |
|         "x": 8,
 | |
|         "y": 1
 | |
|       },
 | |
|       "id": 30,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "none",
 | |
|         "justifyMode": "center",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["last"],
 | |
|           "fields": "/^port$/",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "pinchflat_prom_ex_phoenix_endpoint_port_info{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}",
 | |
|           "instant": true,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Server Port",
 | |
|       "transformations": [
 | |
|         {
 | |
|           "id": "labelsToFields",
 | |
|           "options": {}
 | |
|         }
 | |
|       ],
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The URL that the server is configured to be accessed from.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "color": {
 | |
|             "mode": "thresholds"
 | |
|           },
 | |
|           "mappings": [],
 | |
|           "thresholds": {
 | |
|             "mode": "absolute",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               }
 | |
|             ]
 | |
|           }
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 4,
 | |
|         "w": 8,
 | |
|         "x": 16,
 | |
|         "y": 1
 | |
|       },
 | |
|       "id": 31,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "none",
 | |
|         "justifyMode": "auto",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["lastNotNull"],
 | |
|           "fields": "/^url$/",
 | |
|           "values": false
 | |
|         },
 | |
|         "text": {},
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "exemplar": true,
 | |
|           "expr": "pinchflat_prom_ex_phoenix_endpoint_url_info{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}",
 | |
|           "format": "table",
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "queryType": "randomWalk",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "title": "Server URL",
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The Apdex score of the app based on a satisfactory response time of 500ms and a tolerable response time of 1000ms. This only takes into account how long Phoenix has been handling the request and only requests that resulted in a 2xx status code. The score is based on the last 24 hours of requests.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "noValue": "No data",
 | |
|           "thresholds": {
 | |
|             "mode": "absolute",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               },
 | |
|               {
 | |
|                 "color": "red",
 | |
|                 "value": 0
 | |
|               },
 | |
|               {
 | |
|                 "color": "yellow",
 | |
|                 "value": 70
 | |
|               },
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": 90
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "percent"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 6,
 | |
|         "w": 6,
 | |
|         "x": 0,
 | |
|         "y": 5
 | |
|       },
 | |
|       "id": 21,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "area",
 | |
|         "justifyMode": "center",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["lastNotNull"],
 | |
|           "fields": "",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "(\n  (\n    sum(increase(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", le=\"500\", status=~\"2..\"}[24h])) + \n    (sum(increase(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", le=\"1000\", status=~\"2..\"}[24h])) - sum(increase(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", le=\"500\", status=~\"2..\"}[24h]))) / 2\n  ) \n  / \n  sum(increase(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", status=~\"2..\"}[24h]))\n) * 100",
 | |
|           "instant": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Apdex Score (Last 24h)",
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "A percentage of responses that resulted in 400s or 500s over the past 24 hours.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "thresholds": {
 | |
|             "mode": "percentage",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               },
 | |
|               {
 | |
|                 "color": "#EAB839",
 | |
|                 "value": 1
 | |
|               },
 | |
|               {
 | |
|                 "color": "red",
 | |
|                 "value": 5
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "percentunit"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 6,
 | |
|         "w": 6,
 | |
|         "x": 6,
 | |
|         "y": 5
 | |
|       },
 | |
|       "id": 22,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "area",
 | |
|         "justifyMode": "auto",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["lastNotNull"],
 | |
|           "fields": "",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(increase(pinchflat_prom_ex_phoenix_http_requests_total{job=\"$job\", instance=\"$instance\", status=~\"4..|5..\"}[24h])) / sum(increase(pinchflat_prom_ex_phoenix_http_requests_total{job=\"$job\", instance=\"$instance\"}[24h])) OR on() vector(0)",
 | |
|           "instant": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Error Percentage (Last 24h)",
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The amount of data transferred by Phoenix in a 24 hour rolling window.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "thresholds": {
 | |
|             "mode": "absolute",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "decbytes"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 6,
 | |
|         "w": 6,
 | |
|         "x": 12,
 | |
|         "y": 5
 | |
|       },
 | |
|       "id": 24,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "area",
 | |
|         "justifyMode": "auto",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["lastNotNull"],
 | |
|           "fields": "",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(increase(pinchflat_prom_ex_phoenix_http_response_size_bytes_sum{job=\"$job\", instance=\"$instance\"}[24h]))",
 | |
|           "instant": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Data Transferred (Last 24h)",
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The amount of requests received by Phoenix in a 24 hour rolling window.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "thresholds": {
 | |
|             "mode": "absolute",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "locale"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 6,
 | |
|         "w": 6,
 | |
|         "x": 18,
 | |
|         "y": 5
 | |
|       },
 | |
|       "id": 23,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "area",
 | |
|         "justifyMode": "auto",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["lastNotNull"],
 | |
|           "fields": "",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "round(sum(increase(pinchflat_prom_ex_phoenix_http_requests_total{job=\"$job\", instance=\"$instance\"}[24h])))",
 | |
|           "instant": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Total Requests Received (Last 24h)",
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The Apdex score of the app based on a satisfactory response time of 500ms and a tolerable response time of 1000ms. This only takes into account how long Phoenix has been handling the request and only requests that resulted in a 2xx status code. The score is based on the previous hour of requests.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "noValue": "No data",
 | |
|           "thresholds": {
 | |
|             "mode": "absolute",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               },
 | |
|               {
 | |
|                 "color": "red",
 | |
|                 "value": 0
 | |
|               },
 | |
|               {
 | |
|                 "color": "yellow",
 | |
|                 "value": 70
 | |
|               },
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": 90
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "percent"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 6,
 | |
|         "w": 6,
 | |
|         "x": 0,
 | |
|         "y": 11
 | |
|       },
 | |
|       "id": 25,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "area",
 | |
|         "justifyMode": "auto",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["lastNotNull"],
 | |
|           "fields": "",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "(\n  (\n    sum(increase(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", le=\"500\", status=~\"2..\"}[1h])) + \n    (sum(increase(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", le=\"1000\", status=~\"2..\"}[1h])) - sum(increase(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", le=\"500\", status=~\"2..\"}[1h]))) / 2\n  ) \n  / \n  sum(increase(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", status=~\"2..\"}[1h]))\n) * 100",
 | |
|           "instant": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Apdex Score (Last 1h)",
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "A percentage of responses that resulted in 400s or 500s over the past hour.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "noValue": "No data",
 | |
|           "thresholds": {
 | |
|             "mode": "percentage",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               },
 | |
|               {
 | |
|                 "color": "#EAB839",
 | |
|                 "value": 1
 | |
|               },
 | |
|               {
 | |
|                 "color": "red",
 | |
|                 "value": 5
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "percentunit"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 6,
 | |
|         "w": 6,
 | |
|         "x": 6,
 | |
|         "y": 11
 | |
|       },
 | |
|       "id": 26,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "area",
 | |
|         "justifyMode": "auto",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["lastNotNull"],
 | |
|           "fields": "",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(increase(pinchflat_prom_ex_phoenix_http_requests_total{job=\"$job\", instance=\"$instance\", status=~\"4..|5..\"}[1h])) / sum(increase(pinchflat_prom_ex_phoenix_http_requests_total{job=\"$job\", instance=\"$instance\"}[1h])) OR on() vector(0)",
 | |
|           "instant": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Error Percentage (Last 1h)",
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The amount of data transferred by Phoenix in the past hour.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "thresholds": {
 | |
|             "mode": "absolute",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "decbytes"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 6,
 | |
|         "w": 6,
 | |
|         "x": 12,
 | |
|         "y": 11
 | |
|       },
 | |
|       "id": 27,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "area",
 | |
|         "justifyMode": "auto",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["lastNotNull"],
 | |
|           "fields": "",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(increase(pinchflat_prom_ex_phoenix_http_response_size_bytes_sum{job=\"$job\", instance=\"$instance\"}[1h]))",
 | |
|           "instant": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Data Transferred (Last 1h)",
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The amount of requests received by Phoenix in the past hour.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {},
 | |
|           "mappings": [],
 | |
|           "thresholds": {
 | |
|             "mode": "absolute",
 | |
|             "steps": [
 | |
|               {
 | |
|                 "color": "green",
 | |
|                 "value": null
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "unit": "locale"
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 6,
 | |
|         "w": 6,
 | |
|         "x": 18,
 | |
|         "y": 11
 | |
|       },
 | |
|       "id": 28,
 | |
|       "options": {
 | |
|         "colorMode": "value",
 | |
|         "graphMode": "area",
 | |
|         "justifyMode": "auto",
 | |
|         "orientation": "auto",
 | |
|         "reduceOptions": {
 | |
|           "calcs": ["lastNotNull"],
 | |
|           "fields": "",
 | |
|           "values": false
 | |
|         },
 | |
|         "textMode": "auto"
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "round(sum(increase(pinchflat_prom_ex_phoenix_http_requests_total{job=\"$job\", instance=\"$instance\"}[1h])))",
 | |
|           "instant": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Total Requests Received (Last 1h)",
 | |
|       "type": "stat"
 | |
|     },
 | |
|     {
 | |
|       "collapsed": false,
 | |
|       "datasource": null,
 | |
|       "gridPos": {
 | |
|         "h": 1,
 | |
|         "w": 24,
 | |
|         "x": 0,
 | |
|         "y": 17
 | |
|       },
 | |
|       "id": 2,
 | |
|       "panels": [],
 | |
|       "title": "HTTP Details",
 | |
|       "type": "row"
 | |
|     },
 | |
|     {
 | |
|       "cards": {
 | |
|         "cardPadding": null,
 | |
|         "cardRound": null
 | |
|       },
 | |
|       "color": {
 | |
|         "cardColor": "#b4ff00",
 | |
|         "colorScale": "sqrt",
 | |
|         "colorScheme": "interpolateOranges",
 | |
|         "exponent": 0.5,
 | |
|         "mode": "spectrum"
 | |
|       },
 | |
|       "dataFormat": "tsbuckets",
 | |
|       "datasource": "prometheus",
 | |
|       "description": "A heatmap showing the request time spread across all requests (regardless of path).",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 0,
 | |
|         "y": 18
 | |
|       },
 | |
|       "heatmap": {},
 | |
|       "hideZeroBuckets": true,
 | |
|       "highlightCards": true,
 | |
|       "id": 6,
 | |
|       "legend": {
 | |
|         "show": true
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "reverseYBuckets": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(irate(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\"}[$interval])) by (le)",
 | |
|           "format": "heatmap",
 | |
|           "hide": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ le }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Request Time",
 | |
|       "tooltip": {
 | |
|         "show": true,
 | |
|         "showHistogram": true
 | |
|       },
 | |
|       "type": "heatmap",
 | |
|       "xAxis": {
 | |
|         "show": true
 | |
|       },
 | |
|       "xBucketNumber": null,
 | |
|       "xBucketSize": null,
 | |
|       "yAxis": {
 | |
|         "decimals": null,
 | |
|         "format": "ms",
 | |
|         "logBase": 1,
 | |
|         "max": null,
 | |
|         "min": null,
 | |
|         "show": true,
 | |
|         "splitFactor": null
 | |
|       },
 | |
|       "yBucketBound": "auto",
 | |
|       "yBucketNumber": null,
 | |
|       "yBucketSize": null
 | |
|     },
 | |
|     {
 | |
|       "cards": {
 | |
|         "cardPadding": null,
 | |
|         "cardRound": null
 | |
|       },
 | |
|       "color": {
 | |
|         "cardColor": "#b4ff00",
 | |
|         "colorScale": "sqrt",
 | |
|         "colorScheme": "interpolateOranges",
 | |
|         "exponent": 0.5,
 | |
|         "mode": "spectrum"
 | |
|       },
 | |
|       "dataFormat": "tsbuckets",
 | |
|       "datasource": "prometheus",
 | |
|       "description": "A heatmap showing the response payload size spread across all requests (regardless of path).",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 12,
 | |
|         "y": 18
 | |
|       },
 | |
|       "heatmap": {},
 | |
|       "hideZeroBuckets": true,
 | |
|       "highlightCards": true,
 | |
|       "id": 12,
 | |
|       "legend": {
 | |
|         "show": true
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "reverseYBuckets": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(irate(pinchflat_prom_ex_phoenix_http_response_size_bytes_bucket{job=\"$job\", instance=\"$instance\"}[$interval])) by (le)",
 | |
|           "format": "heatmap",
 | |
|           "hide": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ le }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Response Payload Size",
 | |
|       "tooltip": {
 | |
|         "show": true,
 | |
|         "showHistogram": true
 | |
|       },
 | |
|       "type": "heatmap",
 | |
|       "xAxis": {
 | |
|         "show": true
 | |
|       },
 | |
|       "xBucketNumber": null,
 | |
|       "xBucketSize": null,
 | |
|       "yAxis": {
 | |
|         "decimals": null,
 | |
|         "format": "decbytes",
 | |
|         "logBase": 1,
 | |
|         "max": null,
 | |
|         "min": null,
 | |
|         "show": true,
 | |
|         "splitFactor": null
 | |
|       },
 | |
|       "yBucketBound": "auto",
 | |
|       "yBucketNumber": null,
 | |
|       "yBucketSize": null
 | |
|     },
 | |
|     {
 | |
|       "aliasColors": {},
 | |
|       "bars": false,
 | |
|       "dashLength": 10,
 | |
|       "dashes": false,
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The average request time per path per status code per HTTP method.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "fill": 1,
 | |
|       "fillGradient": 0,
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 0,
 | |
|         "y": 31
 | |
|       },
 | |
|       "hiddenSeries": false,
 | |
|       "id": 11,
 | |
|       "legend": {
 | |
|         "alignAsTable": true,
 | |
|         "avg": false,
 | |
|         "current": true,
 | |
|         "hideEmpty": false,
 | |
|         "hideZero": false,
 | |
|         "max": true,
 | |
|         "min": false,
 | |
|         "rightSide": true,
 | |
|         "show": true,
 | |
|         "total": false,
 | |
|         "values": true
 | |
|       },
 | |
|       "lines": true,
 | |
|       "linewidth": 1,
 | |
|       "nullPointMode": "null as zero",
 | |
|       "percentage": false,
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "pointradius": 2,
 | |
|       "points": false,
 | |
|       "renderer": "flot",
 | |
|       "seriesOverrides": [],
 | |
|       "spaceLength": 10,
 | |
|       "stack": false,
 | |
|       "steppedLine": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(irate(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_sum{job=\"$job\", instance=\"$instance\"}[$interval])) by(path, status) / sum(irate(pinchflat_prom_ex_phoenix_http_request_duration_milliseconds_count{job=\"$job\", instance=\"$instance\"}[$interval])) by(path, status)",
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ method }} {{ path }} :: {{ status }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "thresholds": [],
 | |
|       "timeFrom": null,
 | |
|       "timeRegions": [],
 | |
|       "timeShift": null,
 | |
|       "title": "Average HTTP Request Time",
 | |
|       "tooltip": {
 | |
|         "shared": true,
 | |
|         "sort": 2,
 | |
|         "value_type": "individual"
 | |
|       },
 | |
|       "type": "graph",
 | |
|       "xaxis": {
 | |
|         "buckets": null,
 | |
|         "mode": "time",
 | |
|         "name": null,
 | |
|         "show": true,
 | |
|         "values": []
 | |
|       },
 | |
|       "yaxes": [
 | |
|         {
 | |
|           "format": "ms",
 | |
|           "label": "Response Time",
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": "0",
 | |
|           "show": true
 | |
|         },
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": null,
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": null,
 | |
|           "show": false
 | |
|         }
 | |
|       ],
 | |
|       "yaxis": {
 | |
|         "align": false,
 | |
|         "alignLevel": null
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "aliasColors": {},
 | |
|       "bars": false,
 | |
|       "dashLength": 10,
 | |
|       "dashes": false,
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The average response size per path per status code per HTTP method.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "fill": 1,
 | |
|       "fillGradient": 0,
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 12,
 | |
|         "y": 31
 | |
|       },
 | |
|       "hiddenSeries": false,
 | |
|       "id": 13,
 | |
|       "legend": {
 | |
|         "alignAsTable": true,
 | |
|         "avg": false,
 | |
|         "current": true,
 | |
|         "hideEmpty": false,
 | |
|         "hideZero": false,
 | |
|         "max": true,
 | |
|         "min": false,
 | |
|         "rightSide": true,
 | |
|         "show": true,
 | |
|         "total": false,
 | |
|         "values": true
 | |
|       },
 | |
|       "lines": true,
 | |
|       "linewidth": 1,
 | |
|       "nullPointMode": "null as zero",
 | |
|       "percentage": false,
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "pointradius": 2,
 | |
|       "points": false,
 | |
|       "renderer": "flot",
 | |
|       "seriesOverrides": [],
 | |
|       "spaceLength": 10,
 | |
|       "stack": false,
 | |
|       "steppedLine": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(irate(pinchflat_prom_ex_phoenix_http_response_size_bytes_sum{job=\"$job\", instance=\"$instance\"}[$interval])) by(path, status) / sum(irate(pinchflat_prom_ex_phoenix_http_response_size_bytes_count{job=\"$job\", instance=\"$instance\"}[$interval])) by(path, status)",
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ method }} {{ path }} :: {{ status }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "thresholds": [],
 | |
|       "timeFrom": null,
 | |
|       "timeRegions": [],
 | |
|       "timeShift": null,
 | |
|       "title": "Average HTTP Response Size",
 | |
|       "tooltip": {
 | |
|         "shared": true,
 | |
|         "sort": 2,
 | |
|         "value_type": "individual"
 | |
|       },
 | |
|       "type": "graph",
 | |
|       "xaxis": {
 | |
|         "buckets": null,
 | |
|         "mode": "time",
 | |
|         "name": null,
 | |
|         "show": true,
 | |
|         "values": []
 | |
|       },
 | |
|       "yaxes": [
 | |
|         {
 | |
|           "format": "decbytes",
 | |
|           "label": "Response Size",
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": "0",
 | |
|           "show": true
 | |
|         },
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": null,
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": null,
 | |
|           "show": false
 | |
|         }
 | |
|       ],
 | |
|       "yaxis": {
 | |
|         "align": false,
 | |
|         "alignLevel": null
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "aliasColors": {},
 | |
|       "bars": false,
 | |
|       "dashLength": 10,
 | |
|       "dashes": false,
 | |
|       "datasource": "prometheus",
 | |
|       "description": "Shows the number of requests coming into certain paths and the resulting response codes.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "fill": 1,
 | |
|       "fillGradient": 0,
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 0,
 | |
|         "y": 44
 | |
|       },
 | |
|       "hiddenSeries": false,
 | |
|       "id": 8,
 | |
|       "legend": {
 | |
|         "alignAsTable": true,
 | |
|         "avg": false,
 | |
|         "current": true,
 | |
|         "hideEmpty": false,
 | |
|         "hideZero": false,
 | |
|         "max": true,
 | |
|         "min": false,
 | |
|         "rightSide": true,
 | |
|         "show": true,
 | |
|         "total": false,
 | |
|         "values": true
 | |
|       },
 | |
|       "lines": true,
 | |
|       "linewidth": 1,
 | |
|       "nullPointMode": "null as zero",
 | |
|       "percentage": false,
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "pointradius": 2,
 | |
|       "points": false,
 | |
|       "renderer": "flot",
 | |
|       "seriesOverrides": [],
 | |
|       "spaceLength": 10,
 | |
|       "stack": false,
 | |
|       "steppedLine": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "irate(pinchflat_prom_ex_phoenix_http_requests_total{job=\"$job\", instance=\"$instance\"}[$interval])",
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ method }} {{ path }} :: {{ status }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "thresholds": [],
 | |
|       "timeFrom": null,
 | |
|       "timeRegions": [],
 | |
|       "timeShift": null,
 | |
|       "title": "Path Requests",
 | |
|       "tooltip": {
 | |
|         "shared": true,
 | |
|         "sort": 2,
 | |
|         "value_type": "individual"
 | |
|       },
 | |
|       "type": "graph",
 | |
|       "xaxis": {
 | |
|         "buckets": null,
 | |
|         "mode": "time",
 | |
|         "name": null,
 | |
|         "show": true,
 | |
|         "values": []
 | |
|       },
 | |
|       "yaxes": [
 | |
|         {
 | |
|           "format": "locale",
 | |
|           "label": "Requests",
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": "0",
 | |
|           "show": true
 | |
|         },
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": null,
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": null,
 | |
|           "show": false
 | |
|         }
 | |
|       ],
 | |
|       "yaxis": {
 | |
|         "align": false,
 | |
|         "alignLevel": null
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "aliasColors": {},
 | |
|       "bars": false,
 | |
|       "dashLength": 10,
 | |
|       "dashes": false,
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The aggregate response status of all the requests.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "fill": 1,
 | |
|       "fillGradient": 0,
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 12,
 | |
|         "y": 44
 | |
|       },
 | |
|       "hiddenSeries": false,
 | |
|       "id": 10,
 | |
|       "legend": {
 | |
|         "alignAsTable": true,
 | |
|         "avg": false,
 | |
|         "current": true,
 | |
|         "max": true,
 | |
|         "min": false,
 | |
|         "rightSide": true,
 | |
|         "show": true,
 | |
|         "total": false,
 | |
|         "values": true
 | |
|       },
 | |
|       "lines": true,
 | |
|       "linewidth": 1,
 | |
|       "nullPointMode": "null as zero",
 | |
|       "percentage": false,
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "pointradius": 2,
 | |
|       "points": false,
 | |
|       "renderer": "flot",
 | |
|       "seriesOverrides": [],
 | |
|       "spaceLength": 10,
 | |
|       "stack": false,
 | |
|       "steppedLine": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(irate(pinchflat_prom_ex_phoenix_http_requests_total{status=~\"2..\", job=\"$job\", instance=\"$instance\"}[$interval]))",
 | |
|           "interval": "",
 | |
|           "legendFormat": "2xx",
 | |
|           "refId": "A"
 | |
|         },
 | |
|         {
 | |
|           "expr": "sum(irate(pinchflat_prom_ex_phoenix_http_requests_total{status=~\"4..\", job=\"$job\", instance=\"$instance\"}[$interval]))",
 | |
|           "interval": "",
 | |
|           "legendFormat": "4xx",
 | |
|           "refId": "B"
 | |
|         },
 | |
|         {
 | |
|           "expr": "sum(irate(pinchflat_prom_ex_phoenix_http_requests_total{status=~\"5..\", job=\"$job\", instance=\"$instance\"}[$interval]))",
 | |
|           "interval": "",
 | |
|           "legendFormat": "5xx",
 | |
|           "refId": "C"
 | |
|         }
 | |
|       ],
 | |
|       "thresholds": [],
 | |
|       "timeFrom": null,
 | |
|       "timeRegions": [],
 | |
|       "timeShift": null,
 | |
|       "title": "Response Status Codes",
 | |
|       "tooltip": {
 | |
|         "shared": true,
 | |
|         "sort": 2,
 | |
|         "value_type": "individual"
 | |
|       },
 | |
|       "type": "graph",
 | |
|       "xaxis": {
 | |
|         "buckets": null,
 | |
|         "mode": "time",
 | |
|         "name": null,
 | |
|         "show": true,
 | |
|         "values": []
 | |
|       },
 | |
|       "yaxes": [
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": "Requests",
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": "0",
 | |
|           "show": true
 | |
|         },
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": null,
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": null,
 | |
|           "show": true
 | |
|         }
 | |
|       ],
 | |
|       "yaxis": {
 | |
|         "align": false,
 | |
|         "alignLevel": null
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "collapsed": false,
 | |
|       "datasource": null,
 | |
|       "gridPos": {
 | |
|         "h": 1,
 | |
|         "w": 24,
 | |
|         "x": 0,
 | |
|         "y": 57
 | |
|       },
 | |
|       "id": 4,
 | |
|       "panels": [],
 | |
|       "title": "Channel Details",
 | |
|       "type": "row"
 | |
|     },
 | |
|     {
 | |
|       "aliasColors": {},
 | |
|       "bars": false,
 | |
|       "dashLength": 10,
 | |
|       "dashes": false,
 | |
|       "datasource": "prometheus",
 | |
|       "description": "How many channel joins have occurred over time.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "fill": 1,
 | |
|       "fillGradient": 0,
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 0,
 | |
|         "y": 58
 | |
|       },
 | |
|       "hiddenSeries": false,
 | |
|       "id": 15,
 | |
|       "legend": {
 | |
|         "alignAsTable": true,
 | |
|         "avg": false,
 | |
|         "current": true,
 | |
|         "max": true,
 | |
|         "min": false,
 | |
|         "rightSide": true,
 | |
|         "show": true,
 | |
|         "total": false,
 | |
|         "values": true
 | |
|       },
 | |
|       "lines": true,
 | |
|       "linewidth": 1,
 | |
|       "nullPointMode": "null as zero",
 | |
|       "percentage": false,
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "pointradius": 2,
 | |
|       "points": false,
 | |
|       "renderer": "flot",
 | |
|       "seriesOverrides": [],
 | |
|       "spaceLength": 10,
 | |
|       "stack": false,
 | |
|       "steppedLine": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "irate(pinchflat_prom_ex_phoenix_channel_joined_total{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}[$interval])",
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ transport }} :: {{ result }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "thresholds": [],
 | |
|       "timeFrom": null,
 | |
|       "timeRegions": [],
 | |
|       "timeShift": null,
 | |
|       "title": "Channel Join Events",
 | |
|       "tooltip": {
 | |
|         "shared": true,
 | |
|         "sort": 2,
 | |
|         "value_type": "individual"
 | |
|       },
 | |
|       "type": "graph",
 | |
|       "xaxis": {
 | |
|         "buckets": null,
 | |
|         "mode": "time",
 | |
|         "name": null,
 | |
|         "show": true,
 | |
|         "values": []
 | |
|       },
 | |
|       "yaxes": [
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": "Channel joins",
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": "0",
 | |
|           "show": true
 | |
|         },
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": null,
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": null,
 | |
|           "show": false
 | |
|         }
 | |
|       ],
 | |
|       "yaxis": {
 | |
|         "align": false,
 | |
|         "alignLevel": null
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "cards": {
 | |
|         "cardPadding": null,
 | |
|         "cardRound": null
 | |
|       },
 | |
|       "color": {
 | |
|         "cardColor": "#b4ff00",
 | |
|         "colorScale": "sqrt",
 | |
|         "colorScheme": "interpolateOranges",
 | |
|         "exponent": 0.5,
 | |
|         "mode": "spectrum"
 | |
|       },
 | |
|       "dataFormat": "tsbuckets",
 | |
|       "datasource": "prometheus",
 | |
|       "description": "A heatmap showing the request time spread across all channel events.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 12,
 | |
|         "y": 58
 | |
|       },
 | |
|       "heatmap": {},
 | |
|       "hideZeroBuckets": true,
 | |
|       "highlightCards": true,
 | |
|       "id": 16,
 | |
|       "legend": {
 | |
|         "show": true
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "reverseYBuckets": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "sum(irate(pinchflat_prom_ex_phoenix_channel_handled_in_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}[$interval])) by (le)",
 | |
|           "format": "heatmap",
 | |
|           "hide": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ le }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Channel Message Handle Time",
 | |
|       "tooltip": {
 | |
|         "show": true,
 | |
|         "showHistogram": true
 | |
|       },
 | |
|       "type": "heatmap",
 | |
|       "xAxis": {
 | |
|         "show": true
 | |
|       },
 | |
|       "xBucketNumber": null,
 | |
|       "xBucketSize": null,
 | |
|       "yAxis": {
 | |
|         "decimals": null,
 | |
|         "format": "ms",
 | |
|         "logBase": 1,
 | |
|         "max": null,
 | |
|         "min": null,
 | |
|         "show": true,
 | |
|         "splitFactor": null
 | |
|       },
 | |
|       "yBucketBound": "auto",
 | |
|       "yBucketNumber": null,
 | |
|       "yBucketSize": null
 | |
|     },
 | |
|     {
 | |
|       "aliasColors": {},
 | |
|       "bars": false,
 | |
|       "dashLength": 10,
 | |
|       "dashes": false,
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The average response time for a channel message.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "fill": 1,
 | |
|       "fillGradient": 0,
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 0,
 | |
|         "y": 71
 | |
|       },
 | |
|       "hiddenSeries": false,
 | |
|       "id": 17,
 | |
|       "legend": {
 | |
|         "alignAsTable": true,
 | |
|         "avg": false,
 | |
|         "current": true,
 | |
|         "hideEmpty": false,
 | |
|         "hideZero": false,
 | |
|         "max": true,
 | |
|         "min": false,
 | |
|         "rightSide": true,
 | |
|         "show": true,
 | |
|         "total": false,
 | |
|         "values": true
 | |
|       },
 | |
|       "lines": true,
 | |
|       "linewidth": 1,
 | |
|       "nullPointMode": "null as zero",
 | |
|       "percentage": false,
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "pointradius": 2,
 | |
|       "points": false,
 | |
|       "renderer": "flot",
 | |
|       "seriesOverrides": [],
 | |
|       "spaceLength": 10,
 | |
|       "stack": false,
 | |
|       "steppedLine": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "irate(pinchflat_prom_ex_phoenix_channel_handled_in_duration_milliseconds_sum{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}[$interval]) / irate(pinchflat_prom_ex_phoenix_channel_handled_in_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}[$interval])",
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ transport }} :: {{ result }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "thresholds": [],
 | |
|       "timeFrom": null,
 | |
|       "timeRegions": [],
 | |
|       "timeShift": null,
 | |
|       "title": "Average Channel Response Time",
 | |
|       "tooltip": {
 | |
|         "shared": true,
 | |
|         "sort": 2,
 | |
|         "value_type": "individual"
 | |
|       },
 | |
|       "type": "graph",
 | |
|       "xaxis": {
 | |
|         "buckets": null,
 | |
|         "mode": "time",
 | |
|         "name": null,
 | |
|         "show": true,
 | |
|         "values": []
 | |
|       },
 | |
|       "yaxes": [
 | |
|         {
 | |
|           "format": "ms",
 | |
|           "label": "Response Time",
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": "0",
 | |
|           "show": true
 | |
|         },
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": null,
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": null,
 | |
|           "show": false
 | |
|         }
 | |
|       ],
 | |
|       "yaxis": {
 | |
|         "align": false,
 | |
|         "alignLevel": null
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "collapsed": false,
 | |
|       "datasource": null,
 | |
|       "gridPos": {
 | |
|         "h": 1,
 | |
|         "w": 24,
 | |
|         "x": 0,
 | |
|         "y": 84
 | |
|       },
 | |
|       "id": 34,
 | |
|       "panels": [],
 | |
|       "title": "Socket Details",
 | |
|       "type": "row"
 | |
|     },
 | |
|     {
 | |
|       "aliasColors": {},
 | |
|       "bars": false,
 | |
|       "dashLength": 10,
 | |
|       "dashes": false,
 | |
|       "datasource": "prometheus",
 | |
|       "description": "How many socket connections have occurred over time.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "fill": 1,
 | |
|       "fillGradient": 0,
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 0,
 | |
|         "y": 85
 | |
|       },
 | |
|       "hiddenSeries": false,
 | |
|       "id": 35,
 | |
|       "legend": {
 | |
|         "alignAsTable": true,
 | |
|         "avg": false,
 | |
|         "current": true,
 | |
|         "max": true,
 | |
|         "min": false,
 | |
|         "rightSide": true,
 | |
|         "show": true,
 | |
|         "total": false,
 | |
|         "values": true
 | |
|       },
 | |
|       "lines": true,
 | |
|       "linewidth": 1,
 | |
|       "nullPointMode": "null as zero",
 | |
|       "percentage": false,
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "pointradius": 2,
 | |
|       "points": false,
 | |
|       "renderer": "flot",
 | |
|       "seriesOverrides": [],
 | |
|       "spaceLength": 10,
 | |
|       "stack": false,
 | |
|       "steppedLine": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "irate(pinchflat_prom_ex_phoenix_socket_connected_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}[$interval])",
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ transport }} :: {{ result }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "thresholds": [],
 | |
|       "timeFrom": null,
 | |
|       "timeRegions": [],
 | |
|       "timeShift": null,
 | |
|       "title": "Socket Connection Events",
 | |
|       "tooltip": {
 | |
|         "shared": true,
 | |
|         "sort": 2,
 | |
|         "value_type": "individual"
 | |
|       },
 | |
|       "type": "graph",
 | |
|       "xaxis": {
 | |
|         "buckets": null,
 | |
|         "mode": "time",
 | |
|         "name": null,
 | |
|         "show": true,
 | |
|         "values": []
 | |
|       },
 | |
|       "yaxes": [
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": "Channel joins",
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": "0",
 | |
|           "show": true
 | |
|         },
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": null,
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": null,
 | |
|           "show": false
 | |
|         }
 | |
|       ],
 | |
|       "yaxis": {
 | |
|         "align": false,
 | |
|         "alignLevel": null
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "cards": {
 | |
|         "cardPadding": null,
 | |
|         "cardRound": null
 | |
|       },
 | |
|       "color": {
 | |
|         "cardColor": "#b4ff00",
 | |
|         "colorScale": "sqrt",
 | |
|         "colorScheme": "interpolateOranges",
 | |
|         "exponent": 0.5,
 | |
|         "mode": "spectrum"
 | |
|       },
 | |
|       "dataFormat": "tsbuckets",
 | |
|       "datasource": "prometheus",
 | |
|       "description": "A heatmap showing the request time spread across all socket connections.",
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 12,
 | |
|         "y": 85
 | |
|       },
 | |
|       "heatmap": {},
 | |
|       "hideZeroBuckets": true,
 | |
|       "highlightCards": true,
 | |
|       "id": 36,
 | |
|       "legend": {
 | |
|         "show": true
 | |
|       },
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "reverseYBuckets": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "exemplar": true,
 | |
|           "expr": "sum(irate(pinchflat_prom_ex_phoenix_socket_connected_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}[$interval])) by (le)",
 | |
|           "format": "heatmap",
 | |
|           "hide": false,
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ le }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "timeFrom": null,
 | |
|       "timeShift": null,
 | |
|       "title": "Socket Connection Time",
 | |
|       "tooltip": {
 | |
|         "show": true,
 | |
|         "showHistogram": true
 | |
|       },
 | |
|       "type": "heatmap",
 | |
|       "xAxis": {
 | |
|         "show": true
 | |
|       },
 | |
|       "xBucketNumber": null,
 | |
|       "xBucketSize": null,
 | |
|       "yAxis": {
 | |
|         "decimals": null,
 | |
|         "format": "ms",
 | |
|         "logBase": 1,
 | |
|         "max": null,
 | |
|         "min": null,
 | |
|         "show": true,
 | |
|         "splitFactor": null
 | |
|       },
 | |
|       "yBucketBound": "auto",
 | |
|       "yBucketNumber": null,
 | |
|       "yBucketSize": null
 | |
|     },
 | |
|     {
 | |
|       "aliasColors": {},
 | |
|       "bars": false,
 | |
|       "dashLength": 10,
 | |
|       "dashes": false,
 | |
|       "datasource": "prometheus",
 | |
|       "description": "The average time it connects to establish a socket connection.",
 | |
|       "fieldConfig": {
 | |
|         "defaults": {
 | |
|           "custom": {}
 | |
|         },
 | |
|         "overrides": []
 | |
|       },
 | |
|       "fill": 1,
 | |
|       "fillGradient": 0,
 | |
|       "gridPos": {
 | |
|         "h": 13,
 | |
|         "w": 12,
 | |
|         "x": 0,
 | |
|         "y": 98
 | |
|       },
 | |
|       "hiddenSeries": false,
 | |
|       "id": 37,
 | |
|       "legend": {
 | |
|         "alignAsTable": true,
 | |
|         "avg": false,
 | |
|         "current": true,
 | |
|         "hideEmpty": false,
 | |
|         "hideZero": false,
 | |
|         "max": true,
 | |
|         "min": false,
 | |
|         "rightSide": true,
 | |
|         "show": true,
 | |
|         "total": false,
 | |
|         "values": true
 | |
|       },
 | |
|       "lines": true,
 | |
|       "linewidth": 1,
 | |
|       "nullPointMode": "null as zero",
 | |
|       "percentage": false,
 | |
|       "pluginVersion": "7.1.3",
 | |
|       "pointradius": 2,
 | |
|       "points": false,
 | |
|       "renderer": "flot",
 | |
|       "seriesOverrides": [],
 | |
|       "spaceLength": 10,
 | |
|       "stack": false,
 | |
|       "steppedLine": false,
 | |
|       "targets": [
 | |
|         {
 | |
|           "expr": "irate(pinchflat_prom_ex_phoenix_socket_connected_duration_milliseconds_sum{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}[$interval]) / irate(pinchflat_prom_ex_phoenix_socket_connected_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", endpoint=\"$endpoint\"}[$interval])",
 | |
|           "interval": "",
 | |
|           "legendFormat": "{{ transport }} :: {{ result }}",
 | |
|           "refId": "A"
 | |
|         }
 | |
|       ],
 | |
|       "thresholds": [],
 | |
|       "timeFrom": null,
 | |
|       "timeRegions": [],
 | |
|       "timeShift": null,
 | |
|       "title": "Average Socket Connection Time",
 | |
|       "tooltip": {
 | |
|         "shared": true,
 | |
|         "sort": 2,
 | |
|         "value_type": "individual"
 | |
|       },
 | |
|       "type": "graph",
 | |
|       "xaxis": {
 | |
|         "buckets": null,
 | |
|         "mode": "time",
 | |
|         "name": null,
 | |
|         "show": true,
 | |
|         "values": []
 | |
|       },
 | |
|       "yaxes": [
 | |
|         {
 | |
|           "format": "ms",
 | |
|           "label": "Response Time",
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": "0",
 | |
|           "show": true
 | |
|         },
 | |
|         {
 | |
|           "format": "short",
 | |
|           "label": null,
 | |
|           "logBase": 1,
 | |
|           "max": null,
 | |
|           "min": null,
 | |
|           "show": false
 | |
|         }
 | |
|       ],
 | |
|       "yaxis": {
 | |
|         "align": false,
 | |
|         "alignLevel": null
 | |
|       }
 | |
|     }
 | |
|   ],
 | |
|   "refresh": "5s",
 | |
|   "schemaVersion": 26,
 | |
|   "style": "dark",
 | |
|   "tags": ["PromEx", "Phoenix", "pinchflat"],
 | |
|   "templating": {
 | |
|     "list": [
 | |
|       {
 | |
|         "allValue": null,
 | |
|         "datasource": "prometheus",
 | |
|         "definition": "label_values(pinchflat_prom_ex_prom_ex_status_info, job)",
 | |
|         "hide": 0,
 | |
|         "includeAll": false,
 | |
|         "label": "Prometheus Job",
 | |
|         "multi": false,
 | |
|         "name": "job",
 | |
|         "options": [],
 | |
|         "query": "label_values(pinchflat_prom_ex_prom_ex_status_info, job)",
 | |
|         "refresh": 2,
 | |
|         "regex": "",
 | |
|         "skipUrlSync": false,
 | |
|         "sort": 6,
 | |
|         "tagValuesQuery": "",
 | |
|         "tags": [],
 | |
|         "tagsQuery": "",
 | |
|         "type": "query",
 | |
|         "useTags": false
 | |
|       },
 | |
|       {
 | |
|         "allValue": null,
 | |
|         "datasource": "prometheus",
 | |
|         "definition": "label_values(pinchflat_prom_ex_prom_ex_status_info, instance)",
 | |
|         "hide": 0,
 | |
|         "includeAll": false,
 | |
|         "label": "Application Instance",
 | |
|         "multi": false,
 | |
|         "name": "instance",
 | |
|         "options": [],
 | |
|         "query": "label_values(pinchflat_prom_ex_prom_ex_status_info{job=\"$job\"}, instance)",
 | |
|         "refresh": 2,
 | |
|         "regex": "",
 | |
|         "skipUrlSync": false,
 | |
|         "sort": 0,
 | |
|         "tagValuesQuery": "",
 | |
|         "tagsQuery": "",
 | |
|         "type": "query",
 | |
|         "useTags": false
 | |
|       },
 | |
|       {
 | |
|         "allValue": null,
 | |
|         "datasource": "prometheus",
 | |
|         "definition": "label_values(pinchflat_prom_ex_phoenix_endpoint_port_info, endpoint)",
 | |
|         "hide": 0,
 | |
|         "includeAll": false,
 | |
|         "label": "Phoenix Endpoint",
 | |
|         "multi": false,
 | |
|         "name": "endpoint",
 | |
|         "options": [],
 | |
|         "query": "label_values(pinchflat_prom_ex_phoenix_endpoint_port_info, endpoint)",
 | |
|         "refresh": 2,
 | |
|         "regex": "",
 | |
|         "skipUrlSync": false,
 | |
|         "sort": 0,
 | |
|         "tagValuesQuery": "",
 | |
|         "tags": [],
 | |
|         "tagsQuery": "",
 | |
|         "type": "query",
 | |
|         "useTags": false
 | |
|       },
 | |
|       {
 | |
|         "auto": false,
 | |
|         "auto_count": 30,
 | |
|         "auto_min": "10s",
 | |
|         "current": {
 | |
|           "selected": false,
 | |
|           "text": "30s",
 | |
|           "value": "30s"
 | |
|         },
 | |
|         "hide": 0,
 | |
|         "label": "Interval",
 | |
|         "name": "interval",
 | |
|         "options": [
 | |
|           {
 | |
|             "selected": false,
 | |
|             "text": "15s",
 | |
|             "value": "15s"
 | |
|           },
 | |
|           {
 | |
|             "selected": true,
 | |
|             "text": "30s",
 | |
|             "value": "30s"
 | |
|           },
 | |
|           {
 | |
|             "selected": false,
 | |
|             "text": "1m",
 | |
|             "value": "1m"
 | |
|           },
 | |
|           {
 | |
|             "selected": false,
 | |
|             "text": "5m",
 | |
|             "value": "5m"
 | |
|           },
 | |
|           {
 | |
|             "selected": false,
 | |
|             "text": "15m",
 | |
|             "value": "15m"
 | |
|           },
 | |
|           {
 | |
|             "selected": false,
 | |
|             "text": "30m",
 | |
|             "value": "30m"
 | |
|           },
 | |
|           {
 | |
|             "selected": false,
 | |
|             "text": "1h",
 | |
|             "value": "1h"
 | |
|           }
 | |
|         ],
 | |
|         "query": "15s, 30s, 1m, 5m, 15m, 30m, 1h",
 | |
|         "queryValue": "",
 | |
|         "refresh": 2,
 | |
|         "skipUrlSync": false,
 | |
|         "type": "interval"
 | |
|       }
 | |
|     ]
 | |
|   },
 | |
|   "time": {
 | |
|     "from": "now-1h",
 | |
|     "to": "now"
 | |
|   },
 | |
|   "timepicker": {
 | |
|     "refresh_intervals": ["5s", "10s", "30s", "1m", "5m"]
 | |
|   },
 | |
|   "timezone": "",
 | |
|   "title": "Pinchflat - PromEx Phoenix Dashboard",
 | |
|   "uid": "970297EC2ACFCF6777A4D3444B63C036",
 | |
|   "version": 1
 | |
| }
 |