You can export cluster metrics to a scrape endpoint in Management Center that Prometheus can consume. By collecting cluster metrics in Prometheus you can monitor Hazelcast along with your other applications in the same monitoring tool.
To start exposing metrics to Prometheus, set the
hazelcast.mc.prometheusExporter.enabled system property to
Metrics are exposed to the
/metrics endpoint, which is the default Prometheus metrics path.
All metrics are exported with the
After enabling the Prometheus exporter, you can configure your Prometheus YAML file to scrape metrics from Management Center.
|For guidance, see the Prometheus configuration docs.|
To allow Prometheus to scrape metrics from Management Center, set the
static_configs.targets parameter to the URL of your Management Center instance.
scrape_configs: - job_name: 'HZ MC' # scheme defaults to HTTP. static_configs: - targets: ['localhost:8080'] # replace this address with the network address of Hazelcast Management Center
To secure the scrape endpoint, you can set up basic authentication.
To set up basic authentication, use the
set prometheus-auth task of the
mc-conf tool. Replace the
<my-pass> placeholders with your chosen username and password.
mc-conf.sh set prometheus-auth <my-user> <my-pass>
mc-conf.bat set prometheus-auth <my-user> <my-pass>
Then, add the credentials to the
basic_auth parameter of the Prometheus YAML file:
- job_name: 'HZ MC' static_configs: - targets: ['localhost:8080'] basic_auth: username: my-user password: my-pass
By default, Management Center exports all metrics that are reported by the cluster.
To filter the metrics that are exposed to the scrape endpoint, use the
hazelcast.mc.prometheusExporter.filter.metrics.excluded system properties.
For example, this configuation exposes only the following metrics:
java -jar -Dhazelcast.mc.prometheusExporter.enabled=true \ -Dhazelcast.mc.prometheusExporter.filter.metrics.included=hz_topic_totalReceivedMessages,hz_map_totalPutLatency \ -jar hazelcast-management-center-5.0.4.jar
This configuation exposes all metrics except the following:
java -jar -Dhazelcast.mc.prometheusExporter.enabled=true \ -Dhazelcast.mc.prometheusExporter.filter.metrics.excluded=hz_os_systemLoadAverage,hz_memory_freeHeap \ -jar hazelcast-management-center-5.0.4.jar
By default, metrics are exposed on the same port as the Management Center web interface. To
override the port number, use the
-Dhazelcast.mc.prometheusExporter.port system property.
java -jar -Dhazelcast.mc.prometheusExporter.enabled=true \ -Dhazelcast.mc.prometheusExporter.port=2222 \ -jar hazelcast-management-center-5.0.4.jar
In this example, the Prometheus endpoint will be available at
http://localhost:2222/metrics. To allow Prometheus to scrape metrics from Management Center, make sure to set the
static_configs.targets parameter to this port.
scrape_configs: - job_name: 'HZ MC' static_configs: - targets: ['localhost:2222']
To visualize Prometheus metrics in Grafana, you can start with this dashboard.