influxes 基本概念
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
这是一个很重要的特性,通过他能自动删老旧数据。
3. the Time-Structured Merge Tree (TSM)
比B+ 或者lsm树更高的压缩比,(压缩比有多高? 那个文档里写了提升45倍的压缩包 ),高写入高读取。
非常完善的一个stroge engine ,包括wal database才有的特性,可以研读一下代码。
细节可以看
https://docs.influxdata.com/influxdb/v1.7/concepts/storage_engine/
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 基本概念的更多相关文章
- 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念
一.前言 DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...
- 声音分贝的概念,dBSPL.dBm,dBu,dBV,dBFS
需要做个音频的PPM表,看着一堆的音频术语真是懵了,苦苦在网上扒了几天的文档,终于有了点收获,下面关于声音的分贝做个总结. 分贝 Decibel 分贝(dB)是一个对数单位(logarithmic u ...
- js面向对象学习 - 对象概念及创建对象
原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...
- 【Linux大系】Linux的概念与体系
感谢原作者:Vamei 出处:http://www.cnblogs.com/vamei 我在这一系列文章中阐述Linux的基 本概念.Linux操作系统继承自UNIX.一个操作系统是一套控制和使用计算 ...
- KOTLIN开发语言文档(官方文档) -- 2.基本概念
网页链接:https://kotlinlang.org/docs/reference/basic-types.html 2. 基本概念 2.1. 基本类型 从可以在任何变量处理调用成员函数和属性 ...
- .NET面试题系列[5] - 垃圾回收:概念与策略
面试出现频率:经常出现,但通常不会问的十分深入.通常来说,看完我这篇文章就足够应付面试了.面试时主要考察垃圾回收的基本概念,标记-压缩算法,以及对于微软的垃圾回收模板的理解.知道什么时候需要继承IDi ...
- 《徐徐道来话Java》(1):泛型的基本概念
泛型是一种编程范式(Programming Paradigm),是为了效率和重用性产生的.由Alexander Stepanov(C++标准库主要设计师)和David Musser(伦斯勒理工学院CS ...
随机推荐
- elementaryos5安装mysql5.7、php7.2、nginx1.14.0
一.mysql5.7 安装mysql5.7: sudo apt-get install mysql-server-5.7 查看安装的mysql版本: mysql -V 5.7版本mysql安装过程中以 ...
- (第二篇)shell的简单了解
Shell (类似开发工具) Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程 ...
- POJ2044 天气预报---状态细则
墙角数枝梅,凌寒独自开. 遥知不是雪,为有暗香来.--王安石 题目:天气预报 网址:http://poj.org/problem?id=2044 你是一个可以控制降雨的神仙. 你是一个仁慈的神,希望土 ...
- Vue-cli4脚手架搭建
一:要安装Node.js:安装路径要默认安装(node-v12.16.2-x64.msi-长支持 二:要安装cnpm 1)说明:npm(node package manager)是nodejs的包管理 ...
- 【手把手教你】win10 虚拟机 VMware Workstation Pro 15下安装Ubuntu 19.04
虚拟机 VMware Workstation Pro 15.5.0 及永久激活密钥 https://www.cnblogs.com/zero-vic/p/11584437.html Ubuntu19. ...
- element-ui中cascader同时获取label和value值
关于elementUI中cascader选中值后,能获取value或者label,但不能同时获value和label,这一问题,琢磨出了这么个办法.以新增和编辑城市为例,type: 1 编辑,type ...
- SpringMVC Root WebApplicationContext启动流程
传统的SpringMVC项目中,需要在web.xml中配置Contextlistener.ContextLoaderListener是负责引导启动和关闭Spring的Root上下文的监听器.主要将处理 ...
- 谈谈你对vuex的理解
vuex创建公有仓库的插件 1.储存公共状态 2.能够根据事件来修改状态 3.多个组件都需要变化,有机制把这个新的状态通知给所有的组件 vuex中的四个类 1.state 定义需要共享的状态 2 ...
- JWT的浅谈
在实际工作过程中,运行jmeter脚本的时候,开发给了一个jwt的授权信息,到底是做什么用的呢,翻阅了一些资料,整理如下: 一.JWT(Json Web Token)是什么 JWT是一串格式为xxxx ...
- XCTF练习题-WEB-webshell
XCTF练习题-WEB-webshell 解题步骤: 1.观察题目,打开场景 2.根据题目提示,这道题很有可能是获取webshell,再看描述,一句话,基本确认了,观察一下页面,一句话内容,密码为sh ...