仪表化 Go 应用程序
Prometheus 提供了一个官方的 Go 客户端库,你可以使用它来仪表化(instrumenting) Go 应用程序。在本指南中,我们将创建一个简单的 Go 应用程序,通过 HTTP 露出 Prometheus 元数据。
**注意:**为了获取全面的 API 文档,请参阅 Prometheus 各个 Go 库的 GoDoc。
安装
你可以使用go get
(了解更多信息)安装用于本指南所需的prometheus
、promauto
和 promhttp
库:
Go 指标暴露的原理
为了在 Go 应用程序中暴露 Prometheus 元指标,你需要提供一个/metrics
的 HTTP 端点。可以使用prometheus/promhttp
库中的 HTTP Handler
(查看文档)作为 handler 函数。
例如,这个简化后的应用程序会通过http://localhost:2112/metrics
暴露 Go 应用程序的默认元指标:
启动应用程序:
访问元指标:
添加自定义元指标
上面的示例仅展示了 Go 应用程序的默认元指标。你还可以注册自定义的元指标。此示例应用程序通过myapp_processed_ops_total
Counter 跟踪到目前为止处理的操作总数。每2秒,Counter 递增一次。
要运行应用程序:
要访问元指标:
在元指标输出中,你将看到帮助文本、类型信息和 myapp_processed_ops_total
Counter 的最新值:
可以配置本地运行的 Prometheus 实例以从应用程序收集元指标。以下是一个示例 prometheus.yml
配置:
其他 Go 客户端功能
在本指南中,我们仅覆盖了 Prometheus Go 客户端库提供的少数功能。你还可以暴露其他元指标类型(如 Gauge 和 Histogram、非全局 Registry)、向 Prometheus Pushgateway 推送元指标的函数、将 Prometheus 和 Graphite 桥接及其他功能。
总结
在本指南中,你创建了两个示例 Go 应用程序,它们都能够将元指标暴露给 Prometheus
- 一个仅露出了默认的 Go 元指标,
- 另一个还暴露了自定义的 Prometheus Counter
同时我们也配置了一个 Prometheus 实例以从这些应用程序中收集元指标。
该文档基于 Prometheus 官方文档翻译而成。