在Flink中,我使用Python在FlatMapFunction中生成自定义度量。
class OccupancyEventFlatMap(FlatMapFunction):
def open(self, runtime_context: RuntimeContext):
mg = runtime_context.get_metrics_group()
self.counter_sum = mg.counter("my_counter_sum")
self.counter_total = mg.counter("my_counter_total")
def flat_map(self, value):
self.counter_sum.inc(10)
self.counter_total.inc()
[{"id":"0.FlatMap.my_counter_sum","value":"28201"}]
但是我在Datadog中没有看到任何自定义度量,但是我看到了所有的标准Flink度量。
这是我在Flink中为Datadog出口商配置的
# Datadog
metrics.reporter.dghttp.class: org.apache.flink.metrics.datadog.DatadogHttpReporter
metrics.reporter.dghttp.dataCenter: US
metrics.reporter.dghttp.apikey: ${datadog_api_key}
metrics.reporter.dghttp.tags: env:development
# https://docs.datadoghq.com/integrations/flink/#configuration
metrics.scope.jm: flink.jobmanager
metrics.scope.jm.job: flink.jobmanager.job
metrics.scope.tm: flink.taskmanager
metrics.scope.tm.job: flink.taskmanager.job
metrics.scope.task: flink.task
metrics.scope.operator: flink.operator
这是我第一次将自定义指标从Flink发送到Datadog。
我做错什么了吗?
谢谢
发布于 2022-11-16 18:33:52
我使用Flink 1.15文档中的配置,但在Flink 1.16上使用它
现在起作用了。这些都是需要改变的地方。
+ metrics.reporters: prom,dghttp
+
# Prometheus
- metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter
+ metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory
metrics.reporter.prom.port: 9249
# Datadog
- metrics.reporter.dghttp.class: org.apache.flink.metrics.datadog.DatadogHttpReporter
+ metrics.reporter.dghttp.factory.class: org.apache.flink.metrics.datadog.DatadogHttpReporterFactory
https://stackoverflow.com/questions/74462561
复制相似问题