package com.cnbm.influx.controller; import com.cnbm.common.spc.util.DataUtils; import com.cnbm.influx.config.InfluxClient; import com.cnbm.influx.param.PageInfo; import com.cnbm.influx.param.QueryDataParam; import com.cnbm.influx.param.Range; import com.cnbm.influx.param.Tag; import com.cnbm.influx.template.Event; import com.influxdb.client.InfluxDBClient; import com.influxdb.client.domain.WritePrecision; import com.influxdb.client.write.Point; import com.influxdb.query.FluxRecord; import com.influxdb.query.FluxTable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.time.Instant; import java.util.ArrayList; import java.util.List; @RestController @RequestMapping("/influx") public class S7DemoController { private static final Logger logger = LoggerFactory.getLogger(S7DemoController.class); @PostMapping("/insertBatch") public void insertBatch() throws InterruptedException { List list = new ArrayList<>(); for(int i=0;i<99;i++){ Thread.sleep(100); Event event = new Event(); event.setTime(Instant.now()); event.setTransationId("asas"+i); event.setArgName("arg7"); event.setArgValue(new Double(i)); list.add(event); } InfluxClient.Client.batchInsert(list,"ASProcessCompleteEventAS"); } /** * 测试连接是否正常 * * @return * true 服务正常健康 * false 异常 */ @PostMapping("/ping") public void ping() throws InterruptedException { boolean ping = InfluxClient.Client.ping(); System.out.println(ping); } @PostMapping("/query") public void query() throws InterruptedException { List list = new ArrayList<>(); QueryDataParam queryDataParam = new QueryDataParam(); queryDataParam.setBucket("qgs-bucket"); queryDataParam.setMeasurement("ASProcessCompleteEventAS"); queryDataParam.setDropedTagName("transationId"); queryDataParam.setTag(new Tag("argName","arg6")); queryDataParam.setRange(new Range(DataUtils.getBeforeDate(10).toInstant(),Instant.now())); queryDataParam.setPageInfo(new PageInfo(1,10)); List query = InfluxClient.Client.query(queryDataParam); for (FluxTable fluxTable : query) { List records = fluxTable.getRecords(); for (FluxRecord fluxRecord : records) { System.out.println("value: " + fluxRecord.getValueByKey("_value")); } } System.out.println(); } public static void main(String[] args) { List list = new ArrayList<>(); QueryDataParam queryDataParam = new QueryDataParam(); queryDataParam.setBucket("qgs-bucket"); queryDataParam.setMeasurement("ASProcessCompleteEventAS"); queryDataParam.setDropedTagName("transationId"); queryDataParam.setTag(new Tag("argName","arg7")); queryDataParam.setRange(new Range(DataUtils.getBeforeDate(10).toInstant(),Instant.now())); queryDataParam.setPageInfo(new PageInfo(2,10)); List query = InfluxClient.Client.query(queryDataParam); for (FluxTable fluxTable : query) { List records = fluxTable.getRecords(); for (FluxRecord fluxRecord : records) { System.out.println("value: " + fluxRecord.getValueByKey("_value")); } } } public Point insert(Event event, String measurement){ Point point = Point.measurement(measurement) .addTag("transationId", event.getTransationId()) .addTag("argName", event.getArgName()) .addField("argValue", event.getArgValue()) .time(event.getTime().toEpochMilli(), WritePrecision.MS); return point; } @PostMapping("/insert") public void insert() throws InterruptedException { Event event = new Event(); event.setTime(Instant.now()); event.setTransationId("asasd11"); event.setArgName("argName11"); event.setArgValue(900001d); Point asProcessCompleteEvent = insert(event, "ASProcessCompleteEvent"); InfluxClient.Client.insert(event,"ASProcessCompleteEvent"); } }