{
  "tags": [],
  "title": "RabbitMQ-Stream",
  "widgets": [
    {
      "layout": {
        "x": 0,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Stream publishers",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_publishers{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 2,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Stream messages received / s",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_messages_received.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_rate()",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 4,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Stream messages confirmed to publishers / s",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_messages_confirmed.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_rate()",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Stream consumers",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_consumers{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 8,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Stream messages delivered / s",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_messages_delivered.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_rate()",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 10,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "query_value",
        "title": "Errors since boot",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_stream_error_access_refused.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "sum:rabbitmq_global_stream_error_authentication_failure.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "sum:rabbitmq_global_stream_error_frame_too_large.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query4",
                "query": "sum:rabbitmq_global_stream_error_internal_error.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query5",
                "query": "sum:rabbitmq_global_stream_error_precondition_failed.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query6",
                "query": "sum:rabbitmq_global_stream_error_publisher_does_not_exist.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query7",
                "query": "sum:rabbitmq_global_stream_error_sasl_authentication_failure_loopback.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query8",
                "query": "sum:rabbitmq_global_stream_error_sasl_challenge.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query9",
                "query": "sum:rabbitmq_global_stream_error_sasl_error.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query10",
                "query": "sum:rabbitmq_global_stream_error_sasl_mechanism_not_supported.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query11",
                "query": "sum:rabbitmq_global_stream_error_stream_already_exists.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query12",
                "query": "sum:rabbitmq_global_stream_error_stream_does_not_exist.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query13",
                "query": "sum:rabbitmq_global_stream_error_stream_not_available.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query14",
                "query": "sum:rabbitmq_global_stream_error_subscription_id_already_exists.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query15",
                "query": "sum:rabbitmq_global_stream_error_subscription_id_does_not_exist.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query16",
                "query": "sum:rabbitmq_global_stream_error_unknown_frame.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              },
              {
                "name": "query17",
                "query": "sum:rabbitmq_global_stream_error_vhost_access_failure.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "aggregator": "sum",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1 + query2 + query3 + query4 + query5 + query6 + query7 + query8 + query9 + query10 + query11 + query12 + query13 + query14 + query15 + query16 + query17"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 1,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "sunburst",
        "title": "",
        "legend": {
          "type": "automatic"
        },
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_publishers{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_node}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ]
      }
    },
    {
      "layout": {
        "x": 2,
        "y": 1,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "sunburst",
        "title": "",
        "legend": {
          "type": "automatic"
        },
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_messages_received.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_node}.as_rate()",
                "aggregator": "avg",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ]
      }
    },
    {
      "layout": {
        "x": 4,
        "y": 1,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "sunburst",
        "title": "",
        "legend": {
          "type": "automatic"
        },
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_messages_confirmed.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_node}.as_rate()",
                "aggregator": "avg",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ]
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 1,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "sunburst",
        "title": "",
        "legend": {
          "type": "automatic"
        },
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_consumers{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_node}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ]
      }
    },
    {
      "layout": {
        "x": 8,
        "y": 1,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "sunburst",
        "title": "",
        "legend": {
          "type": "automatic"
        },
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_messages_delivered.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_node}.as_rate()",
                "aggregator": "avg",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar"
          }
        ]
      }
    },
    {
      "layout": {
        "x": 10,
        "y": 1,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "note",
        "content": "&nbsp; [What are Streams?](https://www.rabbitmq.com/streams.html)\n\n&nbsp; [Streams Overview + slides](https://blog.rabbitmq.com/posts/2021/07/rabbitmq-streams-overview/)\n\n&nbsp; [First Application + video](https://blog.rabbitmq.com/posts/2021/07/rabbitmq-streams-first-application/)\n\n&nbsp; [Using Stream protocol + diagrams](https://blog.rabbitmq.com/posts/2021/07/connecting-to-streams/)",
        "tick_pos": "50%",
        "font_size": "14",
        "show_tick": false,
        "tick_edge": "left",
        "text_align": "left",
        "has_padding": true,
        "vertical_align": "top",
        "background_color": "white"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 3,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "note",
        "content": "**Stream publishers**\n\nPanel had no queries (timeseries).",
        "tick_pos": "50%",
        "font_size": "14",
        "show_tick": false,
        "tick_edge": "left",
        "text_align": "left",
        "has_padding": true,
        "vertical_align": "top",
        "background_color": "white"
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 3,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "note",
        "content": "**Stream consumers**\n\nPanel had no queries (timeseries).",
        "tick_pos": "50%",
        "font_size": "14",
        "show_tick": false,
        "tick_edge": "left",
        "text_align": "left",
        "has_padding": true,
        "vertical_align": "top",
        "background_color": "white"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 5,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "note",
        "content": "**Stream messages received / s**\n\nPanel had no queries (timeseries).",
        "tick_pos": "50%",
        "font_size": "14",
        "show_tick": false,
        "tick_edge": "left",
        "text_align": "left",
        "has_padding": true,
        "vertical_align": "top",
        "background_color": "white"
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 5,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "note",
        "content": "**Stream messages delivered / s**\n\nPanel had no queries (timeseries).",
        "tick_pos": "50%",
        "font_size": "14",
        "show_tick": false,
        "tick_edge": "left",
        "text_align": "left",
        "has_padding": true,
        "vertical_align": "top",
        "background_color": "white"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 7,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "note",
        "content": "**Stream messages confirmed to publishers / s**\n\nPanel had no queries (timeseries).",
        "tick_pos": "50%",
        "font_size": "14",
        "show_tick": false,
        "tick_edge": "left",
        "text_align": "left",
        "has_padding": true,
        "vertical_align": "top",
        "background_color": "white"
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 9,
        "width": 12,
        "height": 3
      },
      "definition": {
        "type": "timeseries",
        "title": "Errors since boot",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_global_stream_error_access_refused.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "sum:rabbitmq_global_stream_error_authentication_failure.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "sum:rabbitmq_global_stream_error_frame_too_large.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query4",
                "query": "sum:rabbitmq_global_stream_error_internal_error.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query5",
                "query": "sum:rabbitmq_global_stream_error_precondition_failed.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query6",
                "query": "sum:rabbitmq_global_stream_error_publisher_does_not_exist.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query7",
                "query": "sum:rabbitmq_global_stream_error_sasl_authentication_failure_loopback.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query8",
                "query": "sum:rabbitmq_global_stream_error_sasl_challenge.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query9",
                "query": "sum:rabbitmq_global_stream_error_sasl_error.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query10",
                "query": "sum:rabbitmq_global_stream_error_sasl_mechanism_not_supported.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query11",
                "query": "sum:rabbitmq_global_stream_error_stream_already_exists.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query12",
                "query": "sum:rabbitmq_global_stream_error_stream_does_not_exist.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query13",
                "query": "sum:rabbitmq_global_stream_error_stream_not_available.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query14",
                "query": "sum:rabbitmq_global_stream_error_subscription_id_already_exists.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query15",
                "query": "sum:rabbitmq_global_stream_error_subscription_id_does_not_exist.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query16",
                "query": "sum:rabbitmq_global_stream_error_unknown_frame.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              },
              {
                "name": "query17",
                "query": "sum:rabbitmq_global_stream_error_vhost_access_failure.count{$rabbitmq_cluster,$namespace,$endpoint,protocol:stream} by {rabbitmq_cluster}.as_count()",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "alias": "access_refused",
                "formula": "query1"
              },
              {
                "alias": "error_authentication_failure",
                "formula": "query2"
              },
              {
                "alias": "frame_too_large",
                "formula": "query3"
              },
              {
                "alias": "internal_error",
                "formula": "query4"
              },
              {
                "alias": "precondition_failed",
                "formula": "query5"
              },
              {
                "alias": "publisher_does_not_exist",
                "formula": "query6"
              },
              {
                "alias": "sasl_authentication_failure_loopback",
                "formula": "query7"
              },
              {
                "alias": "sasl_challenge",
                "formula": "query8"
              },
              {
                "alias": "sasl_error",
                "formula": "query9"
              },
              {
                "alias": "sasl_mechanism_not_supported",
                "formula": "query10"
              },
              {
                "alias": "stream_already_exists",
                "formula": "query11"
              },
              {
                "alias": "stream_does_not_exist",
                "formula": "query12"
              },
              {
                "alias": "stream_not_available",
                "formula": "query13"
              },
              {
                "alias": "subscription_id_already_exists",
                "formula": "query14"
              },
              {
                "alias": "subscription_id_does_not_exist",
                "formula": "query15"
              },
              {
                "alias": "error_unknown_frame",
                "formula": "query16"
              },
              {
                "alias": "vhost_access_failure",
                "formula": "query17"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    }
  ],
  "description": "Converted from Grafana dashboard https://grafana.com/grafana/dashboards/14798 (by RabbitMQ). Stream protocol message rates and errors",
  "layout_type": "ordered",
  "reflow_type": "fixed",
  "template_variables": [
    {
      "name": "namespace",
      "prefix": "namespace",
      "default": "*",
      "available_values": []
    },
    {
      "name": "endpoint",
      "prefix": "rabbitmq_endpoint",
      "default": "*",
      "available_values": []
    },
    {
      "name": "rabbitmq_cluster",
      "prefix": "rabbitmq_cluster",
      "default": "*",
      "available_values": []
    }
  ]
}