对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

与 Prometheus 集成

Prometheus 按给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并在观察到特定条件时触发警报。

我们的集成允许您配置Cloud Manager ,将有关部署的指标数据发送到Prometheus实例。

  • Prometheus 集成可在使用 MongoDB Agent12的 自动化托管0 集群中使用。 .15 。7646或更高版本。 MongoDB Agent 12.0.15.7646 与Cloud Manager 6.0.7 一起发布。

  • 有一个正常工作的Prometheus实例。要设立工作实例,请参阅其安装指南。

  • (可选)使用 Grafana 可视化您的 Prometheus 指标。

要将Cloud Manager与 Prometheus 集成,请执行以下操作:

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 Project Settings。

    显示项目设置页面。

2

在侧边栏中,单击 Settings 标题下的 Integrations。

显示“项目集成”页面。

3
4

Prometheus身份验证凭证专门设计用于Cloud Manager中的 Prometheus 集成。 Cloud Manager使用这些凭证仅访问权限Prometheus 发现端点,并从Cloud Manager节点抓取 Prometheus指标。 它们仅限于这些功能,除了访问和收集监控数据之外没有任何其他权限或功能。

重要

复制用户名和密码,将其存储在安全位置。离开此屏幕后,您将无法访问密码。

5

提示

默认值 0.0.0.0:9216 在本地计算机上所有 IPv4 地址的端口 9216 上抓取指标。

6

如果启用此设置,Cloud Manager 将确保您的 Prometheus 实例使用https来抓取指标。

字段
说明

TLS 证书密钥文件路径

PEM 文件路径,其中包含启动https Prometheus 抓取端点所需的证书和密钥。

您应对以下事项负责:

  • TLS 证书密钥文件的颁发和续订。

  • 在自动化代理日志中检查端点是否正确启动。

tlsCertificateKeyFilePassword

如果证书密钥文件已加密,则为必填项。

7
探索方法
说明

此方法需要 Prometheus v2.28 及更高版本。它生成配置文件的 scrape_config 部分,以通过HTTP端点发现目标。

此方法允许 Prometheus 读取YAML或JSON文档,以配置要抓取的目标。

您负责通过向Discovery API发出请求并将其结果存储在targets.json文件中来提供目标。

如需发出请求,请替换以下选项卡中的占位符文本,或用其他语言创建自己的脚本。

# Sets the `Authorization` header on every scrape# request with the username and password from the# previous step. The URL that Prometheus fetches the# targets from.# Replace the <group-id> with the project ID of your# Cloud Manager instance. curl --header 'Accept: application/json' \ --user <username>:<password> \ --request GET "https://cloud.mongodb.com/prometheus/v1.0/groups/{GROUP-ID}/discovery"

要了解有关“发现 API”的更多信息,请参阅返回 Prometheus 的最新目标。

8
9
  1. 将生成的代码片段复制到配置文件的 scrape_configs 部分,并替换占位符文本。

    有关这两种方法的配置文件示例,请参阅示例配置。

  2. 重新启动 Prometheus 实例。

  3. 在 Prometheus 实例中,单击顶部导航栏中的 Status,然后单击 Targets 以查看部署的指标。

以下显示了使用 HTTP 服务发现 或 文件服务发现 方法时的 配置文件 示例。

这两种方法的配置文件都包含以下字段:

字段
说明

scrape_interval

时间,表示抓取目标的频率。该设置支持最短 10 秒。

job_name

分配给抓取指标的人类可读标签。

metrics_path

指示从何处获取目标指标的 HTTP 资源路径。

scheme

为请求配置的 Prometheus 协议模式,可以是http或https 。 如果配置https ,则必须指定tlsPemPath 。

basic_auth

在每次抓取请求中使用的授权标头。

HTTP 服务发现方法还包含具有以下子字段的 http_sd_configs 字段:

字段
说明

url

Prometheus 从中获取目标的 URL。

refresh_interval

指示何时重新查询端点的时间。

basic_auth

用于向 API 服务器进行身份验证的凭据。

global: scrape_interval: 15s scrape_configs: - job_name: "CM-Testing-mongo-metrics" scrape_interval: 10s metrics_path: /metrics scheme : https basic_auth: username: prom_user_61e6e34e93eac1632d39f457 password: V7hTyLfkjwiWQbv http_sd_configs: - url: https://cloud.mongodb.com/prometheus/v1.0/groups/61e6e34e93eac1632d39f457/discovery refresh_interval: 60s basic_auth: username: prom_user_61e6e34e93eac1632d39f457 password: V7hTyLfkjwiWQbv

“文件服务发现”方法还包含带有以下子字段的 file_sd_configs 字段:

字段
说明

files

包含要从中提取指标抓取目标的文件的列表。

global: scrape_interval: 15s scrape_configs: - job_name: "CM-Testing-mongo-metrics" scrape_interval: 10s metrics_path: /metrics scheme : https basic_auth: username: prom_user_61e6e34e93eac1632d39f457 password: V7hTyLfkjwiWQbv file_sd_configs: - files: - /usr/local/etc/targets.json

导入示例Grafana仪表盘:

1

在 Grafana用户界面中,单击“确定”按钮,然后单击 Import。

2
3

要学习;了解有关导入 Grafana 仪表盘的更多信息,请参阅 Grafana 文档。

当您将Prometheus与MongoDB Atlas 群集集成时,以下指标可用:

每个 MongoDB 指标都包含以下标签:

标签
说明

group_id

标识项目的唯一十六进制数字字符串。

org_id

标识组织的唯一十六进制数字字符串。

cl_role

人类可读标签,用于定义集群角色。

cl_name

用于标识集群的人类可读标签。

rs_nm

用于标识副本集的人类可读标签。

rs_state

表示副本集状态的数字。

process_port

进程运行的端口。

mongodb_info 是一个始终具有 1 值的仪表盘。该指标包含所有 MongoDB 指标标签以及以下标签:

标签
说明

mongodb_version

表示主要版本、次要版本和补丁的字符串。

replica_state_name

字符串,用于表示副本集成员状态。

process_type

指示正在运行的进程的字符串。其值可以是 mongod、mongos 或 config。

注意

您还可以在Prometheus表达式浏览器中查看每个硬件指标的描述。

名称
操作系统
类型
说明

hardware_system_cpu_nice

Unix、Darwin

计数器

在低优先级用户模式下花费的时间。

hardware_system_cpu_io_wait

Unix

计数器

等待 I/O 完成的时间。

hardware_system_cpu_irq

Unix

计数器

服务中断花费的时间。

hardware_system_cpu_soft_irq

Unix

计数器

服务软中断所花费的时间。

hardware_system_cpu_steal

Unix

计数器

在虚拟环境中运行时在其他操作系统中花费的时间。

hardware_system_cpu_guest

Unix

计数器

在 Linux 内核的控制下为客户机操作系统运行虚拟 CPU 所花费的时间。

hardware_system_cpu_guest_nice

Unix

计数器

调整优先级后运行客户机所花费的时间。

hardware_system_cpu_kernel_milliseconds

所有

计数器

在系统模式下花费的时间。

hardware_system_cpu_user_milliseconds

所有

计数器

在用户模式下花费的时间。

hardware_disk_metrics_weighted_time_io

Unix

计数器

用于 I/O 的加权时间。

hardware_disk_metrics_physical_write_count

Unix

计数器

已处理的物理写入 I/O 数量。

hardware_disk_metrics_physical_read_count

Unix

计数器

已处理的物理读 I/O 数量。

hardware_disk_metrics_total_time

Unix

计数器

此区块设备处于活动状态的总时间。

hardware_disk_metrics_idle_time

Windows

计数器

在空闲任务中花费的时间。

hardware_disk_metrics_disk_space_free_bytes

所有

仪表盘

已挂载文件系统中的可用磁盘空间。

hardware_disk_metrics_disk_space_used_bytes

所有

仪表盘

挂载的文件系统中使用的磁盘空间。

hardware_disk_metrics_read_count

所有

计数器

已处理的读取 I/O 数量。

hardware_disk_metrics_read_time_milliseconds

所有

计数器

读取请求的总等待时间。

hardware_disk_metrics_write_count

所有

计数器

已处理的写 I/O 数量。

hardware_disk_metrics_write_time_milliseconds

所有

计数器

写入请求的总等待时间。

hardware_process_cpu_children_user

Unix

计数器

在用户模式下为此进程安排的等待子级的时间量。

hardware_process_cpu_children_kernel

Unix

计数器

在内核模式下为此进程安排的等待子级的时间量。

hardware_process_cpu_kernel_milliseconds

所有

计数器

在内核模式下为此进程安排的时间量。

hardware_process_cpu_user_milliseconds

所有

计数器

在使用模式下为此进程安排的时间量。

hardware_system_vm_page_swap_in

Unix

计数器

系统已交换到磁盘的页面数量。

hardware_system_vm_page_swap_out

Unix

计数器

系统已交换到磁盘的页面数量。

hardware_system_memory_mem_total

Unix

仪表盘

总可用 RAM(物理 RAM 减去几个保留位和内核二进制代码)。

hardware_system_memory_mem_free

Unix

仪表盘

LowFree + HighFree 之和。

hardware_system_memory_mem_available

Unix

仪表盘

在不进行交换的情况下,估计有多少内存可用于启动新应用程序。

hardware_system_memory_buffers

Unix

仪表盘

原始磁盘区块的临时存储,不应变得非常大。

hardware_system_memory_cached

Unix

仪表盘

从磁盘读取文件的内存缓存。其中不包括 SwapCached。

hardware_system_memory_swap_total

Unix

仪表盘

可用的交换空间总量。

hardware_system_memory_swap_free

Unix

仪表盘

未使用交换空间总量。

hardware_system_memory_shared_mem

Unix

仪表盘

内容驻留在虚拟内存中的文件系统消耗的内存量。

hardware_system_memory_swap_free_kilobytes

所有

仪表盘

未使用交换空间总量。

hardware_system_memory_swap_total_kilobytes

所有

仪表盘

可用的交换空间总量。

hardware_platform_num_logical_cpus

所有

仪表盘

当前进程可用的逻辑 CPU 数。

hardware_system_network_eth0_bytes_in_bytes

所有

计数器

接口接收的数据字节数。

hardware_system_network_eth0_bytes_out_bytes

所有

计数器

接口传输的数据字节数。

hardware_system_network_lo_bytes_in_bytes

所有

计数器

接口接收的数据字节数。

hardware_system_network_lo_bytes_out_bytes

所有

计数器

接口传输的数据字节数。

每个硬件指标都包含以下标签:

标签
说明

group_id

标识项目的唯一十六进制数字字符串。

org_id

标识组织的唯一十六进制数字字符串。

process_port

进程运行的端口。

disk_name

标识磁盘的人类可读标签。