第7节 InfluxDB的概念和安装

❤️💕💕Go语言高级篇章,在此之前建议您先了解基础和进阶篇。Myblog:http://nsddd.topopen in new window

Go语言基础篇open in new window

Go语言100篇进阶open in new window


[TOC]

写入模块的实现

  1. 初始化Influxdb cllient
  2. 从write channel中读取到监控数据
  3. 构造数据并且写入到influxdb

监控需求

  • 某个协议下的某个请求在某一个请求方法的QPS&响应时间&流量

influxdb

InfluxDB 是一个开源时间序列平台,使用Golang编写的开源的时序型数据库。这包括用于存储和查询数据、在后台处理数据以用于 ETL 或监控和警报目的、用户仪表板以及可视化和探索数据等的 API。这个 repo 上的 master 分支现在代表最新的 InfluxDB,它现在包括 Kapacitor(后台处理)和 Chronograf(UI)的功能,所有这些都在一个二进制文件中。

特性:

  • 部署简单,无依赖(Go语言特性)
  • 内置http支持,使用http读写
  • 类sql的灵活查询(max,min,sum等)

influxdb的重要概念

  • datebase:数据库
  • measurement:数据库中的表
  • points:表里面的一行数据
    • tags:各种有索引的属性
    • fields:各种记录的值
    • time:数据记录的时间戳,也是自动生成的主索引

安装influxdb

我使用的是docker镜像进行安装

查看镜像

root@ubuntu:/home/smile# docker search -f stars=3 --limit 5 influxdb
NAME               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
influxdb           InfluxDB is an open source time series datab…   1582      [OK]       
telegraf           Telegraf is an agent for collecting metrics …   575       [OK]       
chronograf         Chronograf is a visualization tool for time …   313       [OK]       
bitnami/influxdb  

安装命令

docker pull influxdb   #拉取到本地
docker run -it influxdb #运行镜像

查看镜像和绑定的端口

root@ubuntu:/home/smile# docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS      NAMES
c5541213e802   influxdb           "/entrypoint.sh infl…"   20 seconds ago   Up 18 seconds   8086/tcp   elated_jepsen
f19e7fbc3d18   v2f

influxdb使用

显示数据库

show databases

创建数据库

create database influxdb

删除数据库

drop database influxdb

使用数据库

use influxdb

使用到的字段

type Message struct {
	//使用结构体来存储提取出来的监控数据
	TimeLocal                    time.Time //时间
	BytesSent                    int       //流量
	Path, Method, Scheme, Status string    //请求路径
	UpstreamTime, RequestTime    float64   //监控数据
}
  • Tags:Path, Method, Scheme, Status
  • Fields:UpstreamTime, RequestTime,BytesSent
  • Time:TimeLocal

END 链接