ujamii / prometheus-sentry-exporter

Exports sentry project metrics for prometheus.
MIT License
38 stars 12 forks source link

Improve the readme.md adding examples when use the sentry cloud instead sentry self hosted. #12

Closed victorcfonseca closed 3 years ago

victorcfonseca commented 3 years ago

I just added some informations on the readme.md that were useful for me. Maybe it may help other people.

Exporter for sentry data in prometheus format

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 throught 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:7.2-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 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"

docker run -d --name sentry-prometheus -e SENTRY_HOST=sentry.foobar.com -e AUTH_TOKEN=foobarlongtoken -p "80:80" ujamii/prometheus-sentry-exporter

View on Docker Hub

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_first_seen="2019-02-19T11:24:52Z", issue_last_seen="2019-02-28T09:17:47Z", issue_logger="php", issue_type="error", issue_link="https://<SENTRY-HOST>/<ORGANIZATION>/<PROJECT>/issues/1797/", issue_level="error"} 16.000000
...
mgrundkoetter commented 3 years ago

Thank you for your contribution. Can you open a Pull Request for this? It's pretty simple with GitHub. Just edit the readme file in this repo (Pencil Icon on the upper right corner of the readme view), GitHub will create a fork for you. Then make your edits and click save. You can then open a pull request with that edit with just 2 more clicks.

mgrundkoetter commented 3 years ago

solved by #14