Trace告警配置最佳实践

简介: 阿里云日志服务(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算子即可

获得第一手资料与支持:

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
9月前
|
运维 Prometheus 监控
基于阿里云可观测产品构建企业级告警体系的通用路径与最佳实践
本文围绕企业级告警体系构建展开,探讨了监控与告警在系统稳定性中的重要作用。通过梳理监控对象、分析指标、采集数据及配置规则等环节,提出告警体系建设的通用流程,并针对多平台告警、误报、告警风暴等问题提供解决思路。结合阿里云可观测产品,分享了某电商企业的实践案例,展示了如何通过标签规范、日志标准和统一管理平台实现高效告警处置,为构建全面且实用的告警体系提供了参考指南。
957 1
|
7月前
|
编解码 监控 算法
CDN+OSS边缘加速实践:动态压缩+智能路由降低30%视频流量成本(含带宽峰值监控与告警配置)
本方案通过动态压缩、智能路由及CDN与OSS集成优化,实现视频业务带宽成本下降31%,首帧时间缩短50%,错误率降低53%。结合实测数据分析与架构创新,有效解决冷启动延迟、跨区域传输及设备适配性问题,具备快速投入回收能力。
479 0
|
10月前
|
Prometheus Kubernetes 监控
Kubernetes监控:Prometheus与AlertManager结合,配置邮件告警。
完成这些步骤之后,您就拥有了一个可以用邮件通知你的Kubernetes监控解决方案了。当然,所有的这些配置都需要相互照应,还要对你的Kubernetes集群状况有深入的了解。希望这份指南能帮助你创建出适合自己场景的监控系统,让你在首次发现问题时就能做出响应。
594 22
|
Prometheus 监控 Cloud Native
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
|
10月前
|
运维 Prometheus 监控
基于阿里云可观测产品构建企业级告警体系的通用路径与最佳实践
基于阿里云可观测产品构建企业级告警体系的通用路径与最佳实践
420 1
|
Prometheus Kubernetes Cloud Native
Prometheus的告警配置
【10月更文挑战第31天】Prometheus的告警配置
721 1
|
人工智能 运维 监控
可观测实践,如何利用 AI 算法解决告警配置三大难题
本文介绍了如何利用 AI 算法解决“不知道该监控哪些指标”、“不知道该设置什么阈值”、“指标正常情况下就起伏不定,怎么配告警”告警配置三大难题。
142490 84
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之如何配置基线告警触发规则
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
203 1
|
存储 Prometheus Cloud Native
[prometheus]配置alertmanager和钉钉告警
[prometheus]配置alertmanager和钉钉告警
1308 0