如何使用 jmeter+influxDB+Grafana Stack 在 grafana 中生成 "connect time over time" 图?

How can i generate a "connect time over time" graph in grafana with jmeter+influxDB+Grafana Stack?

我知道 jmeter 有一个监听器可以生成这样的图:

但我想在 grafana 仪表板中使用它,我正在使用 InfluxDbBackendListenerClient,这些是我在 influxDB 中的 table 列:

"columns": [
                 "time",
                 "application",
                 "avg",
                 "count",
                 "countError",
                 "endedT",
                 "hit",
                 "max",
                 "maxAT",
                 "meanAT",
                 "min",
                 "minAT",
                 "pct90.0",
                 "pct95.0",
                 "pct99.0",
                 "rb",
                 "responseCode",
                 "responseMessage",
                 "sb",
                 "startedT",
                 "statut",
                 "transaction"
                ],

根据 Metrics Exposed chapter of the Real-time results Connect Time is not something which is available as per JMeter 5.2.1

您可以想出一个 AbstractBackendListenerClient 的自定义实现,它将收集和发送连接时间。

或者,您可以用连接时间替换您不感兴趣的指标,例如 Sent Bytes。可以使用 JSR223 PostProcessor 和以下简单代码来完成:

prev.setSentBytes(prev.getConnectTime())

正如您在执行时看到的那样 Sent Bytes 值变得等于 Connect Time 值因此您可以在修改图表标题的 Grafana 中绘制它:

不要忘记根据 JMeter Scoping Rules 适当地放置 JSR223 后处理器,这样它将应用于所有采样器

在上面的例子中 prev 代表 SampleResult class 实例,请参阅 Javadoc 以了解所有可用的 functions/properties。