While working on testing out a new deployment of Elastic Cloud Enterprise (ECE), which is an orchestration platform created by Elasticsearch for hosting containerized Elastic clusters, my team and I realized that while there are prometheus exporters available for Elasticsearch, there were no solutions for monitoring the ECE itself.
So I went ahead and created an ECE exporter in Rust. The exporter can be found at this repo, and is available as a docker image.
The exporter connects to the ECE admin API via username and password, or with a provided API key, and exposes the following metrics:
# TYPE ece_allocator_info gauge # TYPE ece_allocator_instance_info gauge # TYPE ece_allocator_instance_node_memory gauge # TYPE ece_allocator_instance_plan gauge # TYPE ece_allocator_instances_total gauge # TYPE ece_allocator_memory_total gauge # TYPE ece_allocator_memory_used gauge # TYPE ece_proxy_info gauge
I felt this exporter was necessary since there is currently only a Prometheus exporter available for Elasticsearch clusters, which would only allow us to alert on symptoms of possible underlying issues on the ECE cluster. Therefore, the need for an exporter to monitor the health of the ECE cluster itself was required.