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/

influxes 基本概念的更多相关文章

  1. 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念

    一.前言     DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...

  2. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  3. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

    集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...

  4. 声音分贝的概念,dBSPL.dBm,dBu,dBV,dBFS

    需要做个音频的PPM表,看着一堆的音频术语真是懵了,苦苦在网上扒了几天的文档,终于有了点收获,下面关于声音的分贝做个总结. 分贝 Decibel 分贝(dB)是一个对数单位(logarithmic u ...

  5. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  6. 【Linux大系】Linux的概念与体系

    感谢原作者:Vamei 出处:http://www.cnblogs.com/vamei 我在这一系列文章中阐述Linux的基 本概念.Linux操作系统继承自UNIX.一个操作系统是一套控制和使用计算 ...

  7. KOTLIN开发语言文档(官方文档) -- 2.基本概念

    网页链接:https://kotlinlang.org/docs/reference/basic-types.html 2.   基本概念 2.1.  基本类型 从可以在任何变量处理调用成员函数和属性 ...

  8. .NET面试题系列[5] - 垃圾回收:概念与策略

    面试出现频率:经常出现,但通常不会问的十分深入.通常来说,看完我这篇文章就足够应付面试了.面试时主要考察垃圾回收的基本概念,标记-压缩算法,以及对于微软的垃圾回收模板的理解.知道什么时候需要继承IDi ...

  9. 《徐徐道来话Java》(1):泛型的基本概念

    泛型是一种编程范式(Programming Paradigm),是为了效率和重用性产生的.由Alexander Stepanov(C++标准库主要设计师)和David Musser(伦斯勒理工学院CS ...

随机推荐

  1. 今天,VS Code 五岁了。

    时光飞逝,岁月如梭.今天,VS Code 迎来了 5 岁的生日. 回想起 VS Code 发布的那一天,仿佛还在昨天. 回顾 VS Code 这五年的发展,总是能给我们开发者带了无限的惊喜. 2015 ...

  2. Flutter Weekly Issue 53

    插件 left-scroll-actions A useful left scroll actions widget like WeChat.一款仿微信效果的 Flutter 左滑菜单插件.现在支持i ...

  3. 单源最短路问题--朴素Dijkstra & 堆优化Dijkstra

    许久没有写博客,更新一下~ Dijkstra两种典型写法 1. 朴素Dijkstra     时间复杂度O(N^2)       适用:稠密图(点较少,分布密集) #include <cstdi ...

  4. vue + ArcGIS 地图应用系列一:arcgis api本地部署(开发环境)

    封面 1. 下载 ArcGIS API for JavaScript 官网地址: https://developers.arcgis.com/javascript/3/ 下载地址:http://lin ...

  5. sed命令的正则表达式实践

    1. 取系统ip [root@oldboy logs]# ifconfig eth3 eth3 Link encap:Ethernet HWaddr 08:00:27:4C:6F:AD inet ad ...

  6. event兼容性解决

    event出现undefind错误 解决方法: $('#normalImgDiv').mousemove(function (e) { var e = window.event || e; var p ...

  7. .NET Micro Framework 4.2 beta 源码探析

    .NET Micro Framework 4.2 beta发布已经有一段时间了,一直没有腾出时间研究,昨天因为LWIP协议栈的原因(感觉上一个版本有点问题)刚 下了代码,所以抽空研究了一下.      ...

  8. Linked List-2

    三.编码技巧 1.遍历链表 先将head指针赋值给一个局部变量current: //return the number of nodes in a list (while-loop version) ...

  9. 写代码?程序猿?你不能不懂的八大排序算法的Python实现

    信息获取后通常需要进行处理,处理后的信息其目的是便于人们的应用.信息处理方法有多种,通常由数据的排序,查找,插入,删除等操作.本章介绍几种简单的数据排序算法和高效的排序算法. 本章主要涉及到的知识点有 ...

  10. 慎用ToLower和ToUpper,小心把你的系统给拖垮了

    不知道何时开始,很多程序员喜欢用ToLower,ToUpper去实现忽略大小写模式的字符串相等性比较,有可能这个习惯是从别的语言引进的,大胆猜测下是JS,为了不引起争论,我指的JS是技师的意思~ 一: ...