Changeset

6242:294ecc79e1b6

misc/grafana: Update Dashboard This is basically just a snapshot of my personal dashboard, with the changes I have made since last time this was updated
author Kim Alvefur <zash@zash.se>
date Mon, 21 Apr 2025 16:55:30 +0200
parents 6241:303fcfe3a7e8
children 6243:e2648638f3e0
files misc/grafana/prosody-dashboard.json
diffstat 1 files changed, 647 insertions(+), 250 deletions(-) [+]
line wrap: on
line diff
--- a/misc/grafana/prosody-dashboard.json	Sun Apr 20 13:37:15 2025 +0200
+++ b/misc/grafana/prosody-dashboard.json	Mon Apr 21 16:55:30 2025 +0200
@@ -1,11 +1,9 @@
 {
-   "description" : "",
    "editable" : true,
    "fiscalYearStartMonth" : 0,
    "graphTooltip" : 1,
    "id" : 1,
    "links" : [],
-   "liveNow" : false,
    "panels" : [
       {
          "collapsed" : false,
@@ -34,6 +32,7 @@
                   "axisLabel" : "",
                   "axisPlacement" : "right",
                   "barAlignment" : 0,
+                  "barWidthFactor" : 0.6,
                   "drawStyle" : "line",
                   "fillOpacity" : 10,
                   "gradientMode" : "scheme",
@@ -68,8 +67,7 @@
                   "mode" : "absolute",
                   "steps" : [
                      {
-                        "color" : "green",
-                        "value" : null
+                        "color" : "green"
                      },
                      {
                         "color" : "red",
@@ -96,20 +94,26 @@
                "showLegend" : true
             },
             "tooltip" : {
+               "hideZeros" : false,
                "mode" : "single",
                "sort" : "none"
             }
          },
-         "pluginVersion" : "8.2.5",
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
+               "disableTextWrap" : false,
+               "editorMode" : "builder",
                "exemplar" : true,
-               "expr" : "rate(process_cpu_seconds_total{job=\"prosody\"}[$__interval])",
+               "expr" : "rate(process_cpu_seconds_total{job=~\"$job\",instance=~\"$instance\"}[$__rate_interval])",
+               "fullMetaSearch" : false,
+               "includeNullMetadata" : true,
                "instant" : false,
                "interval" : "",
                "intervalFactor" : 2,
                "legendFormat" : "usage",
-               "refId" : "A"
+               "refId" : "A",
+               "useBackend" : false
             }
          ],
          "title" : "CPU",
@@ -128,6 +132,7 @@
                   "axisLabel" : "",
                   "axisPlacement" : "right",
                   "barAlignment" : 0,
+                  "barWidthFactor" : 0.6,
                   "drawStyle" : "line",
                   "fillOpacity" : 10,
                   "gradientMode" : "none",
@@ -162,8 +167,7 @@
                   "mode" : "percentage",
                   "steps" : [
                      {
-                        "color" : "green",
-                        "value" : null
+                        "color" : "green"
                      }
                   ]
                },
@@ -177,9 +181,9 @@
                      "options" : {
                         "mode" : "exclude",
                         "names" : [
+                           "Lua",
                            "RSS",
-                           "Used",
-                           "Lua"
+                           "Used"
                         ],
                         "prefix" : "All except:",
                         "readOnly" : true
@@ -213,60 +217,79 @@
                "showLegend" : true
             },
             "tooltip" : {
+               "hideZeros" : false,
                "mode" : "single",
                "sort" : "none"
             }
          },
-         "pluginVersion" : "8.2.5",
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
+               "disableTextWrap" : false,
+               "editorMode" : "code",
                "exemplar" : true,
-               "expr" : "max_over_time(process_virtual_memory_bytes{job=\"prosody\"}[$__interval])",
+               "expr" : "max_over_time(process_virtual_memory_bytes{job=~\"$job\",instance=~\"$instance\"}[$__interval])",
                "fullMetaSearch" : false,
                "hide" : false,
+               "includeNullMetadata" : true,
                "interval" : "",
                "intervalFactor" : 1,
                "legendFormat" : "Virtual",
-               "refId" : "VIRT"
+               "range" : true,
+               "refId" : "VIRT",
+               "useBackend" : false
             },
             {
                "exemplar" : false,
-               "expr" : "max_over_time(process_resident_memory_bytes{job=\"prosody\"}[$__interval])",
+               "expr" : "max_over_time(process_resident_memory_bytes{job=~\"$job\",instance=~\"$instance\"}[$__interval])",
                "interval" : "",
                "legendFormat" : "RSS",
                "refId" : "RSS"
             },
             {
                "exemplar" : false,
-               "expr" : "max_over_time(malloc_heap_allocated_bytes{job=\"prosody\"}[$__interval])",
+               "expr" : "max_over_time(malloc_heap_allocated_bytes{job=~\"$job\",instance=~\"$instance\"}[$__interval])",
                "hide" : false,
                "interval" : "",
                "legendFormat" : "Allocated ({{mode}})",
                "refId" : "Malloc allocated"
             },
             {
+               "editorMode" : "code",
                "exemplar" : false,
-               "expr" : "max_over_time(malloc_heap_used_bytes{job=\"prosody\"}[$__interval])",
+               "expr" : "max_over_time(malloc_heap_used_bytes{job=~\"$job\",instance=~\"$instance\"}[$__interval])",
                "hide" : false,
                "interval" : "",
                "legendFormat" : "Used",
+               "range" : true,
                "refId" : "Malloc Used"
             },
             {
+               "editorMode" : "code",
                "exemplar" : false,
-               "expr" : "max_over_time(lua_heap_bytes{job=\"prosody\"}[$__interval])",
+               "expr" : "max_over_time(lua_heap_bytes{job=~\"$job\",instance=~\"$instance\"}[$__interval])",
                "hide" : false,
                "interval" : "",
                "legendFormat" : "Lua",
+               "range" : true,
                "refId" : "Lua"
             },
             {
                "exemplar" : false,
-               "expr" : "sum(lua_heap_bytes{job=\"prosody\"}) / (sum(prosody_mod_c2s__connections{job=\"prosody\"})+sum(prosody_mod_s2s__connections_inbound{job=\"prosody\"})+sum(prosody_mod_s2s__connections_outbound{job=\"prosody\"}))",
+               "expr" : "sum(lua_heap_bytes{job=~\"$job\",instance=~\"$instance\"}) / (\nsum(prosody_mod_c2s__connections{job=~\"$job\",instance=~\"$instance\"}) +\nsum(prosody_mod_s2s__connections_inbound{job=~\"$job\",instance=~\"$instance\"}) +\nsum(prosody_mod_s2s__connections_outbound{job=~\"$job\",instance=~\"$instance\"})\n)",
                "hide" : false,
                "interval" : "",
                "legendFormat" : "Lua (per connection)",
                "refId" : "LuaPerConn"
+            },
+            {
+               "editorMode" : "code",
+               "expr" : "max_over_time(malloc_heap_unused_bytes{job=~\"$job\",instance=~\"$instance\"}[$__interval])",
+               "hide" : false,
+               "instant" : false,
+               "legendFormat" : "Unused",
+               "range" : true,
+               "refId" : "A"
             }
          ],
          "title" : "Memory",
@@ -298,6 +321,7 @@
                   "axisLabel" : "",
                   "axisPlacement" : "right",
                   "barAlignment" : 0,
+                  "barWidthFactor" : 0.6,
                   "drawStyle" : "line",
                   "fillOpacity" : 100,
                   "gradientMode" : "none",
@@ -329,8 +353,7 @@
                   "mode" : "absolute",
                   "steps" : [
                      {
-                        "color" : "green",
-                        "value" : null
+                        "color" : "green"
                      },
                      {
                         "color" : "red",
@@ -357,14 +380,16 @@
                "showLegend" : true
             },
             "tooltip" : {
+               "hideZeros" : false,
                "mode" : "single",
                "sort" : "none"
             }
          },
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
                "exemplar" : true,
-               "expr" : "prosody_mod_c2s__connections{type=\"c2s\"}",
+               "expr" : "prosody_mod_c2s__connections{job=~\"$job\",instance=~\"$instance\",type=\"c2s\"}",
                "interval" : "",
                "legendFormat" : "{{ip_family}} {{type}}",
                "refId" : "c2s"
@@ -386,6 +411,7 @@
                   "axisLabel" : "",
                   "axisPlacement" : "right",
                   "barAlignment" : 0,
+                  "barWidthFactor" : 0.6,
                   "drawStyle" : "line",
                   "fillOpacity" : 100,
                   "gradientMode" : "none",
@@ -417,8 +443,7 @@
                   "mode" : "absolute",
                   "steps" : [
                      {
-                        "color" : "green",
-                        "value" : null
+                        "color" : "green"
                      },
                      {
                         "color" : "red",
@@ -445,21 +470,23 @@
                "showLegend" : true
             },
             "tooltip" : {
+               "hideZeros" : false,
                "mode" : "single",
                "sort" : "none"
             }
          },
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
                "exemplar" : true,
-               "expr" : "sum(prosody_mod_s2s__connections_inbound{type=\"s2sin\"}) by (ip_family)",
+               "expr" : "sum(prosody_mod_s2s__connections_inbound{job=~\"$job\",instance=~\"$instance\",type=\"s2sin\"}) by (ip_family)",
                "interval" : "",
                "legendFormat" : "{{ip_family}} s2sin",
                "refId" : "s2sin"
             },
             {
                "exemplar" : true,
-               "expr" : "sum(prosody_mod_s2s__connections_outbound{type=\"s2sout\"}) by (ip_family)",
+               "expr" : "sum(prosody_mod_s2s__connections_outbound{job=~\"$job\",instance=~\"$instance\",type=\"s2sout\"}) by (ip_family)",
                "hide" : false,
                "interval" : "",
                "legendFormat" : "{{ip_family}} s2sout",
@@ -517,7 +544,8 @@
                "layout" : "auto"
             },
             "tooltip" : {
-               "show" : true,
+               "mode" : "single",
+               "showColorScale" : false,
                "yHistogram" : false
             },
             "yAxis" : {
@@ -525,13 +553,13 @@
                "reverse" : false
             }
          },
-         "pluginVersion" : "10.2.2",
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
                "disableTextWrap" : false,
                "editorMode" : "builder",
                "exemplar" : false,
-               "expr" : "changes(prosody_mod_c2s__encrypted_total[$__interval])",
+               "expr" : "changes(prosody_mod_c2s__encrypted_total{job=~\"$job\",instance=~\"$instance\"}[$__interval])",
                "fullMetaSearch" : false,
                "includeNullMetadata" : true,
                "interval" : "10m",
@@ -592,7 +620,8 @@
                "layout" : "auto"
             },
             "tooltip" : {
-               "show" : true,
+               "mode" : "single",
+               "showColorScale" : false,
                "yHistogram" : false
             },
             "yAxis" : {
@@ -600,13 +629,13 @@
                "reverse" : false
             }
          },
-         "pluginVersion" : "10.2.2",
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
                "disableTextWrap" : false,
                "editorMode" : "builder",
                "exemplar" : false,
-               "expr" : "changes(prosody_mod_s2s__encrypted_total[$__interval])",
+               "expr" : "changes(prosody_mod_s2s__encrypted_total{job=~\"$job\",instance=~\"$instance\"}[$__interval])",
                "format" : "time_series",
                "fullMetaSearch" : false,
                "includeNullMetadata" : true,
@@ -635,15 +664,6 @@
          "type" : "row"
       },
       {
-         "cards" : {},
-         "color" : {
-            "cardColor" : "#b4ff00",
-            "colorScale" : "sqrt",
-            "colorScheme" : "interpolateRdYlGn",
-            "exponent" : 0.5,
-            "mode" : "spectrum"
-         },
-         "dataFormat" : "tsbuckets",
          "description" : "How long a session has been hibernating when a client resumes it",
          "fieldConfig" : {
             "defaults" : {
@@ -666,13 +686,7 @@
             "x" : 0,
             "y" : 27
          },
-         "heatmap" : {},
-         "hideZeroBuckets" : true,
-         "highlightCards" : true,
          "id" : 14,
-         "legend" : {
-            "show" : true
-         },
          "options" : {
             "calculate" : false,
             "calculation" : {},
@@ -701,7 +715,8 @@
             },
             "showValue" : "never",
             "tooltip" : {
-               "show" : true,
+               "mode" : "single",
+               "showColorScale" : false,
                "yHistogram" : false
             },
             "yAxis" : {
@@ -711,18 +726,17 @@
                "unit" : "clocks"
             }
          },
-         "pluginVersion" : "10.2.2",
-         "reverseYBuckets" : false,
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
                "disableTextWrap" : false,
                "editorMode" : "builder",
                "exemplar" : true,
-               "expr" : "sum by(le) (changes(prosody_mod_smacks__resumption_age_seconds_bucket{host=\"$virtualhost\"}[$__interval]))",
+               "expr" : "rate(prosody_mod_smacks__resumption_age_seconds_bucket{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[$__rate_interval])",
                "format" : "heatmap",
                "fullMetaSearch" : false,
-               "includeNullMetadata" : true,
-               "interval" : "600",
+               "includeNullMetadata" : false,
+               "interval" : "",
                "legendFormat" : "{{le}}",
                "range" : true,
                "refId" : "A",
@@ -730,20 +744,7 @@
             }
          ],
          "title" : "Resumption Age",
-         "tooltip" : {
-            "show" : true,
-            "showHistogram" : false
-         },
-         "type" : "heatmap",
-         "xAxis" : {
-            "show" : true
-         },
-         "yAxis" : {
-            "format" : "clocks",
-            "logBase" : 1,
-            "show" : true
-         },
-         "yBucketBound" : "upper"
+         "type" : "heatmap"
       },
       {
          "fieldConfig" : {
@@ -758,6 +759,7 @@
                   "axisLabel" : "",
                   "axisPlacement" : "auto",
                   "barAlignment" : 0,
+                  "barWidthFactor" : 0.6,
                   "drawStyle" : "line",
                   "fillOpacity" : 0,
                   "gradientMode" : "none",
@@ -788,118 +790,6 @@
                   "mode" : "absolute",
                   "steps" : [
                      {
-                        "color" : "green",
-                        "value" : null
-                     },
-                     {
-                        "color" : "red",
-                        "value" : 80
-                     }
-                  ]
-               },
-               "unit" : "pps"
-            },
-            "overrides" : []
-         },
-         "gridPos" : {
-            "h" : 8,
-            "w" : 12,
-            "x" : 12,
-            "y" : 27
-         },
-         "id" : 16,
-         "options" : {
-            "legend" : {
-               "calcs" : [],
-               "displayMode" : "list",
-               "placement" : "bottom",
-               "showLegend" : true
-            },
-            "tooltip" : {
-               "mode" : "single",
-               "sort" : "none"
-            }
-         },
-         "targets" : [
-            {
-               "editorMode" : "code",
-               "exemplar" : true,
-               "expr" : "rate(prosody_mod_smacks__tx_queued_stanzas_total{host=\"$virtualhost\"}[$__interval])",
-               "interval" : "600",
-               "legendFormat" : "queued on {{host}}",
-               "range" : true,
-               "refId" : "A"
-            },
-            {
-               "editorMode" : "builder",
-               "exemplar" : true,
-               "expr" : "rate(prosody_mod_smacks__tx_acked_stanzas_count{host=\"$virtualhost\"}[$__interval])",
-               "hide" : false,
-               "interval" : "600",
-               "legendFormat" : "acked on {{host}}",
-               "range" : true,
-               "refId" : "B"
-            }
-         ],
-         "title" : "Stanzas",
-         "type" : "timeseries"
-      },
-      {
-         "collapsed" : false,
-         "gridPos" : {
-            "h" : 1,
-            "w" : 24,
-            "x" : 0,
-            "y" : 35
-         },
-         "id" : 28,
-         "panels" : [],
-         "title" : "Mobile optimizations",
-         "type" : "row"
-      },
-      {
-         "fieldConfig" : {
-            "defaults" : {
-               "color" : {
-                  "mode" : "palette-classic"
-               },
-               "custom" : {
-                  "axisBorderShow" : false,
-                  "axisCenteredZero" : false,
-                  "axisColorMode" : "text",
-                  "axisLabel" : "",
-                  "axisPlacement" : "auto",
-                  "barAlignment" : 0,
-                  "drawStyle" : "points",
-                  "fillOpacity" : 0,
-                  "gradientMode" : "none",
-                  "hideFrom" : {
-                     "legend" : false,
-                     "tooltip" : false,
-                     "viz" : false
-                  },
-                  "insertNulls" : false,
-                  "lineInterpolation" : "linear",
-                  "lineWidth" : 1,
-                  "pointSize" : 5,
-                  "scaleDistribution" : {
-                     "type" : "linear"
-                  },
-                  "showPoints" : "auto",
-                  "spanNulls" : false,
-                  "stacking" : {
-                     "group" : "A",
-                     "mode" : "none"
-                  },
-                  "thresholdsStyle" : {
-                     "mode" : "off"
-                  }
-               },
-               "mappings" : [],
-               "thresholds" : {
-                  "mode" : "absolute",
-                  "steps" : [
-                     {
                         "color" : "green"
                      },
                      {
@@ -908,7 +798,89 @@
                      }
                   ]
                },
-               "unit" : "s"
+               "unit" : "pps"
+            },
+            "overrides" : []
+         },
+         "gridPos" : {
+            "h" : 8,
+            "w" : 12,
+            "x" : 12,
+            "y" : 27
+         },
+         "id" : 16,
+         "options" : {
+            "legend" : {
+               "calcs" : [],
+               "displayMode" : "list",
+               "placement" : "bottom",
+               "showLegend" : true
+            },
+            "tooltip" : {
+               "hideZeros" : false,
+               "mode" : "single",
+               "sort" : "none"
+            }
+         },
+         "pluginVersion" : "11.6.0",
+         "targets" : [
+            {
+               "disableTextWrap" : false,
+               "editorMode" : "builder",
+               "exemplar" : true,
+               "expr" : "rate(prosody_mod_smacks__tx_queued_stanzas_total{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[$__interval])",
+               "fullMetaSearch" : false,
+               "includeNullMetadata" : true,
+               "interval" : "600",
+               "legendFormat" : "queued on {{host}}",
+               "range" : true,
+               "refId" : "A",
+               "useBackend" : false
+            },
+            {
+               "disableTextWrap" : false,
+               "editorMode" : "builder",
+               "exemplar" : true,
+               "expr" : "rate(prosody_mod_smacks__tx_acked_stanzas_count{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[$__interval])",
+               "fullMetaSearch" : false,
+               "hide" : false,
+               "includeNullMetadata" : true,
+               "interval" : "600",
+               "legendFormat" : "acked on {{host}}",
+               "range" : true,
+               "refId" : "B",
+               "useBackend" : false
+            }
+         ],
+         "title" : "Stanzas",
+         "type" : "timeseries"
+      },
+      {
+         "collapsed" : false,
+         "gridPos" : {
+            "h" : 1,
+            "w" : 24,
+            "x" : 0,
+            "y" : 35
+         },
+         "id" : 28,
+         "panels" : [],
+         "title" : "Mobile optimizations",
+         "type" : "row"
+      },
+      {
+         "fieldConfig" : {
+            "defaults" : {
+               "custom" : {
+                  "hideFrom" : {
+                     "legend" : false,
+                     "tooltip" : false,
+                     "viz" : false
+                  },
+                  "scaleDistribution" : {
+                     "type" : "linear"
+                  }
+               }
             },
             "overrides" : []
          },
@@ -920,6 +892,200 @@
          },
          "id" : 18,
          "options" : {
+            "calculate" : false,
+            "cellGap" : 1,
+            "color" : {
+               "exponent" : 0.5,
+               "fill" : "dark-orange",
+               "mode" : "scheme",
+               "reverse" : false,
+               "scale" : "exponential",
+               "scheme" : "RdYlGn",
+               "steps" : 64
+            },
+            "exemplars" : {
+               "color" : "rgba(255,0,255,0.7)"
+            },
+            "filterValues" : {
+               "le" : 1e-09
+            },
+            "legend" : {
+               "show" : true
+            },
+            "rowsFrame" : {
+               "layout" : "auto"
+            },
+            "tooltip" : {
+               "mode" : "single",
+               "showColorScale" : false,
+               "yHistogram" : false
+            },
+            "yAxis" : {
+               "axisPlacement" : "left",
+               "reverse" : false,
+               "unit" : "s"
+            }
+         },
+         "pluginVersion" : "11.6.0",
+         "targets" : [
+            {
+               "disableTextWrap" : false,
+               "editorMode" : "builder",
+               "exemplar" : false,
+               "expr" : "rate(prosody_mod_csi_simple__buffer_hold_seconds_bucket{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[$__rate_interval])",
+               "format" : "heatmap",
+               "fullMetaSearch" : false,
+               "includeNullMetadata" : false,
+               "instant" : false,
+               "interval" : "",
+               "legendFormat" : "__auto",
+               "range" : true,
+               "refId" : "A",
+               "useBackend" : false
+            }
+         ],
+         "title" : "Hold time",
+         "type" : "heatmap"
+      },
+      {
+         "fieldConfig" : {
+            "defaults" : {
+               "custom" : {
+                  "hideFrom" : {
+                     "legend" : false,
+                     "tooltip" : false,
+                     "viz" : false
+                  },
+                  "scaleDistribution" : {
+                     "type" : "linear"
+                  }
+               }
+            },
+            "overrides" : []
+         },
+         "gridPos" : {
+            "h" : 8,
+            "w" : 12,
+            "x" : 12,
+            "y" : 36
+         },
+         "id" : 20,
+         "options" : {
+            "calculate" : false,
+            "cellGap" : 1,
+            "color" : {
+               "exponent" : 0.5,
+               "fill" : "dark-orange",
+               "mode" : "scheme",
+               "reverse" : false,
+               "scale" : "exponential",
+               "scheme" : "PRGn",
+               "steps" : 64
+            },
+            "exemplars" : {
+               "color" : "rgba(255,0,255,0.7)"
+            },
+            "filterValues" : {
+               "le" : 1e-09
+            },
+            "legend" : {
+               "show" : true
+            },
+            "rowsFrame" : {
+               "layout" : "auto"
+            },
+            "tooltip" : {
+               "mode" : "single",
+               "showColorScale" : false,
+               "yHistogram" : false
+            },
+            "yAxis" : {
+               "axisPlacement" : "left",
+               "reverse" : false
+            }
+         },
+         "pluginVersion" : "11.6.0",
+         "targets" : [
+            {
+               "disableTextWrap" : false,
+               "editorMode" : "builder",
+               "expr" : "rate(prosody_mod_csi_simple__flush_stanza_count_bucket{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[$__rate_interval])",
+               "format" : "heatmap",
+               "fullMetaSearch" : false,
+               "includeNullMetadata" : false,
+               "legendFormat" : "Stanzas flushed",
+               "range" : true,
+               "refId" : "A",
+               "useBackend" : false
+            }
+         ],
+         "title" : "Flush sizes",
+         "type" : "heatmap"
+      },
+      {
+         "fieldConfig" : {
+            "defaults" : {
+               "color" : {
+                  "mode" : "palette-classic"
+               },
+               "custom" : {
+                  "axisBorderShow" : false,
+                  "axisCenteredZero" : false,
+                  "axisColorMode" : "text",
+                  "axisLabel" : "",
+                  "axisPlacement" : "auto",
+                  "barAlignment" : 0,
+                  "barWidthFactor" : 0.6,
+                  "drawStyle" : "line",
+                  "fillOpacity" : 50,
+                  "gradientMode" : "none",
+                  "hideFrom" : {
+                     "legend" : false,
+                     "tooltip" : false,
+                     "viz" : false
+                  },
+                  "insertNulls" : false,
+                  "lineInterpolation" : "smooth",
+                  "lineWidth" : 1,
+                  "pointSize" : 5,
+                  "scaleDistribution" : {
+                     "type" : "linear"
+                  },
+                  "showPoints" : "auto",
+                  "spanNulls" : false,
+                  "stacking" : {
+                     "group" : "A",
+                     "mode" : "percent"
+                  },
+                  "thresholdsStyle" : {
+                     "mode" : "off"
+                  }
+               },
+               "mappings" : [],
+               "thresholds" : {
+                  "mode" : "absolute",
+                  "steps" : [
+                     {
+                        "color" : "green"
+                     },
+                     {
+                        "color" : "red",
+                        "value" : 80
+                     }
+                  ]
+               },
+               "unit" : "none"
+            },
+            "overrides" : []
+         },
+         "gridPos" : {
+            "h" : 8,
+            "w" : 12,
+            "x" : 0,
+            "y" : 44
+         },
+         "id" : 32,
+         "options" : {
             "legend" : {
                "calcs" : [],
                "displayMode" : "list",
@@ -927,24 +1093,27 @@
                "showLegend" : true
             },
             "tooltip" : {
+               "hideZeros" : false,
                "mode" : "single",
                "sort" : "none"
             }
          },
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
+               "disableTextWrap" : false,
                "editorMode" : "builder",
-               "exemplar" : false,
-               "expr" : "histogram_quantile(0.95, sum by(le) (rate(prosody_mod_csi_simple__buffer_hold_seconds_bucket{host=\"$virtualhost\"}[$__rate_interval])))",
+               "expr" : "avg_over_time(prosody_mod_csi__state_sessions{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[$__interval])",
                "format" : "time_series",
-               "instant" : false,
-               "interval" : "",
-               "legendFormat" : "CSI hold seconds",
+               "fullMetaSearch" : false,
+               "includeNullMetadata" : true,
+               "legendFormat" : "{{csi_state}}",
                "range" : true,
-               "refId" : "A"
+               "refId" : "A",
+               "useBackend" : false
             }
          ],
-         "title" : "Hold time",
+         "title" : "CSI States",
          "type" : "timeseries"
       },
       {
@@ -960,7 +1129,8 @@
                   "axisLabel" : "",
                   "axisPlacement" : "auto",
                   "barAlignment" : 0,
-                  "drawStyle" : "points",
+                  "barWidthFactor" : 0.6,
+                  "drawStyle" : "line",
                   "fillOpacity" : 0,
                   "gradientMode" : "none",
                   "hideFrom" : {
@@ -998,7 +1168,7 @@
                      }
                   ]
                },
-               "unit" : "none"
+               "unit" : "bytes"
             },
             "overrides" : []
          },
@@ -1006,9 +1176,9 @@
             "h" : 8,
             "w" : 12,
             "x" : 12,
-            "y" : 36
+            "y" : 44
          },
-         "id" : 20,
+         "id" : 33,
          "options" : {
             "legend" : {
                "calcs" : [],
@@ -1017,21 +1187,26 @@
                "showLegend" : true
             },
             "tooltip" : {
+               "hideZeros" : false,
                "mode" : "single",
                "sort" : "none"
             }
          },
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
+               "disableTextWrap" : false,
                "editorMode" : "builder",
-               "expr" : "histogram_quantile(0.95, sum by(le) (rate(prosody_mod_csi_simple__flush_stanza_count_bucket{host=\"$virtualhost\"}[$__rate_interval])))",
-               "format" : "time_series",
-               "legendFormat" : "Stanzas flushed",
+               "expr" : "max_over_time(prosody_mod_measure_conn_buffers__total_pending_tx{job=~\"$job\",instance=~\"$instance\",host=\"\"}[$__interval])",
+               "fullMetaSearch" : false,
+               "includeNullMetadata" : true,
+               "legendFormat" : "{{instance}}",
                "range" : true,
-               "refId" : "A"
+               "refId" : "A",
+               "useBackend" : false
             }
          ],
-         "title" : "Flush sizes",
+         "title" : "Connection Buffers",
          "type" : "timeseries"
       },
       {
@@ -1040,7 +1215,7 @@
             "h" : 1,
             "w" : 24,
             "x" : 0,
-            "y" : 44
+            "y" : 52
          },
          "id" : 22,
          "panels" : [],
@@ -1048,17 +1223,6 @@
          "type" : "row"
       },
       {
-         "cards" : {},
-         "color" : {
-            "cardColor" : "#b4ff00",
-            "colorScale" : "sqrt",
-            "colorScheme" : "interpolateRdYlGn",
-            "exponent" : 0.5,
-            "max" : 5,
-            "min" : 0,
-            "mode" : "opacity"
-         },
-         "dataFormat" : "tsbuckets",
          "fieldConfig" : {
             "defaults" : {
                "custom" : {
@@ -1078,20 +1242,16 @@
             "h" : 8,
             "w" : 18,
             "x" : 0,
-            "y" : 45
+            "y" : 53
          },
-         "heatmap" : {},
-         "hideZeroBuckets" : false,
-         "highlightCards" : true,
          "id" : 8,
-         "legend" : {
-            "show" : false
-         },
          "options" : {
             "calculate" : false,
             "calculation" : {},
             "cellGap" : 2,
-            "cellValues" : {},
+            "cellValues" : {
+               "decimals" : 0
+            },
             "color" : {
                "exponent" : 0.5,
                "fill" : "#b4ff00",
@@ -1117,7 +1277,8 @@
             },
             "showValue" : "never",
             "tooltip" : {
-               "show" : true,
+               "mode" : "single",
+               "showColorScale" : false,
                "yHistogram" : false
             },
             "yAxis" : {
@@ -1126,18 +1287,17 @@
                "unit" : "bytes"
             }
          },
-         "pluginVersion" : "10.2.0",
-         "reverseYBuckets" : false,
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
                "disableTextWrap" : false,
                "editorMode" : "builder",
                "exemplar" : true,
-               "expr" : "sum by(le) (changes(prosody_mod_http_file_share__upload_bytes_bucket{host=\"$virtualhost\"}[$__interval]))",
+               "expr" : "sum by(le) (increase(prosody_mod_http_file_share__upload_bytes_bucket{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[1h]))",
                "format" : "heatmap",
                "fullMetaSearch" : false,
                "includeNullMetadata" : true,
-               "interval" : "3600s",
+               "interval" : "1h",
                "intervalFactor" : 1,
                "legendFormat" : "{{le}}",
                "range" : true,
@@ -1146,20 +1306,7 @@
             }
          ],
          "title" : "Upload sizes",
-         "tooltip" : {
-            "show" : true,
-            "showHistogram" : false
-         },
-         "type" : "heatmap",
-         "xAxis" : {
-            "show" : true
-         },
-         "yAxis" : {
-            "format" : "bytes",
-            "logBase" : 1,
-            "show" : true
-         },
-         "yBucketBound" : "upper"
+         "type" : "heatmap"
       },
       {
          "fieldConfig" : {
@@ -1186,7 +1333,7 @@
             "h" : 8,
             "w" : 6,
             "x" : 18,
-            "y" : 45
+            "y" : 53
          },
          "id" : 10,
          "options" : {
@@ -1202,14 +1349,15 @@
             },
             "showThresholdLabels" : false,
             "showThresholdMarkers" : false,
+            "sizing" : "auto",
             "text" : {}
          },
-         "pluginVersion" : "10.2.0",
+         "pluginVersion" : "11.6.0",
          "targets" : [
             {
                "editorMode" : "builder",
                "exemplar" : true,
-               "expr" : "prosody_mod_http_file_share__total_storage_bytes{host=\"$virtualhost\"}",
+               "expr" : "prosody_mod_http_file_share__total_storage_bytes{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}",
                "instant" : false,
                "interval" : "",
                "legendFormat" : "",
@@ -1218,10 +1366,224 @@
          ],
          "title" : "Total uploads",
          "type" : "gauge"
+      },
+      {
+         "collapsed" : false,
+         "gridPos" : {
+            "h" : 1,
+            "w" : 24,
+            "x" : 0,
+            "y" : 61
+         },
+         "id" : 34,
+         "panels" : [],
+         "title" : "Spam",
+         "type" : "row"
+      },
+      {
+         "fieldConfig" : {
+            "defaults" : {
+               "color" : {
+                  "mode" : "palette-classic"
+               },
+               "custom" : {
+                  "axisBorderShow" : false,
+                  "axisCenteredZero" : false,
+                  "axisColorMode" : "text",
+                  "axisLabel" : "",
+                  "axisPlacement" : "auto",
+                  "barAlignment" : 0,
+                  "barWidthFactor" : 0.6,
+                  "drawStyle" : "line",
+                  "fillOpacity" : 0,
+                  "gradientMode" : "none",
+                  "hideFrom" : {
+                     "legend" : false,
+                     "tooltip" : false,
+                     "viz" : false
+                  },
+                  "insertNulls" : false,
+                  "lineInterpolation" : "linear",
+                  "lineWidth" : 1,
+                  "pointSize" : 5,
+                  "scaleDistribution" : {
+                     "type" : "linear"
+                  },
+                  "showPoints" : "auto",
+                  "spanNulls" : false,
+                  "stacking" : {
+                     "group" : "A",
+                     "mode" : "none"
+                  },
+                  "thresholdsStyle" : {
+                     "mode" : "off"
+                  }
+               },
+               "mappings" : [],
+               "thresholds" : {
+                  "mode" : "absolute",
+                  "steps" : [
+                     {
+                        "color" : "green"
+                     },
+                     {
+                        "color" : "red",
+                        "value" : 80
+                     }
+                  ]
+               },
+               "unit" : "pps"
+            },
+            "overrides" : []
+         },
+         "gridPos" : {
+            "h" : 8,
+            "w" : 12,
+            "x" : 0,
+            "y" : 62
+         },
+         "id" : 36,
+         "options" : {
+            "legend" : {
+               "calcs" : [],
+               "displayMode" : "list",
+               "placement" : "bottom",
+               "showLegend" : true
+            },
+            "tooltip" : {
+               "hideZeros" : false,
+               "mode" : "single",
+               "sort" : "none"
+            }
+         },
+         "pluginVersion" : "11.6.0",
+         "targets" : [
+            {
+               "disableTextWrap" : false,
+               "editorMode" : "builder",
+               "expr" : "rate(prosody_mod_anti_spam__anti_spam_blocked_stanzas_total{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[$__rate_interval])",
+               "fullMetaSearch" : false,
+               "includeNullMetadata" : true,
+               "legendFormat" : "{{reason}}",
+               "range" : true,
+               "refId" : "A",
+               "useBackend" : false
+            }
+         ],
+         "title" : "mod_anti_spam",
+         "type" : "timeseries"
+      },
+      {
+         "fieldConfig" : {
+            "defaults" : {
+               "color" : {
+                  "mode" : "palette-classic"
+               },
+               "custom" : {
+                  "axisBorderShow" : false,
+                  "axisCenteredZero" : false,
+                  "axisColorMode" : "text",
+                  "axisLabel" : "",
+                  "axisPlacement" : "auto",
+                  "barAlignment" : 0,
+                  "barWidthFactor" : 1,
+                  "drawStyle" : "line",
+                  "fillOpacity" : 25,
+                  "gradientMode" : "none",
+                  "hideFrom" : {
+                     "legend" : false,
+                     "tooltip" : false,
+                     "viz" : false
+                  },
+                  "insertNulls" : false,
+                  "lineInterpolation" : "smooth",
+                  "lineWidth" : 1,
+                  "pointSize" : 5,
+                  "scaleDistribution" : {
+                     "type" : "linear"
+                  },
+                  "showPoints" : "auto",
+                  "spanNulls" : false,
+                  "stacking" : {
+                     "group" : "A",
+                     "mode" : "none"
+                  },
+                  "thresholdsStyle" : {
+                     "mode" : "off"
+                  }
+               },
+               "mappings" : [],
+               "thresholds" : {
+                  "mode" : "absolute",
+                  "steps" : [
+                     {
+                        "color" : "green"
+                     },
+                     {
+                        "color" : "red",
+                        "value" : 80
+                     }
+                  ]
+               },
+               "unit" : "pps"
+            },
+            "overrides" : []
+         },
+         "gridPos" : {
+            "h" : 8,
+            "w" : 12,
+            "x" : 12,
+            "y" : 62
+         },
+         "id" : 35,
+         "options" : {
+            "legend" : {
+               "calcs" : [],
+               "displayMode" : "list",
+               "placement" : "bottom",
+               "showLegend" : true
+            },
+            "tooltip" : {
+               "hideZeros" : false,
+               "mode" : "single",
+               "sort" : "none"
+            }
+         },
+         "pluginVersion" : "11.6.0",
+         "targets" : [
+            {
+               "disableTextWrap" : false,
+               "editorMode" : "builder",
+               "expr" : "rate(prosody_mod_spam_reporting__received_reports_total{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[$__rate_interval])",
+               "fullMetaSearch" : false,
+               "includeNullMetadata" : true,
+               "interval" : "",
+               "legendFormat" : "{{report_type}} reports",
+               "range" : true,
+               "refId" : "A",
+               "useBackend" : false
+            },
+            {
+               "disableTextWrap" : false,
+               "editorMode" : "code",
+               "expr" : "-rate(prosody_mod_report_forward__forwarded_reports_total{job=~\"$job\",instance=~\"$instance\",host=~\"$virtualhost\"}[$__rate_interval])",
+               "fullMetaSearch" : false,
+               "hide" : false,
+               "includeNullMetadata" : true,
+               "instant" : false,
+               "legendFormat" : "forwarded",
+               "range" : true,
+               "refId" : "B",
+               "useBackend" : false
+            }
+         ],
+         "title" : "Reports",
+         "type" : "timeseries"
       }
    ],
+   "preload" : false,
    "refresh" : "5m",
-   "schemaVersion" : 38,
+   "schemaVersion" : 41,
    "tags" : [
       "prosody",
       "xmpp"
@@ -1229,21 +1591,57 @@
    "templating" : {
       "list" : [
          {
-            "definition" : "label_values(host)",
-            "hide" : 0,
-            "includeAll" : false,
-            "label" : "VirtualHost",
-            "multi" : false,
-            "name" : "virtualhost",
+            "current" : {
+               "text" : "prosody",
+               "value" : "prosody"
+            },
+            "definition" : "label_values(prosody_info,job)",
+            "label" : "Job",
+            "name" : "job",
             "options" : [],
             "query" : {
-               "query" : "label_values(host)",
+               "qryType" : 1,
+               "query" : "label_values(prosody_info,job)",
                "refId" : "PrometheusVariableQueryEditor-VariableQuery"
             },
             "refresh" : 1,
             "regex" : "",
-            "skipUrlSync" : false,
-            "sort" : 0,
+            "type" : "query"
+         },
+         {
+            "current" : {
+               "text" : "All",
+               "value" : [
+                  "$__all"
+               ]
+            },
+            "definition" : "label_values(prosody_info{job=~\"$job\"},instance)",
+            "includeAll" : true,
+            "multi" : true,
+            "name" : "instance",
+            "options" : [],
+            "query" : {
+               "qryType" : 1,
+               "query" : "label_values(prosody_info{job=~\"$job\"},instance)",
+               "refId" : "PrometheusVariableQueryEditor-VariableQuery"
+            },
+            "refresh" : 1,
+            "regex" : "",
+            "type" : "query"
+         },
+         {
+            "definition" : "label_values({job=~\"$job\", instance=~\"$instance\"},host)",
+            "includeAll" : false,
+            "label" : "VirtualHost",
+            "name" : "virtualhost",
+            "options" : [],
+            "query" : {
+               "qryType" : 1,
+               "query" : "label_values({job=~\"$job\", instance=~\"$instance\"},host)",
+               "refId" : "PrometheusVariableQueryEditor-VariableQuery"
+            },
+            "refresh" : 1,
+            "regex" : "",
             "type" : "query"
          }
       ]
@@ -1256,6 +1654,5 @@
    "timezone" : "",
    "title" : "Prosody",
    "uid" : "y1Onovt7z",
-   "version" : 91,
-   "weekStart" : ""
+   "version" : 134
 }