
# Prometheus监控概述
Prometheus监控全面对接开源Prometheus生态，支持类型丰富的组件监控，提供多种开箱即用的预置监控大盘和全面托管的Prometheus服务。
Prometheus是一套开源的监控报警系统。主要特点包括多维数据模型、灵活查询语句PromQL以及数据可视化展示等。更多信息请参见[Prometheus官方文档](https://prometheus.io/docs/introduction/overview/)。
Prometheus实例是AOM服务提供的管理Prometheus数据采集和数据存储分析的逻辑单元。根据Prometheus监控的对象和使用场景，Prometheus实例可以分为以下几种类型，具体请参见[表1]。
#### 约束与限制
指标维度个数：每个指标的维度最多为30个（系统初始默认配置1个，可自定义更改/上报的维度个数是29个）。
如需更多信息，详情请参考[约束与限制](https://support.huaweicloud.com/productdesc-aom2/aom_01_0013.html)。
 表1Prometheus实例说明 
| Prometheus实例类型                                                                                                    | 监控对象                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 监控能力                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 应用场景                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| Prometheus for CCE                                                                                                | CCE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | - 提供与容器服务原生的集成能力、容器指标的监控能力。  - 默认开启以下服务发现能力：Kubernetes SD、 ServiceMonitor、PodMonitor的自定义发现。                                                                                                                                                                                                                                                                                                                                                       | 适合需要对容器服务集群及其上面运行的应用进行一体化监控场景。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Prometheus for ECS **仅之前创建的ECS类型Prometheus实例可以使用，** **当前版本已不支持创建ECS类型Prometheus实例。** | ECS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 通过在VPC内的某台虚机上安装uniagent（Exporter）插件提供针对此VPC内ECS应用和组件（如数据库，中间件等）的一体化监控。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 适合需要对运行在华为云的虚拟私有云VPC内（通常为弹性云服务器ECS集群）的应用组件进行监控场景，可以通过接入中心添加Prometheus中间件及自定义插件监控。                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Prometheus for 云服务 **仅之前创建的云服务类型Prometheus实例可以使用，** **当前版本已不支持创建云服务类型Prometheus实例**   | 多种云服务                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 提供多种云服务的监控。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 适合需要通过Prometheus监控来统一采集、存储和显示云服务的监控数据的场景。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 通用实例                                                                                                              | - 自建的Prometheus  - ECS  - 多种云服务  - 通过[添加监控数据API](https://support.huaweicloud.com/api-aom/aom_04_0013.html)上报的指标。  - IoTDA、ModelArts、IEF、CCI等API上报的云服务指标。  - 通过ICAgent采集上报的指标。   | - 提供Prometheus时序数据库的远端存储。  - 提供自研监控大盘进行数据的展示。 说明： 由于自建Prometheus服务器为用户自己运维，所以相应的指标管理、指标数据采集等需用户自行配置。   - 通过在VPC内的某台虚机上安装uniagent（Exporter）插件提供针对此VPC内ECS应用和组件（如数据库，中间件等）的一体化监控。  - 提供多种云服务（如RDS等）的监控。  - 提供通过API和ICAgent上报到AOM的指标的监控。   | - 适合已经自建了Prometheus Server，但需要通过远端存储（Remote Write）方式来解决数据存储问题的可用性和可扩展性场景。  - 适合需要对运行在华为云的虚拟私有云VPC内（通常为弹性云服务器ECS集群）的应用组件进行监控场景，可以通过接入中心添加Prometheus中间件监控。  - 适合需要通过Prometheus监控来统一采集、存储和显示云服务的监控数据的场景。  - 适合接入容器、云服务、主机等指标数据的场景。   |
| 多账号聚合实例                                                                                                           | 同一个组织下多账号的云服务资源、CCE资源和ECS资源                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 支持对同一个组织下多账号的云服务资源、CCE、ECS数据聚合，运维监控。 通过该Prometheus实例接入的指标如下： - CCE和ECS指标的详细描述请参见[虚机指标](https://support.huaweicloud.com/productdesc-aom2/aom_01_0022.html)。  - 其他云服务指标的详细描述请参见[云服务指标说明](https://support.huaweicloud.com/usermanual-ces/zh-cn_topic_0202622212.html)。                                                                                                                    | 适合需要统一监控同一个组织下多成员账号的云服务资源、CCE资源、ECS资源的场景。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 多账号虚拟聚合实例                                                                                                         | 提供多个Prometheus实例的虚拟聚合实例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 支持通过本账号或跨账号的多个Prometheus实例的虚拟聚合实例，执行PromQL查询聚合，实现Prometheus指标的统一查询和统一告警等。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 适合需要统一监控同一个组织下多成员账号的云服务资源、CCE资源、ECS资源的场景。 与多账号聚合实例区别在于，虚拟聚合实例并不存储指标，只是提供多普罗联合查询能力，虚拟聚合实例不支持指标写入。                                                                                                                                                                                                                                                                                                                                                                                             |
| Prometheus for APM                                                                                                | APM调用链                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 集成APM应用监控能力，支持对JAVA、GO、Python、Node.js、PHP、.NET、C++等应用层组件调用链指标进行监控。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 适合已开通云应用性能指标监控（APM）服务，监控应用组件调用链指标的场景。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
#### 功能特性
AOM的Prometheus监控具有监控指标数据采集、存储、计算、展示、告警等能力。监控指标覆盖广，涵盖容器、云服务、中间件、数据库、应用以及业务等多种监控数据。AOM的Prometheus监控支持的主要功能如下所示。
表2监控对象接入 
| 功能                                                                                                                   | 功能说明                                                                                                                                            |
|:---|:---|
| [创建Prometheus实例](https://support.huaweicloud.com/usermanual-aom2/mon_01_0072.html#mon_01_0072__section4525106135712) | AOM支持创建多种类型的Prometheus实例。您可以根据需求选择创建任一类型的Prometheus实例。                                                                                          |
| [接入中心](https://support.huaweicloud.com/usermanual-aom2/mon_01_0223.html)                                             | AOM集成Prometheus中间件插件，支持在Prometheus实例的"接入中心"为虚机安装中间件Exporter，将上报指标到指定的ECS Prometheus实例中。 **当前仅ECS类型Prometheus实例支持。** |
| [云服务接入](https://support.huaweicloud.com/usermanual-aom2/mon_01_0067.html#mon_01_0067__section19328924183711)         | AOM支持在Prometheus实例的"云服务接入"中将云服务接入AOM，将云服务相关指标上报到定的云服务Prometheus实例中。 **当前仅云服务类型Prometheus实例支持。**                   |
| [账号接入](https://support.huaweicloud.com/usermanual-aom2/mon_01_0071.html)                                             | AOM支持在Prometheus实例的"接入账号"中将同一组织下多个成员账号接入AOM后，实现对同一组织下多个成员账号的云服务指标进行监控。通过数据多写功能，可以实现跨VPC的访问，而不必暴露服务端相关的网络信息。                                     |
   
表3监控指标采集 
| 功能                                                                                     | 功能说明                                                                                                                                                                         |
|:---|:---|
| [管理Prometheus实例指标数据](https://support.huaweicloud.com/usermanual-aom2/mon_01_0080.html) | 支持查看、新增和废弃指标。 **当前仅** **CCE类型、通用实例、APM类型、多账号聚合实例、多账号虚拟聚合实例与之前创建的ECS类型、云服务类型Prometheus实例支持。** （**当前版本已不支持创建** **ECS类型、云服务类型Prometheus实例。** **）** |
   
表4监控数据处理 
| 功能                                                                                      | 功能说明                                                                                                                                                      |
|:---|:---|
| [获取Prometheus实例的服务地址](https://support.huaweicloud.com/usermanual-aom2/mon_01_0124.html) | 使用Remote Read地址和Remote Write地址，将自建Prometheus的监控数据存储到AOM的Prometheus实例中，实现远程存储。                                                                             |
| [预聚合](https://support.huaweicloud.com/usermanual-aom2/mon_01_0082.html)                 | 通过配置预聚合规则将计算过程提前到写入端，可减少查询端资源占用，尤其在大规模集群和复杂业务场景下可以有效的降低PromQL的复杂度，从而提高查询性能，解决用户配置以及查询慢的问题。 当前仅CCE类型和通用实例类型Prometheus实例支持。 |
   
#### 产品优势
表5产品优势 
|                                                                                                                                                                        **开箱即用** - 一键安装部署即可监控Kubernetes以及各类云产品。  - 一键接入各种应用组件及告警工具。                                                                                                                                                                          | **低成本** - 多种指标免费用，覆盖Kubernetes标准组件。  - 提供全托管式服务，无需另购资源，可降低监控成本，且维护成本几乎为零。  - 与CCE集成并提供监控服务，容器监控体系创建时间从2天降低至10分钟。一个Prometheus For CCE实例可以上报多个CCE集群数据。   |
|---|---|
| **开源兼容** - 支持自定义多维数据模型、HTTP API模块、PromQL查询。  - 静态文件配置和动态发现机制发现监控对象，实现轻松迁移及接入。                                                                                                                                                                                                                                                                                                                                  | **数据规模无上限** - 凭借云存储能力，数据存储无上限，不再受限于本地容量。云端分布式存储保障数据可靠性。  - 通过Prometheus实例 for 多账号聚合实例将多个资源账号的指标数据汇聚到一个Prometheus实例，实现统一监控。                                                                               |
| **高性能** - 相较开源版本结构更轻量，资源消耗更低。通过单进程一体化Agent监控Kubernetes集群，采集性能提升20倍。  - Agent部署在用户侧，保留原生采集能力同时能够最大程度的减少资源的使用。  - 通过采集存储分离架构，全面提升整体性能。  - 采集组件优化，提升单副本采集能力，降低资源消耗。  - 通过多副本横向扩展均衡分解采集任务，实现动态扩缩，解决开源水平扩展问题。   | **高可用性** - 双副本：指标数据采集、处理和存储组件支持多副本横向扩展，核心数据链路高可用。  - 水平扩展：基于集群规模可直接进行弹性扩容。                                                                                                                               |
   
#### 基本概念
本文汇总使用Prometheus监控过程中涉及的基本概念，方便您查询和了解相关概念。
表6基本概念 
| 概念            | 说明                                                                                                                                                                         |
|:---|:---|
| Exporter      | 一个采集监控数据并通过Prometheus监控功能规范对外提供数据的组件。目前有上百个官方或者第三方Exporter可供使用，具体请参见[Exporter详情](https://prometheus.io/docs/instrumenting/exporters/?spm=a2c4g.371798.0.0.39f87349D1616m)。 |
| Target        | Prometheus探针要抓取的采集目标。采集目标暴露自身运行、业务指标，或者代理暴露监控对象的运行、业务指标。                                                                                                                   |
| Job           | 一组Target的配置集合。定义了抓取间隔，访问限制等作用于一组Target的抓取行为。                                                                                                                               |
| Prometheus 监控 | Prometheus监控全面对接开源Prometheus生态，支持类型丰富的组件监控，提供多种开箱即用的预置监控大盘和全面托管的Prometheus服务。                                                                                              |
| Prometheus实例  | Prometheus监控功能提供的管理Prometheus数据采集和数据存储分析的逻辑单元。                                                                                                                             |
| Prometheus探针  | 部署在用户侧或者云产品侧Kubernetes集群。负责自动发现采集目标、采集指标和远程写到其他库。                                                                                                                          |
| PromQL        | Prometheus监控的查询语言。支持瞬时查询和时间跨度查询，内置多种函数和操作符。可以对原始数据进行聚合、切片、预测和联合。                                                                                                           |
| Sample        | 一条时间线在某个时间点对应的数值。在Prometheus监控服务中，每个Sample由一个float64数据类型的值和一个毫秒精度的时间戳构成。                                                                                                   |
| 告警规则          | Prometheus监控Alerting Rule格式的告警配置。可以通过PromQL描述。                                                                                                                             |
| 标签            | 描述指标的一组Key-Value值。                                                                                                                                                         |
| 指标管理          | Prometheus监控的功能特点之一，无需静态配置，可以自动发现采集目标。支持Kubernetes SD、Consul、Eureka等多种指标管理方式，支持通过ServiceMonitor、PodMonitor的方式暴露采集目标。                                                       |
| 预聚合           | Prometheus监控的Recording Rule能力。可以通过PromQL将原始数据加工成新的指标，提升查询效率。                                                                                                               |
| 时间序列          | 由指标名和标签组成。属于同一指标和同一组标签维度的带时间戳的流。                                                                                                                                           |
| 远程存储          | 自研的时序数据存储组件。支持Prometheus监控的Remote Write协议，由云产品全面托管。                                                                                                                        |
| 云产品监控         | 无缝集成了多种云产品的监控数据。用户如果有云产品的监控需求，可以通过接入云产品监控实施。                                                                                                                               |
| 指标            | 采集目标暴露的、可以完整反映监控对象运行或者业务状态的一系列标签化数据。Prometheus监控采用OpenMetrics的标准数据格式描述指标。                                                                                                  |
   
