第 14 章 使用 metrics-utility 报告使用量


Ansible Automation Platform 指标工具(metrics-utility)是一个命令行工具,安装在包含自动化控制器实例的系统上。

安装和配置后,metrics-utility 会从您的系统收集与计费相关的指标,并创建基于消费的账单报告。metrics-utility 特别适用于具有多个受管主机的用户,并希望使用基于消费的账单。生成报告后,它将在您配置文件中指定的目标位置中。

metrics-utility 从您的系统收集两种类型的数据:配置数据和报告数据。

配置数据包括以下信息:

  • 自动化控制器和操作系统的版本信息
  • 订阅信息
  • 基本 URL

报告数据包括以下信息:

  • 作业名称和 ID
  • 主机名
  • 清单名称
  • 机构名称
  • 项目名称
  • 成功或失败信息
  • 报告日期和时间

为确保 metrics-utility 继续按配置工作,请定期清除报告目录。

14.1. 配置 metrics-utility

配置 metrics-utility,以在 Red Hat Enterprise Linux 和 OpenShift Container Platform 上收集和报告 Ansible Automation Platform 的使用数据。

先决条件

  • 订阅: 一个活跃的 Ansible Automation Platform 订阅。
  • 安装: 在自动化控制器节点上的 Ansible Automation Platform 安装中默认包括 metrics-utility 工具。不需要单独的安装。
  • 用户权限 : 您必须以 root 用户身份登录,或者 awx 用户才能运行 metrics-utility 工具。
重要

metrics-utility 需要对 /etc/tower/SECRET_KEY 的读取访问权限才能正常工作。尝试以标准用户身份运行此工具(非 root 用户或非awx)会导致 PermissionError 和执行失败。

以下命令收集相关数据,并生成包含您的使用指标的 CCSP 报告。您可以将这些命令配置为 cron 作业,以确保它们在每月开始时运行。有关使用 cron 语法 配置的更多信息,请参阅使用 Linux cron 工具调度作业

流程

  1. 在用户的主目录中创建两个脚本,以设置正确的变量,以确保 metrics-utility 收集所有相关数据:

    1. /home/my-user/cron-gather 中:

      #!/bin/sh
      
      # Specify the following variables to indicate where the report is deposited in your file system:
      export METRICS_UTILITY_SHIP_TARGET=directory
      export METRICS_UTILITY_SHIP_PATH=/awx_devel/awx-dev/metrics-utility/shipped_data/billing
      
      # Run the following command to gather and store the data in the provided SHIP_PATH directory:
      metrics-utility gather_automation_controller_billing_data --ship --until=10m
    2. /home/my-user/cron-report 中:

      #!/bin/sh
      
      # Specify the following variables to indicate where the report is deposited in your file system:
      export METRICS_UTILITY_SHIP_TARGET=directory
      export METRICS_UTILITY_SHIP_PATH=/awx_devel/awx-dev/metrics-utility/shipped_data/billing
      
      # Set these variables to generate a report:
      export METRICS_UTILITY_REPORT_TYPE=CCSPv2
      export METRICS_UTILITY_PRICE_PER_NODE=11.55 # in USD
      export METRICS_UTILITY_REPORT_SKU=MCT3752MO
      export METRICS_UTILITY_REPORT_SKU_DESCRIPTION="EX: Red Hat Ansible Automation Platform, Full Support (1 Managed Node, Dedicated, Monthly)"
      @@ -44,21 +51,31 @@ export METRICS_UTILITY_REPORT_EMAIL="email@email.com"
      export METRICS_UTILITY_REPORT_RHN_LOGIN="test_login"
      export METRICS_UTILITY_REPORT_COMPANY_BUSINESS_LEADER="BUSINESS LEADER"
      export METRICS_UTILITY_REPORT_COMPANY_PROCUREMENT_LEADER="PROCUREMENT LEADER"
      
      # Build the report
      metrics-utility build_report
  2. 要确保这些文件是可执行的,请运行:

    chmod a+x /home/my-user/cron-gather /home/my-user/cron-report
  3. 要打开 cron 文件进行编辑,请运行:

    crontab -e
  4. 要配置运行计划,请在文件的末尾添加以下参数,并指定您希望 metrics-utility 使用方法收集信息并使用 cron 语法 构建报告的频率。在以下示例中,gather 命令配置为在 00 分钟每小时运行。build_report 命令配置为在每月第二天的上午 4:00 运行。

    0 */1 * * * /home/my-user/cron-gather
    0 4 2 * * /home/my-user/cron-report
  5. 保存并关闭该文件。
  6. 要验证您是否已保存更改,请运行:

    crontab -l
  7. 要确保收集数据,请运行:

    cat /var/log/cron

    以下是输出的示例:请注意,时间和日期可能会因您配置运行调度的方式而有所不同:

    May  8 09:45:03 ip-10-0-6-23 CROND[51623]: (root) CMDOUT (No billing data for month: 2024-04)
    May  8 09:45:03 ip-10-0-6-23 CROND[51623]: (root) CMDEND (metrics-utility build_report)
    May  8 09:45:19 ip-10-0-6-23 crontab[51619]: (root) END EDIT (root)
    May  8 09:45:34 ip-10-0-6-23 crontab[51659]: (root) BEGIN EDIT (root)
    May  8 09:46:01 ip-10-0-6-23 CROND[51688]: (root) CMD (metrics-utility gather_automation_controller_billing_data --ship --until=10m)
    May  8 09:46:03 ip-10-0-6-23 CROND[51669]: (root) CMDOUT (/tmp/9e3f86ee-c92e-4b05-8217-72c496e6ffd9-2024-05-08-093402+0000-2024-05-08-093602+0000-0.tar.gz)
    May  8 09:46:03 ip-10-0-6-23 CROND[51669]: (root) CMDEND (metrics-utility gather_automation_controller_billing_data --ship --until=10m)
    May  8 09:46:26 ip-10-0-6-23 crontab[51659]: (root) END EDIT (root)

    生成的报告将具有默认名称 token-<YEAR>-<MONTH>.xlsx,并将在在第 1a 中指定的发运路径中处理。

OpenShift Container Platform 自动化控制器镜像中包括了 metrics-utility 版本 4.12、4.5.12 和 4.6。如果您的系统没有安装 metrics-utility,请将 OpenShift 镜像更新至最新版本。

在 OpenShift UI YAML 视图中创建一个 ConfigMap,并部署自动化控制器,以使用 Ansible Automation Platform Operator 在 OpenShift Container Platform 上配置 metrics-utility 的运行调度。

先决条件

  • 正在运行的 OpenShift 集群
  • 在 OpenShift Container Platform 上基于 Operator 的安装 Ansible Automation Platform。
注意

metrics-utility 将按照您在配置文件中设置的参数所示运行。

14.1.2.1. 在 OpenShift UI YAML 视图中创建 ConfigMap

要将 metrics-utility cronjobs 注入配置数据,请使用以下步骤在 OpenShift UI YAML 视图中创建 ConfigMap:

  1. 在左侧的导航面板中,选择 ConfigMaps,然后单击 Create ConfigMap 按钮。
  2. 在下一屏幕中,选择 YAML 视图 选项卡。
  3. YAML 字段中,使用设置的适当变量输入以下参数:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: automationcontroller-metrics-utility-configmap
    data:
      METRICS_UTILITY_SHIP_TARGET: directory
      METRICS_UTILITY_SHIP_PATH: /metrics-utility
      METRICS_UTILITY_REPORT_TYPE: CCSP
      METRICS_UTILITY_PRICE_PER_NODE: '11' # in USD
      METRICS_UTILITY_REPORT_SKU: MCT3752MO
      METRICS_UTILITY_REPORT_SKU_DESCRIPTION: "EX: Red Hat Ansible Automation Platform, Full Support (1 Managed Node, Dedicated, Monthly)"
      METRICS_UTILITY_REPORT_H1_HEADING: "CCSP Reporting <Company>: ANSIBLE Consumption"
      METRICS_UTILITY_REPORT_COMPANY_NAME: "Company Name"
      METRICS_UTILITY_REPORT_EMAIL: "email@email.com"
      METRICS_UTILITY_REPORT_RHN_LOGIN: "test_login"
      METRICS_UTILITY_REPORT_COMPANY_BUSINESS_LEADER: "BUSINESS LEADER"
      METRICS_UTILITY_REPORT_COMPANY_PROCUREMENT_LEADER: "PROCUREMENT LEADER"
  4. Create
  5. 要验证 ConfigMap 是否已创建并安装了指标工具,请从导航面板中选择 ConfigMap 并在列表中查找您的 ConfigMap。

14.1.2.2. 部署自动化控制器

要部署自动化控制器并指定变量,指定 metrics-utility 收集使用情况信息并生成报告的频率,请使用以下步骤:

流程

  1. 在导航面板中,选择 Installed Operators
  2. 选择 Ansible Automation Platform。
  3. 在 Operator 详情中,选择 自动化控制器 标签页。
  4. Create automation controllerdc
  5. 选择 YAML view 选项。YAML 现在显示自动化控制器的默认参数。metrics-utility 的相关参数如下:

    [cols="50%,50%",options="header"]
    |====
    | *Parameter* | *Variable*
    | *`metrics_utility_enabled`* | True.
    | *`metrics_utility_cronjob_gather_schedule`* | @hourly or @daily.
    | *`metrics_utility_cronjob_report_schedule`* | @daily or @monthly.
    |====
  6. 查找 metrics_utility_enabled 参数,并将变量更改为 true
  7. 找到 metrics_utility_cronjob_gather_schedule 参数,并为实用程序应收集使用情况信息的频率输入变量(如 @hourly 或 @daily)。
  8. 找到 metrics_utility_cronjob_report_schedule 参数,并为实用程序生成报告的频率输入变量(例如 @daily 或 @monthly)。
  9. Create
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部