Files
tom.chivert 14a6e7c049
build / build (push) Successful in 1m27s
add elasticsearch exporter
2025-05-19 10:19:35 +02:00

120 lines
5.2 KiB
Markdown

# Prometheus Exporters Repository
This repository contains Continuous Integration (CI) tasks that build various Prometheus exporters and package them into a release. The exporters included in this repository are the Varnish Exporter, Redis Exporter, Nginx Exporter, Opcache Exporter, Apache Exporter, Blackbox Exporter, Memcached Exporter, MongoDB Exporter, MySQLD Exporter, Node Exporter, PHPFPM Exporter, and PostgreSQL Exporter.
## CI Workflow
The CI workflow in this repository is triggered on every push event with tags matching 'latest'. When such a tag is pushed, the CI pipeline will be executed, building the exporters and creating a release with the built binaries.
## Exporters
### 1. Varnish Exporter
The Varnish Exporter is responsible for scraping metrics from a Varnish Cache instance and exposing them in a format suitable for Prometheus.
GitHub Repository: [jonnenauha/prometheus_varnish_exporter](https://github.com/jonnenauha/prometheus_varnish_exporter)
### 2. Redis Exporter
The Redis Exporter collects and exports various Redis metrics to Prometheus, providing insights into the performance and health of Redis servers.
GitHub Repository: [oliver006/redis_exporter](https://github.com/oliver006/redis_exporter)
### 3. Nginx Exporter
The Nginx Exporter exports metrics from Nginx web servers, helping monitor the web server's performance and resource usage.
GitHub Repository: [nginxinc/nginx-prometheus-exporter](https://github.com/nginxinc/nginx-prometheus-exporter)
### 4. Opcache Exporter
The Opcache Exporter extracts metrics from PHP Opcache, allowing users to monitor PHP opcode cache statistics.
GitHub Repository: [floodcode/opcache-exporter](https://github.com/floodcode/opcache-exporter)
### 5. Apache Exporter
The Apache Exporter provides Apache HTTP server metrics for Prometheus monitoring.
GitHub Repository: [Lusitaniae/apache_exporter](https://github.com/Lusitaniae/apache_exporter)
### 6. Blackbox Exporter
The Blackbox Exporter allows blackbox probing of endpoints over various protocols, enabling monitoring of endpoints from the perspective of the Prometheus server.
GitHub Repository: [prometheus/blackbox_exporter](https://github.com/prometheus/blackbox_exporter)
### 7. Memcached Exporter
The Memcached Exporter exports Memcached server metrics for Prometheus monitoring.
GitHub Repository: [prometheus/memcached_exporter](https://github.com/prometheus/memcached_exporter)
### 8. MongoDB Exporter
The MongoDB Exporter provides MongoDB metrics for Prometheus monitoring.
GitHub Repository: [percona/mongodb_exporter](https://github.com/percona/mongodb_exporter)
### 9. MySQLD Exporter
The MySQLD Exporter exports MySQL server metrics for Prometheus monitoring.
GitHub Repository: [prometheus/mysqld_exporter](https://github.com/prometheus/mysqld_exporter)
### 10. Node Exporter
The Node Exporter exposes various server metrics for Prometheus, such as CPU, memory, disk, and network statistics.
GitHub Repository: [prometheus/node_exporter](https://github.com/prometheus/node_exporter)
### 11. PHPFPM Exporter
The PHPFPM Exporter exports PHPFPM pool metrics for Prometheus monitoring.
GitHub Repository: [Lusitaniae/phpfpm_exporter](https://github.com/Lusitaniae/phpfpm_exporter)
### 12. PostgreSQL Exporter
The PostgreSQL Exporter provides PostgreSQL database metrics for Prometheus monitoring.
GitHub Repository: [prometheus-community/postgres_exporter](https://github.com/prometheus-community/postgres_exporter)
### 13. Elasticsearch Exporter
The Elasticsearch Exporter provides Elasticsearch database metrics for Prometheus monitoring.
GitHub Repository: [prometheus-community/elasticsearch_exporter](https://github.com/prometheus-community/elasticsearch_exporter)
## CI Workflow Details
The CI workflow consists of the following steps:
1. **Setup Go Environment**: Sets up the Go environment with a version greater than or equal to 1.20, ensuring that the exporters can be built.
2. **Checkout Exporter Repositories**: Clones the repositories of each exporter mentioned above, so their source code is available for building.
3. **Build Exporters**: The exporters are built using Go build commands, and the resulting binaries are stored in the `bin` directory:
- Varnish Exporter
- Redis Exporter
- Nginx Exporter
- Opcache Exporter
- Apache Exporter
- Blackbox Exporter
- Memcached Exporter
- MongoDB Exporter
- MySQLD Exporter
- Node Exporter
- PHPFPM Exporter
- PostgreSQL Exporter
4. **Create Release**: The CI workflow uses the `gitea.com/actions/release-action` to create a release. It packages the built exporter binaries (located in the `bin` directory) and attaches them to the release.
## Release Token
To enable the CI pipeline to create a release, a release token must be configured as a secret in the repository settings. The token should be stored securely and provided as an environment variable (`${{secrets.RELEASE_TOKEN}}`) during the release creation step.
**Note**: Ensure that the appropriate permissions and scopes are granted to the release token to create releases and upload artifacts.
For more information on configuring repository secrets, please refer to the GitHub documentation: [Creating encrypted secrets for a repository](https://docs.github.com/en/actions/reference/encrypted-secrets).