Commit Graph

121 Commits

Author SHA1 Message Date
Gerhard Lazu 62d82e1660
Break down metrics by node in all RabbitMQ-Stream pie charts
Otherwise we won't be able to see which nodes are running "hot"

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-08-11 13:39:30 +01:00
David Ansari 4b774db5c1 Use same threshold color for "Errors since boot" 2021-08-02 17:05:17 +02:00
David Ansari c99ee6961e Use same colorMode in all RabbitMQ-Stream panels
Co-authored-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-08-02 13:33:00 +02:00
David Ansari ea18c31288 Make RabbitMQ-Stream dashboard work via ConfigMap
Before this commit, importing the dashboard via ConfigMap as seen in
1eb1dc618e
didn't work because DS_PROMETHEUS variable was undefined in Grafana.

Related to https://github.com/rabbitmq/rabbitmq-server/pull/3250

Co-authored-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-08-02 13:12:48 +02:00
Gerhard Lazu 65afbb931b
Ensure RabbitMQ-Stream dashboard works correctly after import
This breaks the docker-compose integration, but we need to move away
from it anyways, the whole dev flow needs revisiting after our focus on
K8s.

$__rate_interval does not work with irate, dropping it in favour of 60s,
same as all other dashboards.

This is a follow-up to https://github.com/rabbitmq/rabbitmq-server/pull/3250

Thanks @ansd for mentioning about the post-import issues.

It was uploaded as https://grafana.com/api/dashboards/14798/revisions/3/download

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-07-30 13:53:02 +01:00
Gerhard Lazu 6f5c4118ea
Publish RabbitMQ-Stream dashboard to grafana.com
Removed the Dockerfile and slimmed down the Makefile, all of this is now
handled by https://github.com/rabbitmq/rabbitmq-server/blob/master/.github/workflows/oci.yaml
cc @Zerpet @pjk25

More details here (including the steps used to publish to grafana.com):
https://github.com/rabbitmq/release-engineering/issues/11#issuecomment-887627938

I don't want to hold up this PR, will invest in automating the
steps described in the previous link another time. Time to 🚀

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-07-29 19:34:05 +01:00
Gerhard Lazu 1e5708b0c5
Fix Grafana dashboards when importing from URL
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-03-22 19:27:13 +00:00
Gerhard Lazu c18ad7a5b6
Fix colors for node names that include digits in Grafana dashboards
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-03-08 13:19:14 +00:00
Gerhard Lazu 6adb2449b4
Add inet_tcp_metrics Grafana dashboard & cluster example
It uses the commercial edition of RabbitMQ, requires a valid Tanzu
Network account.  Learn more: https://rabbitmq.com/tanzu

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-02-05 12:50:32 +00:00
Gerhard Lazu 0ce95075ef
Bump all Grafana dashboards dep versions to latest
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-01-18 18:59:11 +00:00
David Ansari 377a933f4c
Filter Grafana dashboards by namespace (#2719)
So that clusters with the same rabbitmq_cluster name in different K8s namespaces don't clash

Namespace filter comes first, because the order of the layers is namespace -> cluster -> node

Tested with the latest 3.9.0 dev build

We had to account for plugin changes from .ez to directories & the management.load_definitions deprecation which would prevent a node from booting (fixed in 07a0dd7438). This commit didn't make it through the 3.9.x pipeline yet, so there is no 3.9.0 dev build with this fix yet. The simplest fix is to drop `management.` from the load_definitions config.

The next manual step is to generate all dashboards using e.g. `make RabbitMQ-Overview.json > ~/Downloads/RabbitMQ-Overview.json` and upload them to https://grafana.com/orgs/rabbitmq

Great contribution @ansd, thank you 👏🏻
2021-01-18 18:45:05 +00:00
Gerhard Lazu 4e31a176c9 Upgrade RabbitMQ Overview dashboard to Grafana 7
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-11-13 12:55:05 +00:00
Connor Rogers 5b9f77a5f2 Prevent non-zero publisher count when aggregating metrics
In the case where there are 0 channels (and as such 0 publishers), the
dashboard reports there are actually `n` publishers in an `n`-node
cluster. This changes the calculation of publishers to be number of
channels (which is always known) minus the number of consumers (which is
always known).
2020-11-12 15:26:39 +00:00
Gerhard Lazu b28f6e64ba Fix metric name & description in zdbbl graph, Erlang Distribution
open http://localhost:3000/dashboards # select Erlang-Distribution
    e > Metrics; General > Description # when on Data buffered in the distribution links queue
    Save Dashboard > Export > +Export for sharing externally > Save to file
    pwd
    /Users/gerhard/github.com/rabbitmq/3.9.x/deps/rabbitmq_prometheus
    vimdiff docker/grafana/dashboards/Erlang-Distribution.json ~/Downloads/Erlang-Distribution*.json

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-06-24 16:36:04 +01:00
Gerhard Lazu 850a30653d Use Grafana 6.7.2 schema defaults in Erlang-Distribution
This will make future diffs smaller

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
(cherry picked from commit e1a08d6ae752181177cbcc411219a8dd780359d2)
2020-04-27 15:22:01 +01:00
aakcht 729dd14f9b Color labelling grafana fix 2020-04-14 18:20:04 +04:00
Gerhard Lazu 1222018e50 Make Erlang-Memory-Allocators dashboard look better on light
Use the latest Grafana schema improvements to simplify the dahsboard
definition.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-24 13:21:46 +00:00
Gerhard Lazu 9c112b5718 Sum resident set size on Erlang-Memory-Allocators
Otherwise the singlestat panel will return a 'Only queries that return
single series/table is supported' error if the node changed some
properties, like the instance label because the IP changed.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-24 12:09:47 +00:00
Gerhard Lazu 19683fc2c9 Clean up NODES table on RabbitMQ-Overview
Hiding "all other" values stopped working since Grafana v6.6.1, need to
be explicit about which values should be hidden. Picked up a few other
changes from Grafana after Save JSON to file.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-11 13:26:20 +00:00
Gerhard Lazu e91e4ea32b Bump to latest RabbitMQ 3.9.0 dev build & Erlang/OTP v22.2.6
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-06 17:57:31 +00:00
Gerhard Lazu 89efb964d9 Convert raft_entry_commit_latency to seconds & be explicit about unit
This is a follow-up to https://github.com/rabbitmq/ra/pull/160

Had to introduce mf_convert/3 so that METRICS_REQUIRING_CONVERSIONS
proplist does not clash with METRICS_RAW proplists that have the same
number of elements. This is begging to be refactored, but I know that
@dcorbacho is working on https://github.com/rabbitmq/rabbitmq-prometheus/issues/26

Also modified the RabbitMQ-Quorum-Queues-Raft dashboard

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-01-07 16:20:59 +00:00
Gerhard Lazu a10c7ce6f1 Move the __inputs partial out of the Grafan dashboards dir
Grafan will keep failing with the following error message otherwise:

    failed to load dashboard from /dashboards/__inputs.json Dashboard title cannot be empty
2019-12-04 21:12:26 +00:00
Gerhard Lazu 400ebdf9f8 Publish Erlang-Distribution Grafana dashboard to grafana.com
https://grafana.com/grafana/dashboards/11352

[finishes #166355345]
2019-12-04 21:12:16 +00:00
Gerhard Lazu b51288cfc5 Drop Visualise in Erlang-Memory-Allocators dashboard description
[#169264435]
2019-12-04 12:15:35 +00:00
Gerhard Lazu ad450779ba Publish Erlang-Memory-Allocators Grafana dashboard to grafana.com
https://grafana.com/grafana/dashboards/11350

[finishes #169264435]
2019-12-04 12:11:41 +00:00
Gerhard Lazu 35525db9df Publish RabbitMQ-Quorum-Queues-Raft Grafana dashboard to grafana.com
https://grafana.com/grafana/dashboards/11340

[finishes #166926415]
2019-12-03 13:33:31 +00:00
Gerhard Lazu f752fa0640 Add make target for import-friendly rabbitmq-exporter_vs_rabbitmq-prometheus dashboard 2019-10-30 13:46:01 +00:00
Michal Kuratczyk 7b073f503d Make intervals consitent with other dashboards 2019-10-29 15:48:49 +01:00
Gerhard Lazu d43ff6356b Compare rabbitmq-exporter to rabbitmq-prometheus 2019-10-29 13:00:53 +00:00
Gerhard Lazu 83a52e3dc6 Finish Erlang-Memory-Allocators dashboard v1
[#169264435]
2019-10-28 15:09:09 +00:00
Gerhard Lazu 57c5f17fd9 Add Erlang-Memory-Allocators Grafana dashboard WIP
[#169264435]
2019-10-28 09:55:13 +00:00
Gerhard Lazu 5f99991063 Rename RabbitMQ-Raft to RabbitMQ-Quorum-Queues-Raft
It captures the Quorum-Queues Raft, so let's be specific, especially
since we know that there will be other Raft implementations in RabbitMQ,
not just Quorum Queues.

[#166926415]
2019-10-21 11:49:26 +01:00
Gerhard Lazu 73908bdf7a Display RabbitMQ & Erlang/OTP version on RabbitMQ-Overview dashboard
It is essential to know which RabbitMQ & Erlang/OTP version the cluster
is running, as well as how many nodes there are in the cluster. We now
have a table which lists this information, right under all singlestat
panels.

The singlestat panels have been re-organized to make room for 2 new
ones: Nodes & Publishers. Classic & Quorum Queues would be great to
have, as would VHosts. The last singlestats that I would add are Alarms
& Partitions. This would bring the total number of singlestat panels to
14 (we currently have 10). While 14 feel overwhelming, it captures all
the important information that I believe is worth knowing about any
RabbitMQ cluster.

All message-related sections now display 2 graph panels instead of 3.
While 3 panels look good on 27" screens, they don't work as well on 15"
screens, which is what the majority will be using. Also the 3rd panel
would always be for anti-pattern graphs (e.g. unroutable messages,
polling operations, etc.) and would be mostly empty in the majority of
cases. Fitting fewer panels per row not only helps focusing and
understanding what is being displayed, but it also makes it easier to
compare when viewing 2 panels side-by-side, on 27" screens. Nodes &
churn sections still have 3 panels, which works well when 1 panel is
more important than the others. The compromise that we need to make is
between giving enough horizontal space to equally important panels vs
making the dashboard page too long. RabbitMQ-Overview has always been a
comprehensive dashboard which captures a lot of imformation, it was
always tough balancing the important vs the complete.

[finishes #167836027]
2019-10-21 11:28:02 +01:00
Gerhard Lazu 9bdc2c61ea Do not limit max CPU utilisation to 100%
Multiple cores can go above this limit.

[#168734621]
2019-10-21 10:52:02 +01:00
Gerhard Lazu a0423f0aa5 Limit memory & disk units to 2 decimals on RabbitMQ Overview
9.313226 GiB is a lot harder to read than 9.31 GiB, and therefore less
useful. Observing other people use this made it obvious that limiting
the precision was the human-friendly thing to do.
2019-10-17 09:14:54 +01:00
Gerhard Lazu de8a51c6f3 Allow multi RabbitMQ cluster selection when comparing Erlang Distribution
Thanks @acogoluegnes!

[#168734621]
2019-10-14 16:34:53 +01:00
Gerhard Lazu 13d603c5f0 Add screenshots used for RabbitMQ-Overview on grafana.com
https://grafana.com/grafana/dashboards/10991

[finishes #165818656]
2019-10-14 13:58:21 +01:00
Gerhard Lazu 69679b9e67 Add descriptions to Grafana dashboards
This will be used in the Short Description when uploading to grafana.com

[#168734621]
2019-10-14 13:11:11 +01:00
Gerhard Lazu 37da59a715 Add screenshots used for Erlang-Distributions-Compare on grafana.com
https://grafana.com/grafana/dashboards/10988

[#168734621]
2019-10-14 12:14:48 +01:00
Gerhard Lazu e214677a2c Rename vm to host, fix CPU expressions
[#168734621]
2019-10-14 11:57:26 +01:00
Gerhard Lazu fbb075d83c Finish Erlang-Distributions-Compare GRafana dashboard
* explains source of metrics via row names
* makes tables slightly wider to mitigate long names line wrapping
* do not limit entries in tables, refresh resets table pagination

[finishes #168734621]
2019-10-14 10:27:55 +01:00
Gerhard Lazu 9fc0d79238 Make Erlang-Distribution-Compare dashboard 15"-friendly
The yardstick for all Grafana dashboards should be 1920 x 1200, the
screen format most common in our team. If the dashboards look good on
our screens, they will look good on other screens too. Smalle
resolutions won't look too crammed, and bigger resolutions can be split
in half (e.g. 27" iMacs).

Some take-aways from optimising the layout of this dashboard:

* limit horizontal graph panels to 3
* limit horizontal panels to 2 if the information is dense (e.g. table + graph)
* use the same width for graph panels that need comparing, stack vertically
2019-10-14 09:19:16 +01:00
Gerhard Lazu a356e2f630 Set all datasources to null, simplify dashboard tags
When exporting dashboards, all datasources are set to a dynamic
datasource, otherwise use the default local one (prometheus).
2019-10-14 09:18:43 +01:00
Gerhard Lazu 82c47bf352 Fix a couple more inconsistencies in Erlang-Distributions-Compare
[#168734621]
2019-10-04 22:23:43 +01:00
Gerhard Lazu 64d87d06fc Fix Erlang-Distributions-Compare network panels title 2019-10-04 22:11:12 +01:00
Gerhard Lazu e5fc8b18c8 Fix Erlang-Distributions-Compare title, reset time_options 2019-10-04 22:08:27 +01:00
Gerhard Lazu 13a2d411e2 Compare different Erlang Distributions
* tls, deflate, lz4, zstd, etc.

[#168734621]
2019-10-04 22:00:17 +01:00
Gerhard Lazu 71692f2dbf Remove shared __requires & update-dashboards make target
__requires differs across dashboards

update-dashboards is not as useful anymore, vimdiffing most of the time.
2019-10-04 21:54:14 +01:00
Gerhard Lazu 19cbbbf755 Update tags for all Grafana dashboards 2019-10-03 17:39:19 +01:00
Gerhard Lazu 722ce8bf86 Add RabbitMQ-Perftest Grafana dashboard & wire all PerfTest instances
[#168734745]
2019-10-03 17:39:09 +01:00