饿了么 Influxdb 实践之路

向作者提问
基于saltstack的开发配置管理系统,服务于饿了么上万台机器管理 基于golang、influxdb、grafana开发监控系统,服务于饿了么上万台机器以及基础设施
查看本场Chat

前言

Influxdb是一个基于golang编写,没有额外依赖的开源时序数据库,用于记录metrics、events,进行数据分析。这篇文章谈论的influxdb版本在1.2.0以上。这篇文章只谈论influxdb在监控中的数据存储应用,不会谈论influxdb提供的整套监控方案。本文主要谈论五个方面:时序数据库选型、influxdb基本概念、存储引擎、实践、数据聚合。

选型

Influxdb vs Prometheus

  1. influxdb集成已有的概念,比如查询语法类似sql,引擎从LSM优化而来,学习成本相对低。

  2. influxdb支持的类型有float,integers,strings,booleans,prometheus目前只支持float。

  3. influxdb的时间精度是纳秒,prometheus的则是毫秒。

  4. influxdb仅仅是个数据库,而prometheus提供的是整套监控解决方案,当然influxdb也提供了整套监控解决方案。

  5. influxdb支持的math function比较少,prometheus相对来说更多,influxdb就目前使用上已经满足功能。

  6. 2015年prometheus还在开发阶段,相对来说influxdb更加稳定。

  7. influxdb支持event log,prometheus不支持。

  8. 更详细的对比请参考:对比

barryz
刘老师棒棒的, 关注
arun: 刘老师,张老师棒棒的,关注
请问饿了么用Influxdb记录一些什么数据,设计Measurement字段的时候有一些什么需要考虑?
lwh
wal文件作为内存的缓存,会不会导致性能上的问题?
梨落
根据我之前的了解 这个是做不到measurement的迁移的。请问 如果一台机器快写满了,怎么做到数据的迁移呢?
Μг.Sυη
刘老师,关于influxdb大量数据读写的时候,性能飙升的问题您是如何处理的?我在使用influxdb实践中,大量读写中,cpu等性能参数居高不下,很困惑,您能给出些好的建议吗?
刘平: 大量读写,cpu肯定高啊,大量写我是明白的,大量读是什么场景?能否看看优化查询? 因为influxdb用于监控,查询是很少的,因为谁没事去看监控啊
1
你好,对于 > 插入数据时,先往cache中写入再写入wal中,可以认为cache是wal文件中的数据在内存中的缓存。 这一观点我觉得您的说法和官方文档有些出入,官方文档中说的是先写入wal文件再写入内存,而不是先写入内存。 官方文档: https://docs.influxdata.com/influxdb/v1.2/concepts/storage_engine/#write-ahead-log-wal
刘平: 谢谢更正
敬艺
influxdb-proxy是官方提供的吗?还是自己写的?
郭大爷: 上github搜索,shell909090,有一个仓库influxdb-proxy,就是刘师傅和shell909090写的
微信扫描登录