ujamii / prometheus-sentry-exporter
导出sentry项目指标到Prometheus。
v0.10.1
2024-07-12 07:42 UTC
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
此包使用Sentry的Web API查询某些统计信息,并以OpenMetrics格式输出,以便由Prometheus抓取。
您也可以将其作为Docker容器启动。
使用方法
使用Composer或Docker使用此导出器,您需要sentry安装的域名和一个认证令牌,如果您使用的是自托管Sentry,可以通过https://<YOUR-SENTRY-HOST>/api/
创建它。如果您使用的是Sentry云,您需要通过https://sentry.io/settings/account/api/auth-tokens/
创建令牌。
使用Composer
安装
composer req ujamii/prometheus-sentry-exporter
在自定义文件中使用
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();
使用Docker
该镜像基于php:8.1-apache
,因此默认在端口80上公开数据。假设您在本地主机上使用-p 80:80
启动它,您可以在https:///metrics上看到指标。
配置通过3个环境变量进行:SENTRY_HOST
、AUTH_TOKEN
、USE_THROTTLING
和HTTP_PROTO
。前两个是必需的,HTTP_PROTO
是可选的,默认设置为https
。如果您使用Sentry云,则SENTRY_HOST
变量必须为“sentry.io”。当您将USE_THROTTLING
设置为true/TRUE
或1
时,导出器将限制API请求以防止达到速率限制。如果您有大量项目或问题,这将很有用。
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停止为组织提供免费docker hub注册表支持。现在该镜像可在GitHub容器注册表上找到。
输出
脚本将生成类似以下内容
# 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
...