ujamii / prometheus-trello-exporter
为 Trello 数据提供的度量端点。
v0.5.1
2023-05-05 12:09 UTC
Requires
- php: >=8.0
- openmetrics-php/exposition-text: ^0.3.1
- stevenmaguire/trello-php: ^1.0.0
Requires (Dev)
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2024-08-29 13:04:48 UTC
README
此软件包使用 Trello REST API 查询某些统计数据,并以 OpenMetrics 格式输出,该格式可被 Prometheus 抓取。
为了便于部署,我们还提供了一个 Docker 容器。
API 密钥
此工具在 REST API 进行认证时需要一对 API 密钥,您可以通过在 Trello 上登录并访问 trello.com/app-key 创建。
使用方法
您可以将此库包含到自己的代码中,或者以容器形式运行它。
使用 Composer
安装
composer req ujamii/prometheus-trello-exporter
在自定义文件中使用
require 'vendor/autoload.php'; $exporter = new \Ujamii\OpenMetrics\Trello\TrelloExporter('<TRELLO_API_KEY>', '<TRELLO_API_TOKEN>', '<TRELLO_ORG>'); $exporter->run();
使用 Docker
此镜像基于 php:8.1-apache
,因此默认情况下在端口 80 上暴露数据。假设您在本地主机上以 -p 80:80
运行它,您可以在 https:///metrics 上查看度量。
配置通过三个环境变量完成:用于认证的 TRELLO_API_KEY
和 TRELLO_API_TOKEN
,以及可选的 TRELLO_ORG
变量,如果您想查询组织中的看板而不是用户中的看板。
docker run -d --name trello-prometheus -e TRELLO_API_KEY=verylongfoobarkey -e TRELLO_API_TOKEN=foobarlongtoken -p "80:80" ghcr.io/ujamii/prometheus-trello-exporter
从 GitHub 获取预构建镜像
使用 Docker Compose
cp docker-compose.example.yml docker-copose.yml
vim docker-compose.yml #add env variables
docker-compose up -d
输出
脚本将生成类似以下的内容:
# TYPE trello_cards_in_list_total gauge
# HELP trello_cards_in_list_total Number of cards per list.
trello_cards_in_list_total{board="FooBar Board", list="To Do"} 2.000000
trello_cards_in_list_total{board="FooBar Board", list="In Progress"} 0.000000
trello_cards_in_list_total{board="FooBar Board", list="Done"} 16.000000
# TYPE trello_labeled_cards_on_board gauge
# HELP trello_labeled_cards_on_board Number of cards per board and label.
trello_labeled_cards_on_board{board="FooBar Board", label="on hold"} 2.000000
trello_labeled_cards_on_board{board="FooBar Board", label="late"} 1.000000
trello_labeled_cards_on_board{board="FooBar Board", label="needs input"} 5.000000
# TYPE trello_cards_per_board_member gauge
# HELP trello_cards_per_board_member Number of cards per board and member.
trello_cards_per_board_member{board="FooBar Board", member="John Doe"} 3.000000
trello_cards_per_board_member{board="FooBar Board", member="Jane Doe"} 13.000000
...