获取Drone CI服务器的指标数据

首先

在无人机服务器上,通过/metrics端点公开了Prometheus可用的指标。

https://drone.example.com/metrics

可以查看由 Go 运行时公开的性能指标和构建次数等 Drone 特定的指标。

指标
https://docs.drone.io/zh/server/metrics/

在上述文档中还详细说明了获取指标的方法,但是截至2020年3月似乎有轻微错误,因此我在此记录下正确的步骤。

要注意的事项

据推测,仅限Enterprise Edition才能获取指标。
即使在Open Source Edition(OSS版)中向/metrics端点发送请求,
也会收到空的响应。

在Docker Hub上发布的图像(https://hub.docker.com/r/drone/drone)是企业版。个人或年总收入小于100万美元的组织可以免费使用。其他组织需要购买商业许可证,但可以免费试用5000个构建。

企业常见问题解答
https://docs.drone.io/enterprise/

由于OSS版没有公开Docker镜像等,因此需要根据以下步骤来从源代码构建。

操作步骤

访问指标终端需要用户的身份验证令牌。
以下是创建用于监控的用户并获取度量的示例。
使用无人机 CLI(https://docs.drone.io/cli/install/)。
※创建用户需要管理员权限。

$ drone --verison
drone version 1.2.1

$ export DRONE_SERVER=http://drone.exapmle.com
$ export DRONE_TOKEN=60aac7c4e6c45c7fdab05b4aade6be28
$ drone info
User: your_username
Email:

创建一个名为”Monitor”的机器用户。
您可以自由地设置用户名。

$ openssl rand -hex 16
40528980ea85811431e065ef1bbc340b

$ drone user add monitor --machine --token=40528980ea85811431e065ef1bbc340b
Successfully added user monitor
Generated account token h1GmYpjK49dEKLqfctqQWFlUaQon9z8J

您可以使用生成的令牌访问/metrics端点。
请将授权头部的值以Authorization: Bearer 的格式发送请求。

$ curl -i https://drone.example.com/metrics -H "Authorization: Bearer h1GmYpjK49dEKLqfctqQWFlUaQon9z8J"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0HTTP/1.1 200 OK
Content-Length: 5933
Content-Type: text/plain; version=0.0.4; charset=utf-8
Date: Fri, 13 Mar 2020 04:56:44 GMT
以下メトリクスの出力は省略

如果要使用Prometheus获取指标,可以通过在scrape_configs中添加以下定义来引用值。

  - job_name: 'drone'
    # コンテナにマウントしたファイルを参照
    bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    # もしくはbearer_tokenで直書き
    # bearer_token: h1GmYpjK49dEKLqfctqQWFlUaQon9z8J

    static_configs:
    - targets: ['drone.example.com']
image.png

如果没有访问令牌,将会出现拒绝访问的状态。

$ curl -i https://drone.example.com/metrics
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    36  100    36    0     0    734      0 --:--:-- --:--:-- --:--:--   750HTTP/1.1 401 Unauthorized
Content-Type: text/plain; charset=utf-8
X-Content-Type-Options: nosniff
Date: Fri, 13 Mar 2020 07:57:21 GMT
Content-Length: 36

Invalid or missing prometheus token

如果是OSS版本,则会返回空响应。

$ curl -i https://drone.example.com/metrics
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0HTTP/1.1 200 OK
Date: Sat, 07 Mar 2020 01:27:12 GMT
Content-Length: 0

希望这些对你有所帮助。

广告
将在 10 秒后关闭
bannerAds