influxdb - influx V2.x:按通量分组
问题描述
我们想从 Influx V1.x 迁移到 V2.x,并或多或少地用 V2.x 编写 Influx Points,如下所示:
private static void writePoint(InfluxDBClient influxDBClient
, WriteOptions writeOptions
, String bucket
, String org
, InfluxPoint pi
) {
try (WriteApi writeApi = influxDBClient.getWriteApi(writeOptions)) {
long ms=Instant.now().toEpochMilli();
Point point = Point.measurement("blume_measurement1")
.addTag("laufid",String.valueOf(pi.getLaufId()))
.addTag("request",pi.getRequest())
.addTag("subtype",pi.getSubtype())
.addTag("action",pi.getAction().toString())
.addTag("actionCode",pi.getActionCode())
.addField("id", pi.getId())
.addField("value", pi.getValue())
.addField("responseTime", pi.getResponseTime())
.time(ms, WritePrecision.MS);
writeApi.writePoint(bucket,org,point);
} catch (RuntimeException e) {
...
}
}
在 Grafana 中,对于 Influx V1.x,我们使用 InfluxQL 对点进行分组和聚合并生成表格输出。
SELECT sum("value") FROM $measurement WHERE "laufid"='$laufid' GROUP BY "request","subtype","action","actionCode"
也就是说,我们不是按时间聚合,而是基于应用程序标签。这工作得很好,而且速度也很快,有数千万点。
如何使用 Influx V2.x 的助焊剂做到这一点?
谢谢沃尔夫冈