搜索

7.2. 使用 Prometheus 监控代理运行时指标

download PDF

以下章节描述了如何在 OpenShift Container Platform 上为 AMQ Broker 配置 Prometheus metrics 插件。您可以使用插件来监控和存储代理运行时指标。您还可以使用 Grafana 等图形化工具来配置 Prometheus 插件收集的数据的更多高级视觉化和仪表板。

注意

Prometheus metrics 插件允许您以 Prometheus 格式 收集和导出代理指标。但是,红帽 不提供 安装或配置 Prometheus 本身的支持,也不提供视觉化工具,如 Grafana。如果您需要支持安装、配置或运行 Prometheus 或 Grafana,请访问产品网站以获取社区支持和文档等资源。

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_total_connection_count
自启动此代理后连接到此代理的客户端数量。

地址指标

artemis_routed_message_count
路由到一个或多个队列绑定的消息数。
artemis_unrouted_message_count
没有路由到任何队列绑定的消息数。

队列指标

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
当前在给定队列中的所有消息( durable 和 non-durable)的持久性大小。这包括已调度、分页和发送消息。
artemis_scheduled_durable_message_count
给定队列中可调度的、可调度的消息数。
artemis_scheduled_durable_persistent_size
给定队列中的持久化、可调度的消息的持久性大小。
artemis_scheduled_message_count
给定队列中调度的消息数量。
artemis_scheduled_persistent_size
给定队列中调度消息的持久性大小。

对于以上未列出的高级别代理指标,您可以通过聚合较低级别的指标来计算这些指标。例如,若要计算总消息数,您可以从代理部署中的所有队列聚合 artemis_message_count 指标。

对于 AMQ Broker 的内部部署,托管代理的 Java 虚拟机(JVM)的指标也会导出到 Prometheus 格式。这不适用于在 OpenShift Container Platform 上部署 AMQ Broker。

7.2.2. 使用 CR 启用 Prometheus 插件

安装 AMQ Broker 时,安装中包含 Prometheus 指标插件。启用后,插件会为代理收集运行时指标,并将其导出为 Prometheus 格式。

以下流程演示了如何使用 CR 为 AMQ Broker 启用 Prometheus 插件。此流程支持 AMQ Broker 7.9 或更高版本的新和现有部署。

有关运行代理的替代流程,请参阅 第 7.2.3 节 “使用环境变量为正在运行的代理部署启用 Prometheus 插件”

流程

  1. 打开用于代理部署的 CR 实例。例如,基本部署的 CR 可能类似以下:

    apiVersion: broker.amq.io/v1beta1
    kind: ActiveMQArtemis
    metadata:
      name: ex-aao
    spec:
      deploymentPlan:
        size: 4
        image: registry.redhat.io/amq7/amq-broker-rhel8:7.11
      ...
  2. deploymentPlan 部分,添加 enableMetricsPlugin 属性并将值设为 true,如下所示。

    apiVersion: broker.amq.io/v1beta1
    kind: ActiveMQArtemis
    metadata:
      name: ex-aao
    spec:
      deploymentPlan:
        size: 4
        image: registry.redhat.io/amq7/amq-broker-rhel8:7.11
        ...
        enableMetricsPlugin: true
    enableMetricsPlugin
    指定是否为部署中的代理启用 Prometheus 插件。
  3. 保存 CR 实例。
  4. 切换到之前创建的代理部署的项目。

    $ oc project <project_name>
  5. 在命令行中应用更改。

    $ oc apply -f <path/to/custom_resource_instance>.yaml

    metrics 插件开始以 Prometheus 格式收集代理运行时指标。

其他资源

7.2.3. 使用环境变量为正在运行的代理部署启用 Prometheus 插件

以下流程演示了如何使用环境变量为 AMQ Broker 启用 Prometheus 插件。有关替代流程,请参阅 第 7.2.2 节 “使用 CR 启用 Prometheus 插件”

先决条件

  • 您可以为使用 AMQ Broker Operator 创建的代理 Pod 启用 Prometheus 插件。但是,部署的代理必须使用 AMQ Broker 7.7 或更高版本的代理容器镜像。

流程

  1. 使用包含代理部署的项目的管理员特权登录到 OpenShift Container Platform Web 控制台。
  2. 在 Web 控制台中,点 Home Projects。选择包含代理部署的项目。
  3. 要查看项目中的 StatefulSets 或 DeploymentConfig,请点 Workloads StatefulSetsWorkloads DeploymentConfig
  4. 点击与代理部署对应的 StatefulSet 或 DeploymentConfig。
  5. 要访问代理部署的环境变量,请点 Environment 选项卡。
  6. 添加新环境变量 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 指标。

先决条件

流程

  1. 对于您要访问其指标的代理 Pod,您需要识别之前创建的路由,以将 Pod 连接到 AMQ Broker 管理控制台。访问指标所需的 URL 的 Route name 表单部分。

    1. Networking Routes
    2. 对于您选择的代理 Pod,标识为将 Pod 连接到 AMQ Broker 管理控制台而创建的路由。在 Hostname 下,记下显示的完整 URL。例如:

      http://rte-console-access-pod1.openshiftdomain
  2. 要访问 Prometheus 指标,在 Web 浏览器中输入之前记录的带有 "/metrics" 的路由名称。例如:

    http://rte-console-access-pod1.openshiftdomain/metrics
注意

如果您的控制台配置没有使用 SSL,请在 URL 中指定 http。在本例中,主机名的 DNS 解析将流量定向到 OpenShift 路由器的端口 80。如果您的控制台配置使用 SSL,在 URL 中指定 https。在本例中,浏览器默认为 OpenShift 路由器的端口 443。如果 OpenShift 路由器也为 SSL 流量使用端口 443 (路由器默认实现),这可以成功连接到控制台。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.