Apache flink 如何使用Prometheus metrics监测Grafana中的Flink背压

Apache flink 如何使用Prometheus metrics监测Grafana中的Flink背压,apache-flink,grafana,prometheus,flink-streaming,Apache Flink,Grafana,Prometheus,Flink Streaming,Flink Web UI有一个出色的背压部分。但我看不到普罗米修斯记者(Prometheus reporter)给出的任何指标,这些指标可以用与Grafana仪表板相同的方式检测背压 有没有办法在Flink Web UI之外获得相同的指标?使用此处描述的指标。或者甚至使用普罗米修斯刮板刮取web api?Flink仪表板上显示的背压监控没有使用metrics系统,因此MetricsReporter无法提供这些值。但您可以通过at访问此信息 虽然这种背压检测机制很有用,但它也有其局限性。它通过调

Flink Web UI有一个出色的背压部分。但我看不到普罗米修斯记者(Prometheus reporter)给出的任何指标,这些指标可以用与Grafana仪表板相同的方式检测背压


有没有办法在Flink Web UI之外获得相同的指标?使用此处描述的指标。或者甚至使用普罗米修斯刮板刮取web api?

Flink仪表板上显示的背压监控没有使用metrics系统,因此MetricsReporter无法提供这些值。但您可以通过at访问此信息

虽然这种背压检测机制很有用,但它也有其局限性。它通过调用Thread.getStackTrace来工作,这很昂贵,一些操作符(如AsyncFunction)在未被采样的线程中执行关键活动

调查背压的另一种方法是在flink-conf.yaml中设置此配置选项

taskmanager.network.detailed-metrics: true

然后,您可以查看测量入站/出站网络队列长度的指标。

Hi。谢谢你的回答。您能提供一些关于入站/出站网络队列长度的更多信息吗?假设这是inputQueueLength,则说明为“排队输入缓冲区的数量”。这不是很清楚,是内部缓冲区中等待使用者的事件计数吗?这个队列长度有多大也有上限吗?换句话说,虽然我知道0内部缓冲区长度意味着没有背压,但我如何知道它是高还是低。除了没有输入缓冲区的源和没有输出缓冲区的汇,您可以查看输入和输出队列。一个缓冲区中有多少事件取决于,因为缓冲区已满或缓冲区超时时发送,但通常一个缓冲区中会有多个事件。网络缓冲区的可用内存量是可配置的,所需内存量随所涉及的并行性而变化。您可能需要进行实验,并观察maxQueueLength等指标。而且你可能会从flink用户邮件列表中得到更具洞察力的建议。
taskmanager.network.detailed-metrics: true