Commit Graph

521 Commits

Author SHA1 Message Date
Philip Kuryloski a3dbdecb8c Mark //deps/rabbitmq_prometheus:rabbit_prometheus_http_SUITE flaky 2021-05-21 18:32:20 +02:00
Philip Kuryloski 98e71c45d8 Perform xref checks on many tier-1 plugins 2021-05-21 12:03:22 +02:00
Philip Kuryloski e6df6615e1 Futher bazel file refactoring and deduplication 2021-05-11 16:15:33 +02:00
Philip Kuryloski b39cd342f2 buildifier formatting 2021-05-05 14:20:38 +02:00
Philip Kuryloski d61aa69039 Add rabbitmq_prometheus to bazel 2021-05-05 11:43:03 +02: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
Philip Kuryloski a63f169fcb Remove duplicate rabbitmq-components.mk and erlang.mk files
Also adjust the references in rabbitmq-components.mk to account for
post monorepo locations
2021-03-22 15:40:19 +01:00
kjnilsson 52f745dcde Update rabbitmq-components.mk
use v1.x branch of ra
2021-03-18 15:14:40 +00:00
Loïc Hoguin d5e3bdd623
Add ADDITIONAL_PLUGINS variable
This allows including additional applications or third party
plugins when creating a release, running the broker locally,
or just building from the top-level Makefile.

To include Looking Glass in a release, for example:

$ make package-generic-unix ADDITIONAL_PLUGINS="looking_glass"

A Docker image can then be built using this release and will
contain Looking Glass:

$ make docker-image

Beware macOS users! Applications such as Looking Glass include
NIFs. NIFs must be compiled in the right environment. If you
are building a Docker image then make sure to build the NIF
on Linux! In the two steps above, this corresponds to Step 1.

To run the broker with Looking Glass available:

$ make run-broker ADDITIONAL_PLUGINS="looking_glass"

This commit also moves Looking Glass dependency information
into rabbitmq-components.mk so it is available at all times.
2021-03-12 12:29:28 +01:00
Jean-Sébastien Pédron cdcf602749
Switch from Lager to the new Erlang Logger API for logging
The configuration remains the same for the end-user. The only exception
is the log root directory: it is now set through the `log_root`
application env. variable in `rabbit`. People using the Cuttlefish-based
configuration file are not affected by this exception.

The main change is how the logging facility is configured. It now
happens in `rabbit_prelaunch_logging`. The `rabbit_lager` module is
removed.

The supported outputs remain the same: the console, text files, the
`amq.rabbitmq.log` exchange and syslog.

The message text format slightly changed: the timestamp is more precise
(now to the microsecond) and the level can be abbreviated to always be
4-character long to align all messages and improve readability. Here is
an example:

    2021-03-03 10:22:30.377392+01:00 [dbug] <0.229.0> == Prelaunch DONE ==
    2021-03-03 10:22:30.377860+01:00 [info] <0.229.0>
    2021-03-03 10:22:30.377860+01:00 [info] <0.229.0>  Starting RabbitMQ 3.8.10+115.g071f3fb on Erlang 23.2.5
    2021-03-03 10:22:30.377860+01:00 [info] <0.229.0>  Licensed under the MPL 2.0. Website: https://rabbitmq.com

The example above also shows that multiline messages are supported and
each line is prepended with the same prefix (the timestamp, the level
and the Erlang process PID).

JSON is also supported as a message format and now for any outputs.
Indeed, it is possible to use it with e.g. syslog or the exchange. Here
is an example of a JSON-formatted message sent to syslog:

    Mar  3 11:23:06 localhost rabbitmq-server[27908] <0.229.0> - {"time":"2021-03-03T11:23:06.998466+01:00","level":"notice","msg":"Logging: configured log handlers are now ACTIVE","meta":{"domain":"rabbitmq.prelaunch","file":"src/rabbit_prelaunch_logging.erl","gl":"<0.228.0>","line":311,"mfa":["rabbit_prelaunch_logging","configure_logger",1],"pid":"<0.229.0>"}}

For quick testing, the values accepted by the `$RABBITMQ_LOGS`
environment variables were extended:
  * `-` still means stdout
  * `-stderr` means stderr
  * `syslog:` means syslog on localhost
  * `exchange:` means logging to `amq.rabbitmq.log`

`$RABBITMQ_LOG` was also extended. It now accepts a `+json` modifier (in
addition to the existing `+color` one). With that modifier, messages are
formatted as JSON intead of plain text.

The `rabbitmqctl rotate_logs` command is deprecated. The reason is
Logger does not expose a function to force log rotation. However, it
will detect when a file was rotated by an external tool.

From a developer point of view, the old `rabbit_log*` API remains
supported, though it is now deprecated. It is implemented as regular
modules: there is no `parse_transform` involved anymore.

In the code, it is recommended to use the new Logger macros. For
instance, `?LOG_INFO(Format, Args)`. If possible, messages should be
augmented with some metadata. For instance (note the map after the
message):

    ?LOG_NOTICE("Logging: switching to configured handler(s); following "
                "messages may not be visible in this log output",
                #{domain => ?RMQLOG_DOMAIN_PRELAUNCH}),

Domains in Erlang Logger parlance are the way to categorize messages.
Some predefined domains, matching previous categories, are currently
defined in `rabbit_common/include/logging.hrl` or headers in the
relevant plugins for plugin-specific categories.

At this point, very few messages have been converted from the old
`rabbit_log*` API to the new macros. It can be done gradually when
working on a particular module or logging.

The Erlang builtin console/file handler, `logger_std_h`, has been forked
because it lacks date-based file rotation. The configuration of
date-based rotation is identical to Lager. Once the dust has settled for
this feature, the goal is to submit it upstream for inclusion in Erlang.
The forked module is calld `rabbit_logger_std_h` and is based
`logger_std_h` in Erlang 23.0.
2021-03-11 15:17:36 +01:00
Michael Klishin f6e8320fc9
Merge branch 'otp-24-ranch' 2021-03-10 07:37:51 +03:00
dcorbacho 61f7b2a723 Update to ranch 2.0 2021-03-08 23:11:05 +01: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
Michael Klishin b6c4831e75
Bump Lager to 3.9.1 2021-03-04 04:36:39 +03:00
Loïc Hoguin 66ac1bf5e9
Bump observer_cli to 1.6.1
More responsive when the system is overloaded with file calls.
2021-03-01 21:55:27 +03:00
Michael Klishin 8fe3df9343
Upgrade Lager to 3.9.0 for OTP 24 compatibility
`lager_util:expand_path/1` use changes are
due to erlang-lager/lager#540
2021-02-26 00:52:15 +03:00
Michael Klishin 17b082abeb
Merge pull request #2843 from rabbitmq/consumer-capacity
Rename consumer_utilisation to consumer_capacity
2021-02-25 16:17:09 +03:00
Michael Klishin 7ea841f5e9
Consumer utilization => consumer capacity in Prometheus metrics
the original metric is kept around for backwards compatibility.
2021-02-24 22:10:52 +03:00
Michael Klishin f73e851f9c
Bump observer_cli to 1.6.0 2021-02-24 12:53:55 +03:00
Michael Klishin a5098b28a7
Bump Lager to 3.8.2 for OTP 24 compatibility 2021-02-24 12:53:30 +03: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
Arnaud Cogoluègnes b921ac11a8
Merge pull request #2712 from rabbitmq/rabbitmq-stream-prometheus
Add stream prometheus plugin
2021-01-27 16:46:37 +01:00
Gerhard Lazu f3f3e8aae9
Always show aggregated auth_attempts, add detailed when per object enabled
The metrics have different names now, so we can't end up with duplicate TYPEs.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-01-22 16:38:44 +00:00
Gerhard Lazu 5a6e3f235b
Single auth_attempts declarations when per-object metrics enabled
Closes #2740

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2021-01-22 11:36:42 +00:00
Michael Klishin 52479099ec
Bump (c) year 2021-01-22 09:00:14 +03:00
Michael Klishin 24cab9881a
Prometheus metric collector: correct wording in labels 2021-01-20 20:53:46 +03: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
Arnaud Cogoluègnes bf72683eb2
Add stream prometheus plugin 2021-01-11 16:49:56 +01:00
Arnaud Cogoluègnes 224e9914b2
Merge branch 'master' into rabbitmq-stream-management 2020-12-04 10:26:42 +01:00
Mirah Gary b403fe9b73
Remove unused code line. 2020-11-26 10:45:53 +01:00
Mirah Gary fe9881687c
Change per-object endpoint to `/metrics/per-object`.
This conforms with other http endpoints.
2020-11-26 10:35:26 +01:00
Michal Kuratczyk 37486d45a4
Document `/metrics/per_object` endpoint.
[#175264017]

Signed-off-by: Mirah Gary <mgary@pivotal.io>
2020-11-25 12:14:14 +01:00
dcorbacho 32e9314fb7 Deleted unnecessary pattern
:registry matches any registry, it's only a variable
2020-11-25 10:59:06 +00:00
Michal Kuratczyk 8b8a66cf0b Add /metrics/per_object endpoint
Regardless of the value of `return_per_object_metrics`, this endpoint
always returns per-object metrics. This allows scraping both endpoints
at different intervals or scraping per-object metrics only during
debugging.

Co-authored-by: Mirah Gary <mgary@vmware.com>
2020-11-19 18:00:42 +01:00
Arnaud Cogoluègnes 23d7e8114c
Introduce stream management plugin 2020-11-19 14:48:25 +01:00
Jean-Sébastien Pédron 47686ee1f0
Remove unused .github directories
They were valid until the switch to the "monorepository" when everything
was merged into a single Git repository.
2020-11-17 13:33:16 +01: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
Gerhard Lazu 530de03e38 Merge pull request #61 from rabbitmq/grafana-publisher-fix
Prevent non-zero publisher count in Grafana when aggregating metrics
2020-11-13 12:45:33 +00:00
Gerhard Lazu 3f6f54eb02 Bump Grafana, Prometheus & Node Exporter to latest
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-11-13 12:15:06 +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
Arnaud Cogoluègnes 2d769fa86b Update rabbitmq-components.mk 2020-11-03 14:27:46 +01:00
Michael Klishin 3cc9bf7cfd Update rabbitmq-components.mk 2020-10-21 12:55:42 +03:00
dcorbacho 4874e52d19 Use auth attempt detailed metrics only when reporting per object 2020-09-23 13:06:56 +01:00
dcorbacho 3ff27c4815 Add auth attempt metrics 2020-08-28 15:45:47 +01:00
Luke Bakken f056a48d92 Update rabbitmq-components.mk 2020-08-04 08:41:49 -07:00
Jean-Sébastien Pédron 41078dae30 Update rabbitmq-components.mk 2020-07-30 12:06:56 +02:00
Luke Bakken 9fdf0b25da Update rabbitmq-components.mk 2020-07-29 10:02:05 -07:00
dcorbacho 5eedc2cf14 Update erlang.mk 2020-07-21 14:33:17 +01:00
Michael Klishin 25a2a3cabc Update rabbitmq-components.mk 2020-07-21 13:12:52 +03:00
Michael Klishin 535ddc9388 Update rabbitmq-components.mk 2020-07-21 03:45:11 +03:00
dcorbacho 7e9ecfab5f Revert drop of Exhibit B on MPL 2.0 2020-07-20 17:02:50 +01:00
dcorbacho 3355a68e4c Update LICENSE 2020-07-20 12:00:41 +01:00
Gerhard Lazu 8f7953438e Fix Erlang cookie when running with Docker Compose on Windows
Context:
9452cf179b (commitcomment-40660523)

Thanks @wainwrightmark!

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-07-17 10:28:14 +01:00
Michael Klishin 898a46d7bc Switch to MPL2 2020-07-14 16:42:52 +03:00
Gerhard Lazu 9452cf179b Mount .erlang.cookie file
Context: we want to move away from environment variables and use either
config files or env files (such as the rabbitmq-env.conf).

Since .erlang.cookie is neither, the official RabbitMQ Docker image
handles this by writing the value from the RABBITMQ_ERLANG_COOKIE env
var into the file if it does not exist. The problem is that if this file
exists, and the value is different from the RABBITMQ_ERLANG_COOKIE env
var, CLI tools will not be able to communicate with the rabbit node, as
described here: https://github.com/rabbitmq/rabbitmq-cli/issues/443

The only gotcha is that this file must be owned by the user, and
privileges should not be too open (git should have captured this). If
not, RabbitMQ will fail to boot. This is somewhat similar to how OpenSSH
reacts when private key permissions are too open.

re https://github.com/docker-library/rabbitmq/pull/422#issuecomment-650074731

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-07-01 17:07:16 +01:00
Luke Bakken 2b66cd1228 Add GitHub templates 2020-06-30 08:37:24 -07:00
Gerhard Lazu c0f28afab1 Add erlang_vm_dist_node_queue_size_bytes to metrics.md
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-06-24 16:36:04 +01: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 e18c8b5e9f Fix specific_erlang_metrics_present_test
pwd
    /Users/gerhard/github.com/rabbitmq/3.9.x/deps/rabbitmq_prometheus
    rm -fr ../prometheus.erl
    make tests

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-06-24 16:34:53 +01:00
Gerhard Lazu cab99c29f0 Add failing test for erlang_vm_dist_node_queue_size_bytes
Have to force prometheus.erl to a version that does not have this
feature, otherwise the test would succeed.

    pwd
    /Users/gerhard/github.com/rabbitmq/3.9.x/deps/rabbitmq_prometheus
    rm -fr ../prometheus.erl
    make tests
    open logs/index.html

Pull request content:

  Expose & visualise distribution buffer busy limit - zdbbl

  > This will be closed after TGIR S01E04 gets recorded.
  > The goal is to demonstrate how to do this, and then let an external contributor have a go.

  Before this patch, the **Data buffered in the distribution links queue** graph was empty.

  This is what that graph looks like after this gets applied:

  ![image](https://user-images.githubusercontent.com/3342/80223464-3bf28580-8640-11ea-8851-8f33f1c4fd4f.png)

  ## References

  - [RabbitMQ Runtime Tuning - Inter-node Communication Buffer Size](https://www.rabbitmq.com/runtime.html#distribution-buffer)
  - [erl +zdbbl](https://erlang.org/doc/man/erl.html#+zdbbl)

  Fixes #39

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-06-24 16:34:48 +01:00
Jean-Sébastien Pédron 46d37b081d Update erlang.mk 2020-06-23 17:14:52 +02:00
Gerhard Lazu a6f6244c85 Build Docker image from latest 3.9 dev release + this PR
Update OTP to latest stable, 23.0.2

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-06-18 11:52:16 +01:00
Gerhard Lazu db2f70753e Add tests for product name & version
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-06-18 11:51:47 +01:00
Jean-Sébastien Pédron 618a235bfd prometheus_rabbitmq_core_metrics_collector: Expose product info
They are the product name & version. They are added at the beginning of
`rabbitmq_build_info` if they are set. If they are not, the content of
`rabbitmq_build_info` is the same as before.
2020-06-17 15:24:13 +02:00
Michael Klishin 8a278bca30 Update rabbitmq-components.mk 2020-06-10 19:51:20 +03:00
Michael Klishin 1d3c78d389 Update README.md 2020-06-03 03:32:59 +03: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
Gerhard Lazu d0bdccc130 Improve make targets & aliases
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
(cherry picked from commit b57c01265ec2b6b27c9cf43785d7101b1ec76648)
2020-04-27 15:21:50 +01:00
Gerhard Lazu dff69adad6 Add GitHub code owners
https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-04-27 14:28:20 +01:00
Gerhard Lazu 246d7b6f35 Add build & Grafana dashboard badges
Hard-coding number of dashboards, because there is no API for
https://grafana.com/orgs/rabbitmq/dashboards, and setting up our own
JSON endpoint to return this information would be overkill.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-04-25 00:51:50 +01:00
Gerhard Lazu cba6aa06f4 Fix test that was made to fail on purpose
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-04-25 00:14:05 +01:00
Gerhard Lazu 9cc33c571d Print the response body by default
Makes is easier to spot why a match failed.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-04-25 00:06:32 +01:00
Gerhard Lazu aa199bc5fe Run tests on GitHub Actions on every push
Supporting n-1 Erlang/OTP versions: v21 & v22 and taking into account
RabbitMQ's Erlang Version Requirements:
https://www.rabbitmq.com/which-erlang.html

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-04-24 23:42:09 +01:00
Gerhard Lazu eca19f7dd9 Bump versions across a number of deps
- RabbitMQ latest 3.9 dev build
- OpenSSL - https://github.com/docker-library/rabbitmq/pull/403
- OTP, PerfTest, Prometheus & Grafana latest GA

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
(cherry picked from commit b25b4e897337d97edbf6a826b0f12d20ea7cf914)
2020-04-22 18:12:21 +01:00
Gerhard Lazu 56468b27e8 Merge pull request #34 from Aakcht/grafana_change_color_labelling
change regex for node/color labelling scheme in grafana dashboards
2020-04-22 18:01:01 +01:00
Michael Klishin 1f7beddf22 Simplify 2020-04-19 02:51:37 +03:00
Michael Klishin 7dae6ce57a Explain that the endpoint is at /metrics
References rabbitmq/discussions#96
2020-04-19 02:50:32 +03:00
Luke Bakken 658dd34e91 Handle the combination of TLS options and cowboy_opts 2020-04-15 15:38:24 +00:00
Luke Bakken 8efd9a1d63 Return TLS listener correctly
`ssl_opts` must be used so that TLS options are recognized.

Fixes #800

Also ensure TLS port is set.
2020-04-15 00:15:25 +00:00
aakcht 729dd14f9b Color labelling grafana fix 2020-04-14 18:20:04 +04:00
Jean-Sébastien Pédron 636c3f78dc Update copyright (year 2020) 2020-03-10 16:42:08 +01:00
Gerhard Lazu 88231d0922 Update rabbitmq-components.mk 2020-03-06 09:19:19 +00:00
Gerhard Lazu 5a15d0b5a5 Update erlang.mk 2020-03-06 09:18:12 +00: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 8d40bf85a2 Bump Prometheus & Grafana to latest stable
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-24 12:45:13 +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 d64361658a Bump to latest unverified generic-unix 3.9 dev build
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-12 19:00:00 +00:00
Gerhard Lazu 3118473b78 Use unverified generic-unix build for the Docker image
Given that we test Linux distributions and upgrades after this artefact
is produced, it's quicker to get the latest RabbitMQ generic-unix dev
build into a Docker image without waiting on tests that are less
relevant & useful for the audience of this image.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-12 18:59:52 +00:00
Gerhard Lazu 8fb98a265f Update rabbitmq-components.mk 2020-02-11 15:31:47 +00:00
Gerhard Lazu 92ef32d022 Build image with latest RabbitMQ 3.9.0 dev + local
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-11 13:29:29 +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 dec54306c9 Use publisher confirms for Quorum Queue workload
It activates and extra graph on the RabbitMQ-Overview dashboard and
let's be honest - why use Quorum Queues if the workload didn't care
whether the broker received the message? They go together, seriously!

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-11 13:23:26 +00:00
Gerhard Lazu e7c997744d Improve config for returning metrics per object
Since metrics are now aggregated by default, it made more sense to use
the inverse meaning of disabling aggregation, and call it a positive and
explicit action: return_per_object_metrics.

Naming pair: @michaelklishin

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-11 13:08:00 +00:00
Gerhard Lazu 4622974d1b Bump Grafana & Prometheus to latest
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-10 17:50:13 +00:00
Gerhard Lazu c079459e9c Bump Docker image to latest RabbitMQ 3.9 dev
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-10 17:49:06 +00:00
dcorbacho 253ef8e827 Fix 0/0 and enable all tests 2020-02-07 17:08:10 +01:00
Gerhard Lazu 09b29057af Aggregate metrics by default
Having talked to @michaelklishin we've decided to enable metrics
aggregation by default so that RabbitMQ nodes with many objects serve
the same amount of metrics quickly rather than taking many seconds and
transferring many MBs of data on every scrape.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-07 15:19:30 +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 11d676f3e1 Replace histogram type with gauge for raft_entry_commit_latency_seconds
We want to keep the same metric type regardless whether we aggregate or
don't. If we had used a histogram type, considering the ~12 buckets that
we added, it would have meant 12 extra metrics per queue which would
have resulted in an explosion of metrics. Keeping the gauge type and
aggregating latencies across all members.

re https://github.com/rabbitmq/rabbitmq-prometheus/pull/28

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-06 17:37:37 +00:00
Gerhard Lazu 8aa8d8aa3d Remove K8S config related to rabbitmq/rabbitmq-prometheus#24
Planning on redoing it differently

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-02-05 13:42:58 +00:00
Gerhard Lazu 8088a50e13 Merge pull request #28 from rabbitmq/metrics-aggregation
Option to aggregate channel, queue and connection metrics
2020-02-04 12:43:49 +00:00
Gerhard Lazu 851a2b974f Partially replicate the deployment mentioned in #24
https://github.com/rabbitmq/rabbitmq-prometheus/issues/24#issue-543780125

Before we can test the effectiveness of the fix in
https://github.com/rabbitmq/rabbitmq-prometheus/issues/26 against an
environment replica that this was initially reported in, we are missing
the load app deployment that would generate all the connections and queues.

It would be helpful to know whether
https://github.com/coreos/kube-prometheus was used for the
Prometheus & Grafana deployment.

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-01-17 16:04:14 +00:00
Gerhard Lazu f632014e2c Bump RabbitMQ to latest dev & OTP to latest stable
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-01-15 19:02:33 +00:00
Gerhard Lazu e819b6c211 Make rabbitmq_prometheus compile
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-01-15 17:58:26 +00:00
Gerhard Lazu 29c5d2e241 Fix QQ PerfTest instance name in Prometheus config
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-01-15 12:58:54 +00:00
dcorbacho 06186065b4 Option to aggregate channel, queue and connection metrics
`prometheus.enable_metric_aggregation = true`

rabbitmq-prometheus#26
2020-01-10 16:35:50 +01:00
Gerhard Lazu 36e7466893 Use $(JQ) instead of jq to reference the cli
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-01-07 16:21:25 +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 5602a9eb4c Update Docker image to latest dev
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2020-01-07 16:11:57 +00:00
Michael Klishin f654ab6495 (c) bump 2019-12-29 05:50:34 +03:00
Gerhard Lazu 1e96189826 Bump grafana version to latest stable since flant-statusmap-panel v0.2.0
Thanks @diafour & @briangann for grafana/grafana-plugin-repository#531 👍

Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2019-12-20 10:09:04 +00:00
Gerhard Lazu 0af70418b9 Bump OTP to latest stable & RabbitMQ to latest dev in Dockerfile
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
2019-12-20 10:07:58 +00:00
Jean-Sébastien Pédron 79923f6b00 Git: Ignore copied CLI 2019-12-12 15:03:37 +01:00
Jean-Sébastien Pédron 02e319a97e Update rabbitmq-components.mk 2019-12-12 13:14:57 +01: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 076c65becb Version control descriptions for all our grafana.com dashboards 2019-12-03 13:34:43 +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 4df7e701ee Decrease load on qq deployment
It still puts a significant load on the host, but any lower and we won't
see any change in the Uncommited log entries graph, and too little
variation in the Log entry commit latency.
2019-12-03 11:28:01 +00:00
Gerhard Lazu b8893afcde Add auto-generated test rabbitmq_management.schema 2019-12-03 11:27:26 +00:00
Gerhard Lazu 79284d0b02 Bump RabbitMQ to latest alpha 2019-12-03 11:26:40 +00:00
Gerhard Lazu d6f7c8b884 Update Prometheus & Grafana to latest stable
Well, almost. flat-statusmap-panel v0.1.1 breaks on Grafana v6.5.0.
Since it's already been mentioned in
https://github.com/flant/grafana-statusmap/issues/76 for a different
reason, let's wait until it this is addressed.
2019-11-26 21:44:55 +00:00
Gerhard Lazu 1723ac4357 Bump RabbitMQ to latest dev version + master
Makes it easy to test
https://github.com/rabbitmq/rabbitmq-prometheus/issues/19
2019-11-26 21:44:10 +00:00
Gerhard Lazu d827e90a1c Use pgpkeys.uk instead of pgpkeys.eu
It's currently the more stable key server
2019-11-26 21:43:30 +00:00
Gerhard Lazu cb8232f7cd If one of the OpenSSL GPG keys does not load, do not fail
Most keys load fine, but if one doesn't, everything fails. The package
will still verify OK even if we have just a subset of keys installed, be
more permissive...
2019-11-26 21:41:57 +00:00
Gerhard Lazu f11953822f Update OTP to v22.1.8 2019-11-26 21:41:47 +00:00
Gerhard Lazu c623a7b8ab Update OpenSSL to latest 1.1.1 release 2019-11-26 21:41:23 +00:00
Gerhard Lazu d37e722d33 Use a more compact h target view
Now:

    autocomplete              ac  | Configure shell for autocompletion - eval "$(gmake autocomplete)"
    clean-docker              cd  | Clean all Docker containers & volumes
    cto                       cto | Interact with all containers via a top-like utility
    dist-tls                  dt  | Make Erlang-Distribution panels come alive - HIGH LOAD
    docker-image              di  | Build & push Docker image to Docker Hub
    docker-image-build        dib | Build Docker image locally - make tests
    docker-image-bump         diu | Bump Docker image version across all docker-compose-* files
    docker-image-push         dip | Push local Docker image to Docker Hub
    docker-image-run          dir | Run container with local Docker image
    dockerhub-login           dl  | Login to Docker Hub as pivotalrabbitmq
    down                      d   | Stop all containers
    find-latest-otp           flo | Find latest OTP version archive + sha1
    metrics                   m   | Run all metrics containers
    overview                  o   | Make RabbitMQ Overview panels come alive
    preview-readme            pre | Preview README & live reload on edit
    qq                            | Make RabbitMQ-Quorum-Queues-Raft panels come alive - HIGH LOAD

Before:

    -------------------------------------------------------------------------------------------------
    autocomplete              ac  | Configure shell for autocompletion - eval "$(gmake autocomplete)"
    -------------------------------------------------------------------------------------------------
    clean-docker              cd  | Clean all Docker containers & volumes
    -------------------------------------------------------------------------------------------------
    cto                       cto | Interact with all containers via a top-like utility
    -------------------------------------------------------------------------------------------------
    dockerhub-login           dl  | Login to Docker Hub as pivotalrabbitmq
    -------------------------------------------------------------------------------------------------
    docker-image              di  | Build & push Docker image to Docker Hub
    -------------------------------------------------------------------------------------------------
    docker-image-build        dib | Build Docker image locally - make tests
    -------------------------------------------------------------------------------------------------
    docker-image-bump         diu | Bump Docker image version across all docker-compose-* files
    -------------------------------------------------------------------------------------------------
    docker-image-push         dip | Push local Docker image to Docker Hub
    -------------------------------------------------------------------------------------------------
    docker-image-run          dir | Run container with local Docker image
    -------------------------------------------------------------------------------------------------
    down                      d   | Stop all containers
    -------------------------------------------------------------------------------------------------
    find-latest-otp           flo | Find latest OTP version archive + sha1
    -------------------------------------------------------------------------------------------------
    metrics                   m   | Run all metrics containers
    -------------------------------------------------------------------------------------------------
    overview                  o   | Make RabbitMQ Overview panels come alive
    -------------------------------------------------------------------------------------------------
    dist-tls                  dt  | Make Erlang-Distribution panels come alive - HIGH LOAD
    -------------------------------------------------------------------------------------------------
    qq                            | Make RabbitMQ-Quorum-Queues-Raft panels come alive - HIGH LOAD
    -------------------------------------------------------------------------------------------------
2019-11-26 15:52:17 +00:00
Gerhard Lazu 0efb206656 Update metrics doc with new queue metrics, improve formatting
Tabularize FTW:
http://vimcasts.org/episodes/aligning-text-with-tabular-vim/

Add new preview-readme make target (pre alias) for quickly previewing
md changes locally, using GitHub Markdown styling.
2019-11-26 15:50:24 +00:00
Gerhard Lazu d9fd9c7eb8 Merge pull request #20 from rabbitmq/fix-queue-metrics-refs
Fix queue_metrics references - thanks @michaelklishin !
2019-11-26 15:24:48 +00:00
Michael Klishin 3aed601336 A typo 2019-11-26 12:25:08 +03:00
Michael Klishin 6e17eeb3c5 Update this test to use a consumer in a separate process 2019-11-26 12:23:40 +03:00
Gerhard Lazu f550aa0706 Fix queue_metrics references
Some properties had queue_ appended, while others used messages_ instead
of message_. This meant that metrics such as rabbitmq_queue_consumers
were not reported correctly, as captured in https://github.com/rabbitmq/rabbitmq-prometheus/issues/9#issuecomment-558233464

The test needs fixing before this can be merged, it's currently failing with:

    $ make ct-rabbit_prometheus_http t=with_metrics:metrics_test
    == rabbit_prometheus_http_SUITE ==

      * [with_metrics]

    rabbit_prometheus_http_SUITE > with_metrics
        {error,
            {shutdown,
                {gen_server,call,
                    [<0.245.0>,
                     {call,
                         {'basic.cancel',<<"amq.ctag-uHUunE5EoozMKYG8Bf6s1Q">>,
                             false},
                         none,<0.252.0>},
                     infinity]}}}

Closes #19
2019-11-26 07:47:22 +00:00
Marcial Rosales 122a9fdb67 Document all metrics exposed via the prometheus endpoint 2019-11-15 17:21:59 +01:00
Michael Klishin d14b154df7 Ignore test/config_schema_SUITE_data/schema/
(cherry picked from commit 8791bff7d7f36a03cfa04e2c40764dee121db5fd)
2019-11-11 17:53:53 +03:00
Michael Klishin f7f6b1e0a5 Update README.md 2019-11-11 15:30:29 +03:00
Gerhard Lazu f752fa0640 Add make target for import-friendly rabbitmq-exporter_vs_rabbitmq-prometheus dashboard 2019-10-30 13:46:01 +00:00
Gerhard Lazu 098387db8b Bump to latest RabbitMQ 3.9.x alpha, OTP & PerfTest stable 2019-10-30 13:36:48 +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 1d64fe9f67 Add RabbitMQ-Overview screenshots published to grafana.com
[#167836027]
2019-10-21 15:30:36 +01:00
Gerhard Lazu 33f03d9aa1 Bump Erlang/OTP & RabbitMQ versions to latest 2019-10-21 13:30:04 +01:00
Gerhard Lazu 98e0932d25 Bump Prometheus & Grafana versions to latest stable 2019-10-21 11:50:44 +01: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
Michael Klishin 789c07fd4e Accept content type parameters such as text/plain;version=0.0.4
Closes #12.

References influxdata/telegraf#6523.
2019-10-16 02:56:21 +03: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 59f7663486 Add screenshots that have been used for RabbitMQ-PerfTest
Available here: https://grafana.com/grafana/dashboards/6566
2019-10-04 21:57:02 +01:00
Gerhard Lazu 6f34ebdb1c Add hidden file to quickly activate shell autocompletion
`. .a<TAB>` and you are in business!
2019-10-04 21:56:22 +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
Gerhard Lazu 402aa4722f Extract __requires from Grafana dashboards, template all datasources 2019-10-03 17:32:40 +01:00
Gerhard Lazu 59ef1f1fa2 Update OTP, RabbitMQ & PerfTest images to latest versions
Once 3.8.0 got released, master became 3.9.x, so we are now tracking
RabbitMQ 3.9 dev builds.
2019-10-02 13:11:21 +01:00
Gerhard Lazu bf4303a652 Add make targets for import-friendly Grafana dashboards
To get an import-friendly RabbitMQ Overview dashboard, run the following
command:

    make RabbitMQ-Overview.json

On macOS, to send this output to clipboard:

    make RabbitMQ-Overview.json | pbcopy

This is the preferred alternative to
9aa22e1895
See
dae49b5c08
for more context. cc @mkuratczyk

This commit introduces a few other somewhat related changes:

* BASH autocompletion for make targets - make ac
* descriptions for all custom targets - make h
* continuous feedback loops for ac & h targets - make CFac

I would really like to see some of the above features be part of
erlang.mk. What do you think @essen? Anything in particular that you
would like me to PR?

@dumbbell, my other Make partner-in-crime, may be interested in
discussing the above ; )

== LINKS

* https://medium.com/@lavieenroux20/how-to-win-friends-influence-people-and-autocomplete-makefile-targets-e6cd228d856d
* https://github.com/Bash-it/bash-it/blob/master/completion/available/makefile.completion.bash
2019-10-02 13:07:17 +01:00
Gerhard Lazu dae49b5c08 Extract __inputs from Grafana dashboards
While __inputs are required for the dashboards to work in environments
where Prometheus is not the default datasource, it breaks the local
development flow. In other words,
9aa22e1895
prevents `make metrics overview` from working as designed.

We are going to add shortly a simple way of converting the local
dashboards into a format that can be imported in Grafana and will work
when Prometheus is not the default datasource (e.g. when using
https://github.com/coreos/kube-prometheus)

Long-term, these dashboards will be available via grafana.com, which is
the preferred way of consuming them.

cc @mkuratczyk
2019-10-02 12:51:33 +01:00
Gerhard Lazu f7866a1908 Add option to disable stats in management to overview example
Commented by default - we don't want to shock people just yet.
2019-09-26 17:35:06 +01:00
Gerhard Lazu c2aef07678 Bump OTP to latest stable & RabbitMQ to latest 3.8 dev 2019-09-26 17:33:39 +01:00
Michael Klishin 02a09c6a78 Update README.md 2019-09-26 13:53:07 +03:00
Michael Klishin b70a8da7f0 Expose endpoint path configuration, references #8 2019-09-26 13:39:21 +03:00
Michael Klishin b03dfa2dd2 New style configuration schema for listeners
Closes #8.
2019-09-26 13:08:36 +03:00
Michael Klishin 15b8e8cf4d Update README.md 2019-09-25 07:37:42 +03:00
Michal Kuratczyk 9aa22e1895 Make the datasource configurable for all dashboards 2019-09-24 15:40:18 +02:00
kjnilsson 3980e1495d Update rabbitmq-components.mk 2019-09-13 10:24:28 +01:00
Gerhard Lazu 7f049b9e05 Finish adding descriptions to all RabbitMQ-Overview panels
Thanks @michaelklishin!

[#167542609]
2019-09-06 18:52:45 +01:00
Gerhard Lazu 477d32e3cb Review incoming messages nodes panels with @michaelklishin
[#167542609]
2019-09-05 17:53:38 +01:00
Gerhard Lazu 235297eb6b Review nodes panels description with @michaelklishin
[#167542609]
2019-09-05 17:09:44 +01:00
Gerhard Lazu c66959ec4a Start adding missing descriptions to RabbitMQ-Overview panels
[#167542609]
2019-09-04 18:31:57 +01:00
Gerhard Lazu 8eaa90d42b Merge pull request #6 from rabbitmq/revise-metric-types-and-naming
Use the correct metric types & capture perspective when naming
2019-09-04 15:38:03 +01:00
Gerhard Lazu 7e9013e0ad Update Grafana dashboards to account for metric name changes
[#167846096]
2019-09-04 15:32:52 +01:00
Gerhard Lazu 2b73981ab1 Fix build & identity info metrics
Improve pattern matching used in tests so that we don't match partial
metric names.

[#167846096]
2019-09-04 13:21:50 +01:00
Gerhard Lazu 36dece92f9 Clarify the type of sockets we report metrics for
[#167846096]
2019-09-04 12:53:20 +01:00
Gerhard Lazu aaedcef4a5 Bump RabbitMQ & PerfTest Docker image versions
[#167846096]
2019-09-04 12:52:46 +01:00
Gerhard Lazu 5781130b61 Use the correct metric types & capture perspective when naming
Some metrics were of type gauge while they should have been of type
counter. Thanks @brian-brazil for making the distinction clear. This is
now captured as a comment above the metric definitions.

Because all metrics are from RabbitMQ's perspective, cached for up to 5
seconds by default (configurable), we prepend `rabbitmq_` to all metrics
emitted by this collector.  While Some metrics are for Erlang (erlang_),
Mnesia (schema_db_) or the System (io_), they are all observed & cached
by RabbitMQ, hence the prefix.

This is the last PR which started in the context of prometheus/docs#1414

[#167846096]
2019-09-04 11:49:48 +01:00
kjnilsson c04823914c Update rabbitmq-components.mk 2019-09-04 10:31:07 +01:00
Gerhard Lazu aafc4c026b Revert erlang_uptime_seconds to gauge, not counter
We care about its value rather than the rate of change.

[#167846096]
2019-09-03 19:56:59 +01:00
Gerhard Lazu fbc945f710 Convert all time metrics to seconds
This started in the context of prometheus/docs#1414, specifically
https://github.com/prometheus/docs/pull/1414#issuecomment-524250746

[#167846096]
2019-09-03 17:17:50 +01:00
Gerhard Lazu fcd488cc47 Merge pull request #4 from rabbitmq/review-global-labels-with-brian-brazil
Replace global labels with build_info & identity_info metrics
2019-09-03 15:54:51 +01:00
Gerhard Lazu 98e488f1c4 Use standard naming for metrics expected from the client library
As described in
https://prometheus.io/docs/instrumenting/writing_clientlibs/#process-metrics.

Until prometheus.erl has the prometheus_process_collector functionality
built-in - this may not happen -, we are exposing a subset of those
metrics via rabbitmq_core_metrics_collector, so we are going to stick to
the expected naming conventions.

This commit supercedes the thought process captured in
1e5f4de4cb

[#167846096]
2019-09-03 15:31:55 +01:00
Gerhard Lazu 1e5f4de4cb Rename process-related metrics to stay closer to conventions
While `process_open_fds` would have been ideal, because the value is
cached within RabbitMQ, and computed differently across platforms, it is
important to keep the distinction from, say, what the kernel reports
just-in-time.

I am also capturing the Erlang context by adding `erlang_` to the
relevant metrics. The full context is: RabbitMQ observed this Erlang VM
process metric to be X, so this is why some metrics are prefixed with
`rabbitmq_erlang_process_`

Because there is a difference betwen what RabbitMQ limits are set to,
e.g. `rabbitmq_memory_used_limit_bytes`, vs. what RabbitMQ reports about
the Erlang process, e.g. `rabbitmq_erlang_process_memory_used_bytes`.

This is the best that we can do while staying honest about what is being
reported. cc @brian-brazil

[#167846096]
2019-09-03 12:30:48 +01:00
Gerhard Lazu b3336da844 Finish updating Erlang-Distribution dashboard to use new info metric
[#167846096]
2019-09-03 10:48:17 +01:00
Gerhard Lazu dbe8f331bc Bump Grafana Docker image to latest stable 2019-09-02 22:41:11 +01:00