All Projects → promregator → Promregator

promregator / Promregator

Licence: apache-2.0
Prometheus Aggregator for Cloud Foundry (Core Component)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Promregator

Prometheus Boshrelease
Prometheus BOSH Release
Stars: ✭ 99 (+50%)
Mutual labels:  cloud-foundry, metrics, prometheus
Json Exporter
Prometheus exporter which fetches JSON from a URL and exports one of the values as gauge metrics
Stars: ✭ 26 (-60.61%)
Mutual labels:  metrics, prometheus
Dcos Metrics
The metrics pipeline for DC/OS 1.9-1.11
Stars: ✭ 57 (-13.64%)
Mutual labels:  metrics, prometheus
Iperf3 exporter
Simple server that probes iPerf3 endpoints and exports results via HTTP for Prometheus consumption
Stars: ✭ 30 (-54.55%)
Mutual labels:  metrics, prometheus
Django Prometheus
Export Django monitoring metrics for Prometheus.io
Stars: ✭ 823 (+1146.97%)
Mutual labels:  metrics, prometheus
Raspberrypi exporter
Prometheus exporter for Raspberry Pi metrics
Stars: ✭ 18 (-72.73%)
Mutual labels:  metrics, prometheus
Unifiedmetrics
Fully-featured metrics collection agent for Minecraft servers. Supports Prometheus and InfluxDB. Dashboard included out-of-box.
Stars: ✭ 29 (-56.06%)
Mutual labels:  metrics, prometheus
Grafterm
Metrics dashboards on terminal (a grafana inspired terminal version)
Stars: ✭ 613 (+828.79%)
Mutual labels:  metrics, prometheus
Nginx Lua Prometheus
Prometheus metric library for Nginx written in Lua
Stars: ✭ 964 (+1360.61%)
Mutual labels:  metrics, prometheus
Iota Prom Exporter
Iota Exporter for Prometheus Metrics
Stars: ✭ 33 (-50%)
Mutual labels:  metrics, prometheus
Kafka exporter
Kafka exporter for Prometheus
Stars: ✭ 996 (+1409.09%)
Mutual labels:  metrics, prometheus
Prometheus
Kubernetes Setup for Prometheus and Grafana
Stars: ✭ 824 (+1148.48%)
Mutual labels:  metrics, prometheus
Snmp exporter
SNMP Exporter for Prometheus
Stars: ✭ 705 (+968.18%)
Mutual labels:  metrics, prometheus
Postgresql exporter
A Prometheus exporter for some postgresql metrics
Stars: ✭ 26 (-60.61%)
Mutual labels:  metrics, prometheus
Opencensus Java
A stats collection and distributed tracing framework
Stars: ✭ 640 (+869.7%)
Mutual labels:  metrics, prometheus
Prometheus Net
.NET library to instrument your code with Prometheus metrics
Stars: ✭ 944 (+1330.3%)
Mutual labels:  metrics, prometheus
Atlas exporter
Metric exporter for RIPE Atlas measurement results
Stars: ✭ 48 (-27.27%)
Mutual labels:  metrics, prometheus
Swagger Stats
API Observability. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices.
Stars: ✭ 559 (+746.97%)
Mutual labels:  metrics, prometheus
Statsd exporter
StatsD to Prometheus metrics exporter
Stars: ✭ 608 (+821.21%)
Mutual labels:  metrics, prometheus
Go Grpc Prometheus
Prometheus monitoring for your gRPC Go servers.
Stars: ✭ 965 (+1362.12%)
Mutual labels:  metrics, prometheus

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:

  • Standard Java-Application implemented using the Spring Framework. There is no need for administrative privileges on your Cloud Foundry installation! You can even run Promregator outside of your Cloud Foundry environment (such as behind an internal firewall), as Promregator also supports proxy servers.

  • Automatic discovery of instances and hostnames of Cloud Foundry apps supported

    • Multiple CF apps in multiple Orgs and multiple spaces supported
    • Multiple instances per app supported, automatically detecting up- and downscaling (results are cached, timeout of caching can be configured)
    • (>= 0.4.0) Auto-detection of all applications within a CF space allows a simplified configuration
    • (>= 0.4.0) Filtering of applications within a CF space based on Regular Expression allows a simplified configuration
    • (>= 0.5.0) Filtering of spaces based on Regular Expression permits selection of multiple applications even if they are distributed over several spaces.
    • (>= 0.5.0) Filtering of organizations based on Regular Expression permits selection of multiple applications even if they are distributed over several organizations.
    • (>= 0.5.0) Auto-detection of all applications across all organizations and spaces allows a simplified configuration.
    • (>= 0.5.0) Filtering of applications across all organizations and spaces based on Regular Expression allows a simplified configuration.
    • (>= 0.6.0) Selecting the route to be used for scraping can be controlled by providing Regular Expressions.
  • Fetching of the Prometheus Metric endpoints of multiple app instances is performed in parallel (number of concurrent threads used for retrieving metrics can be configured).

  • Support of Authentication Schemes at the CF app's endpoint. The following Authentication schemes are currently available:

    • Basic HTTP Authentication (as of RFC2617)
    • JWT-based authentication (with retrieval of JWT from OAuth2 server, JWT is cached)
    • Null Authentication (not recommended for productive environments!)

    The available authentication schemes are easily extensible.

    (>= 0.4.0) Each target may be configured to use its own authentication scheme, thus you may authenticate to multiple CF apps using different credentials.

  • (>= 0.2.0) Support for inbound authentication (e.g. Prometheus authenticates to Promregator) using Basic HTTP Authentication.

  • Configuration using standard Spring properties as defined by the Spring Framework (e.g. using application.yml file).

  • (>= 0.6.0) Support for encrypted passwords in configuration files including providing the encryption key via Docker Secrets

  • Simple HTTP proxy support is available for contacting CF app endpoints.

  • All metrics provided from the Cloud Foundry applications are automatically enriched with additional labels, indicating their origin (similar to the job and instance labels created by Prometheus).

  • Additional metrics are provided supporting you to monitor Promregator and the communication to the Cloud Foundry applications.

  • (>= 0.4.0) Cache Invalidation is possible via an (optionally auth-protected) HTTP REST endpoint.

  • Promregator's endpoints (e.g. /metrics, /promregatorMetrics, /discovery) support GZIP compression, if the clients indicates to accept it.

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:

  • JRE8 or higher

Compiling Promregator additionally requires:

  • JDK8 or higher
  • Maven 3.3.0 or higher

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].