Promregator is looking for contributors/supporters!

Attention Users of Promregator! Influence development of Promregator by answering our polls!

Status

Total alerts Language grade: Java

Quality Gate Status Maintainability Rating Bugs Coverage Lines of Code

Promregator Project

The term "Promregator" is an artifical composite of the two terms "Prometheus" and "aggregator".

Prometheus is referring to the Prometheus project, which is a toolset intended for retrieving telemetry data of running applications. It supports monitoring these metrics and triggering alerts based on thresholds.

Aggregator is referring to the aggregator concept, which you encounter several times in the Platform-as-a-Service offering of Cloud Foundry. The most prominent case of an aggregator in Cloud Foundry most likely is the Loggregator.

The Promregator project intends to provide an aggregator-like tool for the Cloud Foundry environment, which allows fetching Prometheus metrics of a set of Cloud Foundry app instances. Note that it is not the intention to facilitate scraping of metrics on platform level (e.g. for monitoring services, which are exposed via BOSH containers on the Cloud Foundry platform), but support monitoring of metrics on application level (if you are looking for platform monitoring, you might find https://github.com/pivotal-cf/prometheus-on-PCF and https://github.com/bosh-prometheus/prometheus-boshrelease interesting).

Quickstart

If you want to jumpstart and see what Promregator may do, please refer to our quickstart description.

Feature List

Here is the list of major features provided by Promregator:

Architecture

Architecture of Promregator

Promregator is sitting between your Prometheus server on the one hand and talks to your Cloud Foundry apps on the other hand. It is converting the Prometheus' scraping requests into queries targeting your instances of your apps, which are running on Cloud Foundry.

For further details on the architecture of Promregator, please look at the architecture page.

During the course of action, we came across several other implementation alternatives. Due to one or the other reason they were not implemented. You may find a detailed discussion about these approaches on our discarded ideas page.

Prerequisites

Running Promregator requires:

Compiling Promregator additionally requires:

Further dependencies required are automatically loaded when building the software. An internet connection to Maven Central is necessary for that.

Installation

Promregator has been released first on 2018-03-18. It currently provides two binary-based deliveries:

Furthermore, you may create your own package by downloading the source code, unpacking it into a local folder and calling

mvn clean package

The runnable artifact will be available at target/promregator-*-SNAPSHOT.jar. It is a self-contained (e.g. including all library dependencies) JAR file, which can be copied around and executed at an arbitrary folder by calling

java -jar promregator-x.y.z-SNAPSHOT.jar

Documentation

A detailed documentation, including a description how you may configure Promregator, what needs to be done to integrate it with Prometheus is available at the documentation pages.

Related Work / References

For related work, which we came across, refer to our references page.

Sending Analysis Material

For sending material (e.g. memory dumps) for analysis, which you do not want to (or even should not) share to/with the public, please refer to our analysis material page