如何将 Datadog 中的指标与 Flink 中的执行计划运算符关联起来?
How to I relate the metrics in Datadog with execution plan operators in Flink?
在我的案例中,Flink 将指标发送给 Datadog。 Datadog 主机图如下所示{我不知道为什么在这里显示延迟}
Flink 指标被发送到本地主机。这里的问题是当
flink-conf.yaml
文件配置如下
# adding metrics
metrics.reporters: stsd , dghttp
metrics.reporter.stsd.class: org.apache.flink.metrics.statsd.StatsDReporter
metrics.reporter.stsd.host: localhost
metrics.reporter.stsd.port: 8125
# for datadog
metrics.reporter.dghttp.class: org.apache.flink.metrics.datadog.DatadogHttpReporter
metrics.reporter.dghttp.apikey: xxx
metrics.reporter.dghttp.tags: host:localhost, job_id : jobA , tm_id : task1 , operator_name : operator1
metrics.scope.operator: numRecordsIn
metrics.scope.operator : numRecordsInPerSecond
metrics.scope.operator : numRecordsOut
metrics.scope.operator : numRecordsOutPerSecond
metrics.scope.operator : latency
问题是Datadog显示了163个我不明白的指标,稍后我会解释
我不明白 datadog 中的指标格式,因为它显示的指标是这样的
现在如上图
- Latency is expressed in time
- Number of events per second is event /sec
- count is some value
所以我的问题是这是哪个指标?
另外,我的job的执行计划是这样的
如何将 Datadog 中的指标与 Flink 中的执行计划运算符关联起来?
我在 Flink API 1.3.2 中读到我可以使用标签,我尝试在 flink-conf.yaml 文件中使用它们,但我不完全了解它们在这里的意义。
在这种情况下,我的最终目标是找出每个运算符的运算符延迟、输出和输入/秒的记录数
这里有各种各样的问题。
1.您错误地配置了范围格式。 (metrics.scope.operator)
一方面,配置没有意义,因为您多次指定 "metrics.scope.operator";只有最后一个配置条目被接受。
其次,更重要的是,您误解了范围格式的用途。
范围格式配置哪些上下文信息(如任务 ID)包含在报告的指标名称中。
通过将其设置为常量 ("latency"),您已告诉 Flink 不包含任何内容。因此,每个操作员的 numRecordsIn 指标报告为 "latency.numRecordsIn".
我建议只删除您的示波器配置。
2。您错误配置了 Datadog 标签
我不明白你试图用你的标签配置做什么。
标签配置选项只能用于提供全局标签,即附加到每个指标的标签,如"Flink".
根据默认,Datadog 报告的每个指标都为每个可用范围变量附加了标签。
因此,如果您的操作员名称为 A,则 numRecordsIn 指标将使用标记 "operator_name:A" 进行报告。
同样,我建议只删除您的配置。
在我的案例中,Flink 将指标发送给 Datadog。 Datadog 主机图如下所示{我不知道为什么在这里显示延迟}
Flink 指标被发送到本地主机。这里的问题是当
flink-conf.yaml
文件配置如下
# adding metrics
metrics.reporters: stsd , dghttp
metrics.reporter.stsd.class: org.apache.flink.metrics.statsd.StatsDReporter
metrics.reporter.stsd.host: localhost
metrics.reporter.stsd.port: 8125
# for datadog
metrics.reporter.dghttp.class: org.apache.flink.metrics.datadog.DatadogHttpReporter
metrics.reporter.dghttp.apikey: xxx
metrics.reporter.dghttp.tags: host:localhost, job_id : jobA , tm_id : task1 , operator_name : operator1
metrics.scope.operator: numRecordsIn
metrics.scope.operator : numRecordsInPerSecond
metrics.scope.operator : numRecordsOut
metrics.scope.operator : numRecordsOutPerSecond
metrics.scope.operator : latency
问题是Datadog显示了163个我不明白的指标,稍后我会解释
我不明白 datadog 中的指标格式,因为它显示的指标是这样的
现在如上图
- Latency is expressed in time
- Number of events per second is event /sec
- count is some value
所以我的问题是这是哪个指标?
另外,我的job的执行计划是这样的
如何将 Datadog 中的指标与 Flink 中的执行计划运算符关联起来?
我在 Flink API 1.3.2 中读到我可以使用标签,我尝试在 flink-conf.yaml 文件中使用它们,但我不完全了解它们在这里的意义。
在这种情况下,我的最终目标是找出每个运算符的运算符延迟、输出和输入/秒的记录数
这里有各种各样的问题。
1.您错误地配置了范围格式。 (metrics.scope.operator)
一方面,配置没有意义,因为您多次指定 "metrics.scope.operator";只有最后一个配置条目被接受。
其次,更重要的是,您误解了范围格式的用途。
范围格式配置哪些上下文信息(如任务 ID)包含在报告的指标名称中。
通过将其设置为常量 ("latency"),您已告诉 Flink 不包含任何内容。因此,每个操作员的 numRecordsIn 指标报告为 "latency.numRecordsIn".
我建议只删除您的示波器配置。
2。您错误配置了 Datadog 标签
我不明白你试图用你的标签配置做什么。
标签配置选项只能用于提供全局标签,即附加到每个指标的标签,如"Flink".
根据默认,Datadog 报告的每个指标都为每个可用范围变量附加了标签。
因此,如果您的操作员名称为 A,则 numRecordsIn 指标将使用标记 "operator_name:A" 进行报告。
同样,我建议只删除您的配置。