ujamii / prometheus-sentry-exporter
Exports sentry project metrics for prometheus.
Installs: 284
Dependents: 0
Suggesters: 0
Security: 0
Stars: 38
Watchers: 5
Forks: 12
Open Issues: 3
Type:project
Requires
- php: >=8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.3 || ^7.2
- openmetrics-php/exposition-text: ^0.3
Requires (Dev)
- roave/security-advisories: dev-latest
README
This package uses the Sentry web api to query for some statistics and outputs them in OpenMetrics format to be scraped by prometheus.
You can also fire it up as a docker container.
Usage
Using this exporter with Composer or Docker, you will need the hostname of your sentry installation and an auth token, which you can create
via https://<YOUR-SENTRY-HOST>/api/
if you're working with the Sentry self hosted. If you're working with Sentry cloud, you will
need to create the token via https://sentry.io/settings/account/api/auth-tokens/
.
with Composer
Installation
composer req ujamii/prometheus-sentry-exporter
Usage in your custom file
require_once 'vendor/autoload.php'; $sentryBase = 'https://<YOUR-SENTRY-HOST>/api/0/'; $token = '<AUTH-TOKEN>'; // get from https://<YOUR-SENTRY-HOST>/api/ $exporter = new \Ujamii\OpenMetrics\Sentry\SentryExporter($token, $sentryBase); $exporter->run();
with Docker
The image is based on php:8.1-apache
and thus exposes data on port 80 by default. Assuming you fire this up with -p 80:80
on
localhost, you can see the metrics on http://localhost/metrics.
Configuration is done with 3 env variables: SENTRY_HOST
, AUTH_TOKEN
, USE_THROTTLING
and HTTP_PROTO
.
The first 2 are mandatory, HTTP_PROTO
is optional and set to https
by default. If you're working with the Sentry Cloud, your SENTRY_HOST
variable must be "sentry.io"
When you set USE_THROTTLING
to true/TRUE
or 1
, the exporter will throttle the API requests to prevent a rate limit. This is useful if you have a lot of projects and/or a lot of issues.
docker run -d --name sentry-prometheus -e SENTRY_HOST=sentry.foobar.com -e AUTH_TOKEN=foobarlongtoken -p "80:80" ghcr.io/ujamii/prometheus-sentry-exporter
Docker discontinues support for the free docker hub registry for orgs. The image is now available on GitHub Container Registry
Output
The script will generate something like:
# TYPE sentry_open_issue_events gauge
# HELP sentry_open_issue_events Number of events for one unresolved issue.
sentry_open_issue_events{project_slug="foobar", project_name="Foo Bar", issue_logger="php", issue_type="error", issue_link="https://<SENTRY-HOST>/<ORGANIZATION>/<PROJECT>/issues/1797/", issue_level="error"} 16.000000
...