OpenTSDB 写入介绍

2023-11-20 13:50
文章标签 介绍 写入 opentsdb

本文主要是介绍OpenTSDB 写入介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  OpenTSDB支持几种写入方式。包括Telnet API、HTTP API、import方式、客户端采集器(tcollector/telegraf)。Telnet适合测试用,tcollector/telegraf是日志采集客户端可用于流式加载日志,import方式适合批量导入数据。当然,最后还有一种方式就是直接写入Hbase(官网不推荐),这样OpenTSDB也可以直接展示数据。

一、创建metric

  两种方式,选择其一即可。不管何种导入方式都必须先设置metric。
1. 事先在opentsdb中创建metric。如生成两个名为mymetric.data_1和mymetric.data_2的metric。如下:

tsdb mkmetric mymetric.data_1 mymetric.data_2

2.设置自动生成metric。修改opentsdb.conf设置:

tsd.core.auto_create_metrics = true

二、Telnet Put 方式

参考:http://opentsdb.net/docs/build/html/api_telnet/put.html
尝试将数据点写入存储。Telnet API无法处理UTF-8字符,可改用/api/put方法或直接使用Java API。命令格式如下:

put <metric> <timestamp> <value> <tagk_1>=<tagv_1>[ <tagk_n>=<tagv_n>]

终端运行示例:

echo "put mymetric.test.data 1295643636 48 a=foo" | nc -w 15 tsdHost tsdPort

三、HTTP API Put 方式

参考:http://opentsdb.net/docs/build/html/api_http/put.html
  此端点允许在OpenTSDB中通过HTTP存储数据,可替代Telnet接口。放置请求只能通过与POST方法关联的内容来执行。
  为了节省带宽,put API允许客户端在单个请求中存储多个数据点。数据点之间可以毫无关联。每个数据点被单独处理,并且一个数据的错误将不会影响良好数据的存储。这意味着如果你的请求有100个数据点,其中1个数据点有错误。那么该错误数据点会被拒绝写入,但其余的99个数据点仍将被写入。
虽然API每个请求都支持多个数据点,但API在处理完每个请求之前不会返回。这意味着必须验证度量和标记名称/值,解析值,并将数据排队等待存储。如果你的put请求具有大量的数据点,则API可能需要很长时间才能响应,尤其是如果OpenTSDB必须将UID分配给标记名称或值。因此,最好限制每个请求的最大数据点数; 50每个请求是一个好的起点。
  另一个建议是在HTTP客户端上启用keep-alives,这样您可以在每次放置数据时重新使用与服务器的连接。

1 HTTP 请求解析

这里写图片描述

2 数据写入示例

  • 单点数据写入
{"metric": "sys.cpu.nice","timestamp": 1346846400,"value": 18,"tags": {"host": "web01","dc": "lga"}
}
  • 多点数据写入
    多点数据写入必须被包装成数组形式
[{"metric": "sys.cpu.nice","timestamp": 1346846400,"value": 18,"tags": {"host": "web01","dc": "lga"}},{"metric": "sys.cpu.nice","timestamp": 1346846400,"value": 9,"tags": {"host": "web02","dc": "lga"}}
]

3 返回响应

  默认情况下,如果所有数据点都已成功存储,put端点将使用HTTP 204状态码进行响应,而无内容。如果一个或多个数据点有错误,API将在内容中返回一个带有错误消息的400状态码。响应解析说明和响应示例如下图所示:
这里写图片描述

四、批量导入

参考:http://opentsdb.net/docs/build/html/user_guide/cli/import.html
 Import命令允许将时间序列数据批量加载到OpenTSDB中。可提供一个或多个文件,OpenTSDB将解析和加载数据。数据必须和Telnet put的数据格式一致,文本文件中每一行作为一个数据点。此外,文件还可以可选地使用GZip压缩,并且以.gz扩展名结束。

1 输入格式

路径可以是相对路径,也可以是绝对路径。

import path [...paths]
import /home/hobbes/timeseries1.gz /home/hobbes/timeseries2.gz

2 参数说明

格式和Telnet 接口相同。

<metric> <timestamp> <value> <tagk=tagv> [<tagkN=tagvN>]
  1. metric Is the name of the metric. Note that the metric name may not include spaces.
  2. timestamp Is the absolute timestamp of the data point in seconds or milliseconds
  3. value Is the value to store
  4. tagk=tagv Is a pair of one or more space sparate tag name and value pairs. Note that the tags may not have spaces in them.

Example:

sys.cpu.user 1356998400 42 host=web01 cpu=0

代码示例如下:

./tsdb import --config=/Applications/opentsdb/src/opentsdb.conf /Applications/opentsdb/
my_test_data/opentsdb.txt

文件的内容格式如下,其中时间戳必须升序:

mymetric.test.data 1479303678 0.841470984808 host=xyd_host
mymetric.test.data 1479303679 0.909297426826 host=xyd_host
mymetric.test.data 1479303680 0.14112000806 host=xyd_host
mymetric.test.data 1479303681 -0.756802495308 host=xyd_host
mymetric.test.data 1479303682 -0.958924274663 host=xyd_host
mymetric.test.data 1479303683 -0.279415498199 host=xyd_host
mymetric.test.data 1479303684 0.656986598719 host=xyd_host
mymetric.test.data 1479303685 0.989358246623 host=xyd_host
mymetric.test.data 1479303686 0.412118485242 host=xyd_host
mymetric.test.data 1479303687 -0.544021110889 host=xyd_host
mymetric.test.data 1479303688 -0.999990206551 host=xyd_host
mymetric.test.data 1479303689 -0.536572918 host=xyd_host

这里写图片描述

五、Tcollector/Telegraf 客户端写入

这里使用Tcollect收集,Telegraf不做演示。Tcollector是一个客户端程序,用来收集本机的指标数据,并将数据发送到OpenTSDB。
Tcollector GitHub地址:https://github.com/OpenTSDB/tcollector/
Tcollector 官方地址:http://opentsdb.net/docs/build/html/user_guide/utilities/tcollector.html
关于Tcollector安装和介绍,在此就不详细说明了。这里展示的是按照官方要求,直接用python定义一个收集器,向opentsdb发送数据。
运行:

sudo ./tcollector start

用Python自定义一个mycollector.py,注意文件权限为755,也可直接设为777。

#!/usr/bin/env python import sys
import time
import math
from collectors.lib import utilsCOLLECTION_INTERVAL = 5  # secondsdef getValue(num):return math.cos(num)def main():utils.drop_privileges()i = 100while True:print("xyd.test.cos %d %s"% (int(time.time()), getValue(i)))i += 0.1sys.stdout.flush()time.sleep(COLLECTION_INTERVAL)if __name__ == "__main__":sys.stdin.close()sys.exit(main())

执行效果如下,生成一个只有正值的cos函数,貌似opentsdb不显示负数的:
这里写图片描述

这篇关于OpenTSDB 写入介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/395056

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

多路转接之select(fd_set介绍,参数详细介绍),实现非阻塞式网络通信

目录 多路转接之select 引入 介绍 fd_set 函数原型 nfds readfds / writefds / exceptfds readfds  总结  fd_set操作接口  timeout timevalue 结构体 传入值 返回值 代码 注意点 -- 调用函数 select的参数填充  获取新连接 注意点 -- 通信时的调用函数 添加新fd到

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器