Druid.io查询分析

前言

QueryId作为Druid区分查询的唯一标识,是我们定位查询问题有效的输入。用户查询有问题时,优先提供QueryId,如果在日志中捞不到的话,我们再根据dataSource名,interval以及查询装态来判断是哪条查询。

Druid Metrics

Druid 服务在运行时会将自身的一些metrics(指标信息)记录到日志文件中,也可以通过HTTP请求发送给其他的消息中间件,例如Apache Kafka。 默认情况下指标信息的记录是关闭的,需要在部署服务的时候手动开启。
在我们的集群中,Druid的指标信息是通过kafka实时落入Druid的一个dataSource中druid_metrics。metrics记录的是全维度信息,通过service维度来区分服务,通过metric来取分指标,且指标对应的的指标值为value。dataSource的schema可以入Druid的时候进行更改。不同服务对应的指标可以在官网查看[Druid Metrics](http://druid.io/docs/latest/operations/metrics.html。需要注意的是,有些指标是需要配置了相应的Monitor之后才可以记录的,具体信息可以在官网查看。

Superset

Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。
Druid指标信息的可视化展示是通过Druid+Superset来实现的。Druid提供数据查询来源,而Superset则将结果通过报表或者其他的方式展示出来。这样我们可以很轻松地查看和分析Druid的很多指标信息,包括:查询指标,集群状态,服务负载等等。

查询问题分析

现在我们认为用户的唯一输入是queryId,则可以将其作为过滤条件筛选出相应的指标。

确定查询语句

首先,最重要的是我们要获取到用户的查询语句,而查询是请求Broker的,所以据提的查询我们可以在Broker的日志中获取。但是,如果有多个Broker,我们如何确定是哪个Broker?一个一个查可以,也可以通过druid_metrics查看。具体的查询语句如下:

{
   
    "queryType":"topN",
    "dataSource":"druid_metrics",
    "dimension":"host",
    "threshold":10,
    "metric":"count",
    "intervals":["2019-06-01T14:30:00+08:00/2019-06-06T14:40:00+08:00"],
    "granularity":"all",
    "filter":{
   
    	"type":"and"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值