Code Monkey home page Code Monkey logo

emqx-prometheus's Issues

emqttd v2.3.11 support

Hello,

We are using emqttd (v2.3.11) and emqx-prometheus applicable to emqttd?
Can we get emqttd metrics paramaters on Prometheus with use emqx-prometheus?

Cluster metrics

Hi,
Is there a possibility to get total metrics for the cluster, not for each and separate node, but for the whole cluster?

Optionally disable Push metrics

In case we wish to work only on a pull model, we don't have a way of disabling the push timer.
It would be great there would be an option to disable the push in case we don't want.

Job name mismatch

There can be a mismatch between job name sent by statsd plugin and jobname in EMQ Dashboard template.

The jobname in grafana template is always emqx, however, the jobname in statsd is dynamically obtained:

[Name, Ip] = string:tokens(atom_to_list(node()), "@"),
Url = lists:concat([Uri, "/metrics/job/", Name, "/instance/",Name, "~", Ip]),

so if the broker hostname is different (eg. "emqtt") then the grafana template won't work.

prometheus pull support

Hi,

emqx docs states that
Note: emqx_statsd does not support the pull operation of Prometheus. https://docs.emqx.io/broker/latest/en/tutorial/prometheus.html

Pushgateway integration works fine, but in the pgw docs we read

The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. Since these kinds of jobs may not exist long enough to be scraped, they can instead push their metrics to a Pushgateway. The Pushgateway then exposes these metrics to Prometheus.

https://github.com/prometheus/pushgateway
https://prometheus.io/docs/practices/pushing/

Im wondering whats the reason behind sending stats to pushgatway instead of just having an endpoint for prometheus to scrape, as emqx obviously doesnt fall into pgw usual use case.

Are there any plans to support stats scraping (pull style) in any near future?

StatsD Support Not as Stated

In the latest release, v4.1.2, and lower releases - this plugin is named emqx_statsd and documentation suggests it supports pushing to a statsd endpoint. In fact, I see the repository renaming was only recent and as yet unreleased.
https://docs.emqx.io/broker/latest/en/advanced/metrics-and-stats.html

However, upon trying to configure this to push to a GoStatsD endpoint (port 8125/udp) that I use to bridge to NewRelic, I can't get the integration to work.
Upon digging, it looks like the code is very specifically tied to the prometheus pushgateway metric endpoint format, and looks like it tries to push via HTTP to endpoints like http://pushgateway.example.org:9091/metrics/job/some_job.
I can expose HTTP ingestion endpoints, but not at paths like /metrics/job/some_job which I believe are dynamic to the node name?

https://github.com/emqx/emqx-prometheus/blob/v4.1.2/src/emqx_statsd.erl#L85-L87

Is pushing to statsd supported?
I noticed the dependent library seem to allow pushing via UDP to a statsd endpoint, but is this used in this fashion? https://github.com/lpgauth/statsderl

Would love to get statsd metrics into my non-prometheus system ๐Ÿ™

Configure plugin with env vars in Docker image

Hi,
the Docker image docs say:

The environment variables which with EMQX_ prefix are mapped to all emqx plugins' configuration file, . get replaced by __.

That means that to customize the pushgateway server (prometheus.push.gateway.server), we have to pass EMQX_PROMETHEUS__PUSH__GATEWAY__SERVER as an environment variable, right?

Unfortunately, however, in my case the config under etc/plugins/emqx_prometheus.conf is not overwritten and still contains the default data. The environment variable is definitely set within the container, which probably means the EMQX_PROMETHEUS__PUSH__GATEWAY__SERVER notation is incorrect. Which should be used instead?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.