1.安装

安装的话分两种情况,虚机的话直接下载二进制文件运行就好了。

kubernetes容器下也很方便,起一个deployment,存储挂载到/var/lib/influxdb 就ok,配置文件可以通过configmap挂载进去。

kubernetes下面也可以用helm来安装,官方提供了一个比较好用的chart,stable/influxdb,会部署成一个statefulsets的应用,也是ok的。

2. 概念

2.1 database

CREATE DATABASE xx
SHOW DATABASES
USE mydb

跟mysql有点像,不过insert数据不需要ddl 语句先crate table。

2.2 measurement

相当于sql里面的table概念。

写数据格式:

<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

例如:

cpu,host=serverA,region=us_west value=0.64
payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230
stock,symbol=AAPL bid=127.46,ask=127.48
temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000

跟普通sql来说就多了tags ,多了k/v的数据

Cli 里面可以用insert 插入

> create database mydb
> use mydb
Using database mydb
> INSERT cpu,host=serverA,region=us_west value=0.64
> SELECT "host", "region", "value" FROM "cpu"
name: cpu
time host region value
---- ---- ------ -----
1577934903004849943 serverA us_west 0.64

插入了一行到cpu这个指标,标签上host,region。

> INSERT temperature,machine=unit42,type=assembly external=25,internal=37
> select * from temperature
name: temperature
time external internal machine type
---- -------- -------- ------- ----
1577935315876294939 25 37 unit42 assembly

influxdb还有个RETENTION的概念,就是创建database的时候能指定retention

CREATE DATABASE <database_name> [WITH [DURATION <duration>] [REPLICATION <n>] [SHARD DURATION <duration>] [NAME <retention-policy-name>]]

如果不指定,会默认使用autogen,

> show retention policies
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true

这是一个很重要的特性,通过他能自动删老旧数据。

参考 retention policy (RP)

3. the Time-Structured Merge Tree (TSM)

比B+ 或者lsm树更高的压缩比,(压缩比有多高? 那个文档里写了提升45倍的压缩包 ),高写入高读取。

非常完善的一个stroge engine ,包括wal database才有的特性,可以研读一下代码。

细节可以看

https://docs.influxdata.com/influxdb/v1.7/concepts/storage_engine/

https://docs.influxdata.com/influxdb/v1.7/query_language/database_management/#retention-policy-management

4. 聚合

基本上跟sql的差不多。都是select 开头,提供了丰富的聚合函数。

详细文档: https://docs.influxdata.com/influxdb/v1.7/query_language/functions/#aggregations

5. 资源分配

cpu来看差不多需要1个cpu ,优化的还是挺好的。

内存占用就看数据量和tags了。tag数量越多,数据越多,占用内存越大,这个要注意的,

这个database数据量(达到一个很大的规模,这个我忘了具体多少了)上去了以后还是会挂的,变得很不稳定。

6. Prometheus 使用influxdb做remote read,write

这个我看有些博客说是要编译adatper ,早期可能需要, 现在其实不用了,官方早已支持的很好。

https://docs.influxdata.com/influxdb/v1.7/supported_protocols/prometheus/

remote_write:
- url: "http://localhost:8086/api/v1/prom/write?db=prometheus&u=username&p=password" remote_read:
- url: "http://localhost:8086/api/v1/prom/read?db=prometheus&u=username&p=password"

如果没有用户名密码认证的话,把username和password去掉即可。

这里有个小tips,prometheus内部维护了一个metric,用来记录没有写成功的count,prometheus_remote_storage_failed_samples_total , 这个值要看一下是否有失败。

参考

https://docs.influxdata.com/influxdb/v1.7/introduction/getting-started/

https://docs.influxdata.com/influxdb/v1.7/concepts/storage_engine/

最新文章

  1. 【Alpha】Daily Scrum Meeting第七次
  2. Android高仿微信(一)——如何消除启动时的白屏
  3. 如何在Windows 下安装Python
  4. CSS如何实现数字分页效果
  5. [PHP]如何在百度(BAE)和新浪(SAE)的云平台使用PHP连接MySQL并返回结果数据
  6. 团体程序设计天梯赛-练习集L1-018. 大笨钟
  7. Android应用--新浪微博客户端新特性滚动视图和启动界面实现
  8. Unity3D基础学习 NGUI之Example 13 - Tabs简要概述
  9. 大型分布式C++框架《二:大包处理过程》
  10. hibernate的常用配置
  11. 【Web】CGI与Servlet技术对比
  12. Python 100例(上)
  13. Linux命令速查大全
  14. TensorRT&amp;Sample&amp;Python[fc_plugin_caffe_mnist]
  15. 苹果电脑利用curl下载数据集
  16. RabbitMQ四种交换机类型介绍
  17. centos6上调整lv逻辑卷
  18. Ionic 2 中生命周期的命名改变及说明
  19. Java技术学习路线笔记:Maven安装和作用
  20. lda topic number

热门文章

  1. CG-CTF(1)
  2. centos7安装及部署zabbix监控
  3. HTML后台管理页面布局
  4. 细数阿里云在使用 Docker 过程中踩过的那些坑
  5. Crash日志解析
  6. JQuery学习(一)
  7. 蚂蚁金服合作的RISE实验室到底有多牛?
  8. SVN签出,回退
  9. MySQL Windows 环境安装
  10. 01 微信小程序入门