Go操作influxDB

influxDB

安装

下载

https://portal.influxdata.com/downloads/

这里需要注意因为这个网站引用了google的api所以国内点页面的按钮是没反应的,怎么办呢?

按照下图所示,按F12打开浏览器的控制台,然后点击Elements,按下Ctrl/Command+F搜索releases/influxdb,按回车查找自己所需版本的下载地址。

Mac和Linux用户可以点击https://v2.docs.influxdata.com/v2.0/get-started/下载。

安装

将上一步的压缩包,解压到本地。

influxDB介绍

名词介绍

influxDB名词 传统数据库概念
database 数据库
measurement 数据表
point 数据行

point

influxDB中的point相当于传统数据库里的一行数据,由时间戳(time)、数据(field)、标签(tag)组成。

Point属性 传统数据库概念
time 每个数据记录时间,是数据库中的主索引
field 各种记录值(没有索引的属性),例如温度、湿度
tags 各种有索引的属性,例如地区、海拔

Series

Series相当于是 InfluxDB 中一些数据的集合,在同一个 database 中,retention policy、measurement、tag sets 完全相同的数据同属于一个 series,同一个 series 的数据在物理上会按照时间顺序排列存储在一起。

想要了解更多

Go操作influxDB

安装

influxDB 1.x版本

go get github.com/influxdata/influxdb1-client/v2

  

influxDB 2.x版本

go get github.com/influxdata/influxdb-client-go

  

基本使用

package main

import (
	"fmt"
	"log"
	"time"

	client "github.com/influxdata/influxdb1-client/v2"
)

// influxdb demo

func connInflux() client.Client {
	cli, err := client.NewHTTPClient(client.HTTPConfig{
		Addr:     "http://127.0.0.1:8086",
		Username: "admin",
		Password: "",
	})
	if err != nil {
		log.Fatal(err)
	}
	return cli
}

// query
func queryDB(cli client.Client, cmd string) (res []client.Result, err error) {
	q := client.Query{
		Command:  cmd,
		Database: "test",
	}
	if response, err := cli.Query(q); err == nil {
		if response.Error() != nil {
			return res, response.Error()
		}
		res = response.Results
	} else {
		return res, err
	}
	return res, nil
}

// insert
func writesPoints(cli client.Client) {
	bp, err := client.NewBatchPoints(client.BatchPointsConfig{
		Database:  "test",
		Precision: "s", //精度,默认ns
	})
	if err != nil {
		log.Fatal(err)
	}
	tags := map[string]string{"cpu": "ih-cpu"}
	fields := map[string]interface{}{
		"idle":   201.1,
		"system": 43.3,
		"user":   86.6,
	}

	pt, err := client.NewPoint("cpu_usage", tags, fields, time.Now())
	if err != nil {
		log.Fatal(err)
	}
	bp.AddPoint(pt)
	err = cli.Write(bp)
	if err != nil {
		log.Fatal(err)
	}
	log.Println("insert success")
}

func main() {
	conn := connInflux()
	fmt.Println(conn)

	// insert
	writesPoints(conn)

	// 获取10条数据并展示
	qs := fmt.Sprintf("SELECT * FROM %s LIMIT %d", "cpu_usage", 10)
	res, err := queryDB(conn, qs)
	if err != nil {
		log.Fatal(err)
	}

	for _, row := range res[0].Series[0].Values {
		for j, value := range row {
			log.Printf("j:%d value:%v\n", j, value)
		}
	}
}

  

原文地址:https://www.cnblogs.com/binHome/p/12345373.html

时间: 2024-08-01 16:17:32

Go操作influxDB的相关文章

使用python操作InfluxDB

环境: CentOS6.5_x64InfluxDB版本:1.1.0Python版本 : 2.6 准备工作 启动服务器 执行如下命令: service influxdb start 示例如下: [[email protected] ~]# service influxdb start Starting influxdb... influxdb process was started [ OK ] [[email protected] ~]# 安装influxdb-python github地址: 

使用influx控制台工具操作InfluxDB

这里记录下influx控制台的简单使用,如需更多功能请参考InfluxDB官方文档: https://docs.influxdata.com/influxdb/v1.1/ 环境: CentOS6.5_x64InfluxDB版本:1.1.0 准备工作 启动服务器 执行如下命令: service influxdb start 示例如下: [[email protected] ~]# service influxdb start Starting influxdb... influxdb proces

使用C语言操作InfluxDB

环境: CentOS6.5_x64 InfluxDB版本:1.1.0 InfluxDB官网暂未提供C语言开发库,但github提供的有: https://github.com/influxdata/influxdb-c 但这个版本比较早了,到目前为止不支持0.9及其以后的版本. 这里有我自己开发的InfluxDB客户端开发库,直接使用的http api实现,功能比较简单, 有兴趣的朋友可以加入一起完善. github地址: https://github.com/mike-zhang/influx

influxdb+grafana业务数据可视化

了解数据库的TPS.QPS是作为一个运维DBA是非常必要的,那什么是TPS.QPS呢,简单的理解是: QPS:每秒查询数,即对数据库每秒的DML的操作数 TPS:每秒事物处理,即对数据库每秒DDL操作数 通过了解他们,可以掌握一个实例的基本工作运行状态 如何对于对他们进行页面可视化,是DBA的一个装逼神器,本章主要介绍通过时序数据库(influxdb)+grafana+简单的python代码实现 时时监控它们,什么是时序数据库可以在其他章节了解,这里不做过多介绍 Let's go..... 1.

Influxdb原理详解

本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 15 部分: InfluxDB学习之InfluxDB的安装和简介 InfluxDB学习之InfluxDB的基本概念 InfluxDB学习之InfluxDB的基本操作 InfluxDB学习之InfluxDB的HTTP API写入操作 InfluxDB学习之InfluxDB数据保留策略(Retention Policies) InfluxDB学习之InfluxDB连续查询(Continuous Queries) InfluxDB学习之

docker run Influxdb

本文假设读者已经安装并配置好了Docker的运行环境,Docker daemon已经运行.如果要在Suse上安装Docker,请参考文章Docker学习系列1-Suse安装Docker来设置Docker运行环境.如果是其他Linux系统,请参考Docker官方文档进行安装配置. # docker pull tutum/influxdb 该命令执行成功后,使用docker images命令可以查看下载的镜像 #docker images REPOSITORY            TAG     

时序数据库InfluxDB

一.什么是InfluxDB? InfluxDB是一款用Go语言编写的开源分布式时序.事件和指标数据库,无需外部依赖.该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据. InfluxDB特征: – 无结构(无模式):可以是任意数量的列(tags). – 可以设置metric的保存时间. – 支持与时间有关的相关函数(如min.max.sum.count.mean.median等),方便统计. – 支持存储策略:可以用于数

InfluxDB的安装和简介

InfluxDB简介 InfluxDB是一个时间序列数据库,旨在处理高写入和查询负载.它是TICK堆栈的组成部分 .InfluxDB旨在用作涉及大量带时间戳数据的任何用例的后备存储,包括DevOps监控,应用程序指标,物联网传感器数据和实时分析. 功能特点 基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等) 可度量性:你可以实时对大量数据进行计算 基于事件:它支持任意的事件数据基于事件:它支持任意的事件数据 主要特点 无结构(无模式):可以是任意数量的列 可拓展的 支持min, ma

influxdb查询写入操作

influxdb的几种操作方法,有喜欢用http API的方式来写入数据,或者通过influxdb的终端来操作(我喜欢的类型),每种方式都适合的场景. 介绍通过API接口和终端方式来操作: http://192.168.15.104:8086/write?db=mydb&cpu_load_short,host=server01,dc=mycat,region=us-west value=0.64 终端写入: use mydb insert cpu_load_short,host=server01