{ "__inputs": [ ], "__requires": [ ], "annotations": { "list": [ ] }, "editable": false, "gnetId": null, "graphTooltip": 1, "hideControls": false, "id": null, "links": [ { "asDropdown": false, "icon": "external link", "includeVars": true, "keepTime": true, "tags": [ "discourse-mixin" ], "targetBlank": false, "title": "Other Discourse dashboards", "type": "dashboards", "url": "" } ], "panels": [ { "datasource": { "uid": "${prometheus_datasource}" }, "description": "Current number of Sidekiq Workers.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "none" }, "overrides": [ ] }, "gridPos": { "h": 5, "w": 8, "x": 0, "y": 0 }, "id": 2, "links": [ ], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.1.8", "targets": [ { "datasource": { "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "count(discourse_rss{type=\"sidekiq\",instance=~\"$instance\",job=~\"$job\"})", "format": "time_series", "intervalFactor": 2, "legendFormat": "", "range": true, "refId": "A", "step": 40, "target": "" } ], "title": "Sidekiq Workers", "type": "stat" }, { "datasource": { "uid": "${prometheus_datasource}" }, "description": "Current number of Web Workers.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "none" }, "overrides": [ ] }, "gridPos": { "h": 5, "w": 8, "x": 8, "y": 0 }, "id": 3, "links": [ ], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "9.1.8", "targets": [ { "datasource": { "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "count(discourse_rss{type='web',instance=~\"$instance\",job=~\"$job\"})", "format": "time_series", "intervalFactor": 2, "legendFormat": "", "range": true, "refId": "A", "step": 40, "target": "" } ], "title": "Web Workers", "type": "stat" }, { "datasource": { "uid": "${prometheus_datasource}" }, "description": "Current number of jobs in Sidekiq queue.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "none" }, "overrides": [ ] }, "gridPos": { "h": 5, "w": 8, "x": 16, "y": 0 }, "id": 4, "links": [ ], "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "auto" }, "targets": [ { "datasource": { "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "max(discourse_sidekiq_jobs_enqueued{instance=~\"$instance\",job=~\"$job\"})", "format": "time_series", "intervalFactor": 2, "legendFormat": "", "range": true, "refId": "A", "step": 40, "target": "" } ], "title": "Sidekiq Queued", "type": "stat" }, { "datasource": { "uid": "${prometheus_datasource}" }, "description": "The number of scheduled jobs ran over an interval.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [ ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ ] }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 6 }, "id": 5, "options": { "legend": { "calcs": [ ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "uid": "${prometheus_datasource}" }, "expr": "increase(discourse_scheduled_job_count{instance=~\"$instance\", job=~\"$job\"}[$__rate_interval])", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{job_name}}" } ], "title": "Scheduled Jobs", "type": "timeseries" }, { "datasource": { "uid": "${prometheus_datasource}" }, "description": "The amount of sidekiq jobs ran over an interval.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [ ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ ] }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 6 }, "id": 6, "options": { "legend": { "calcs": [ ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "uid": "${prometheus_datasource}" }, "expr": "increase(discourse_sidekiq_job_count{instance=~\"$instance\", job=~\"$job\"}[$__rate_interval])", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{job_name}}" } ], "title": "Sidekiq Jobs", "type": "timeseries" }, { "datasource": { "uid": "${prometheus_datasource}" }, "description": "Time spent in scheduled jobs broken out by job name.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 30, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "normal" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [ ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [ ] }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 12 }, "id": 7, "links": [ ], "options": { "legend": { "calcs": [ ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "9.1.8", "targets": [ { "datasource": { "uid": "${prometheus_datasource}" }, "expr": "sum(rate(discourse_scheduled_job_duration_seconds{instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])) by (job_name)", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{job_name}}" } ], "title": "Scheduled Job Duration", "type": "timeseries" }, { "datasource": { "uid": "${prometheus_datasource}" }, "description": "Time spent in Sidekiq jobs broken out by job name.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 30, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "normal" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [ ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [ ] }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 12 }, "id": 8, "links": [ ], "options": { "legend": { "calcs": [ ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "9.1.8", "targets": [ { "datasource": { "uid": "${prometheus_datasource}" }, "expr": "sum(rate(discourse_sidekiq_job_duration_seconds{instance=~\"$instance\",job=~\"$job\"}[$__rate_interval])) by (job_name)", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{job_name}}" } ], "title": "Sidekiq Job Duration", "type": "timeseries" }, { "datasource": { "uid": "${prometheus_datasource}" }, "description": "Total RSS Memory used by process. Broken up by pid.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [ ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ ] }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 18 }, "id": 9, "options": { "legend": { "calcs": [ ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "uid": "${prometheus_datasource}" }, "expr": "sum(discourse_rss{instance=~\"$instance\",job=~\"$job\"}) by (pid)", "format": "time_series", "intervalFactor": 2, "legendFormat": "pid: {{pid}}" } ], "title": "Used RSS Memory", "type": "timeseries" }, { "datasource": { "uid": "${prometheus_datasource}" }, "description": "Current heap size of V8 engine. Broken up by process type", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [ ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ ] }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 18 }, "id": 10, "options": { "legend": { "calcs": [ ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "uid": "${prometheus_datasource}" }, "expr": "sum(discourse_v8_used_heap_size{instance=~\"$instance\",job=~\"$job\"}) by (type)", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{type}}" } ], "title": "V8 Heap Size", "type": "timeseries" } ], "refresh": "1m", "rows": [ ], "schemaVersion": 14, "style": "dark", "tags": [ "discourse-mixin" ], "templating": { "list": [ { "hide": 0, "label": "Data source", "name": "prometheus_datasource", "query": "prometheus", "refresh": 1, "regex": "", "type": "datasource" }, { "allValue": ".+", "current": { "text": "", "value": "" }, "datasource": "$prometheus_datasource", "hide": 0, "includeAll": true, "label": "instance", "multi": true, "name": "instance", "options": [ ], "query": "label_values(discourse_page_views, instance)", "refresh": 2, "regex": "", "sort": 1, "tagValuesQuery": "", "tags": [ ], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": ".+", "current": { }, "datasource": { "uid": "${prometheus_datasource}" }, "hide": 0, "includeAll": true, "label": "Job", "multi": true, "name": "job", "options": [ ], "query": "label_values(discourse_page_views{}, job)", "refresh": 2, "regex": "", "sort": 1, "tagValuesQuery": "", "tags": [ ], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-1h", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "default", "title": "Discourse Jobs Processing", "uid": "discourse-jobs", "version": 0 }