Druid 简介与用途

首先说明,这里所说的 Druid 并不是阿里巴巴的数据库连接池项目,而是 Eric Tschetter 创立的一个开源的分布式实时处理系统,希望为烧钱的大数据处理,提供一种更廉价的选择。为了解决查询延迟问题,使用 Hadoop 来实现交互式查询分析很难满足实时分析的需要。而 Druid 提供了以交互方式访问数据的能力,并权衡了查询的灵活性而采取了特殊的存储格式。

作为一个用于大数据实时查询和分析的高容错、高性能开源分布式系统,Druid 能够快速处理大规模的数据,并实现快速查询和分析。即使发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid 仍能够保持 100% 正常运行。

目前 Druid 应用最多场景是广告分析,包括互联网广告系统监控、度量和网络监控。并且 eBay 也已经计划将 Druid 用于生产环境中。

而时刻关注新技术的 OneAPM 也试图对 Druid 的指标进行展示。

使用 Cloud Insight SDK 监控 Druid

Cloud Insight 根据 StatsD 进行了修改,形成了 Cloud Insight SDK,可以方便用户上传自定义指标至 Cloud Insight,目前支持的数据类型有,Counters 和 Gauges, 语言仅支持 Python。

使用 SDK 前先确保自己安装了 Cloud Insight Agent,并且 Agent 处于运行的状态。

由于被监控的机器处于内网环境下,并不能与外网通讯。所以为了使用 Cloud Insight,需要部署一台主节点来接收其他机器的数据,并将数据发送至 Cloud Insight 后端。简要的配置方法如下:

  1. 修改 yum.conf,添加一行 “proxy=http://10.173.9.xx:xx”
  2. 手动在一个有外网 IP 的机器上下载了 install_agent.sh
  3. 把 install_agent.sh 拷贝到需要安装探针的机器上,运行 sudo sh install_agent.sh
  4. 手动修改 /etc/oneapm-ci-agent/oneapm-ci-agent.conf,添加 proxy 配置
  5. 重启 oneapm-ci-agent 服务

好了,搞定这一切之后,就只需要使用 pip 来安装 SDK 了。

pip install -i http://pypi.oneapm.com/simple --upgrade oneapm-ci-sdk

Druid 脚本说明

Cloud Insight SDK 共有 Counters 和 Gauges 两种数据类型,下面结合 Druid 脚本来对数据类型做一些说明。

由于用户的代码跟使用的服务比较相关,在此就不提供代码了,可以看下面示例简单了解一下。Druid 监控示例脚本如下:

# coding: utf8 

from oneapm_ci_sdk import statsd 

# 发送标准数据,即数值是float, int类型的数据
# statsd.gauge(metric, value, tags=None, sample_rate=1)
statsd.gauge('yaiba.test_gauge', 130.4, tags='yaiba_gauge') # 增加数据的值
# statsd.increment(metric, value=1, tags=None, sample_rate=1)
statsd.increment('yaiba.test_inc') # +1
statsd.increment('yaiba.test_inc', 100, 'whatever', 0.7) # 增加100,采样比例是 70% # 减少数据的值
# statsd.decrement(metric, value=1, tags=None, sample_rate=1) # -------------
# 以上数据都是立刻发送给探针 # 批量发送
# statsd.open_buffer(max_buffer_size=50) # statsd.close_buffer()
statsd.open_buffer()
statsd.gauge('yaiba.test_gauge', 13.4, tags='yaiba_gauge')
statsd.gauge('yaiba.test_gauge', 10.4, tags='yaiba_gauge')
statsd.gauge('yaiba.test_gauge', 130.4, tags='yaiba_gauge')
statsd.close_buffer() # Or
with statsd as batch:
statsd.gauge('yaiba.test_gauge', 13.4, tags='yaiba_gauge')
statsd.gauge('yaiba.test_gauge', 10.4, tags='yaiba_gauge')
statsd.gauge('yaiba.test_gauge', 130.4, tags='yaiba_gauge')

Counters

Counters 是 StatsD 和 Cloud Insight SDK 最基本的一种数据类型。当调用 incrementdecrement 时,对参数进行自增或自减。如:

statsd.increment('yaiba.test_inc')

是将 yaiba.test_inc 这个指标的数值自增 1increment 方法可以包含 4 个参数:metric_namesteppingmetric_tagssample_rate。如:

statsd.increment('yaiba.test_inc', 100, 'whatever', 0.7)

是将 yaiba.test_inc 这个指标的数值自增 100,并且标签信息为 whatever,而采样率为 0.7.

采样率

Cloud Insight SDK 通过 sample_rate 参数来设置采样率。假设 sample_rate=0.1

在采集周期 30 s 内,只采集 10% 的数据。也就是说,调用了 10 次 increment,只自增了一次 Metric。

在数据量较大的情况下,可以确保采样的高效。

statsd.increment('page.views', sample_rate=0.1)

采样率会传递至 Agent,所以最终发送的数值,为计算采样率后的真实数值。

同样,decrement 和 increment 一样,使用相同的参数。

statsd.decrement('some.other.event')

# Decrease the counter by 5, 15% sample.

statsd.decrement('some.third.event', 5, rate=0.15)

Gauges

Gauges 是连续型的数据类型,也就是说,当我们第一次赋值后,该 Metric 表现在图表上,会是一条于 X 轴平行的直线;直到再次为该 Metric 赋了一个不同的值。

Gauges 可以用来度量一些已经计算过的数值,如 WebSockets 的有效链接数;而系统目前登录的用户数,则在每次用户登录时,调用 Counters 中的 increment 比较适合。

Gauges 支持 4 个参数,分别是 metric_namemetric_valuemetric_tagssample_rate,如:

statsd.gauge('yaiba.test_gauge', 13.4, tags='yaiba_gauge')

是将 13.4 赋值给 yaiba.test_gauge 这个指标,并添加了 yaiba_gauge 这个标签信息。

Druid 监控效果

最后上两张 Druid 的监控效果截图。首先在平台页面,您可以直接查询自定义的一些指标,和它的数值。

然后,使用自定义仪表盘,根据自己的业务来自建展现形式。

总体来说,Cloud Insight Agent 的可配置项目很多。所以就算是在内网环境下使用,也没有问题。而 Cloud Insight SDK 也存在大量的注释,使用起来也不会有什么麻烦。数据类型也比较简单。

Cloud Insight 集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。本文由 OneAPM 工程师翻译整理,想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

如何使用 Cloud Insight SDK 实现 Druid 监控?的更多相关文章

  1. 如何监控业务的响应速度?Cloud Insight SDK 实践分享

    一直在说 Cloud Insight 是数据聚合平台,可以用 SDK 和 API 实现业务监控,如今不拿出点实践人们恐怕是不能信服.那今天本文就先简单介绍一下 SDK 可以应用在哪些方面,再举个真实用 ...

  2. 使用 Cloud Insight SDK 监控北京空气质量!

    现在越来越多的 App 都开始有广告了.特别是空气质量监测,和天气类的 App,广告还是蛮多的,眼花缭乱,真是够了. 最近刚好在用一款系统监控工具 Cloud Insight,它提供的 SDK 可以把 ...

  3. Cloud Insight 现在已经支持监控 Cassandra 啦!

    Cassandra 是什么? Apache Cassandra 以其可扩展性和容错分布式数据库系统而被人所熟知.Cassandra 起源于Facebook 最初创建于 Amazon Dynamo 和谷 ...

  4. Cloud Insight 仪表盘上线 | 全面监控 Redis

    OneAPM 作为应用性能领域的新兴领军企业,近期发布了重量级新产品-- Cloud Insight 数据管理平台,用它能够监控所有基础组件,并通过 tag 标签对数据进行管理. 近日,Cloud I ...

  5. 极客范:如何使用 Cloud Insight 来监控闭路电视?

    最近新上线支持 Windows 系统及其组件 监控功能的 Cloud Insight,在系统监控领域基本囊括了对所有主流和部分非主流平台的支持.但是这还不够,Cloud Insight 可不仅仅是一个 ...

  6. Cloud Insight 和 BearyChat 第一次合体,好紧张!

    说到 ChatOps 我们可能立刻想到是 Slack(啥?没听过?哦!),但是由于国内网络和语言的问题你可能无法拥有很好的体验了.那就把目光转回国内吧,国内的话就不得不提到 BearyChat 等 C ...

  7. 用 OneAPM Cloud Insight 监控 Docker 性能

    Docker 是构建和部署软件的一个新兴的轻量级的平台,也是一个减轻替代虚拟机的容器.Docker 通过给开发者提供兼容不同环境的镜像,成为解决现代基础设施的持续交付的一个流行的解决方案. 和虚拟机一 ...

  8. Docker 监控- Prometheus VS Cloud Insight

    如今,越来越多的公司开始使用 Docker 了,2 / 3 的公司在尝试了 Docker 后最终使用了它.为了能够更精确的分配每个容器能使用的资源,我们想要实时获取容器运行时使用资源的情况,怎样对 D ...

  9. 如何监控 Tomcat?Zabbix 与 Cloud Insight 对比

    JVM 监控工具有很多,像命令 jstat,jmap,jstack,jinfo 可以根据不同需求查看不同的系统信息,还有图像化界面 jconsole,都是很方便的工具.这些可以参考 JAVA自带监控工 ...

随机推荐

  1. 简明网络I/O模型---同步异步阻塞非阻塞之惑

    转自:http://www.jianshu.com/p/55eb83d60ab1 网络I/O模型 人多了,就会有问题.web刚出现的时候,光顾的人很少.近年来网络应用规模逐渐扩大,应用的架构也需要随之 ...

  2. "只能在执行Render()的过程中调用RegisterForEventValidation" 解决方案

    开发中遇到令人蛋疼的问题: 只能在执行Render()的过程中调用RegisterForEventValidation 当出现的异常的提示: 异常详细信息: System.InvalidOperati ...

  3. 【转】浅谈Java中的hashcode方法(这个demo可以多看看)

    浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native i ...

  4. ScriptManager的用法

    资料中如实是说:       1, ScriptManager(脚本控制器)是asp.net ajax存在的基础. 2, 一个页面只允许有一个ScriptManager,并且放在其他ajax控件的前面 ...

  5. Unity 3D 文件导入出错误解决方法以及unity圣典离线版下载地址

    1.安装unity 时我选择了free版的,打开已有项目时出现如下错误提示. 解决方法:先把要导入的文件先拷贝到unity3d安装目录下对应的文件夹内,之后再返回unity3d软件,右键选择“导入”. ...

  6. mark jquery 链式调用的js原理

    我们在使用jquery的时候会用到类似$("#id").css('color','red').show(200); 这样写有点减少代码量,减少了逐步查询DOM的性能损耗: js 原 ...

  7. OC - 3.OC的三大特性

    一.封装 1> 封装的定义 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别 2> 封装的好处 可以通过set方法防止为成员变量设置不合理的值 仅向外部提供公 ...

  8. 抓取Bing每日图片作为网站首页背景

    把Bing搜索的背景图片设置为自己网站的背景,实现背景及资讯的每日更新 效果图如下: 理一下思路,首先我们要抓取Bing的每日图片及最新资讯,然后保存图片及信息到本地,最后显示图片及资讯到网站首页. ...

  9. IOS之沙盒(Sandbox)机制

    IOS中每个App应用程序都有一个单独封闭的文件夹,这个文件夹称为沙盒,并且苹果规定,任何App都无权访问其他App的沙盒 沙盒目录通过 FOUNDATION_EXPORT NSString *NSH ...

  10. (hdu)1950 Bridging signals(最长上升子序列)

    Problem Description 'Oh no, they've done it again', cries the chief designer at the Waferland chip f ...