Current section

Files

Jump to
prom_ex priv broadway.json.eex
Raw

priv/broadway.json.eex

{
"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",
"<%= @otp_app %>",
"start"
],
"type": "tags"
},
{
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "#FF9830",
"limit": 100,
"name": "PromEx service stop",
"showIn": 0,
"tags": [
"prom_ex",
"<%= @otp_app %>",
"stop"
],
"type": "tags"
}
]
},
"description": "All the data that is presented here is captured by the PromEx Broadway plugin (https://github.com/akoutmos/prom_ex/blob/master/lib/prom_ex/plugins/broadway.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": "Broadway Plugin Docs",
"tooltip": "",
"type": "link",
"url": "https://hexdocs.pm/prom_ex/PromEx.Plugins.Broadway.html"
}
],
"panels": [
{
"collapsed": false,
"datasource": null,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 19,
"panels": [],
"title": "Overview",
"type": "row"
},
{
"datasource": "<%= @datasource_id %>",
"description": "The Broadway module currently selected for viewing metrics.",
"fieldConfig": {
"defaults": {
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 6,
"x": 0,
"y": 1
},
"id": 30,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "center",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"last"
],
"fields": "/^name$/",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "<%= @broadway_metric_prefix %>_init_status_info{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Broadway Module",
"transformations": [
{
"id": "labelsToFields",
"options": {}
}
],
"type": "stat"
},
{
"datasource": "<%= @datasource_id %>",
"description": "The settings that were set for the selected Broadway module.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.align",
"value": "center"
},
{
"id": "unit",
"value": "locale"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Config"
},
"properties": [
{
"id": "mappings",
"value": [
{
"options": {
"<%= @broadway_metric_prefix %>_init_processor_concurrency_value": {
"index": 0,
"text": "Processor Concurrency"
},
"<%= @broadway_metric_prefix %>_init_processor_hibernate_after_milliseconds": {
"index": 2,
"text": "Hibernate After (in milliseconds)"
},
"<%= @broadway_metric_prefix %>_init_processor_max_demand_value": {
"index": 1,
"text": "Max Demand"
}
},
"type": "value"
}
]
}
]
},
{
"matcher": {
"id": "byName",
"options": "Processor"
},
"properties": [
{
"id": "custom.width",
"value": 275
}
]
}
]
},
"gridPos": {
"h": 6,
"w": 9,
"x": 6,
"y": 1
},
"id": 56,
"options": {
"showHeader": true,
"sortBy": []
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "{__name__=~\"<%= @broadway_metric_prefix %>_init_processor_concurrency_value|<%= @broadway_metric_prefix %>_init_processor_max_demand_value|<%= @broadway_metric_prefix %>_init_processor_hibernate_after_milliseconds\", job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "",
"queryType": "randomWalk",
"refId": "A"
}
],
"title": "Message Processors",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true,
"instance": true,
"job": true,
"name": true
},
"indexByName": {},
"renameByName": {
"Value": "",
"__name__": "Config",
"processor": "Processor"
}
}
}
],
"type": "table"
},
{
"datasource": "<%= @datasource_id %>",
"description": "The settings that were set for the selected Broadway module.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.align",
"value": "center"
},
{
"id": "unit",
"value": "locale"
},
{
"id": "custom.width",
"value": 218
}
]
},
{
"matcher": {
"id": "byName",
"options": "Config"
},
"properties": [
{
"id": "mappings",
"value": [
{
"options": {
"<%= @broadway_metric_prefix %>_init_batcher_batch_size_value": {
"index": 1,
"text": "Batch Size"
},
"<%= @broadway_metric_prefix %>_init_batcher_batch_timeout_milliseconds": {
"index": 0,
"text": "Batch Timeout (in milliseconds)"
},
"<%= @broadway_metric_prefix %>_init_batcher_concurrency_value": {
"index": 2,
"text": "Batcher Concurrency "
},
"<%= @broadway_metric_prefix %>_init_batcher_hibernate_after_milliseconds": {
"index": 3,
"text": "Hibernate After (in milliseconds)"
}
},
"type": "value"
}
]
}
]
},
{
"matcher": {
"id": "byName",
"options": "Batcher"
},
"properties": [
{
"id": "custom.width",
"value": 275
}
]
}
]
},
"gridPos": {
"h": 6,
"w": 9,
"x": 15,
"y": 1
},
"id": 57,
"options": {
"showHeader": true,
"sortBy": []
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "{__name__=~\"<%= @broadway_metric_prefix %>_init_batcher_batch_timeout_milliseconds|<%= @broadway_metric_prefix %>_init_batcher_batch_size_value|<%= @broadway_metric_prefix %>_init_batcher_concurrency_value|<%= @broadway_metric_prefix %>_init_batcher_hibernate_after_milliseconds\", job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "",
"queryType": "randomWalk",
"refId": "A"
}
],
"title": "Batch Processors",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true,
"instance": true,
"job": true,
"name": true
},
"indexByName": {},
"renameByName": {
"__name__": "Config",
"batcher": "Batcher"
}
}
}
],
"type": "table"
},
{
"datasource": "<%= @datasource_id %>",
"description": "The settings that were set for the selected Broadway module.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.align",
"value": "center"
},
{
"id": "unit",
"value": "locale"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Config"
},
"properties": [
{
"id": "mappings",
"value": [
{
"options": {
"<%= @broadway_metric_prefix %>_init_hibernate_after_default_milliseconds": {
"index": 4,
"text": "Default Hibernate After (in milliseconds)"
},
"<%= @broadway_metric_prefix %>_init_max_duration_default_milliseconds": {
"index": 2,
"text": "Default Max Duration (in milliseconds)"
},
"<%= @broadway_metric_prefix %>_init_max_restarts_default_value": {
"index": 1,
"text": "Default Max Restarts"
},
"<%= @broadway_metric_prefix %>_init_resubscribe_interval_default_milliseconds": {
"index": 3,
"text": "Default Resubscribe Interval (in milliseconds)"
},
"<%= @broadway_metric_prefix %>_init_shutdown_default_milliseconds": {
"index": 0,
"text": "Default Shutdown (in milliseconds)"
}
},
"type": "value"
}
]
},
{
"id": "custom.width",
"value": 385
}
]
}
]
},
"gridPos": {
"h": 10,
"w": 6,
"x": 0,
"y": 7
},
"id": 44,
"options": {
"showHeader": true,
"sortBy": []
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "{__name__=~\"<%= @broadway_metric_prefix %>_init_shutdown_default_milliseconds|<%= @broadway_metric_prefix %>_init_max_restarts_default_value|<%= @broadway_metric_prefix %>_init_max_duration_default_milliseconds|<%= @broadway_metric_prefix %>_init_resubscribe_interval_default_milliseconds|<%= @broadway_metric_prefix %>_init_hibernate_after_default_milliseconds\", job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "",
"queryType": "randomWalk",
"refId": "A"
}
],
"title": "Default Module Settings",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true,
"instance": true,
"job": true,
"name": true
},
"indexByName": {},
"renameByName": {
"Value": "Value",
"__name__": "Config"
}
}
}
],
"type": "table"
},
{
"datasource": "<%= @datasource_id %>",
"description": "A percentage of Broadway messages that did not result in errors over the past 24 hours.",
"fieldConfig": {
"defaults": {
"mappings": [],
"max": 1,
"min": 0,
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "orange",
"value": 70
},
{
"color": "yellow",
"value": 80
},
{
"color": "green",
"value": 99
}
]
},
"unit": "percentunit"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 6,
"x": 6,
"y": 7
},
"id": 22,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "sum(increase(<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[24h])) / sum(increase({__name__=~\"<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_count|<%= @broadway_metric_prefix %>_process_message_exception_duration_milliseconds_count\", job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[24h])) OR on() vector(0)",
"instant": false,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Message Success Percentage (Last 24h)",
"type": "stat"
},
{
"datasource": "<%= @datasource_id %>",
"description": "The number of messages processed in the last 24 hours.",
"fieldConfig": {
"defaults": {
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "locale"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 6,
"x": 12,
"y": 7
},
"id": 24,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "sum(increase(<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[24h]))",
"instant": false,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Messages processed (Last 24h)",
"type": "stat"
},
{
"datasource": "<%= @datasource_id %>",
"description": "The number of messages processed in the last 24 hours.",
"fieldConfig": {
"defaults": {
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "locale"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 6,
"x": 18,
"y": 7
},
"id": 46,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "sum(increase(<%= @broadway_metric_prefix %>_process_batch_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[24h]))",
"instant": false,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Batches processed (Last 24h)",
"type": "stat"
},
{
"datasource": "<%= @datasource_id %>",
"description": "A percentage of Broadway messages that did not result in errors over the past hour.",
"fieldConfig": {
"defaults": {
"mappings": [],
"max": 1,
"min": 0,
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "orange",
"value": 70
},
{
"color": "yellow",
"value": 80
},
{
"color": "green",
"value": 99
}
]
},
"unit": "percentunit"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 6,
"x": 6,
"y": 12
},
"id": 38,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "sum(increase(<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[1h])) / sum(increase({__name__=~\"<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_count|<%= @broadway_metric_prefix %>_process_message_exception_duration_milliseconds_count\", job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[1h])) OR on() vector(0)",
"instant": false,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Message Success Percentage (Last 1h)",
"type": "stat"
},
{
"datasource": "<%= @datasource_id %>",
"description": "The number of messages processed in the last hour.",
"fieldConfig": {
"defaults": {
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "locale"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 6,
"x": 12,
"y": 12
},
"id": 45,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "sum(increase(<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[1h]))",
"instant": false,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Messages processed (Last 1h)",
"type": "stat"
},
{
"datasource": "<%= @datasource_id %>",
"description": "The number of messages processed in the last hour.",
"fieldConfig": {
"defaults": {
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "locale"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 6,
"x": 18,
"y": 12
},
"id": 47,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.0.3",
"targets": [
{
"exemplar": true,
"expr": "sum(increase(<%= @broadway_metric_prefix %>_process_batch_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[1h]))",
"instant": false,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Batches processed (Last 1h)",
"type": "stat"
},
{
"collapsed": false,
"datasource": null,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 17
},
"id": 2,
"panels": [],
"title": "Message Details",
"type": "row"
},
{
"cards": {
"cardPadding": null,
"cardRound": null
},
"color": {
"cardColor": "#b4ff00",
"colorScale": "sqrt",
"colorScheme": "interpolateOranges",
"exponent": 0.5,
"mode": "spectrum"
},
"dataFormat": "tsbuckets",
"datasource": "<%= @datasource_id %>",
"description": "A heatmap showing the processing time across all of the messages (regardless of processor key).",
"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": [
{
"exemplar": true,
"expr": "sum(irate(<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by (le)",
"format": "heatmap",
"hide": false,
"interval": "",
"legendFormat": "{{ le }}",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Message Processing 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": "<%= @datasource_id %>",
"description": "A heatmap showing the processing time across all of the messages that resulted in an exception (regardless of processor key).",
"gridPos": {
"h": 13,
"w": 12,
"x": 12,
"y": 18
},
"heatmap": {},
"hideZeroBuckets": true,
"highlightCards": true,
"id": 48,
"legend": {
"show": true
},
"pluginVersion": "7.1.3",
"reverseYBuckets": false,
"targets": [
{
"exemplar": true,
"expr": "sum(irate(<%= @broadway_metric_prefix %>_process_message_exception_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by (le)",
"format": "heatmap",
"hide": false,
"interval": "",
"legendFormat": "{{ le }}",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Message Exception 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": "<%= @datasource_id %>",
"description": "The average processing time per processor key.",
"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",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.0.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"exemplar": true,
"expr": "sum(irate(<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_sum{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(processor_key) / sum(irate(<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(processor_key)",
"interval": "",
"legendFormat": "{{ processor_key }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Average Message Processing 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": "Processing 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": "<%= @datasource_id %>",
"description": "The average processing time per processor key that resulted in an exception.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 13,
"w": 12,
"x": 12,
"y": 31
},
"hiddenSeries": false,
"id": 49,
"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",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.0.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"exemplar": true,
"expr": "sum(irate(<%= @broadway_metric_prefix %>_process_message_exception_duration_milliseconds_sum{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(processor_key, reason) / sum(irate(<%= @broadway_metric_prefix %>_process_message_exception_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(processor_key, reason)",
"interval": "",
"legendFormat": "{{ processor_key }} :: {{ reason }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Average Message Exception 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": "Processing 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": "<%= @datasource_id %>",
"description": "Shows the number of messages that we processed per processor key.",
"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",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.0.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"exemplar": true,
"expr": "irate(<%= @broadway_metric_prefix %>_process_message_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])",
"interval": "",
"legendFormat": "{{ processor_key }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Messages Processed",
"tooltip": {
"shared": true,
"sort": 2,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "locale",
"label": "Messages",
"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": "<%= @datasource_id %>",
"description": "Shows the number of messages that we processed per processor key that resulted in exceptions.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 13,
"w": 12,
"x": 12,
"y": 44
},
"hiddenSeries": false,
"id": 50,
"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",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.0.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"exemplar": true,
"expr": "irate(<%= @broadway_metric_prefix %>_process_message_exception_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])",
"interval": "",
"legendFormat": "{{ processor_key }} :: {{ reason }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Message Exceptions",
"tooltip": {
"shared": true,
"sort": 2,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "locale",
"label": "Messages",
"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": 57
},
"id": 4,
"panels": [],
"title": "Batch Details",
"type": "row"
},
{
"cards": {
"cardPadding": null,
"cardRound": null
},
"color": {
"cardColor": "#b4ff00",
"colorScale": "sqrt",
"colorScheme": "interpolateOranges",
"exponent": 0.5,
"mode": "spectrum"
},
"dataFormat": "tsbuckets",
"datasource": "<%= @datasource_id %>",
"description": "A heatmap showing the processing time across all of the batches (regardless of batcher key).",
"gridPos": {
"h": 13,
"w": 12,
"x": 0,
"y": 58
},
"heatmap": {},
"hideZeroBuckets": true,
"highlightCards": true,
"id": 51,
"legend": {
"show": true
},
"pluginVersion": "7.1.3",
"reverseYBuckets": false,
"targets": [
{
"exemplar": true,
"expr": "sum(irate(<%= @broadway_metric_prefix %>_process_batch_duration_milliseconds_bucket{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by (le)",
"format": "heatmap",
"hide": false,
"interval": "",
"legendFormat": "{{ le }}",
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Batch Processing 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": "<%= @datasource_id %>",
"description": "The average number of messages in a batch that were successful",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 13,
"w": 12,
"x": 12,
"y": 58
},
"hiddenSeries": false,
"id": 54,
"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",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.0.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"exemplar": true,
"expr": "sum(irate(<%= @broadway_metric_prefix %>_process_batch_success_size_sum{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(batcher) / sum(irate(<%= @broadway_metric_prefix %>_process_batch_success_size_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(batcher)",
"interval": "",
"legendFormat": "{{ batcher }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Average Successful Messages per Batch",
"tooltip": {
"shared": true,
"sort": 2,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "locale",
"label": "Processing 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": "<%= @datasource_id %>",
"description": "The average processing time per batcher key.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 13,
"w": 12,
"x": 0,
"y": 71
},
"hiddenSeries": false,
"id": 52,
"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",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.0.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"exemplar": true,
"expr": "sum(irate(<%= @broadway_metric_prefix %>_process_batch_duration_milliseconds_sum{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(batcher) / sum(irate(<%= @broadway_metric_prefix %>_process_batch_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(batcher)",
"interval": "",
"legendFormat": "{{ batcher }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Average Batch Processing 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": "Processing 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": "<%= @datasource_id %>",
"description": "The average number of messages in a batch that failed to process",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 13,
"w": 12,
"x": 12,
"y": 71
},
"hiddenSeries": false,
"id": 55,
"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",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.0.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"exemplar": true,
"expr": "sum(irate(<%= @broadway_metric_prefix %>_process_batch_failure_size_sum{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(batcher) / sum(irate(<%= @broadway_metric_prefix %>_process_batch_failure_size_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])) by(batcher)",
"interval": "",
"legendFormat": "{{ batcher }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Average Failed Messages per Batch",
"tooltip": {
"shared": true,
"sort": 2,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "locale",
"label": "Processing 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": "<%= @datasource_id %>",
"description": "Shows the number of batches that we processed per batch key.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 13,
"w": 12,
"x": 0,
"y": 84
},
"hiddenSeries": false,
"id": 53,
"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",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.0.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"exemplar": true,
"expr": "irate(<%= @broadway_metric_prefix %>_process_batch_duration_milliseconds_count{job=\"$job\", instance=\"$instance\", name=\"$broadway_module\"}[$interval])",
"interval": "",
"legendFormat": "{{ batcher }}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Batches Processed",
"tooltip": {
"shared": true,
"sort": 2,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "locale",
"label": "Messages",
"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": 30,
"style": "dark",
"tags": ["PromEx", "Broadway", "<%= @otp_app %>"],
"templating": {
"list": [
{
"allValue": null,
"datasource": "<%= @datasource_id %>",
"definition": "label_values(<%= @otp_app %>_prom_ex_prom_ex_status_info, job)",
"description": null,
"error": null,
"hide": 0,
"includeAll": false,
"label": "Prometheus Job",
"multi": false,
"name": "job",
"options": [],
"query": "label_values(<%= @otp_app %>_prom_ex_prom_ex_status_info, job)",
"refresh": 2,
"regex": "",
"skipUrlSync": false,
"sort": 6,
"tagValuesQuery": "",
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"allValue": null,
"datasource": "<%= @datasource_id %>",
"definition": "label_values(<%= @otp_app %>_prom_ex_prom_ex_status_info, instance)",
"description": null,
"error": null,
"hide": 0,
"includeAll": false,
"label": "Application Instance",
"multi": false,
"name": "instance",
"options": [],
"query": "label_values(<%= @otp_app %>_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": "<%= @datasource_id %>",
"definition": "label_values(<%= @broadway_metric_prefix %>_init_status_info, name)",
"description": null,
"error": null,
"hide": 0,
"includeAll": false,
"label": "Broadway Module",
"multi": false,
"name": "broadway_module",
"options": [],
"query": "label_values(<%= @broadway_metric_prefix %>_init_status_info, name)",
"refresh": 2,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"tagValuesQuery": "",
"tagsQuery": "",
"type": "query",
"useTags": false
},
{
"auto": false,
"auto_count": 30,
"auto_min": "10s",
"current": {
"selected": false,
"text": "<%= @default_selected_interval %>",
"value": "<%= @default_selected_interval %>"
},
"description": null,
"error": null,
"hide": 0,
"label": "Interval",
"name": "interval",
"options": [
{
"selected": <%= @default_selected_interval == "15s" %>,
"text": "15s",
"value": "15s"
},
{
"selected": <%= @default_selected_interval == "30s" %>,
"text": "30s",
"value": "30s"
},
{
"selected": <%= @default_selected_interval == "1m" %>,
"text": "1m",
"value": "1m"
},
{
"selected": <%= @default_selected_interval == "5m" %>,
"text": "5m",
"value": "5m"
},
{
"selected": <%= @default_selected_interval == "15m" %>,
"text": "15m",
"value": "15m"
},
{
"selected": <%= @default_selected_interval == "30m" %>,
"text": "30m",
"value": "30m"
},
{
"selected": <%= @default_selected_interval == "1h" %>,
"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": "<%= @title %>",
"uid": "<%= @uid %>",
"version": 1
}