Как вы можете видеть в примере, я пытаюсь измерить метрики для преобразования в apache луч.
internal class CountLatencyFN : DoFn<Measurement?, Measurement>() {
@ProcessElement
fun processElement(c: ProcessContext, out: OutputReceiver<Measurement>) {
if (c.element() != null) {
val latency: Double = (System.currentTimeMillis() - c.element()!!.timestamp).toDouble()
Gauge.build()
.name("latency")
.help("latency")
.register().set(latency)
PushGateway("pushgateway.local.com:9091")
.pushAdd(CollectorRegistry.defaultRegistry, "myjob")
out.output(c.element())
}
}
}
Однако я получаю эту ошибку:
Error message from worker: java.lang.IllegalArgumentException: Collector already registered that provides name: latency
Как сохранить реестр, чтобы я мог повторно использовать его между DoFns?