将PCF的bosh-prometheus连接到Wavefront代理
首先
在管理Pivotal Cloud Foundry(PCF)时,有一种监控方法可选,即使用bosh-prometheus。
这是一种组件,用于安装管理组件,如Prometheus和Grafana。
也许只要这样做,就可以实现监控,但可能会受到Prometheus以下特性的困扰。
-
- データのバックアップや可用性
-
- 長期のRetention期間でメトリクスを保管
- パフォーマンス要件
作为解决方案之一,可以使用Wavefront作为Prometheus的存储集成点。Prometheus仅用作临时存储,而Wavefront则用作长期数据存储和指标分析的目标。
形象
Prometheus的协作图像如下所示。

以下是在假定已经安装了Prometheus的情况下需要进行额外安装的内容。
-
- Prometheus Storage Adapter for Wavefront
- Wavefront Proxy
通过安装Wavefront Nozzle,可以添加Wavefront Proxy。
因此,在本文中,我将重点介绍连接Prometheus存储适配器和Wavefront的方法。
准备编辑
请完成PCF环境和bosh-prometheus的安装。
请按照下文所述的方法安装Wavefront Nozzle:
https://qiita.com/hmachi/items/fd2621d5aa7126e98c5e
安装 Prometheus 存储适配器。
安装方法如同该Github页面中所述。
包括独立安装和Docker镜像安装两种方法。
为了快速开始,我们将使用通过cf push命令使用Docker镜像的方法。
首先,我们会在cf中启用diego_docker。
$ cf enable-feature-flag diego_docker
接下来,使用`cf push`来启动Docker镜像。
请在-c参数的引用中指定每个环境的Wavefront Proxy的IP地址。
此外,请将-prefix设置为可区分的内容以成为Wavefront指标的前缀。
$ cf push wf-prom-proxy --docker-image wavefronthq/prometheus-storage-adapter -c '/bin/adapter -proxy 192.168.3.5 -proxy-port 2878 -listen 8080 -prefix prom'
完成之后,为了以防万一,我会使用Curl确认服务是否正常运行。
% curl http://wf-prom-proxy.apps.SYSTEM_DOMAIN/health
{"Message":"OK"}
如果显示为 {“Message”:”OK”} ,那就意味着服务已经启动,所以基本上是成功的。
再次重建bosh-prometheus
本次将重新配置bosh-prometheus,并将数据发送到创建的适配器。
我将创建以下的Yaml文件。
- type: replace
path: /instance_groups/name=prometheus2/jobs/name=prometheus2/properties/prometheus/remote_write?/-
value:
url: http://wf-prom-proxy.apps.SYSTEM_DOMAIN/receive
完成后,我们将使用”bosh deploy”命令再次部署Prometheus,使用”-o”和<yaml文件>参数。(这会根据每个bosh-prometheus的部署方式而异,具体细节略去)
这样就完成了。如果没有启动的话,请通过以下日志进行调试。
$ cf logs wf-prom-proxy
在Wavefront中,看起来如何?
如果设置到这一步,那么Prometheus的指标应该可以在Wavefront中看到。
指标将按以下逻辑可见。
_アンダースコアを.ドットに切り替える
接頭語に-prefixを指定したものが付与される。
例如,以bosh_deployment_instances这样的Prometheus指标为例。

Wavefront会将其显示为prom.bosh.deployment.instances。

PPS会怎样呢?
在使用Wavefront时需要注意的是,计费方式是按每秒的度量传输量(Points Per Sec)来计费的。实际在真机上测试时,刚连接上后会有突发性的传输量增加,但之后,在连接Prometheus后,我的环境稳定在每秒增加100个点。

然而,值得注意的是,这与Prometheus的Remote Write的调优有关。
在更大的环境下,特别是在注视max_samples_per_send,并监视度量是否下降的情况下,似乎需要根据合适的值进行调整。