https://github.com/nathanmac/drone-exporter
Prometheus exporter for drone.io CI metric reporting
https://github.com/nathanmac/drone-exporter
drone-ci prometheus-exporter
Last synced: 3 months ago
JSON representation
Prometheus exporter for drone.io CI metric reporting
- Host: GitHub
- URL: https://github.com/nathanmac/drone-exporter
- Owner: nathanmac
- License: mit
- Created: 2020-04-21T15:25:23.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-09-13T13:17:18.000Z (about 4 years ago)
- Last Synced: 2025-01-06T13:49:37.204Z (9 months ago)
- Topics: drone-ci, prometheus-exporter
- Language: Go
- Homepage:
- Size: 23.4 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Drone CI Metrics
[](https://cloud.drone.io/nathanmac/drone-exporter)
Monitor your drone builds and output to prometheus. This is done by calling the Drone API on a regular interval and updating the prometheus metrics.
These metrics include:
- Build Status
- Build Count
- Total API Count## Usage
### Docker
We have a Docker image for you to use on docker hub. By default you'll need to expose port `9100`. Metric would then be available at `/metrics`
```
nathanmac/drone-exporter
```#### Running Docker Container
```
docker run -p 9100:9100 -e DRONE_EXPORTER_API_KEY=******** nathanmac/drone-exporter:latest
```### Environment Variables
You can customise the service using a number of environment variables.
| Name | Default | Description |
|-----------------------------------|----------------------------|-------------------------------------------------------------------------------------------|
| `DRONE_EXPORTER_HTTP_PORT` | `9100` | The HTTP port that you will need to expose if running in docker |
| `DRONE_EXPORTER_HTTP_PATH` | `/metrics` | The HTTP endpoint to to expose prometheus metrics on |
| `DRONE_EXPORTER_URL` | `https://cloud.drone.io/` | The URL of the drone service, defaults to the cloud version of drone.io |
| `DRONE_EXPORTER_API_KEY` | `Required` | The API Key for accessing the drone service |
| `DRONE_EXPORTER_NAMESPACE` | | Filter by organisation name, supports regex (optional, leave empty for all organisations) |
| `DRONE_EXPORTER_REPO` | | Filter by the name of the repo, supports regex (optional, leave empty for all repos) |
| `DRONE_EXPORTER_INTERVAL_MINUTES` | `60` | The interval used to refresh the drone metrics |
| `DRONE_EXPORTER_METRICS_PREFIX` | `drone_exporter` | The prefix for the prometheus metrics names |
| `DRONE_EXPORTER_NAME` | `default` | A name to put into prometheus metric keys to help identify, if using multiple instances |
| `DRONE_EXPORTER_LOG_LEVEL` | `INFO` | Set the log level, defaults to INFO |## Prometheus output
This is an example of the output you get from the service.
```
# HELP drone_exporter_api_request_count Number of API requests to the drone api
# TYPE drone_exporter_api_request_count counter
drone_exporter_api_request_count{url="https://cloud.drone.io/"} 7# HELP drone_exporter_build_count The number of builds of the repo
# TYPE drone_exporter_build_count gauge
drone_exporter_build_count{name="drone-exporter",namespace="nathanmac"} 42# HELP drone_exporter_build_status The current build status of the repo
# TYPE drone_exporter_build_status gauge
drone_exporter_build_status{name="drone-exporter",namespace="nathanmac"} 1
```## Grafana Dashboard
TODO - Add link to grafana dashboard download and example.
## Known issues
- This exporter does not support paginating back through the build list therefore if a build to the primary branch is not
found in the initial list the build status will not be available.