{"id":13673756,"url":"https://github.com/promregator/promregator","last_synced_at":"2026-04-09T05:31:55.301Z","repository":{"id":30051011,"uuid":"123684921","full_name":"promregator/promregator","owner":"promregator","description":"Prometheus Aggregator for Cloud Foundry (Core Component)","archived":false,"fork":false,"pushed_at":"2025-12-29T20:27:00.000Z","size":3912,"stargazers_count":79,"open_issues_count":49,"forks_count":36,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-01-02T01:10:20.859Z","etag":null,"topics":["cloud-foundry","metrics","prometheus"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/promregator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-03-03T11:15:24.000Z","updated_at":"2025-12-29T20:14:49.000Z","dependencies_parsed_at":"2025-08-09T12:05:38.588Z","dependency_job_id":"ad3fb89c-9291-48a2-a658-459891be424d","html_url":"https://github.com/promregator/promregator","commit_stats":null,"previous_names":[],"tags_count":91,"template":false,"template_full_name":null,"purl":"pkg:github/promregator/promregator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/promregator%2Fpromregator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/promregator%2Fpromregator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/promregator%2Fpromregator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/promregator%2Fpromregator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/promregator","download_url":"https://codeload.github.com/promregator/promregator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/promregator%2Fpromregator/sbom","scorecard":{"id":746931,"data":{"date":"2025-08-18","repo":{"name":"github.com/promregator/promregator","commit":"aef6bb4835b2cc8b6513cf9d651542940de6bcbe"},"scorecard":{"version":"v5.2.1-41-g40576783","commit":"40576783fda6698350fcbbeaea760ff827433034"},"score":6.3,"checks":[{"name":"Maintained","score":7,"reason":"9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:16","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:17","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#token-permissions"}},{"name":"SAST","score":10,"reason":"SAST tool detected","details":["Info: SAST configuration detected: CodeQL","Info: SAST configuration detected: Sonar","Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/promregator/promregator/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/promregator/promregator/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/promregator/promregator/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/promregator/promregator/codeql.yml/master?enable=pin","Warn: containerImage not pinned by hash: docker/Dockerfile:8: pin your Docker image by updating openjdk:21-jdk to openjdk:21-jdk@sha256:af9de795d1f8d3b6172f6c55ca9ba1c5768baa11bb2dc8af7045c7db9d4c33ac","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":8,"reason":"5 out of the last 5 releases have a total of 5 signed artifacts.","details":["Info: signed release artifact: promregator-1.1.5.hashsums.json.asc: https://github.com/promregator/promregator/releases/tag/v1.1.5","Info: signed release artifact: promregator-1.1.5-rc2.hashsums.json.asc: https://github.com/promregator/promregator/releases/tag/v1.1.5-rc2","Info: signed release artifact: promregator-1.1.5-rc1.hashsums.json.asc: https://github.com/promregator/promregator/releases/tag/v1.1.5-rc1","Info: signed release artifact: promregator-1.1.4.hashsums.json.asc: https://github.com/promregator/promregator/releases/tag/v1.1.4","Info: signed release artifact: promregator-1.1.4-rc2.hashsums.json.asc: https://github.com/promregator/promregator/releases/tag/v1.1.4-rc2","Warn: release artifact v1.1.5 does not have provenance: https://api.github.com/repos/promregator/promregator/releases/238764883","Warn: release artifact v1.1.5-rc2 does not have provenance: https://api.github.com/repos/promregator/promregator/releases/235359678","Warn: release artifact v1.1.5-rc1 does not have provenance: https://api.github.com/repos/promregator/promregator/releases/233683208","Warn: release artifact v1.1.4 does not have provenance: https://api.github.com/repos/promregator/promregator/releases/213683595","Warn: release artifact v1.1.4-rc2 does not have provenance: https://api.github.com/repos/promregator/promregator/releases/213682087"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T19:06:06.394Z","repository_id":30051011,"created_at":"2025-08-22T19:06:06.394Z","updated_at":"2025-08-22T19:06:06.394Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31587781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-foundry","metrics","prometheus"],"created_at":"2024-08-02T11:00:21.683Z","updated_at":"2026-04-09T05:31:55.242Z","avatar_url":"https://github.com/promregator.png","language":"Java","funding_links":[],"categories":["Projects"],"sub_categories":["Monitoring"],"readme":"# Status\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=promregator\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=promregator) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=promregator\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=promregator) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=promregator\u0026metric=bugs)](https://sonarcloud.io/dashboard?id=promregator) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=promregator\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=promregator) [![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=promregator\u0026metric=ncloc)](https://sonarcloud.io/dashboard?id=promregator) [![CodeQL](https://github.com/promregator/promregator/actions/workflows/codeql.yml/badge.svg)](https://github.com/promregator/promregator/actions/workflows/codeql.yml)\n\n# Promregator Project\n\n\nThe term \"Promregator\" is an artifical composite of the two terms \"Prometheus\" and \"aggregator\".\n\nPrometheus is referring to the [Prometheus project](https://prometheus.io/), which is a toolset intended for retrieving telemetry data of running applications. It supports monitoring these metrics and triggering alerts based on thresholds.\n\nAggregator is referring to the aggregator concept, which you encounter several times in the Platform-as-a-Service offering of Cloud Foundry. \nThe most prominent case of an aggregator in Cloud Foundry most likely is the [Loggregator](https://docs.cloudfoundry.org/loggregator/architecture.html).\n\nThe Promregator project intends to provide an aggregator-like tool for the Cloud Foundry environment, which allows fetching \nPrometheus metrics of a set of *Cloud Foundry app instances*. Note that it is not the intention to facilitate scraping of\nmetrics *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).\n\n## Quickstart\n\nIf you want to jumpstart and see what Promregator may do, please refer to our [quickstart description](docs/quickstart-docker.md).\n\n## Feature List\n\nHere is the list of major features provided by Promregator:\n\n* Standard Java-Application implemented using the Spring Framework. There is **no need for administrative privileges on your Cloud Foundry** installation!\n  You can even run Promregator **outside of your Cloud Foundry environment** (such as behind an internal firewall), as Promregator also supports proxy servers.\n* **Automatic discovery** of instances and hostnames of Cloud Foundry apps supported\n  * **Multiple CF apps** in **multiple Orgs** and **multiple spaces** supported\n  * **Multiple instances** per app supported, **automatically detecting up- and downscaling** (results are cached, timeout of caching can be configured)\n  * *(\u003e= 0.4.0)* **Auto-detection of all applications** within a CF space allows a simplified configuration\n  * *(\u003e= 0.4.0)* **Filtering of applications** within a CF space based on **Regular Expression** allows a simplified configuration\n  * *(\u003e= 0.5.0)* **Filtering of spaces** based on **Regular Expression** permits selection of multiple applications even if they are distributed over several spaces.\n  * *(\u003e= 0.5.0)* **Filtering of organizations** based on **Regular Expression** permits selection of multiple applications even if they are distributed over several organizations.\n  * *(\u003e= 0.5.0)* **Auto-detection of all applications** across all organizations and spaces allows a simplified configuration.\n  * *(\u003e= 0.5.0)* **Filtering of applications** across all organizations and spaces based on **Regular Expression** allows a simplified configuration.\n  * *(\u003e= 0.6.0)* **Selecting the route** to be used for scraping can be controlled by providing **Regular Expressions**.\n* 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).\n* **Support of Authentication Schemes** at the CF app's endpoint. The following Authentication schemes are currently available:\n  - Basic HTTP Authentication (as of [RFC2617](https://www.ietf.org/rfc/rfc2617.txt))\n  - [JWT](https://jwt.io/)-based authentication (with retrieval of JWT from [OAuth2](https://oauth.net/2/) server, JWT is cached), (since *\u003e= 0.10.0* both support for basic authentication against the OAuth2 authentication server and certificate-based authentication)\n  - Null Authentication (not recommended for productive environments!)\n  \n  The available authentication schemes are easily extensible.\n  \n  *(\u003e= 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.\n  *(\u003e= 0.9.0)* Ability to specify the [SSL Context](docs/mtls-ssl-contexts.md) used by promregator using JVM options\n* *(\u003e= 0.2.0)* **Support for inbound authentication** (e.g. Prometheus authenticates to Promregator) using Basic HTTP Authentication. \n* **Configuration using standard Spring properties** as defined by the Spring Framework (e.g. using `application.yml` file).\n* *(\u003e= 0.6.0)* Support for [**encrypted passwords in configuration files**](./docs/passwords-in-config.md) including providing the encryption key via **Docker Secrets**\n* Simple **HTTP proxy support** is available for contacting CF app endpoints.\n* [Additional metrics are provided](docs/enrichment.md) supporting you to **monitor Promregator** and the **communication to the Cloud Foundry applications**.\n* *(\u003e= 0.4.0)* **[Cache Invalidation](docs/invalidate-cache.md)** is possible via an (optionally auth-protected) HTTP REST endpoint.\n* Promregator's endpoints (e.g. `/promregatorMetrics`, `/discovery`) support **GZIP compression**, if the clients indicates to accept it.\n* *(\u003e= 0.9.0)* [Filtering by annotations](docs/annotation-driven.md) and using annotations to specify the metrics path.\n\n\n## Architecture\n![Architecture of Promregator](docs/architecture.png)\n\nPromregator is sitting between your Prometheus server on the one hand and talks to your Cloud Foundry apps on the other hand. \nIt is converting the Prometheus' scraping requests into queries targeting your instances of your apps, which are running on Cloud Foundry. \n\nFor further details on the architecture of Promregator, please look at the [architecture page](docs/architecture.md).\n\nDuring 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](docs/discarded-ideas.md).\n\n## Differences on Major Versions\nPromregator is currently preparing to provide a new major version. Here are the main differences from a user perspective between the two versions:\n\n| Aspect                                              | Version 1.x.x                                  | Version 0.x.x                                                                               |\n|-----------------------------------------------------|------------------------------------------------|---------------------------------------------------------------------------------------------|\n| Java Runtime Version                                | JRE 17 or higher                               | JRE 8 or higher                                                                             |\n| CF CC API Version                                   | V3 only (3.84.0 or higher required)            | V2 only (special cases with V3)                                                             |\n| Classic Cache                                       | no longer supported                            | default, available in all minor versions                                                    |\n| Caffeine Cache                                      | default                                        | optional, starting with 0.7.x                                                               |\n| OAuth2XSUAA Authenticator with Basic Authentication | Only `OAuth2XSUAABasic` supported         | `OAuth2XSUAA` (old one) and `OAuth2XSUAABasic` supported (available since v0.10.0) |\n| Scraping Method                                     | Single Target Scraping supported               | Single Endpoint Scraping and Single Target Scraping supported                               |\n| Label Enrichment                                    | not supported                                  | supported (for Single Target Scraping)                                                      |\n| Support for metrics formats at scraping targets     | text/plain;version=0.0.4 and OpenMetrics 1.0.0 | text/plain;version=0.0.4 only                                                               |\n| Support for INFO-typed metrics                      | supported (pass-through)                       | not supported (in some cases passed-through)                                                |\n| Support for STATESET-typed metrics                  | supported (pass-through)                       | not supported                                                                               |\n| Support for UNIT metric descriptor                  | supported (pass-through)                       | not supported                                                                               |\n| Returned format to scraping callers                 | pass-through as scraped                        | text/plain;version=0.0.4 (parsed and reformatted)                                           |\n\nIt is recommended that you upgrade to the new major version on next occasion. \nAn upgrade guide is provided [here](docs/upgrade.md).\n\n## Prerequisites\n\nRunning Promregator V1 requires:\n* JRE17 or higher\n* A Cloud Foundry platform supporting the Cloud Foundry API Version 3.84.0 or higher (release in June 2020). \n\nIf you cannot fulfill these requirements, you may still use Promregator V0, which requires JRE8 or higher and supprts Cloud Foundry API version 2.x. \n\nCompiling Promregator additionally requires:\n* JDK17 or higher (for Promregator V1)\n* JDK8 or higher (for Promregator V0)\n* Maven 3.3.0 or higher\n\nFurther dependencies required are automatically loaded when building the software. An internet connection to [Maven Central](https://search.maven.org/) is necessary for that.\n\n## Installation\n\nPromregator has been [released first](https://github.com/promregator/promregator/releases/tag/v0.1.0) on 2018-03-18. It currently provides two binary-based deliveries:\n\n* You may download versions of the released jar file at [https://github.com/promregator/promregator/releases](https://github.com/promregator/promregator/releases).\n* You may use the prepared Docker container which is available at [https://hub.docker.com/r/promregator/promregator/](https://hub.docker.com/r/promregator/promregator/). Hints on suggested parameters can be found at [this page](docs/docker-start.md).\n\nFurthermore, you may create your own package by downloading the source code, unpacking it into a local folder and calling\n\n```bash\nmvn clean package\n```\n\nThe 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\n\n```bash\njava -jar promregator-x.y.z-SNAPSHOT.jar\n```\n\n## Documentation\n\nA 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](docs/documentation.md).\n\n\n## Related Work / References\nFor related work, which we came across, refer to our [references page](docs/references.md).\n\n## Sending Analysis Material\n\nFor 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](docs/analysis-material.md)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpromregator%2Fpromregator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpromregator%2Fpromregator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpromregator%2Fpromregator/lists"}