Как я могу генерировать пользовательские метрики из рабочего процесса или действия Cadence? - PullRequest
0 голосов
/ 20 апреля 2020

Каденс испускает кучу метрик, используя подсчет. Можно ли создавать собственные метрики с помощью Cadence SDK?

Go SDK имеет cadence.GetMetricsScope().Counter(counterName).Inc(), но, кажется, он не работает, когда я просто вызываю его. Мне не хватает необходимой конфигурации?

1 Ответ

0 голосов
/ 20 апреля 2020

Вы можете добавить свои собственные метрики, используя как Go, так и Java SDK. В следующих примерах показано, как это сделать с помощью Go SDK, и Java SDK мало чем отличается от него.

В коде рабочего процесса:

cadence.GetMetricsScope().Counter(counterName).Inc(1)

В коде активности:

cadence.GetActivityMetricsScope().Counter(counterName).Inc(1)

Однако простого выполнения этого будет недостаточно для фактического вывода метрик. Причина в том, что в подсчете по умолчанию используется tally.NoopScope, что не делает ничего, как следует из названия. Следовательно, вам также необходимо настроить MetricsScope как часть WorkerOptions, как в следующем примере:

workerOptions := cadence.WorkerOptions{
 MetricsScope: myTallyScope, 
}
worker := cadence.NewWorker(service, domain, taskList, workerOptions)

Вы можете создать myTallyScope, следуя примерам в документации по подсчету для Go и Java.

...