{
  "tags": [],
  "title": "RabbitMQ-Quorum-Queues-Raft",
  "widgets": [
    {
      "layout": {
        "x": 0,
        "y": 0,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Log entries committed / s",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": false
        },
        "markers": [
          {
            "value": "y = 0",
            "display_type": "info dashed"
          },
          {
            "value": "y = 80",
            "display_type": "error dashed"
          }
        ],
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_raft_log_commit_index{$rabbitmq_cluster,$namespace,$endpoint} by {rabbitmq_node}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "sum:rabbitmq_raft_commit_index{$rabbitmq_cluster,$namespace,$endpoint} by {rabbitmq_node}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "derivative(query1)"
              },
              {
                "formula": "derivative(query2)"
              }
            ],
            "display_type": "line",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 0,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "heatmap",
        "title": "Log entry commit latency",
        "requests": [
          {
            "style": {
              "palette": "dog_classic"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:rabbitmq_raft_commit_latency_seconds{$rabbitmq_cluster,$namespace,$endpoint}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "timeseries"
          }
        ],
        "show_legend": true
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 2,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Uncommitted log entries",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": false
        },
        "markers": [
          {
            "value": "y = 0",
            "display_type": "info dashed"
          },
          {
            "value": "y = 80",
            "display_type": "error dashed"
          }
        ],
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_raft_log_last_written_index{$rabbitmq_cluster,$namespace,$endpoint} by {rabbitmq_node}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "sum:rabbitmq_raft_log_commit_index{$rabbitmq_cluster,$namespace,$endpoint} by {rabbitmq_node}",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "sum:rabbitmq_raft_last_written_index{$rabbitmq_cluster,$namespace,$endpoint} by {rabbitmq_node}",
                "data_source": "metrics"
              },
              {
                "name": "query4",
                "query": "sum:rabbitmq_raft_commit_index{$rabbitmq_cluster,$namespace,$endpoint} by {rabbitmq_node}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1 - query2"
              },
              {
                "formula": "query3 - query4"
              }
            ],
            "display_type": "line",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 2,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Leader elections / s",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": false
        },
        "markers": [
          {
            "value": "y = 0",
            "display_type": "info dashed"
          },
          {
            "value": "y = 3",
            "display_type": "warning dashed"
          }
        ],
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_raft_term{$rabbitmq_cluster,$namespace,$endpoint} by {rabbitmq_node}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "derivative(query1)"
              }
            ],
            "display_type": "line",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 4,
        "width": 12,
        "height": 3
      },
      "definition": {
        "type": "timeseries",
        "title": "Raft members with >5k entries in the log",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": false
        },
        "markers": [
          {
            "value": "y = 0",
            "display_type": "info dashed"
          },
          {
            "value": "y = 5000",
            "display_type": "warning dashed"
          }
        ],
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:rabbitmq_raft_log_last_written_index{$rabbitmq_cluster,$namespace,$endpoint} by {queue,rabbitmq_node}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "sum:rabbitmq_raft_log_snapshot_index{$rabbitmq_cluster,$namespace,$endpoint} by {queue,rabbitmq_node}",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "sum:rabbitmq_raft_last_written_index{$rabbitmq_cluster,$namespace,$endpoint} by {queue,rabbitmq_node}",
                "data_source": "metrics"
              },
              {
                "name": "query4",
                "query": "sum:rabbitmq_raft_snapshot_index{$rabbitmq_cluster,$namespace,$endpoint} by {queue,rabbitmq_node}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1 - query2"
              },
              {
                "formula": "query3 - query4"
              }
            ],
            "display_type": "line",
            "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/11340 (by RabbitMQ). Raft state for all Quorum Queues running in a RabbitMQ cluster",
  "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": []
    }
  ]
}