Spring boot 整合influxdb2

ops/2024/11/15 8:31:28/

一.服务安装

docker search influxdb
docker pull influxdb
docker run -dit --name influxdb --restart always -p 8086:8086 -v /dp/docker/file/influxdb:/var/lib/influxdb influxdb 

访问8086

初始化 账号组织和新建bucket 创建密钥 这些豆记录下来

二.项目配置

引入依赖

     <dependency><groupId>com.influxdb</groupId><artifactId>influxdb-spring</artifactId><version>7.1.0</version></dependency>

yml 配置

influx:url: http://localhost:8086/username: influxdbpassword: xjaq1234token: wOzhZxDpKrH0lyNcCCy3tG3U582ie_mrgk_UGu4Eb2UgzrhhVN0O0xyvifloxjaKzHiENIbQO7IlaxreIXnYDA==org: xjbucket: newPowerlogLevel: BODYreadTimeout: 5swriteTimeout: 5sconnectTimeout: 5smanagement:influx:metrics:export:api-version: v2enabled: truestep: 10suri: http://localhost:8086auto-create-db: trueuser-name: influxdbpassword: xjaq1234org: xjbucket: newPowertoken: wOzhZxDpKrH0lyNcCCy3tG3U582ie_mrgk_UGu4Eb2UgzrhhVN0O0xyvifloxjaKzHiENIbQO7IlaxreIXnYDA==

influx 是配置influx 配置健康检测数据会不端上传到influxdb(不配置会一直报错  因为依赖中自动帮你引入了,要么手动把他排除掉

       <dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-influx</artifactId><version>${micrometer.version}</version></dependency>

代码书写

package com.chenkang.demo.controller;import com.chenkang.demo.entity.DeviceInfo;
import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxQLQueryApi;
import com.influxdb.client.WriteApiBlocking;
import com.influxdb.client.domain.InfluxQLQuery;
import com.influxdb.client.domain.WritePrecision;
import com.influxdb.query.InfluxQLQueryResult;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;
import java.util.Map;
import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.IntStream;/*** @author chenkang* @since 2024/7/13 9:33*/
@AllArgsConstructor
@RestController
@RequestMapping("influxdb")
public class InfluxdbController {private final InfluxDBClient influxDBClient;/*** 写入数据*/@GetMapping("writeData")public void test() {WriteApiBlocking writeApiBlocking = influxDBClient.getWriteApiBlocking();IntStream.range(0, 100).forEach(i -> {DeviceInfo deviceInfo = new DeviceInfo();deviceInfo.setKey("wendu");deviceInfo.setValue(ThreadLocalRandom.current().nextDouble());//The format or precision of time series timestamps.writeApiBlocking.writeMeasurement(WritePrecision.NS, deviceInfo);});}/*** 写入数据*/@GetMapping("queryData")public void queryData() {InfluxQLQueryApi influxQLQueryApi = influxDBClient.getInfluxQLQueryApi();String query = "SELECT * from deviceInfo";InfluxQLQueryResult qlQueryResult = influxQLQueryApi.query(new InfluxQLQuery(query, "newPower").setPrecision(InfluxQLQuery.InfluxQLPrecision.SECONDS));List<InfluxQLQueryResult.Result> results = qlQueryResult.getResults();for (InfluxQLQueryResult.Result r : results) {for (InfluxQLQueryResult.Series series : r.getSeries()) {List<InfluxQLQueryResult.Series.Record> values1 = series.getValues();Map<String, Integer> columns1 = series.getColumns();System.out.println(values1);System.out.println(columns1);}}}
}
mport java.time.Instant;/*** @author chenkang* @since 2024/7/13 10:04*/
@Data
@Measurement(name = "deviceInfo")
public class DeviceInfo {@Column(timestamp = true)Instant time;/*** tag 类似索引 要求不能超过10万*/@Column(tag = true, name = "id")private String deviceId;@Column(tag = true, name = "key")private String key;@Column(name = "value")private double value;}


http://www.ppmy.cn/ops/87456.html

相关文章

HiveSQL题——炸裂+开窗

一、每个学科的成绩第一名是谁&#xff1f; 0 问题描述 基于学生成绩表输出每个科目的第一名是谁呢&#xff1f; 1 数据准备 with t1 as(selectzs as name,[{"Chinese":80},{"Math":70},{"English"…

QML编程知识——Quick动画类型详解及示例

目录 引言 一、动画的基本概念 常用的动画类型 二、动画的应用示例 1. 属性动画&#xff08;PropertyAnimation&#xff09; 2. 数值动画&#xff08;NumberAnimation&#xff09; 3. 颜色动画&#xff08;ColorAnimation&#xff09; 4. 旋转动画&#xff08;Rotation…

二叉搜索树,Map,Set,LeetCode刷题

二叉搜索树&#xff0c;Map&#xff0c;Set 1. 二叉搜索树2. 二叉搜索树的模拟实现1.1 插入操作1.2 查找操作1.3 删除操作 3. 二叉搜索树时间复杂度分析4. TreeMap和TreeSet5. Map5.1 Map的常用方法5.2 Map.Entry<K,V> 6. Set6.1 Set的常用方法 LeetCode刷题1. 二叉搜索树…

Python面试宝典第25题:括号生成

题目 数字n代表生成括号的对数&#xff0c;请设计一个函数&#xff0c;用于能够生成所有可能的并且有效的括号组合。 备注&#xff1a;1 < n < 8。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["((()))","(()())","(())()"…

POI 快速入门 Excel导入导出

Excel导入导出 1 什么是POI POI简介&#xff08;Apache POI&#xff09;&#xff0c;Apache POI是Apache软件基金会的开放源码函式库&#xff0c;POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 Apache POI官网http://poi.apache.org/ HSSF &#xff0d; 提…

数据灾备及时恢复应急预案

第一节总则 1&#xff0c;灾难备份的目的 为了规范本所重要数据备份清单的建立&#xff0c;备份的职责&#xff0c;备份的检查。以及系统受到破坏后的恢复工作&#xff0c;合理防范计算机及信息系统使用过程中的风险&#xff0c;特制定本预案。 2&#xff0c;灾难恢复的定义 灾…

数据挖掘-数据预处理

来自&#x1f96c;&#x1f436;程序员 Truraly | 田园 的博客&#xff0c;最新文章首发于&#xff1a;田园幻想乡 | 原文链接 | github &#xff08;欢迎关注&#xff09; 文章目录 3.3.1 数据的中心趋势平均数和加权平均数众数&#xff0c;中位数和均值描述数据的离散程度 &a…

Java实战 - 查找最长递增子序列

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有疑问和建议&#xff0c;请私信或评论留言&#xff01; 前言 在计算机科学中…