以下のように設定した cloud-dataflow にストリーミング パイプラインがありMetrics.counter
ます。
class SomeDoFn extends DoFn {
val validIdCounter = Metrics.counter("user-type", "valid_ids")
val invalidIdCounter = Metrics.counter("user-type", "invalid_ids")
@ProcessElement
def process(c: ProcessContext): Unit = {
val userId = getId(c.element) match {
case Success(id) =>
validIdCounter.inc()
Some(id)
case Failure(e) =>
invalidIdCounter.inc()
None
}
...
}
Stackdriver Monitoring で指標を確認し、それに対するアラートを作成できます。しかし、パイプラインを再起動すると、メトリックがゼロになります。それは期待される動作ですか?ジョブとジョブ実行の間でメトリックを保持する方法はありますか?