一种基于Zookeeper的OpenTsdb服务指标聚合方法与流程

文档序号:17861228发布日期:2019-06-11 22:52阅读:324来源:国知局
一种基于Zookeeper的OpenTsdb服务指标聚合方法与流程

本发明公开一种基于zookeeper的opentsdb服务指标聚合方法,涉及数据处理技术领域。



背景技术:

物联网iot(internetofthings)体系分为感知层、传输层、应用层,随着物联网技术的发展,越来越多的物(设备或传感器等)相互连接起来,从而产生了海量的时序数据,在此背景下,诞生了满足海量数据快速存储的专业领域型数据库即时序数据库opentsdb。

时间序列数据是指是一段时间内某个特定指标量的一系列数值数据点,opentsdb将时序数据通过指标和标签以及时间戳来唯一标识一个指标量,这些指标数据具有不可变性。tsd是opentsdb的服务进程,它是基于hbase的无状态服务,opentsdb一般通过多个tsd实现集群的横向扩展,每个tsd实例都会接收到时间序列数据的写入和读取请求,单位时间的写入、读取请求数量指标每个tsd实例只能单独统计,没有整个opentsdb集群的统计数据,但opentsdb集群的整体性能指标才可以准确地反映出集群的吞吐量。而本发明提出了一种基于zookeeper的opentsdb服务指标聚合方法,通过利用zookeeper中临时有序和永久两种类型的znode节点,实现了alivetsd进程的注册、workertsd的选举以及服务指标数据临时存储等过程,workertsd实现了指标聚合以及持久化的工作,增加了集群的多个整体性能指标,可以准确地反映opentsdb集群的吞吐量以及持久化存储的实际使用情况,方便了opentsdb集群的性能优化工作,同时也便于监控opentsdb集群。在物联网平台中可供用户了解时序数据产生的热点时段,以便进一步分析时序数据。



技术实现要素:

本发明针对现有技术的问题,提供一种基于zookeeper的opentsdb服务指标聚合方法,增加了集群的多个整体性能指标,可以准确地反映opentsdb集群的吞吐量以及持久化存储的实际使用情况。

本发明提出的具体方案是:

一种基于zookeeper的opentsdb服务指标聚合方法,opentsdb的每个tsd进程注册在在zookeeper的临时有序znode节点上,并尝试注册成为workertsd进程,同时临时有序znode节点上注册workerchangedwatcher监听器,进行workertsd进程的热切换,

workertsd进程根据配置的定时器启动服务指标数据聚合任务,将每个tsd进程的服务指标数据聚合相加并持久化,workertsd进程还根据客户端查询请求,将相应的服务指标聚合数据生成响应返回到客户端。

所述的方法中opentsdb的每个tsd进程正常启动之后,将tsd进程的元数据信息写入临时有序znode节点的数据域中,注册在zookeeper的临时有序znode节点上。

所述的方法中每个tsd进程注册在在zookeeper的临时有序znode节点上,通过选举算法选举出workertsd进程进行服务指标数据的聚合和持久化。

所述的方法中临时有序znode节点上注册workerchangedwatcher监听器,订阅nodedatachanged、nodechildrenchanged以及nodedeleted事件,当上述事件发生时,每个tsd进程重新尝试注册成为workertsd进程,进行workertsd进程的热切换。

所述的方法中每个tsd进程的服务指标数据存储在相应的永久znode节点中,永久znode节点中的服务指标数据持久化至底层hbase集群数据库中。

所述的方法中客户端的服务指标查询请求转发到某一tsd进程,通过此某一tsd进程的workertsd进程接入点的引用,将查询请求发送到workertsd进程中。

所述的方法中opentsdb通过在多个tsd进程前面部署loadbalancer负载均衡器进行集群的横向扩展,客户端发送服务指标查询请求到loadbalancer负载均衡器上,根据配置的策略转发查询请求到某一tsd进程,通过某一tsd进程的workertsd进程接入点的引用,将查询请求发送到workertsd进程中。

所述的方法中workertsd进程利用自身的metricqueryhandler指标查询器处理查询请求,根据服务指标以及查询条件将zookeeper中相应的znode节点服务指标数据和hbase中的服务指标数据聚合后生成响应,并将响应最终返回到客户端。

本发明的有益之处是:

本发明提供一种基于zookeeper的opentsdb服务指标聚合方法,通过在zookeeper上注册临时有序znode节点表示alive的tsd进程,实现了拥有worker角色的tsd进程的选举,通过在临时有序znode节点上注册自定义的workerchangedwatcher来实现workertsd进程元数据信息的广播,拥有worker角色的tsd进程负责定时聚合指标、持久化指标数据以及响应客户端发起的指标查询请求,可以准确地反映opentsdb集群的吞吐量以及持久化存储的实际使用情况,方便了opentsdb集群的性能优化工作,同时也便于监控opentsdb集群。在物联网平台中可供用户了解时序数据产生的热点时段,以便进一步分析时序数据。

附图说明

图1是opentsdb集群架构示意图;

图2本发明中获得workertsd进程的流程图;

图3本发明中opentsdb服务指标查询流程图。

具体实施方式

本发明提供一种基于zookeeper的opentsdb服务指标聚合方法,opentsdb的每个tsd进程注册在在zookeeper的临时有序znode节点上,并尝试注册成为workertsd进程,同时临时有序znode节点上注册workerchangedwatcher监听器,进行workertsd进程的热切换,

workertsd进程根据配置的定时器启动服务指标数据聚合任务,将每个tsd进程的服务指标数据聚合相加并持久化,workertsd进程还根据客户端查询请求,将相应的服务指标聚合数据生成响应返回到客户端。

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

利用本发明方法,对某物联网iot的时序数据库opentsdb进行服务指标聚合,

参考图1,tsd进程正常启动之后在zookeeper注册,将tsd进程的id标识、httpuri地址以及版本等元数据信息写入临时有序的znode节点(/tsdb/tsd-0)数据域中,尝试将自己注册成为workertsd进程,读取“/tsdb”节点的数据,“/tsdb”节点保存有workertsd的相关信息,如“{worker:tsd-0}”,通过选举算法选举出workertsd进程进行服务指标数据的聚合和持久化,比如选取最小序号的tsd进程赋予它worker角色,

同时在“/tsdb”znode节点上注册workerchangedwatcher监听器,订阅nodedatachanged、nodechildrenchanged以及nodedeleted事件,当上述事件发生时,每个tsd都会重新尝试将自己注册成为拥有worker角色,从而实现workertsd的热切换;

每个tsd进程的在接收到写入或读取数据点的请求、与客户端建立连接时都会将服务指标数据存储在相应的永久znode节点中,永久znode节点中的服务指标数据持久化至底层hbase集群数据库的指标原始数据表tsdb_raw_metrics中,永久znode节点中的服务指标数据并持久化至底层hbase集群数据库后,可将此永久znode节点删除,workertsd进程根据配置的定时器启动指标聚合任务,每个tsd进程的服务指标数据在zookeeper中永久znode节点“/tsdb/total_dps”的数据域中的数值聚合相加,依然存储在“/tsdb/total_dps”永久znode节点中,直至持久化至底层hbase集群数据库的指标原始数据表中,

参考图1和图3,opentsdb通过在多个tsd进程前面部署loadbalancer负载均衡器进行集群的横向扩展,当客户端发送服务指标查询请求到loadbalancer负载均衡器上,根据配置的策略转发查询请求到某一tsd进程,通过某一tsd进程的workertsd进程接入点(workertsdendpoint)的引用,将查询请求发送到workertsd进程中,workertsd进程利用自身的metricqueryhandler指标查询器处理查询请求,根据服务指标以及查询条件读取tsdb_raw_metrics表中的服务指标数据,将zookeeper中相应的znode节点服务指标数据和hbase中的服务指标数据聚合后生成响应,并将服务指标聚合数据持久化至响应的数据表中,将响应最终返回到客户端。

以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1