LoginSignup
0
1

More than 5 years have passed since last update.

Cloud Dataflowでworkerのメモリ使用量など追加のメトリクスを取得する

Last updated at Posted at 2018-10-20

概要

Cloud Dataflowで、WorkerのGCEインスタンスにStackdriver Monitoring agentを起動し、追加のメトリクスを取得する。

Cloud Dataflowでジョブを起動するとジョブに関するメトリクスがStackdriver経由で収集されるが、workerとして起動されるGCEインスタンスのメモリ使用量やJVMに関するメトリクスはデフォルトでは見ることができない。

背景

「Dataflow、Python SDK、ストリーミング」の組み合わせでパイプラインを実行していたが、定期的に処理が停止してしまう問題が発生した。

原因として、メモリを使い切っている可能性があり、その調査のためにメモリ使用量を継続的に取得したかった。

ちなみに使っているapache-beamのPython SDKのバージョンは2.6.0および2.7.0。2.7.0にバージョンを上げたら問題が悪化したため(停止する頻度が高まった)、2.6.0に戻して使っている。

方法

ドキュメントにある通り、パイプラインの起動をオプションに--experiments=enable_stackdriver_agent_metricsを追加する。

PythonのPipelineOptionsあたりのオブジェクトから--experimentsを設定するには、DebugOptionsを使う必要があるっぽい。
https://github.com/apache/beam/blob/master/sdks/python/apache_beam/options/pipeline_options.py#L570

余談

最近のリリースでJVMのメトリクスも取れるようになったようです。(未検証)

以上です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1