Trace告警配置最佳实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 阿里云日志服务(SLS)提供了Log,Metric,Trace等三种数据快速接入的能力,同时也提供了丰富的分析功能和可定制化的Dashboard的能力,客户可以利用SLS快速的搭建可观测性平台,让用户更加关注于分析,降低用户接入各类数据的门槛。本文主要讲述应用接入SLS Trace服务后,针对各种场景化如何配置告警。

背景


近两年系统可观测性可算是火爆的概念,从2017年 Peter Bourgon编写的《Metrics, Tracing, and Logging》系统地阐述了这三者的定义、特征,以及它们之间的关系与差异,受到了业界的广泛认可。由此确认了可观测性的三大支柱数据。可观测性平台旨在将三类数据数据采集,通过专家经验进行融合分析,输出成各种Dashboard,运维或者研发同学可通过Dashboard可以快速的定位和发现隐藏的问题。


阿里云日志服务(SLS)提供了Log,Metric,Trace等三种数据快速接入的能力,同时也提供了丰富的分析功能和可定制化的Dashboard的能力,客户可以利用SLS快速的搭建可观测性平台,让用户更加关注于分析,降低用户接入各类数据的门槛。


本文主要讲述应用接入SLS Trace服务后,针对各种场景化如何配置告警。


配置告警流程

  1. 点击Trace实例的project,进入存放trace数据的logstore。例如trace实例名称为sls-mall,存放trace数据的logstore名字就叫sls-mall-traces
  2. 添加执行告警SQL,下图以服务延迟告警为例,实现效果:当服务方法的平均延迟超过2秒则告警。

  1. 另存为新版告警

  1. 配置告警监控规则,同时添加触发条件

  1. 新增行动策略

  1. 配置行动列表,这里以钉钉消息为例,

当触发告警后,配置的钉钉号将会收到相应告警消息,如下图。以上便是添加SLS Trace告警的流程,接下来将会带来针对性Trace场景告警的SQL。

告警SQL最佳实践

服务方法告警

  • 针对服务错误率告警
service:*and parentSpanID:""|select sum(error)*1.0/count(1)as errorRate, service from(select CASE when statusCode ='ERROR' then 1 ELSE 0 END as error, service from log )groupby service


  • 针对服务请求QPS告警,注意:执行下面SQL,时间选择为:1分钟,如果是其他时间,调整分母即可
service :*and parentSpanID:""|selectcount(1)/60as QPS, service from log groupby service


  • 针对服务P90, P95, P99延迟(ms)告警
  • P90
service:*|select approx_percentile(duration,0.9)as avg, service from log groupby service, name
  • P95
service:*|select approx_percentile(duration,0.95)as avg, service from log groupby service, name
  • P99
service:*|select approx_percentile(duration,0.99)as avg, service from log groupby service, name


  • 针对入口事务的平均延迟(ms)告警
service :*and parentSpanID:""|select round(avg(duration)/1000.0,2)as total, service from log groupby service


  • 针对单个方法平均延迟(ms)告警
service :*|select round(avg(duration)/1000.0,2)as avg, service, name from log groupby service, name


DB/NoSQL告警

  • 针对DB平均延迟(ms)告警,本条SQL同样也适用于NoSQL(Redis,Cassandra,MongoDB,Elasticsearch)
attribute.db.system:*|select round(avg(duration)/1000.0,2)as avg, service, json_extract_scalar(attribute,'$["db.statement"]')as statement from log groupby service, name, sql


服务调用告警

  • 针对Http平均延迟(ms)告警
kind: client and attribute.http.method:*|select round(avg(duration)/1000.0,2)as avg, service, json_extract_scalar(attribute,'$["http.url"]')as url from log groupby service, name, url


消息中间件

  • 针对消息处理平均延迟(ms)告警
kind:consumer and attribute.messaging.system:*|select round(avg(duration)/1000.0,2)as avg, service from log groupby service, name


FAQ

  1. 如何单个服务进行告警?

只需要在告警sql中添加service: XXX即可

  1. DB/NoSQL指标能否支持P90告警

可以,只需将上述的avg算子替换成使用approx_percentile算子即可

获得第一手资料与支持:

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
存储 监控 前端开发
基于 ARMS RUM 进行日志自定义分析
ARMS RUM 前端监控专注于对 Web 场景、Weex 场景和小程序场景的监控,从页面打开速度(测速)、页面稳定性(JS诊断错误)和外部服务调用成功率(API)这三个方面监测Web和小程序页面的健康度。ARMS RUM 前端监控控制台的功能已经能够满足大部分用户的需求。现有的控制台功能包括:前端...
127 7
基于 ARMS RUM 进行日志自定义分析
|
存储 数据采集 监控
无数据告警最佳实践
在对SLS的Logstore和Metricstore进行监控的过程中,有时候会出现一些无数据的情况,监控SLS的存储库中无数据的情况,是保证数据成功上传到SLS的一个重要手段,本文将介绍无数据告警的常见配置方法。
457 0
无数据告警最佳实践
|
6月前
|
存储 数据采集 监控
【最佳实践】无数据告警配置
背景在对SLS的Logstore和Metricstore进行监控的过程中,有时候会出现一些无数据的情况,例如数据采集阶段出现故障Logtail采集异常、数据导入任务异常或者SDK写入数据出错等情况都有可能导致日志库中没有数据。业务系统出现问题例如用户的业务日志中有某个系统模块的日志,在一段时间内,由...
158 0
【最佳实践】无数据告警配置
|
6月前
|
机器学习/深度学习 运维 监控
用SLS配置日志关键字告警的N种方法
本文由日志关键词告警出发,介绍了使用SLS进行关键词监控告警配置,并且介绍了几种常见的配置方法,可以覆盖关键词监控的大部分场景。
359 0
用SLS配置日志关键字告警的N种方法
|
运维 监控 Java
如何基于运维事件中心通过logstash进行日志关键字监控
日常运维过程中,很多场景都会有诉求,需要对日志关键字进行监测,以便第一时间发现应用/业务相关异常,如jvm日志的gc关键字、业务日志的error关键字。本文将介绍使用logstash对异常日志进行采集及推送。
343 0
|
运维 监控 安全
SLS告警通知到Line
Line是一款由NHN Japan(韩国Naver Corporation公司的子公司)在日本推出的即时通信软件,在日韩拥有较大的用户规模。Line支持构建机器人,并且通过API给机器人推送消息,添加了机器人的用户以及群聊就可以接收到机器人推送的消息。但是由于Line的服务器位于海外,SLS的告警无法直接发送通知。因此本文介绍了如何利用阿里云的其他服务来将SLS的告警通知到Line。
537 2
|
存储 监控 Cloud Native
【笔记】用户指南—监控与告警—配置告警
您可以在控制台上配置计算资源监控指标和存储资源监控指标的告警规则。本文将介绍如何配置实例的告警规则。
131 0
【笔记】用户指南—监控与告警—配置告警
|
存储 监控 索引
SLS告警最佳实践——自定义分析告警历史
在SLS告警评估、触发到通知的整个生命周期过程中,都会有一些日志记录,通过这些日志我们可以借助告警对系统的整体健康状况、稳定性等有一个相对全面的了解。
551 0
|
监控 安全 JavaScript
|
存储 监控 Cloud Native
用户指南—监控与告警—配置告警
您可以在控制台上配置计算资源监控指标和存储资源监控指标的告警规则。本文将介绍如何配置实例的告警规则。
181 0
用户指南—监控与告警—配置告警