如何从 Cadence 工作流或 activity 发出自定义指标?
How can I emit custom metrics from a Cadence workflow or activity?
Cadence 使用 tally 发出一堆指标。是否可以使用 Cadence SDK 发出我自己的指标?
Go SDK有cadence.GetMetricsScope().Counter(counterName).Inc()
但是我直接调用好像不行。我是否缺少一些必需的配置?
您可以使用 Go 和 Java SDK 添加自己的指标。下面的例子展示了如何使用 Go SDK 来实现,Java SDK 与它没有太大区别。
在工作流代码中:
cadence.GetMetricsScope().Counter(counterName).Inc(1)
在activity代码中:
cadence.GetActivityMetricsScope().Counter(counterName).Inc(1)
但是,仅仅这样做并不足以实际发出指标。原因是 tally 默认使用 tally.NoopScope
,顾名思义,它什么都不做。因此,您还需要将 MetricsScope
设置为 WorkerOptions
的一部分,如下例所示:
workerOptions := cadence.WorkerOptions{
MetricsScope: myTallyScope,
}
worker := cadence.NewWorker(service, domain, taskList, workerOptions)
Cadence 使用 tally 发出一堆指标。是否可以使用 Cadence SDK 发出我自己的指标?
Go SDK有cadence.GetMetricsScope().Counter(counterName).Inc()
但是我直接调用好像不行。我是否缺少一些必需的配置?
您可以使用 Go 和 Java SDK 添加自己的指标。下面的例子展示了如何使用 Go SDK 来实现,Java SDK 与它没有太大区别。
在工作流代码中:
cadence.GetMetricsScope().Counter(counterName).Inc(1)
在activity代码中:
cadence.GetActivityMetricsScope().Counter(counterName).Inc(1)
但是,仅仅这样做并不足以实际发出指标。原因是 tally 默认使用 tally.NoopScope
,顾名思义,它什么都不做。因此,您还需要将 MetricsScope
设置为 WorkerOptions
的一部分,如下例所示:
workerOptions := cadence.WorkerOptions{
MetricsScope: myTallyScope,
}
worker := cadence.NewWorker(service, domain, taskList, workerOptions)