-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce a way to tag clusters (and, optionally, nodes) #12552
Comments
From a pure Prometheus point of view, I see two potential anti-patterns here: The suggested new Prometheus metrics
Hence, instead of introducing new Prometheus info metrics, I think it's better to re-use the existing Prometheus metric These labels are meant to be target labels rather than instrumentation labels. In other words, RabbitMQ itself should probably not emit labels such as
|
@ansd this feature is not 100% Prometheus-specific, so even if the Prometheus view of the world assumes that these are "deployment labels", RabbitMQ will have to log and expose them e.g. in the HTTP API and CLI tools in order to make them useful. @SimonUnge will configuring your monitoring and upgrade tooling be possible to comply with the monitoring target concept quoted above? |
@michaelklishin yes, my comment above was purely about Prometheus' point of view. Tagging/labelling RabbitMQ nodes with key/value metadata and exposing this metadata via the HTTP API, CLI tools and logs makes sense to me. |
Per discussion with @SimonUnge but also @stefanmoser @mkuratczyk.
Problem Definition
Larger users can have thousands of clusters used for all kinds of purposes. Sometimes it may be
necessary to perform certain operations (e.g. upgrades) on a subset of them, e.g. those that are
used by development environments only.
Right now there only so many ways of doing it:
production-*
or something like that. This is fragile and allows for only a couple of tagsCluster Tags
One solution can be configuring cluster metadata with a map (a set of pairs) in
rabbitmq.con
:This map can be then added to
GET /api/overview
HTTP API responses. In Prometheus responses, this could look something like this (please read the comments, with Prometheus it is much more nuanced than it sounds):This data can be stored in the node's application environment or in a global runtime parameter
(for "last write wins" consistency).
Node Tags
The same idea can be extended to node tags that will only be stored in the application
environment since this data is local to the node.
Which could look approximately like this in Prometheus output (please read the comments, with Prometheus it is much more nuanced than it sounds):
The usefulness of this is less clear.
The text was updated successfully, but these errors were encountered: