前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 Prometheus 监控服务多维能力告警优化实践

基于 Prometheus 监控服务多维能力告警优化实践

作者头像
腾讯云可观测平台
发布2021-08-09 12:11:02
7660
发布2021-08-09 12:11:02
举报

实践背景

通常来说,监控系统的四个黄金指标(Four Golden Signals,参考Goole运维解密)是错误类指标、延迟类指标、流量指标、和饱和度指标,可以在服务级别衡量终端用户体验、服务质量、业务影响等层面的问题。以一个典型的电商服务关键路径(登录->产品浏览详情页->下单)举例。

针对图中三个服务,需要设定成功率等监控指标。传统的以实例(比如 IP )为监控对象的场景下,通常会对每个服务的实例都配置告警策略,用于满足最细粒度的告警对象质量监测,但也会带来一系列痛点:

  • 需要针对每个实例都配置一条告警策略,告警策略太多,维护成本高。
  • 缺乏整个业务层面的监控(监控对象是3个业务,而不是每个实例)。
  • 业务异常时,多个实例同时触发告警,容易引起告警风暴。
  • 对于其他维度的业务质量监控能力不足,比如业务分区部署,需要看某个区的质量情况等。

针对上述痛点,Prometheus 监控服务可以提供“优雅”的解决方案。通过将监控对象从实例扩展为不同标签(label),利用Prometheus 监控服务的多维能力,可以聚合出服务层面的宏观监控指标。详见下文。

监控场景

01

服务指标的宏观维度监控&告警场景

以上述电商服务关键路径举例。服务上报指标为成功率,上报标签为:服务名、IP 和区域。

相比传统只上报实例(IP)的单一标签,这里还扩展了服务名等其他标签。

在设置告警策略时,通过不同标签聚合,来解决上述提到的传统实例监控中碰到的痛点。具体步骤如下:

  1. 按服务维度的成功率看整体情况。
  2. 按服务&地区维度聚合,查看某个更细维度的质量  情况。
  3. 利用 PromQL 可以大幅降低告警策略数量(对比传统实例监控)。

02

服务指标的宏观维度监控&告警场景

一、指标定义&服务部署

1. 指标定义

定义服务需要上报的指标和标签。举例,这里上报指标为:成功率(svcSuccessRate)。标签为:服务名(svc),IP(ip),区域(region)。

2. 服务部署

服务可以通过虚拟机(CVM)的形式部署在云上(本文采用 CVM 的部署形式),也可以通过容器(TKE)的形式部署。

部署到 CVM 上,并检查是否正常暴露指标(示例中通过8581端口暴露指标)。

注:

1.Prometheus go client 提供了完善的指标接入库:https://github.com/prometheus/client_golang

2.更多语言 SDK 可参考:

https://cloud.tencent.com/document/product/1416/56027

二、配置抓取任务

1. 新建 Prometheus 实例后,可以通过标签来抓取部署在  CVM 上服务暴露的指标。

详见 cvm_sd_config 配置:https://cloud.ten

cent.com/document/product/1416/55995

2. 验证数据是否抓取成功。通过 Grafana 查询对应的指标和标签。

三、配置告警策略

1. 配置服务宏观层面的告警

当服务的成功率低于两个9(0.99)时告警。

效果如下图所示,当上报的三个服务(登录,查看产品详情页,下单)成功率低于0.99时,就会触发告警。

2. 配置服务更细维度的告警

当服务某个区域的成功率低于0.99时,触发告警。

效果如下图所示,当上报的三个服务(登录,查看产品详情页,下单)在某个地区的成功率低于0.99时,就会触发告警。

结  语

本文讨论了基于 Prometheus 监控服务多维能力的告警优化,以及在托管 Prometheus中的实现。欢迎您关注云原生,关注云监控,提升业务质量。

联系方式

如果您有任何疑问,欢迎添加云监控团队微信号,回复 Prometheus,进入专属用户群。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云可观测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、指标定义&服务部署
  • 二、配置抓取任务
  • 三、配置告警策略
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档