用户指南

最佳实践

API 文档

Prometheus 监控概述

最近更新时间:2022-04-01 17:42:21

产品简介

Prometheus 监控服务(Managed Service for Prometheus,TMP)是针对云原生服务场景进行优化的监控和报警解决方案,全面支持开源 Prometheus 的监控能力,为用户提供轻量、稳定、高可用的云原生 Prometheus 监控服务。借助 TMP,您无需自行搭建 Prometheus 监控系统,也无需关心数据存储、数据展示、系统运维等问题,只需简单配置即可享受支持多集群的高性能Prometheus 监控服务。

Prometheus 简介

Prometheus 是一套开源的系统监控报警框架,其彻底颠覆了传统监控系统的测试和告警模型,是一种基于中央化的规则计算、统一分析和告警的新模型。作为云原生计算基金会 Cloud Native Computing Foundation 中受欢迎度仅次于 Kubernetes 的项目,Prometheus 依靠其强劲的单机性能、灵活的 PromSQL、活跃的社区生态,逐渐成为云原生时代最核心的监控组件。

Prometheus 优势

  • 支持强大的多维数据模型。
  • 内置灵活的查询语言 PromQL。
  • 支持全面监控。
  • 拥有良好的开放性。
  • 支持通过动态服务或静态配置发现采集目标。

开源 Prometheus 不足

  • 原生 Prometheus 为单点架构,不提供集群化功能,单机性能瓶颈使其无法作为大规模集群下的监控方案。
  • 无法便捷地实现动态的扩缩容和负载均衡。
  • 部署使用技术门槛高。

腾讯云 Prometheus 监控与开源 Prometheus 对比

对比项 腾讯云 Prometheus 监控 开源 Prometheus
场景 针对容器云原生场景优化,支持利用 集成中心 实现非容器场景的监控 面向多种场景
量级 超轻量级 内存占用高
稳定性 高于原生 无法保证
可用性
数据存储能力 无限制 受限于本地磁盘
超大集群监控 支持 不支持
数据可视化 基于 Grafana 提供优秀的可视化能力,且支持一个 Grafana 同时查看多个监控实例的数据,详情见 Grafana 插件概述 原生的 Prometheus UI 可视化能力有限
开源生态 完全兼容 原生支持
使用门槛
成本
跨集群采集 支持 不支持
跨地域跨 VPC 采集 支持采集其它地域和 VPC 的集群,可 Prometheus 监控服务关联集群 不支持
告警策略配置 丰富的 告警和通知模板 完全需要用户手工填写

产品优势

完全兼容 Prometheus 配置和核心 API,保留 Prometheus 原生特性和优势
支持自定义多维数据模型。
内置灵活的查询语言 PromQL。
支持通过动态服务或静态配置发现采集目标。
兼容核心 PrometheusAPI。

支持超大规模集群的监控
在针对单机 Prometheus 的性能压测中,当 Series 数量超过300万(每个 Label 以及值的长度固定为10个字符)时,Prometheus 的内存增长非常明显,需要20GB及以上的 Memory,因此需要使用较大内存的机器来运行。
腾讯云通过自研的分片技术,支持超大规模集群的监控。

支持在同一实例里进行跨 VPC 的多集群监控
支持同一监控实例内关联多个集群。支持监控其它 VPC 的集群。

支持模板化管理配置
针对多实例多集群的监控,Prometheus 监控服务支持配置监控模板,用户可以使用模板一键完成对多集群的统一监控。

超轻量、无侵入式的监控
腾讯云Prometheus 监控相较于开源 Prometheus 更加轻量化,开源 Prometheus 需要占用用户16GB - 128GB内存,但Prometheus 监控部署在用户集群内的只有非常轻量的 Agent,监控100个节点的集群约只占用20M内存,且无论集群多大,也不会超过1G的内存占用。
当用户关联集群后,Prometheus 监控会自动在用户的集群内部署 Agent,用户无需安装任何组件即可开始监控业务,超轻量级的 Agent 不会对用户集群内的业务和组件产生任何影响。

支持实时动态扩缩,满足弹性需求
腾讯云Prometheus 监控采用腾讯云自研的分片和调度技术,可以针对采集任务进行实时的动态扩缩,满足用户的弹性需求,同时支持负载均衡。

高可用性
采用技术手段,保障数据不断点,不缺失,为用户提供高可用的监控服务。

接入成本低
控制台支持产品化的配置文件编写,用户无需精通 Prometheus 即可轻松使用。针对有 Prometheus 实际使用经验的用户,腾讯云也提供原生 YAML 文件提交配置的方式,方便用户自定义高级功能完成个性化监控。

更多优势请参考

产品架构

腾讯云 Prometheus 监控服务作为超轻量、高可用、无侵入式的监控系统。

  • 在用户集群内仅包含一个轻量级的 Agent
  • 采集器是在用户账号下创建的 EKS 集群,对用户原生集群没有任何影响
  • 监控数据存储和展示都是独立的模块
  • 云监控的 Grafana 支持对接多个监控实例,实现统一的查看

产品架构如下图所示:

Prometheus 监控支持跨地域跨 VPC 的多集群监控、支持 VPC 网络中非集群内业务的监控、支持超大集群的监控并实时进行监控组件的扩缩容,保障高可用的监控服务。

在用户关联集群后,Prometheus 监控服务将默认添加社区主流的采集配置,用户在不做任何个性化配置的基础上能够开箱即用。

此外,TMP 预设常用的 Grafana Dashboard 及告警规则模板。

使用流程

用户需要登录腾讯云账号,进入 Prometheus 监控控制台

  1. 创建监控实例。
  2. 关联集群。在新创建的监控实例下完成集群关联操作,此时系统会自动在用户集群内完成 Agent 的部署,在用户的新建 EKS 集群里面内完成监控组件的部署,用户无需进行任何插件的安装。
  3. 配置采集规则。成功关联集群后用户可以按照实际需求灵活配置数据采集规则,并按需要配置告警规则,配置完成后即可打开 Grafana 查看监控数据。

关键概念解释

  • 监控实例:一个监控实例对应一整套监控服务,拥有独立的可视化页面,一个监控实例下可以关联同一 VPC 下的多个集群并完成对多个集群的统一监控。
  • 集群:通常指用户在腾讯云上的 TKE 或 EKS 集群。
  • 关联集群:指将监控实例与用户的集群进行关联的操作。
  • 采集规则:指用户自定义的监控数据采集的规则。
  • Job:在 Prometheus 中,一个 Job 即为一个采集任务,定义了一个 Job 工作负载下所有监控目标的公共配置,多个 Job 共同组成采集任务的配置文件。
  • Target:指通过静态配置或者服务发现得到的需要进行数据采集的采集对象。例如,当监控 Pod 时,其 Target 即为 Pod 中的每个 Container。
  • Metric:用于记录监控指标数据,所有 Metrics 皆为时序数据并以指标名字作区分,即每个指标收集到的样本数据包含至少三个维度(指标名、时刻和指标值)的信息。
  • Series:一个 Metric+Label 的集合,在监控面板中表现为一条直线。

应用场景

腾讯云 Prometheus 监控服务主要针对容器云原生业务场景进行监控,除了实现容器和 Kubernetes 的主流监控方案之外,还灵活支持用户按照自己的业务进行自定义监控,通过逐步完善不同场景的预设面板,不断总结行业最佳实践,来帮助用户完成监控数据的多维分析以及数据的个性化展示, Prometheus 监控服务致力于成为容器化场景下的最佳监控解决方案。

产品定价

Prometheus 监控服务定价详情见 按量计费
此外,目前使用 Prometheus 监控服务时将会在用户的账户下创建 EKS 集群,以及内外网 负载均衡 CLB 资源,按用户实际使用的云资源收费。具体创建的资源和参考价格可参考 云原生监控资源使用情况

目录