OpenTSDB ,可以认为是一个时系列数据(库),它基于HBase存储数据,充分发挥了HBase的分布式列存储特性,支持数百万每秒的读写。
开源监控系统OpenTSDB,用hbase存储所有的时序(无须 采样)来构建一个分布式、可伸缩的时间序列数据库。它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系 统里。OpenTSDB可以从大规模的集群(包括集群中的网络设备、操作系统、应用程序)中获取相应的metrics并进行存储、索引以及服务,从而使得 这些数据更容易让人理解,如web化,图形化等。
How does OpenTSDB work?
OpenTSDB consists of a Time Series Daemon (TSD) as well as set of command line utilities. Interaction with OpenTSDB is primarily achieved by running one or more of the TSDs. Each TSD is independent. There is no master, no shared state so you can run as many TSDs as required to handle any load you throw at it. Each TSD uses the open source database HBase to store and retrieve time-series data. The HBase schema is highly optimized for fast aggregations of similar time series to minimize storage space. Users of the TSD never need to access HBase directly. You can communicate with the TSD via a simple telnet-style protocol, an HTTP API or a simple built-in GUI. All communications happen on the same port (the TSD figures out the protocol of the client by looking at the first few bytes it receives).
In OpenTSDB, a time series data point consists of:
A metric name.
A UNIX timestamp (seconds or millisecinds since Epoch).
A value (64 bit integer or single-precision floating point value).
A set of tags (key-value pairs) that describe the time series the point belongs to.
opentsdb支持几种写入方式,telnet,http,或者tcollector(采集器),各有特点,Telnet更适合测试用,tcollector是拉的模型,http的接口可能更通用一些,在写数据之前,我们要好好想想,我们要存的数据的特点。
通常,我们设计一个系统的时候,都要设计一个metrics系统,给metrics命名的时候,我们总是系统起一个见名知义的很长的名字,然后就是value。比如webserver01.sys.cpu.0.user么代表的是webserver01这台服务器的0号cpu用户态的cpu使用率,但是我们直接把这个metric作为key存储的话,后面查询方便吗?
实际上任务存储,都是为了有一天要取出来,或者根据一定条件取出来,你只存储而不取出,那叫删除!因此,opentsdb也是如此,我们要考虑存储后查询是否方便。
还是前面的例子,如果我们把webserver01.sys.cpu.0.user作为key,那么可能要存储很多这样的key,比如机器有64核,你要存64条记录,我现在要算机器cpu avg,那么你要扫描全部的记录,然后聚合求均值,试想,如果你有很多机房,很多机器呢?当你的统计需求涉及大量的记录的时候,这些记录在底层存储的时候特别分散,那么无疑,你聚合的性能会很差,时序数据的metrics 之所以要搞成metrics加tag的方式,实际上跟hbase表的设计有关,rowkey开始的字段是metrics然后加时间戳加tag
kv,如果不这么设计,你聚合查询涉及的记录可能并不紧凑,或者跨多个region,想一下,性能能快吗?
opentsdb使用标签tag辅助涉及,即你存储的时候,key还是有的,但是要尽量精简,你需要多维度描述这个metric的时候,其余维度我都通过打标签的形式给你记录下来。这有什么区别,或者说有什么好处,为什么这么设计?
opentsdb要求你必须至少有一个tag,可以有多个,数量不限,同时使用一个精简的metric作为key,这个metric其实是可以共用的。还是举前面那个例子,webserver01.sys.cpu.0.user被改造成sys.cpu.user{host=webserver01,cpu=42}即带2个tag kv对,metric变成sys.cpu.user
这样不管你什么机房,什么机器,凡是cpu使用率的数据都紧凑地存储在一起,相应查询聚合性能会好一些。
相关推荐
《开源时序数据库opentsdb介绍.pdf》是一个更全面的OpenTSDB介绍,可能会深入探讨其设计哲学、架构特点和适用场景。这份文档可能包含OpenTSDB如何处理数据分片、数据压缩、时间戳处理,以及如何利用HBase的分布式...
OpenTSDB支持多种写入数据的方式,包括TelnetPut、CLI Import、TCollector以及本文重点介绍的HTTP API。其中,HTTP API由于其实现简单且灵活,在实际应用中非常常见。 #### 二、Postman工具介绍与安装 **Postman**...
#### 主要组件介绍 - **Apache Flink**:是一款高性能流处理框架,支持实时数据流的处理。 - **Kafka**:是一个分布式流处理平台,用于构建实时数据管道和流应用。 - **OpenTSDB**:是一个高性能的时间序列数据库,...
官方文档详尽地介绍了安装、配置、使用和维护 OpenTSDB 的各个方面,为初学者和高级用户提供了丰富的参考资料。 综上所述,OpenTSDB 是一款强大的时间序列数据库,适用于需要处理大规模监控数据的场景。其开源性质...
环境说明部分通常会介绍部署OpenTSDB所需的软硬件环境要求。根据给定文件,OpenTSDB安装在CentOS Linux 7.4.1708上,使用的HBase版本为1.4.8,OpenTSDB版本为2.3.1,JDK版本为1.8.0_191。Linux内核版本为Linux ...
**组件介绍**: - **Servers (C)**:负责收集监控数据并发送给TSD。 - **TSD (Time Series Daemon)**:接收数据、处理请求及提供Web UI界面。 - 收集数据:通过简单的RPC协议从Collector接收数据。 - 数据写入:...
- **文档**:可能有README文件或其他形式的文档,介绍如何使用客户端,以及可能的配置选项。 - **示例**:可能包含示例代码,展示如何初始化客户端、写入数据、执行查询等基本操作。 使用这个Java客户端,开发者...
- **OpenTSDB介绍**: - OpenTSDB是一个基于HBase的时间序列数据库。 - 专门设计用于高效地存储和查询时间序列数据。 - **应用场景**: - 监控系统性能指标。 - 存储传感器数据。 - 实时数据分析。 - **优势*...
随着OpenTSDB 2.2版本的出现,我们现在可以围绕查询提供大量细节,因为我们专注于提高灵活性和性能。查询详细信息包括发出请求的人(通过标头和套接字),响应是什么(HTTP状态代码和/或异常)以及TSD采取的各种进程...
本文将详细介绍Graphite-OpenTSDB-Finder这一项目,它是如何连接这两者,提供高效的数据查找功能的。 一、OpenTSDB与Graphite简介 OpenTSDB是一款基于HBase构建的分布式、可伸缩的TSDB,它设计用来存储和查询大量...
本文主要介绍了 HBase 和 OpenTSDB 在华为的实战经验,涵盖了 HBase 的启动优化、Region-locality 计算优化、系统表区域 asign、SSH/SCP 优化等方面的内容,同时还介绍了 OpenTSDB 的数据写入优化、查询优化等方面的...
OpenTSDB旨在在查询执行期间有效地组合多个不同的时间序列。这样做的原因是,当用户查看他们的数据时,他们通常会从较高的级别开始询问诸如“数据中心的总吞吐量是多少?”之类的问题。或“按地区划分的当前用功耗是...
讲师:吴兴博(花名:兴博)--阿里云智能-数据库产品事业部技术专家内容概要:OpenTSDB是可扩展的分布式时序数据库,底层依赖HBase。... 本课程从主要介绍OpenTSDB以及同阿里云智能TSDB多个角度的对比差异。
本文将详细介绍OpenTSDB的接口说明及其简单应用。 首先,OpenTSDB的核心特性之一是提供了基于HTTP的API,允许与其他外部系统无缝集成。几乎所有的OpenTSDB功能都可以通过这些API来访问,包括但不限于查询时间序列...
5. **README.md**:项目说明,介绍插件的功能、安装和使用方法。 6. **package.json**:npm项目的配置文件,列出项目依赖和版本信息。 **使用和部署OpenTSDB插件** 在实际使用中,用户需要按照README.md中的指示...
本文将详细地介绍gnuplot的安装步骤、环境变量设置以及验证安装是否成功的方法,并简要提及gnuplot在OpenTSDB监控系统中的作用。 ### gnuplot的安装与调试 #### 安装前准备 - **确认Linux系统**: 确保您的机器上...
本文档将详细介绍如何构建一个基于Apache Flink的风电数据实时采集系统。 #### 二、项目目标与架构 本项目旨在通过大数据技术实现风电数据的实时采集、处理与可视化展示。具体包括以下关键技术组件: 1. **Flume*...
2. 相较于Key/Value Stores(如HBase、Cassandra、OpenTSDB),Druid的列式存储和索引提供了更快的扫描速度。 3. 相比Spark SQL,Druid在查询速度上更快,但在数据导入和SQL支持(如JOIN操作)上有所限制。 4. 对于...