7.2. 使用 Prometheus 监控代理运行时指标
以下章节描述了如何在 OpenShift Container Platform 上为 AMQ Broker 配置 Prometheus 指标插件。您可以使用插件来监控和存储代理运行时指标。您还可以使用图形化工具(如 Grafana)来配置 Prometheus 插件收集的数据的高级视觉化和仪表板。
Prometheus metrics 插件允许您以 Prometheus 格式 收集和导出代理指标。但是,红帽不提供对 Prometheus 本身的安装或配置的支持,也不支持 Grafana 等视觉化工具。如果您需要对安装、配置或运行 Prometheus 或 Grafana 的支持,请访问社区支持和文档等资源的 Web 站点。
7.2.1. 指标概述 复制链接链接已复制到粘贴板!
要监控代理实例的健康状态和性能,您可以使用 AMQ Broker 的 Prometheus 插件来监控和存储代理运行时指标。AMQ Broker Prometheus 插件将代理运行时指标导出到 Prometheus 格式,可让您使用 Prometheus 本身来视觉化并在数据上运行查询。
您还可以使用图形工具(如 Grafana)为 Prometheus 插件收集的指标配置更高级的视觉化和仪表板。
插件导出到 Prometheus 格式的指标如下所述。
代理指标
artemis_address_memory_usage
- 此代理中的所有地址使用的字节数用于内存中消息。
artemis_address_memory_usage_percentage
-
此代理上的所有地址使用的内存作为
global-max-size
参数的百分比。 artemis_connection_count
- 连接到此代理的客户端数量。
artemis_session_count
- 此代理上的会话数量。
artemis_total_session_count
- 此代理上创建的会话总数(自此代理启动)。
artemis_total_connection_count
- 自此代理启动以来已连接到此代理的客户端数量。
artemis_disk_store_usage
- 使用的总磁盘存储部分。
artemis_replica_sync
- 是主代理和备份代理之间的初始复制同步过程。
artemis_active
- 是在 primary-backup 组配置中活跃的代理。
artemis_authentication_count
- 成功和失败的身份验证尝试次数。
artemis_authorization_count
- 成功和失败的授权尝试次数。
地址指标
artemis_routed_message_count
- 路由到一个或多个队列绑定的消息数。
artemis_unrouted_message_count
- 没有路由到任何队列绑定的消息数。
artemis_address_size
- 绑定到这个地址的所有队列所使用的大小,以字节为单位。
artemis_number_of_pages
- 用于存储此地址消息的页面文件数。
artemis_limit_percent
-
此地址使用的内存限值的百分比。如果使用
max-size-bytes
属性为地址设置了内存限制,则报告的百分比基于该值。如果没有设置max-size-bytes
属性,则报告的百分比基于global-max-size
属性的值。如果没有设置属性,则会报告值 0。
队列指标
artemis_consumer_count
- 消耗来自给定队列的消息的客户端数量。
artemis_delivering_durable_message_count
- 给定队列当前提供给消费者的持久消息数。
artemis_delivering_durable_persistent_size
- 给定队列当前提供给消费者的持久化消息的持久大小。
artemis_delivering_message_count
- 指定队列当前提供给消费者的消息数。
artemis_delivering_persistent_size
- 给定队列当前提供给消费者的消息的持久大小。
artemis_durable_message_count
- 当前位于给定队列中的持久消息数。这包括已调度、分页和发送的消息。
artemis_durable_persistent_size
- 当前在给定队列中的持久大小。这包括已调度、分页和发送的消息。
artemis_messages_acknowledged
- 自队列创建以来,确认自给定队列确认的消息数。
artemis_messages_added
- 自队列创建以来,添加到给定队列中的消息数量。
artemis_message_count
- 当前在给定队列中的消息数。这包括已调度、分页和发送的消息。
artemis_messages_killed
- 自队列创建以来,从给定队列中删除的消息数。当消息超过配置的最大发送尝试次数时,代理会终止一条消息。
artemis_messages_expired
- 自队列创建以来,从给定队列过期的消息数。
artemis_persistent_size
- 当前在给定队列中所有消息的持久大小(持久和非持久化)。这包括已调度、分页和发送的消息。
artemis_scheduled_durable_message_count
- 给定队列中的持久调度消息数。
artemis_scheduled_durable_persistent_size
- 持久化的、给定队列中调度的消息。
artemis_scheduled_message_count
- 给定队列中的调度消息数。
artemis_scheduled_persistent_size
- 在给定队列中调度的消息的持久性大小。
对于上面未列出的高级别代理指标,您可以通过聚合较低级别的指标来计算这些指标。例如,要计算总消息计数,您可以聚合代理部署中的所有队列的 artemis_message_count
指标。
对于 RHEL 上的 AMQ Broker 的独立部署,托管代理的 Java 虚拟机(JVM)的指标也会导出到 Prometheus 格式。这不适用于在 OpenShift Container Platform 上部署 AMQ Broker。
7.2.2. 使用 CR 启用 Prometheus 插件 复制链接链接已复制到粘贴板!
安装 AMQ Broker 时,安装中包含了一个 Prometheus metrics 插件。您必须启用插件来为代理收集运行时指标,并将其导出到 Prometheus 格式。
有关正在运行的代理的替代流程,请参阅 第 7.2.3 节 “使用环境变量为正在运行的代理部署启用 Prometheus 插件”。
流程
-
编辑用于代理部署的
ActiveMQArtemis
CR 实例。 在
deploymentPlan
部分中,添加enableMetricsPlugin
属性,并将值设为true
,如下所示。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 保存 CR 实例。
metrics 插件开始以 Prometheus 格式收集代理运行时指标。
启用 Prometheus 插件后,您必须为 Prometheus Operator 创建 ServiceMonitor
自定义资源(CR)。Prometheus 使用 CR 查找公开代理指标的端点。例如:
对于 ServiceMonitor
CR 中的 application
属性,指定 ActiveMQArtemis CR 中的 metadata.name
属性的值
,并附加后缀 -app
。
其他资源
- 有关更新正在运行的代理的详情,请参考 第 3.4.3 节 “将自定义资源更改应用到正在运行的代理部署”。
7.2.3. 使用环境变量为正在运行的代理部署启用 Prometheus 插件 复制链接链接已复制到粘贴板!
以下流程演示了如何使用环境变量为 AMQ Broker 启用 Prometheus 插件。有关替代流程,请参阅 第 7.2.2 节 “使用 CR 启用 Prometheus 插件”。
先决条件
- 您可以为使用 AMQ Broker Operator 创建的代理 Pod 启用 Prometheus 插件。但是,部署的代理必须使用代理容器镜像进行 AMQ Broker 7.7 或更高版本。
流程
- 使用包含代理部署的项目的管理员特权登录到 OpenShift Container Platform Web 控制台。
-
在 Web 控制台中,点
。选择包含代理部署的项目。 -
要查看项目中的 StatefulSets 或 DeploymentConfig,请点
或 。 - 点与代理部署对应的 StatefulSet 或 DeploymentConfig。
- 要访问代理部署的环境变量,请点 Environment 选项卡。
添加新环境变量
AMQ_ENABLE_METRICS_PLUGIN
。将 变量的值设为true
。当您设置
AMQ_ENABLE_METRICS_PLUGIN
环境变量时,OpenShift 会在 StatefulSet 或 DeploymentConfig 中重启每个代理 Pod。当部署中有多个 Pod 时,OpenShift 会依次重启每个 Pod。当每个代理 Pod 重启时,该代理的 Prometheus 插件将开始收集代理运行时指标。
7.2.4. 访问正在运行的代理 Pod 的 Prometheus 指标 复制链接链接已复制到粘贴板!
此流程演示了如何访问正在运行的代理 Pod 的 Prometheus 指标。
先决条件
- 您必须已经为代理 Pod 启用了 Prometheus 插件。请参阅 第 7.2.3 节 “使用环境变量为正在运行的代理部署启用 Prometheus 插件”。
流程
对于您要访问其指标的代理 Pod,您需要识别之前创建的路由,以便将 Pod 连接到 AMQ Broker 管理控制台。路由名称表单是访问指标所需的 URL 的一部分。
-
单击
。 对于所选代理 Pod,请识别为将 Pod 连接到 AMQ Broker 管理控制台而创建的 Route。在 主机名 下,请注意显示的完整 URL。例如:
http://rte-console-access-pod1.openshiftdomain
http://rte-console-access-pod1.openshiftdomain
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
单击
要访问 Prometheus 指标,在网页浏览器中输入前面记录的 Route 名称,并附加
"/metrics
"。例如:http://rte-console-access-pod1.openshiftdomain/metrics
http://rte-console-access-pod1.openshiftdomain/metrics
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您的控制台配置没有使用 SSL,请在 URL 中指定 http
。在本例中,主机名的 DNS 解析将流量定向到 OpenShift 路由器的端口 80。如果您的控制台配置使用 SSL,在 URL 中指定 https
。在这种情况下,您的浏览器默认为 OpenShift 路由器的端口 443。如果 OpenShift 路由器也将端口 443 用于 SSL 流量,这启用了与控制台的连接,这默认是路由器默认的 SSL 流量。