ujamii/prometheus-sentry-exporter

导出sentry项目指标到Prometheus。

v0.10.1 2024-07-12 07:42 UTC

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_HOSTAUTH_TOKENUSE_THROTTLINGHTTP_PROTO。前两个是必需的,HTTP_PROTO是可选的,默认设置为https。如果您使用Sentry云,则SENTRY_HOST变量必须为“sentry.io”。当您将USE_THROTTLING设置为true/TRUE1时,导出器将限制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
...