Prometheus 监控服务实践指南

2021-06-10 16:40:45 浏览数 (1)

背景

随着 2015 年由谷歌牵头成立 CNCF (云原生计算基金会),云原生的概念逐步深入人心。云原生应用的三大特征:容器化封装,动态管理,面向微服务。

以一个典型的电商服务关键路径(登录 -> 浏览详情页 -> 下单)为例:

图中所有的服务和组件都运行在腾讯云上。

1. 下单关键路径上 3 个服务均为容器化服务,且通过微服务架构实现。

2. 服务均运行在 TKE (腾讯云容器服务) 上。

针对图中的云原生服务,CNCF (云原生计算基金会) 推荐的监控治理方案是可观测性建设。其三大支柱为:指标,链路,日志。如下图:

其中,指标监控推荐方案为 Prometheus。对比开源方案,腾讯云 Prometheus 监控服务的核心优势是什么呢?

1. 开箱即用,低成本。无需自行搭建,节省开发运维成本。

2. 高可靠性。依靠云存储服务,保证服务的高可靠性。

3. 可扩展性。水平可扩展。

当然,Prometheus 的开放性,兼容性也得到很好的继承,如下图所示。

接下来,我们以上述部署在 TKE 上的电商服务为例讨论业务关注的核心监控场景,以及在腾讯云 Prometheus 监控服务中的实现。

监控场景

01

业务关键指标监控

业务关键运营指标

关键业务运营指标监控。针对该路径(登录 -> 浏览详情页 -> 下单),梳理出核心的业务运营指标:登录用户数,订单数。

核心业务指标重点监控,告警的触发级别和响应优先级都最高。

业务关键性能指标

关键质量指标监控。关键路径(登录 -> 浏览详情页 -> 下单)的接口性能指标:

请求量,请求处理延时,成功率。

02

业务巡检一体化大盘监控

值班巡检大盘。可以一览从业务层 -> 组件层 -> 系统层的监控数据,从整体上把控业务质量,避免数据孤岛。

如何在腾讯云 Prometheus 监控服务中实现?

01

业务关键指标监控 (以请求延时指标为例)

关键业务指标监控通过 Prometheus 自定义指标监控来实现。这里以关键性能指标 请求延时 为例来说明落地的核心步骤:

1. 指标定义。定义要监控的指标,请求延时 http_request_latency。

2. 数据抓取。配置托管 Prometheus 抓取 请求延时 指标的数据。

3. 面板展示。在托管 Prometheus 集成的 Grafana 中配置 请求延时 指标的查询面板。

核心步骤 1 - 请求延时 指标定义

在业务侧定义好请求延时指标 (Go 语言):http_request_latency。为了分析不同接口的延时,增加接口路径的 TAG "path"。也可以增加更多的 TAG 信息,有助于问题的分析。

在 8080 端口暴露指标:

将指标上报服务部署在 TKE:

注:

1. Prometheus go client 提供了完善的指标接入库:

https://github.com/prometheus/client_golang

2. 更多语言 SDK 可参考:

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

核心步骤 2 - 请求延时 指标抓取

在腾讯云 Prometheus 监控服务上配置抓取任务。

抓取部署在 TKE 上暴露的服务。

核心步骤 3 - 请求延时 面板展示

在腾讯云 Prometheus 监控服务集成的 Grafana 上配置上报数据统计效果。可以根据分位数查看请求的整体延时情况。

02

业务巡检一体化大盘监控

值班巡检大盘可以从整体上把控业务质量,避免数据孤岛。这里以业务监控数据 (接口延时指标 http_request_latency) 和业务部署的 TKE 组件指标数据来说明。

一体化大盘 - 业务关键指标监控数据

在腾讯云 Prometheus 监控服务集成的 Grafana 上拉取接口的请求延时数据。

一体化大盘 - 业务基础资源监控数据

在腾讯云 Prometheus 监控服务集成的 Grafana 上拉取业务部署的 TKE 组件指标数据。

结语

本文讨论了云原生业务业务监控 & 一体化巡检大盘两个关键场景,并给出了腾讯云 Prometheus 监控服务下的解决方案。关注云原生,关注云监控,提升业务质量。

腾讯云 Prometheus 监控服务 618 限时促销,企业新用户低至 35 折,点击文末阅读原文立即购买。

如果您有任何疑问,欢迎添加云监控团队微信号,

备注 prometheus,加群讨论:)

0 人点赞