Prometheus is renowned for its robust service discovery capabilities, but complexities arise when dealing with
resources that fall outside its native service discovery methods. This often necessitates the maintenance of static
configuration files, a process that can be cumbersome and error-prone. Orion addresses this challenge by providing
a versatile web server capable of serving a dynamically generated list of targets. These targets are formatted for
seamless compatibility with Prometheus, specifically utilizing the http_sd_configs
configuration.
Orion
is an advanced web server engineered to streamline the configuration and management of Prometheus targets. It
adeptly handles queries across a diverse range of data sources, utilizing various protocols such as REST API, SOAP,
GraphQL, SQL, gRPC, and file-based scraping. The system stands out for its high modularity; each protocol is managed
by a dedicated module, ensuring seamless integration and consistent handling.
Orion's design philosophy emphasizes extensibility and adaptability. It allows for the creation and integration of custom modules, enabling users to tailor the system for retrieving targets from a wide array of data sources. This flexibility makes Orion an invaluable tool for organizations looking to harness the full potential of Prometheus in a variety of complex and evolving technological landscapes.
- Modular Design: Separate modules for each data source type (REST, SOAP, GraphQL, ...) and Prometheus target retrieval.
- Configurable: Uses YAML, JSON, or TOML configuration files for defining query parameters and target settings.
- /targets: Returns a list of targets in JSON format compliant with Prometheus
http_sd_configs
. - /config: Returns the configuration file in JSON format.
The configuration is design in a modular fashion, where you can define the data source and the target configuration.
When defining a target, you can specify the module to use for querying the data source. When default value are define for the module, the field become optional and a fallback to the default value.
You can define a local configuration file or use the default one.
Initialize a new configuration file. The command will create a new configuration file in the $HOME/.orion
directory.
orion init
Run Orion through the CLI:
orion run --config /path/to/config/file
Run Orion with Docker:
docker run -d -p 9981:9981 -v /path/to/config/file:/config.yaml ghcr.io/geekxflood/orion:latest /usr/local/bin/orion run --config /config.yaml
GNU GENERAL PUBLIC LICENSE v2.0 - LICENSE