PCFのbosh-prometheus をWavefront Proxyにつなげる
始めに
Pivotal Cloud Foundry(PCF)を管理する場合、一つの監視方法として、bosh-prometheusという手段があります。
これは、Prometheus、Grafanaなどの管理コンポーネントをインストールするためのコンポーネントです。
これだけで、監視を完成させることができるかもしれないですが、Prometheusの以下の特性に悩まされるかもしれないです。
- データのバックアップや可用性
- 長期のRetention期間でメトリクスを保管
- パフォーマンス要件
これらの一つの解決方法として、Prometheusのストレージ連携先としてWavefrontを使う方法です。
Prometheusをあくまで、テンポラリーストレージとして使い、長期データの保管先やメトリクスの分析先としてWavefront使います。
イメージ
Prometheusの連携イメージは以下のとおりです。
すでにPrometheusがある前提で追加のインストールが必要なのが以下です。
- Prometheus Storage Adapter for Wavefront
- Wavefront Proxy
Wavefront Proxyに関しては、Wavefront Nozzleをインストールすることで、追加されます。
よってこの記事では、Prometheus Storage Adaptor for Wavefrontの接続方法を中心に紹介します。
準備編
PCF環境とbosh-prometheusのインストールを完了してください。
さらに、以下の記事にあるとおり、Wavefront Nozzleをインストールしてください。
https://qiita.com/hmachi/items/fd2621d5aa7126e98c5e
Prometheus Storage Adaptorのインストール
インストール方法は、このGithubにあるとおりです。
StandaloneとDockerイメージの方法が紹介されています。
今回は手早く始めるために、Dockerイメージをcf pushして使う方法でためします。
まず、cfでdiego_dockerを有効にします。
$ cf enable-feature-flag diego_docker
その後、cf pushでdockerイメージを起動します。
-c
の引数の中の-proxy
はそれぞれの環境の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
に-o <yaml_file>
で再度Prometheusをデプロイします。(これは、それぞれのbosh-promethesのデプロイされ方によって、異なるので割愛します)
これで完了です。もし、ただし起動していない場合、以下のLogなどでデバッグしてください。
$ cf logs wf-prom-proxy
Wavefrontでは、どうみえるか
ここまで設定すると、WavefrontにPrometheusのメトリクスが見えてくるはずです。
メトリクスは以下のロジックでみえるようになります。
-
_
アンダースコアを.
ドットに切り替える - 接頭語に
-prefix
を指定したものが付与される。
例えば以下のようにbosh_deployment_instances
というPrometheusのメトリクスは
Wavefrontからはprom.bosh.deployment.instances
としてみえるようになります。
PPSはどうなるか?
Wavefrontで注意しないといけないのが、課金方式が秒あたりのメトリクス転送量(Points Per Sec)が課金料に影響するという点です。
実際実機でみたところ、接続直後にバーストしましたが、その後、Prometheus接続後私の環境では +100pps で落ち着きました。
ただ、注意が必要なのが、これはPrometheusのRemote WriteのTuningが関係しています。
より大きな環境の場合、特にmax_samples_per_sendに注視しつつ、メトリクスが落ちていないかなどをモニターしながら適切な値のチューニングが必要と思われます。
Author And Source
この問題について(PCFのbosh-prometheus をWavefront Proxyにつなげる), 我々は、より多くの情報をここで見つけました https://qiita.com/hmachi/items/6c4fcf965aaac6c4904e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .