我正在使用结构化流来从Kafka读取数据并创建各种聚合指标。我使用metrics.properties
启用了Graphite接收器。我见过较旧的Spark版本中的应用程序具有与流相关的指标。我没有看到结构化流媒体的流媒体相关指标。我究竟做错了什么?
例如 - 无法找到未处理的批次或运行批次或上次完成的批次总延迟。
我已通过设置
启用了流媒体指标SparkSession.builder().config("spark.sql.streaming.metricsEnabled",true)
即便如此,我只得到3个指标:
这些指标之间存在差距。它也会在应用程序启动后很晚才开始显示。如何向grafana获取广泛的流媒体相关指标?
我查了StreamingQueryProgress
。我们只能使用此方法以编程方式创建自定义指标。有没有办法可以消耗Spark流已经发送到我提到的接收器的指标?
答案 0 :(得分:2)
您仍然可以找到其中一些指标。实际启动流式传输线束的查询有两种方法 - lastProgress和recentProgress
它们公开了详细信息,例如处理的行数,批处理的持续时间,批处理中的输入行数等。在json
中还有一个方法可以一次性获取所有这些信息,这些信息可能用于发送给某些度量收集器。