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. Jmeter与LoadRunner的比较

    一.与Loadrunner的比较相似点 1.Jmeter的架构跟loadrunner原理一样, 都是通过中间代理,监控&收集并发客户端发现的指令,把他们生成脚本,再发送到应用服务器,再监控服务 ...

  2. python入门学习之Python爬取最新笔趣阁小说

    Python爬取新笔趣阁小说,并保存到TXT文件中      我写的这篇文章,是利用Python爬取小说编写的程序,这是我学习Python爬虫当中自己独立写的第一个程序,中途也遇到了一些困难,但是最后 ...

  3. C#多线程(15):任务基础③

    目录 TaskAwaiter 延续的另一种方法 另一种创建任务的方法 实现一个支持同步和异步任务的类型 Task.FromCanceled() 如何在内部取消任务 Yield 关键字 补充知识点 任务 ...

  4. 从零开始学习docker之在docker中搭建redis(单机)

    docker搭建redis 一.环境准备 云环境:CentOS 7.6 64位 二.下载镜像 从docker hub中找到redis镜像 传送门------https://hub.docker.com ...

  5. sqlliab7-8

    less-7 https://www.jianshu.com/p/20d1282e6e1d ?id=0')) union select 1,'2','<?php @eval($_POST[&qu ...

  6. UDO、TCP、HTTP、websocket

    如图:

  7. 编程是要偷懒的--option简练写法

    没改前: if(!empty($search)){ $where['personal_name'] = array('like','%'. $search . '%'); $this -> as ...

  8. php 关于 & 引用赋值

    $a = ; $b = ; echo $a . echo $b . $a = $b; echo $a . echo $b . $a = &$b; echo $a . echo $b . $a ...

  9. 打印js对象内容

    function writeObj(obj){ var description = ""; for(var i in obj){ var property=obj[i]; desc ...

  10. Python(5)

    把 aaabbcccd 这种形式的字符串压缩成 a3b2c3d1 这种形式. print(''.join({i+str(s.count(i)) for i in s})) dic={} for i i ...