首页 > 解决方案 > 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 的助焊剂做到这一点?

谢谢沃尔夫冈

标签: influxdb

解决方案


推荐阅读