http 方式

这种方式比较轻量,直接基于 http 的访问协议进行处理。

client 包

maven

<dependency>
    <groupId>com.influxdb</groupId>
    <artifactId>influxdb-client-java</artifactId>
    <version>2.0.0</version>
</dependency>

为什么是 influxdb?二者什么关系?

java 例子

import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxDBClientFactory;
import com.influxdb.client.WriteApi;
import com.influxdb.client.domain.WritePrecision;
import com.influxdb.client.write.Point;
import java.time.Instant;

public class Write2VM {

    public static void main(String[] args) {
        String bucket = "flink";
        String org = "galaxy";
        InfluxDBClient client = InfluxDBClientFactory.create("http://localhost:8428");
        Point point = Point
                .measurement("mem")
                .addTag("vm", "pointWay")
                .addField("used_percent", 66)
                .time(Instant.now(), WritePrecision.NS);
        try (WriteApi writeApi = client.getWriteApi()) {
            writeApi.writePoint(bucket, org, point);
        }
    }
    
}

查询

在grafana中查看数据点

命令行查询

curl -G 'http://localhost:8428/api/v1/export' -d 'match={__name__=~"mem_used_percent.*"}'

结果:

{"metric":{"__name__":"mem_used_percent","vm":"pointWay"},"values":[66,88],"timestamps":[1634307675617,1634308728583]}

命令行curl写入数据到vm

参考资料

https://blog.csdn.net/ggaofengg/article/details/129344212