Druid 简介与用途首先说明,这里所说的 Druid 并不是阿里巴巴的数据库连接池项目,而是 Eric Tschetter 创立的一个开源的分布式实时处理系统,希望为烧钱的大数据处理,提供一种更廉价的选择。为了解决查询延迟问题,使用 Hadoop 来实现交互式查询分析很难满足实时分析的需要。而 Druid 提供了以交互方式访问数据的能力,并权衡了查询的灵活性而采取了特殊的存储格式。 作为一个用于大数据实时查询和分析的高容错、高性能开源分布式系统,Druid 能够快速处理大规模的数据,并实现快速查询和分析。即使发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid 仍能够保持 100% 正常运行。 目前 Druid 应用最多场景是广告分析,包括互联网广告系统监控、度量和网络监控。并且 eBay 也已经计划将 Druid 用于生产环境中。 而时刻关注新技术的 OneAPM 也试图对 Druid 的指标进行展示。 使用 Cloud Insight SDK 监控 DruidCloud Insight 根据 StatsD 进行了修改,形成了 Cloud Insight SDK,可以方便用户上传自定义指标至 Cloud Insight,目前支持的数据类型有,Counters 和 Gauges, 语言仅支持 Python。 使用 SDK 前先确保自己安装了 Cloud Insight Agent,并且 Agent 处于运行的状态。 由于被监控的机器处于内网环境下,并不能与外网通讯。所以为了使用 Cloud Insight,需要部署一台主节点来接收其他机器的数据,并将数据发送至 Cloud Insight 后端。简要的配置方法如下:
好了,搞定这一切之后,就只需要使用pip来安装 SDK 了。
Druid 脚本说明Cloud Insight SDK 共有 Counters 和 Gauges 两种数据类型,下面结合 Druid 脚本来对数据类型做一些说明。 由于用户的代码跟使用的服务比较相关,在此就不提供代码了,可以看下面示例简单了解一下。Druid 监控示例脚本如下:
CountersCounters 是 StatsD 和 Cloud Insight SDK 最基本的一种数据类型。当调用increment和decrement时,对参数进行自增或自减。如:
是将yaiba.test_inc这个指标的数值自增1。increment方法可以包含 4 个参数:metric_name、stepping、metric_tags、sample_rate。如:
是将yaiba.test_inc这个指标的数值自增100,并且标签信息为whatever,而采样率为 0.7. 采样率Cloud Insight SDK 通过sample_rate参数来设置采样率。假设sample_rate=0.1: 在采集周期 30 s 内,只采集 10% 的数据。也就是说,调用了 10 次 increment,只自增了一次 Metric。 在数据量较大的情况下,可以确保采样的高效。
采样率会传递至 Agent,所以最终发送的数值,为计算采样率后的真实数值。 同样,decrement 和 increment 一样,使用相同的参数。
GaugesGauges 是连续型的数据类型,也就是说,当我们第一次赋值后,该 Metric 表现在图表上,会是一条于 X 轴平行的直线;直到再次为该 Metric 赋了一个不同的值。 Gauges 可以用来度量一些已经计算过的数值,如 WebSockets 的有效链接数;而系统目前登录的用户数,则在每次用户登录时,调用 Counters 中的 increment 比较适合。 Gauges 支持 4 个参数,分别是metric_name、metric_value、metric_tags和sample_rate,如:
是将13.4赋值给yaiba.test_gauge这个指标,并添加了yaiba_gauge这个标签信息。 Druid 监控效果最后上两张 Druid 的监控效果截图。首先在平台页面,您可以直接查询自定义的一些指标,和它的数值。 然后,使用自定义仪表盘,根据自己的业务来自建展现形式。 总体来说,Cloud Insight Agent 的可配置项目很多。所以就算是在内网环境下使用,也没有问题。而 Cloud Insight SDK 也存在大量的注释,使用起来也不会有什么麻烦。数据类型也比较简单。 Cloud Insight 集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。本文由 OneAPM 工程师翻译整理,想阅读更多技术文章,请访问 OneAPM 官方技术博客。 |
|