influx踩坑指南

spring中的配置:

spring:
  influx:
    url: http://localhost:8086
    user: tony
    password: 123456

pom.xml中的依赖配置:

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

增加配置类,工具类influxDBClient注入容器:


@Configuration
public class InfluxDBConfig {

    @ConfigurationProperties(prefix = "spring.influx")
    @Bean
    public InfluxDBClient influxDBClient(InfluxDbProperties influxDbProperties) {
        String serverURL = influxDbProperties.getUrl(),
                username = influxDbProperties.getUser(),
                password = influxDbProperties.getPassword();
        String retentionPolicyName = "thirty_days";
        String databaseName="uny";
        InfluxDBClient  influxDBClient = InfluxDBClientFactory.createV1(serverURL, username, 		password.toCharArray(),databaseName,retentionPolicyName);
        return influxDBClient;
    }

}

装配使用:

	@Resource
    private InfluxDBClient influxDBClient;

    @Override
    public List<Cpu> selectChartDataList(TimeSearchDTO DateZoneParams) {

        String sql = "select * from cpu " ;
        if( DateZoneParams != null ){
            sql = sql + " where time > '"+ DateZoneParams.getStartTime() +" 00:00:00' and time <'"+ 	DateZoneParams.getEndTime() +" 23:59:59' ";
        }
        //返回实体
        List<Cpu> dataList = InfluxUtil.query(influxDBClient,Cpu.class, sql);
        return dataList;
    }

常用方法:

package com.ruoyi;

import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.WriteApiBlocking;
import com.influxdb.client.domain.WritePrecision;
import com.ruoyi.quartz.domain.server.QzServer;
import com.ruoyi.quartz.task.ServerTask;
import com.ruoyi.uny.entity.Cpu;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;

@SpringBootTest
public class InfluxdbTest {

    @Autowired
    ServerTask serverTask;

    @Resource
    private InfluxDBClient influxDBClient;

    @Test
    void contextLoads() throws Exception{
        System.out.println("-------------->>>>>>>>>>>111");
//        //返回实体
//        String sql = "select * from cpu where ip='192.168.101.200' " ;
//        List<Cpu> dataList = InfluxUtil.query(influxDBClient,Cpu.class, sql);
//        dataList.forEach(System.out::println);


        WriteApiBlocking writeApi = influxDBClient.getWriteApiBlocking();
        for (int i = 0; i < 100; i++) {
            QzServer qzServer = new QzServer();
            qzServer.copyTo();
            Cpu cpu = new Cpu();
            cpu.setIp(qzServer.getQzSys().getComputerIp())
                    .setMemUsed(qzServer.getMem().getUsed())
                    .setMemFree(qzServer.getMem().getFree())
                    .setMemUsage(qzServer.getMem().getUsage())
                    .setCpuUsed( qzServer.getQzCpu().getUsed())
                    .setCpuTotal(qzServer.getQzJvm().getTotal())
                    .setJvmUsage(qzServer.getQzJvm().getUsage());
//                .setTime(Instant.now());
            写入对象
            writeApi.writeMeasurement( WritePrecision.MS, cpu);
            Thread.sleep(1000);
        }
    }
}

踩坑指南:

com.influxdb.exceptions.ForbiddenException
	at com.influxdb.internal.AbstractRestClient.responseToError(AbstractRestClient.java:119)
	at com.influxdb.internal.AbstractQueryApi$1.onResponse(AbstractQueryApi.java:220)
	at com.influxdb.internal.AbstractQueryApi.query(AbstractQueryApi.java:247)
	at com.influxdb.internal.AbstractQueryApi.query(AbstractQueryApi.java:199)
	at com.influxdb.internal.AbstractQueryApi.queryRaw(AbstractQueryApi.java:153)
	at com.influxdb.client.internal.QueryApiImpl.queryRaw(QueryApiImpl.java:955)
	at com.influxdb.client.internal.QueryApiImpl.queryRaw(QueryApiImpl.java:675)
	at com.influxdb.client.internal.QueryApiImpl.queryRaw(QueryApiImpl.java:613)
	at com.influxdb.client.internal.QueryApiImpl.queryRaw(QueryApiImpl.java:603)
	at com.ruoyi.quartz.task.ServerTask.saveServerDataToInfluxDB(ServerTask.java:79)

java客户端查询报上述错误:
代码块

打开服务根目录下的influxdb.conf文件,去掉这一行的注解(前面的#):
flux-enabled = true

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值