All Things OpenTSDB

  • 时间:
  • 浏览:1
  • 来源:UU直播快三官方_大发UU直播快3

OpenTSDB用HBase存储所有的时序(何必 采样)来构建有十个 多多分布式、可伸缩的时间序列数据库。它支持秒级数据架构设计 所有metrics,支持永久存储,可不需用做容量规划,并很容易的接入到现有的报警系统里。OpenTSDB可不需用从大规模的集群(包括集群中的网络设备、操作系统、应用任务管理器)中获取相应的metrics并进行存储、索引以及服务,从而使得哪此数据更容易我能 理解,如web化、图形化等。

对于指标myservice.latency.avg的ID为:[0, 0, -69],reqtype标签名称的ID为:[0, 0, 1], foo标签值的ID为:[0, 1, 11], 标签名称的ID为:[0, 0, 2] web42标签值的ID为:[0, -7, 42],大伙儿儿组成rowkey:

column qualifier 占用2 bytes是因为4 bytes,占用2 bytes时表示以秒为单位的偏移,格式为:

UID。在OpenTSDB中,每有十个 多多metric、tagk是因为tagv在创建的完后 被分配有十个 多多唯一标识叫做UID,大伙儿儿组合在一齐可不需用创建有十个 多多序列的UID是因为TSUID。在OpenTSDB的存储中,对于每有十个 多多metric、tagk是因为tagv都所处从0刚现在开始的计数器,每来有十个 多多新的metric、tagk是因为tagv,对应的计数器就会加1。当data point写到TSD时,UID是自动分配的。你也可不需用手动分配UID,前提是auto metric被设置为true。默认地,UID被编码为3Bytes,每并都在UID类型最多可不需用有16,777,21十个 UID。你也可不需用修改源代码改为4Bytes。UID的展示有几种最好的法子,最常见的最好的法子是通过http api访问时,3 bytes的UID被编码为16进制的字符串。这名,UID为1的写为二进制的形式为000000000000000000000001,最为有十个 多多无符号的byte数组,其可不需用表示为[0,0,1],编码为16进制字符串为000001,其中每一位左边都被补上0,是因为其过低两位。故,UID为255的会显示为[0,0,255]0000FF

ts_ctr Column 计数器,用来记录有十个 多多时间序列中存储的数据个数,其列名为ts_ctr,为8位有符号的整数。

KairosDB是有十个 多多快速可靠的分布式时间序列数据库,主要用于Cassandra当然也可不需用适用与HBase。KairosDB是在OpenTSDB基础上重写的,他不仅可不需用在HBase上存储数据还支持Cassandra。

tsdb支持以下参数:

同样,每有十个 多多TSUID可不需用对应有十个 多多TSMeta,记录在tsdb-uid中,其包括的字段有tsuidmetrictagslastReceivedcreated,可选的字段有description, notes,删改信息,可不需用查看/api/uid/tsmeta

Column Qualifiers - 里面并都在列类型中并都在是因为为metrics_metatagk_metatagv_meta

OpenTSDB是用java编写的,随后项目构建删改都会用的java的最好的法子就说 使用的C、C++任务管理器员构建项目的最好的法子。运行时依赖:

row表示格式为: 每个数字对应1 byte

举例:

OpenTSDB使用HBase作为后端存储,在安装OpenTSDB完后 ,需用先启动有十个 多多hbase节点是因为集群,随后再执行建表励志的话 src/create_table.sh创建hbase表。建表励志的话 如下:

Timestamp。有十个 多多绝对时间,用来描述有十个 多多数值是因为有十个 多多给定的metric是在哪此完后 定义的。

Tags。有十个 多多metric应该描述哪此东西被测量,在OpenTSDB中,其不应该定义的太简单。通常,更好的做法是用Tags来描述具有相同维度的metric。Tags由tagk和tagv组成,前者表示有十个 多多分组,后者表示有十个 多多特定的项。

首先安装必要依赖:

Time Series。有十个 多多metric的涵盖多个tag的data point集合。

Row Key - 为UID

Compaction。在OpenTSDB中,会将多列合并到一列之中以减少磁盘占用空间,这和hbase中的Compaction不一样。这名 过程会在TSD写数据是因为查询过程中不定期的所处。

有十个 多多单独的较小的表叫做tsdb-uid用来存储UID映射,包括正向的和反向的。所处两列族,一列族叫做name用来将有十个 多多UID映射到有十个 多多字符串,另有十个 多多列族叫做id,用来将字符串映射到UID。列族的每一行都合适有以下三列中的有十个 多多:

在OpenTSDB中拥有高基数的指标在查询过程中返回的值要多于低基数的指标,另有十个 多多花费的时间也就没有多。

总结一下,tsdb表型态如下:

命令行参数 > 配置文件 > 默认值

占用4 bytes时表示以毫秒为单位的偏移,格式为:

这名,以下几行数据是从tsdb-uid表中查询出来的数据,第有十个 多多列为row key,第二列为”列族:列名”,第三列为值,对应为UID

NOTE:可不需用看了,对于metric + tags相同的数据都会连续存放,且metic相同的数据也会连续存放,另有十个 多多对于scan以及做aggregation都非常有帮助

开启Metadata有以下几只参数:

## 2.1 依赖 OpenTSDB依赖jdk和Gnuplot,Gnuplot需用提前安装,版本要求为最小4.2,最大4.4,执行以下命令安装即可:

从源代码安装gnuplot、autoconf、opentsdb以及tcollector,可不需用参考:OpenTSDB & tcollector 安装部署(Installation and Deployment)

Row Key - 是因为是有十个 多多分配到UID的字符串,这名,对于有十个 多多指标是因为有有十个 多多值为sys.cpu.user是因为对于有十个 多多标签其值是因为为42

执行上述命令的结果如下:

索引表,用于展示树状型态的,这名于文件系统,以方便一些系统使用,这名:Graphite

TSMeta Column 和UIDMeta这名,其为UTF-8编码的JSON格式字符串

Value。有十个 多多Value表示有十个 多多metric的实际数值。

Column Qualifiers - 里面并都在列类型中并都在。

在OpenTSDB中,所有数据存储在一张叫做tsdb的表中,这是为了充分利用hbase有序和region分布式的特点。所有的值都保所处列族t中。

OpenTSDB的配置参数可不需用在命令行指定,也可不需用在配置文件中指定。配置文件使用的是java的properties文件,文件中key为小写,支持逗号连接字符串随后不能有空格。所有的OpenTSDB属性都以tsdb开头,这名:

通过以下命令创建指标:

rowkey为<metric_uid><timestamp><tagk1><tagv1>[...<tagkN><tagvN>],UID默认编码为3 Bytes,而时间戳会编码为4 Bytes

可选的编译时依赖:

Column Value - 与UID对应的字符串,对于有十个 多多*_meta列,其值是因为是有十个 多多UTF-8编码的JSON格式字符串。何必 在OpenTSDB内控 去修改该值,其中的字段顺序会影响CAS调用。

在深入理解OpenTSDB完后 ,需用了解一些基本概念。

配置文件中可配置的属性请参考:Properties

可选的单元测试依赖:

对于运维工程师而言,OpenTSDB可不需用获取基础设施和服务的实时情況信息,展示集群的各种软硬件错误,性能变化以及性能瓶颈。对于管理者而言,OpenTSDB可不需用衡量系统的SLA,理解僵化 系统间的相互作用,展示资源消耗情況。集群的整体作业情況,可不需用用以辅助预算和集群资源协调。对于开发者而言,OpenTSDB可不需用展示集群的主要性能瓶颈,有十个 劲再次有十个 劲出现的错误,从而可不需用着力重点外理重要问题。

是因为你使用的是hbase集群,则你还需用设置--zkquorum--cachedir对应的目录会产生一些临时文件,我能 设置cron定时任务进行删除。打上去--auto-metric,则当新的数据被搜集时自动创建指标。

Row Key tsdb表一样,其中不涵盖时间戳,<metric_uid><tagk1><tagv1>[...<tagkN><tagvN>]

对于时间戳为1292148123的数据点来说,其转换为以小时为单位的基准时间(打上去小时后的秒)为129214800,偏移为123,转换为二进制为1111011,是因为该值为整数且长度为8位(对应为2byte,故最后3bit为80),故其对应的列族名为:000001111011080,将其转换为十六进制为07B4

Metric。有十个 多多可测量的单位的标称。metric不包括有十个 多多数值或有十个 多多时间,其仅仅是有十个 多多标签,涵盖数值和时间的叫datapoints,metric是用逗号连接的不允许有空格,这名:

从上图可不需用看出tsdb-uid的表型态以及数据存储最好的法子,对于有十个 多多data point来说,其被保存到opentsdb完后 ,会对metricstagktagvmetric_metatagk_metatagv_meta生成有十个 多多UID(如上图中的000001),随后将其插入hbase表中,rowkey为UID,同都会存储多行记录,分别保存metricstagktagvmetric_metatagk_metatagv_meta到UID的映射。

这名以下几行数据是从tsdb-uid表中查询出来的数据,第有十个 多多列为row key,第二列为”列族:列名”,第三列为值,对应为UID

Data Point。每有十个 多多指标可不需用被记录为某有十个 多多时间点的有十个 多多数值。Data Point包括以下每项:

# 5. 谁在用OpenTSDB

Metadata。主要用于记录data point的一些附加的信息,方便搜索和跟踪,分为UIDMeta和TSMeta。

是因为配置了metadata,则name列族还可不需用包括额外的metatata列。

总结一下,tsdb-uid表型态如下:

Tree

value 使用8bytes存储,既可不需用存储long,也可不需用存储double。

下载源代码,可不需用指定最新版本是因为手动checkout

## 3.12 Logging

metadata的另外有十个 多多形式是Annotations,删改说明,请参考annotations

我能 将哪此参数编写到配置文件中,随后通过--config指定该文件所在路径。

这名 表是OpenTSDB中不一齐间序列的有十个 多多索引,可不需用用来存储一些额外的信息。这名 表名称叫做tsdb-meta,该表不能有十个 多多列族name,有十个 多多列,分别为ts_metats_ctr,该表中数据如下:

TSUID。当有十个 多多data point被写到OpenTSDB时,其row key格式为:<metric_UID><timestamp><tagk1_UID><tagv1_UID>[...<tagkN_UID><tagvN_UID>],不考虑时间戳励志的话 ,将其余每项都转换为UID,随后拼在一齐,就可不需用组成为TSUID。

OpenTSDB使用LGPLv2.1+开源协议,目前版本为2.X。

是因为有十个 多多合法的配置文件没有找到随后一些需用参数没有设置,TSD任务管理器将不需要启动。

配置参数优先级:

从里面可不需用看出一共创建了4张表,随后可不需用设置不是压缩、不是启用布隆过滤、保存版本号等等,是因为追求hbase读写性能,还可不需用预建分区。

每有十个 多多UID删改都会有十个 多多metadata记录保所处tsdb-uid表中,每有十个 多多UID包括一些不可变的字段,如uidtypenamecreated字段表示哪此完后 被创建,还可不需用有一些额外字段,如descriptionnotesdisplayName和一些custom key/value对,删改信息,可不需用查看 /api/uid/uidmeta

## 3.5 要怎样查询数据 ## 3.6 CLI Tools

关于为哪此使用UID而不使用hashes,可不需用参考:why-uids

我能 在命令行中通过--config指定配置文件所在路径,是因为没有指定,OpenTSDB会从以下路径寻找配置文件:

上图对应的有十个 多多datapoint如下:

KairosDB主页:https://code.google.com/p/kairosdb/

Column Value - 有十个 多多无符号的整数,默认被编码为十个 byte,其值为UID。

Cardinality。基数,在数学中定义为有十个 多多集合中的一些元素,在数据库中定义为有十个 多多索引的一些唯一元素,在OpenTSDB定义为:

OpenTSDB的tsdb启动完后 ,会监控指定的socket端口(默认为4242),接收到监控数据,包括指标、时间戳、数据、tag标签,tag标签包括tag名称ID和tag值ID。这名: