openTSDB实战
本专栏主要讲解openTSDB的底层知识及编码实战
说文科技
同名公众号【说文科技】,做有态度的研究。
展开
-
openTSDB详解之底层表分析
openTSDB详解之底层表分析1.openTSDB使用的表openTSDB底层存储的表只有四张。分别是:hbase(main):020:0> listTABLE ...原创 2018-11-14 13:50:19 · 1170 阅读 · 0 评论 -
openTSDB源码编译
openTSDB源码编译1.openTSDB源码编译编译源码还是很简单的,主要步骤如下:1.opentsdb的源码虽是Java编写,但是却不是大众的maven构建,而是采用了Makefile的格式2.从git中下载opentsdb的源码,新建一些文件夹,并将源码稍作移动即可(这个移动的方法见后链接)3.注意源码包中的third_party包,这个是依赖包,导入依赖时解决大批报红4.当...原创 2018-11-13 17:34:13 · 1234 阅读 · 2 评论 -
openTSDB源码详解之rowKey生成
openTSDB源码详解之rowKey生成过程openTSDB的一个非常好的设计就是其rowKey的生成。下面详细介绍一下。1.相关处理类openTSDB往hbase中写入数据的处理过程,我之前就已经分析过,主要涉及的类有:addPointInternal(...)这里主要讲解的是,如何一个row key是如何生成的。2.具体步骤2.1 row_size的确定2.1.2 SA...原创 2018-11-13 17:00:27 · 860 阅读 · 0 评论 -
openTSDB源码详解之Deferred类简单示例2
openTSDB源码详解之Deferred类简单示例21.示例21.1 代码程序代码如下:public static void test2() { try { //注意这个时候由 dfd -> dfd List(lstDfd)。但是其类型仍然没变,为String List<Deferred<String>> lstDfd = new Ar...原创 2018-11-13 11:21:59 · 521 阅读 · 2 评论 -
openTSDB源码详解之Deferred类代码简单示例1
openTSDB源码详解之Deferred类代码简单示例1.示例11.1 代码 /** * simplest with only 1 defer * 最简单的,仅仅只有1个defer */ public static void test1() { try { //Deferred deferred = new Deferred(); -&amp;amp;amp;...原创 2018-11-08 15:27:06 · 891 阅读 · 0 评论 -
openTSDB 源码详解之写入数据到 tsdb-uid 表
openTSDB 源码详解之写入数据到tsdb-uid表public void messageReceived(final ChannelHandlerContext ctx, final MessageEvent msgevent) {...}该方法是RpcHandler类中的。调用 private void handleHtt...原创 2018-11-07 21:43:53 · 1949 阅读 · 0 评论 -
openTSDB详解之底层HBase表分析
openTSDB详解之底层HBase表分析 【Updating】查看hbase的表负载情况hbase(main):001:0> status1 active master, 0 backup masters, 3 servers, 0 dead, 2.3333 average load列出表名hbase(main):002:0> listTABLE ...原创 2018-11-06 14:16:29 · 1022 阅读 · 0 评论 -
Opentsdb源码解析之ArgP类
Opentsdb源码解析之ArgP类1.类注释/** A dead simple command-line argument parser.Because I couldn't find any one in Java that wasn't horribly bloated.一个超级简单的命令行参数解析器。因为作者他实在找不到java中不臃肿的参数解析器了:(【一言不合就是造轮子】 ...原创 2018-10-08 15:15:33 · 498 阅读 · 0 评论 -
openTSDB查看日志
openTSDB查看日志1.问题openTSDB程序运行的日志在哪里呢?今天发现自己的windows磁盘一直飙高100%,仔细定位之后,猜测是虚拟机中运行的openTSDB出现了问题,于是想查找openTSDB的运行日志,但却一直没有找到。2.原因定位问题的过程如下:搜索openTSDB安装目录下的日志文件[root@server4 opentsdb-2.3.0]# find ....原创 2018-10-28 22:27:09 · 2044 阅读 · 0 评论 -
OpenTSDB源码详解之写入数据到HBase
OpenTSDB源码详解之数据写入HBase【待完善】/** Constants used in various places. * 在不同的地方(类中)使用的常数 * */public final class Const {...} /** Maximum number of tags allowed per data point. * 每个数据点所允许的最大tags数...原创 2018-10-24 23:17:50 · 2355 阅读 · 2 评论 -
openTSDB报错日志集锦
openTSDB报错10:27:23.125 [OpenTSDB I/O Worker #3] ERROR net.opentsdb.tsd.ConnectionManager - Unexpected exception from downstream for [id: 0x54caec8a, /192.168.211.2:9725 =&gt; /0.0.0.0:4399]java.io.I...原创 2018-10-22 09:27:25 · 1203 阅读 · 0 评论 -
OpenTSDB源码解析之HttpRpc接口
OpenTSDB源码解析之HttpRpc接口import java.io.IOException;import net.opentsdb.core.TSDB;/** * Base interface for all built-in HTTP query handlers. * 对于所有内置HTTP 查询请求处理的基础接口 */interface HttpRpc { /**...原创 2018-10-22 09:26:37 · 469 阅读 · 0 评论 -
OpenTSDB源码解析之GraphHandler类
OpenTSDB源码解析之GraphHandler类【待完善】package net.opentsdb.tsd;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IO...原创 2018-10-20 12:57:48 · 714 阅读 · 0 评论 -
OpenTSDB源码详解之TSDMain类
OpenTSDB源码详解之TSDMain类1.TSDMain类Main class of the TSD, the Time Series Daemon.TSD的主类,时间序列的守护进程。2.源代码package net.opentsdb.tools;import java.io.IOException;import java.lang.reflect.Constructor;...原创 2018-10-08 18:04:20 · 1348 阅读 · 2 评论 -
OpenTSDB源码解析之UniqueId类方法getOrCreateId()
UniqueId类方法getOrCreateId()源码解析1.UniqueId类2.getOrCreateId()先看方法注释:/*Finds the ID associated with a given name or creates it.寻找或者是创建与给出的名字相应的IDThis method is blocking. Its use within OpenTSDB ...原创 2018-10-07 12:09:36 · 936 阅读 · 0 评论 -
openTSDB中存在冗余数据怎么办
openTSDB中存在冗余数据怎么办?[root@server4 build]# ./tsdb fsck --full-scan --threads=1 --fix --resolve-duplicates --compact2018-09-02 23:33:45,967 INFO [main] Config: Successfully loaded configuration file:...原创 2018-09-06 21:03:57 · 1531 阅读 · 1 评论 -
OpenTSDB写数据的三种方法之Java API详解
openTSDB写数据的三种方法1.Telnet Style API见我博客:openTSDB详解之Telnet Style API 2.HTTP API见我博客【待完善】3.Java API3.1 简介接下来我主要分析一下使用Java API将数据写入到openTSDB中。因为openTSDB官方并没有提供Java API,所以这个API需要使用我们自己开发。但是整个...原创 2018-09-06 20:54:03 · 6239 阅读 · 19 评论 -
openTSDB的安装与部署
openTSDB的安装与部署原创 2018-07-13 23:05:51 · 14718 阅读 · 7 评论 -
openTSDB详解之 UIDs和TSUIDs
[译文]openTSDB的UIDs和TSUIDs本文译自: UIDS和TSUIDs 在openTSDB中,如果你写入一个时间序列点,这个数据点总是与一个metric,以及最少一个tag名,tag值相对应。每个metric,tag名和tag值均被赋上一个唯一的标识符二进制: 0000 0000 0000 0000 0000 0001 十六进制: 0 0 0 ...翻译 2018-07-25 09:36:17 · 1420 阅读 · 5 评论 -
openTSDB详解之Configuration
[译文]openTSDB详解之Configuration本文译自:http://opentsdb.net/docs/build/html/user_guide/configuration.htmlConfigurationopenTSDB能够通过一个本地文件系统的文件、通过一个命令行参数或者是两者结合来配置。Configuration File配置文件符合java 属性规则...翻译 2018-08-02 08:08:25 · 1074 阅读 · 0 评论 -
openTSDB详解之Writing Data
openTSDB详解之Writing Data本文译自:http://opentsdb.net/docs/build/html/user_guide/writing/index.htmlWriting Data你可能想立马运行起来,开始往你的TSD机器中写入数据,但是如果想最大限度地利用openTSDB的优势以及灵活性,你可能需要中断下来,然后思考你的命名模式(naming she...翻译 2018-08-03 09:17:21 · 1975 阅读 · 0 评论 -
openTSDB详解之Querying or Reading Data
opentsdb2.0提供支持:对于特殊的单调递增序列计数器数据处理,包括重置归零值以及抑制不规则的波动的能力。(原文:OpenTSDB 2.0 provides support for special monotonically increasing counter data handling including the ability to set a “rollover” value and...翻译 2018-08-07 09:22:15 · 996 阅读 · 0 评论 -
openTSDB详解之Trees
openTSDB详解之Trees和metadata一起,openTSDB2.0引进了trees的概念,一个层次方法—组织时间序列成一个容易导航的结构,从而可以被浏览,与电脑中的文件系统相似。用户能够定义大量trees,使用不同的规则集,从而组织TSMeta对象成一个树形结构。然后用户能够浏览树形结果通过HTTP API endpoint.详见/api/tree。Tree Terminolo...翻译 2018-08-14 08:58:59 · 1058 阅读 · 0 评论 -
openTSDB详解之GUI
openTSDB详解之GUI目前,openTSDB提供一个简单的内置GUI,你可以在浏览器导航栏中输入TSD正在运行的主机和端口号来访问。例如:如果你在本地计算机运行一个TSD,其运行端口是4242,那么(浏览器中)访问地址就是:http://localhost:4242。然而GUI不会赢得美丽的盛誉(译者注:openTSDB的GUI真心很丑),它只是提供一个快速的方式使用你系统中的数据去构建...翻译 2018-08-16 23:54:43 · 3575 阅读 · 0 评论 -
openTSDB详解之Stats
openTSDB详解之StatsStatsopenTSDB提供许多metrics关于它的性能,通过各种API端可以访问得到。主要的stats是可以访问到的,来自GUI,通过Stats选项卡【如下图1示】,来自于HTTP API /api/stats或者是遗留的API /stats。Telnet风格的API同样支持“stats”命令为了从CLI中拉取数据。【在你喜欢的任何时间间隔里内】这些都...翻译 2018-08-18 11:29:55 · 1092 阅读 · 0 评论 -
openTSDB详解之Deferred类
openTSDB详解之Deferred类0.前言为了简单的异步处理,延迟结果的一个线程安全的实现。 这个实现是基于Twisted的Python代码中的Deferred接口。这个api是一个简单的,并且优雅的方式去管理异步以及动态管道(处理链),没有显式的定义一个有限状态机。我们都很繁忙,并且不一定总是有时间去仔细阅读使用手册(RTFM:Read The Funcking Ma...翻译 2018-08-20 08:17:05 · 916 阅读 · 0 评论 -
openTSDB详解之Definitions
openTSDB详解之DefinitionsDefinitions当提及时间序列数据,有许多属于交织在一起,这样容易造成许多疑惑。这个页面是一个按照字母表对术语的排序介绍,去帮助定义那些在openTSDB中与使用相关的关键字。CardinalityCardinality是一个数学术语,用于定义一个集合中的元素的数目。在数据库术语中,它经常被用于指代一个索引的唯一条目。至于o...翻译 2018-08-18 14:33:47 · 690 阅读 · 0 评论 -
openTSDB详解之Storage
openTSDB详解之StorageopenTSDB目前支持Apache HBase作为它的主要存储后端。在版本2.3中,openTSDB同样可以在Google的云上Bigtable运行(原因是:openTSDB是出自Google的一个监控系统,与此同时HBase是出自Bigtable)。 选择下列的链接去学习关于存储模式或者Bigtable去寻找为了在云上的使用的配置和设置。HBase...翻译 2018-08-20 08:52:59 · 473 阅读 · 0 评论