第12章 metrics-utility による使用状況レポート
Ansible Automation Platform メトリクスユーティリティーツール (metrics-utility) は、Automation Controller のインスタンスを含むシステムにインストールされるコマンドラインユーティリティーです。
metrics-utility は、インストールおよび設定されると、システムから請求関連のメトリクスを収集し、消費量に基づく請求レポートを作成します。metrics-utility ツールは、管理対象ホストが複数あり、消費量ベースの請求を使用するユーザーに特に適しています。レポートが生成されると、設定ファイルで指定した保存先の場所に保存されます。
metrics-utility は、システムから設定データとレポートデータの 2 種類のデータを収集します。
設定データには次の情報が含まれます。
- Automation Controller とオペレーティングシステムのバージョン情報
- サブスクリプション情報
- ベース URL
レポートデータには次の情報が含まれます。
- ジョブ名と ID
- ホスト名
- インベントリー名
- 組織名
- プロジェクト名
- 成功または失敗に関する情報
- レポート日時
metrics-utility が設定どおりに動作し続けるように、レポートディレクトリーから古いレポートを定期的に消去してください。
12.1. metrics-utility の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux と OpenShift Container Platform の両方で、Ansible Automation Platform の使用状況データを収集して報告するように metrics-utility を設定します。
12.1.1. Red Hat Enterprise Linux の metrics-utility の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux システムで metrics-utility を設定して、Automation Controller の使用状況メトリクスを収集および報告できます。
前提条件
- サブスクリプション: アクティブな Ansible Automation Platform サブスクリプション。
-
インストール:
metrics-utilityツールは、デフォルトで Automation Controller ノード上の Ansible Automation Platform インストールに含まれています。別途インストールする必要はありません。 -
ユーザー権限:
metrics-utilityツールを実行するには、rootユーザーまたはawxユーザーとしてログインしている必要があります。
metrics-utility が正常に機能するには、/etc/tower/SECRET_KEY への読み取りアクセスが必要です。このユーティリティーを標準ユーザー(root または非 awx)として実行しようとすると、PermissionError と実行に失敗します。
次の手順では、関連データを収集し、使用状況メトリクスを含む CCSP レポートを生成します。これらのコマンドを cron ジョブとして設定し、毎月の初めに実行されるようにできます。cron 構文の使用方法の詳細は、How to schedule jobs using the Linux cron utility を参照してください。
手順
metrics-utilityにすべての関連データを収集させるための正しい変数を設定するために、ユーザーのホームディレクトリー内に次の 2 つのスクリプトを作成します。/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/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)" export METRICS_UTILITY_REPORT_H1_HEADING="CCSP Reporting <Company>: ANSIBLE Consumption" export METRICS_UTILITY_REPORT_COMPANY_NAME="Company Name" 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
これらのファイルを実行可能にするために、次のコマンドを実行します。
chmod a+x /home/my-user/cron-gather /home/my-user/cron-report編集する
cronファイルを開くには、以下を実行します。crontab -e実行スケジュールを設定するために、ファイルの末尾に次のパラメーターを追加し、
metrics-utilityによって情報を収集してレポートを作成する頻度を cron 構文 を使用して指定します。次の例では、gatherコマンドは毎時 00 分に実行されるように設定されています。build_reportコマンドは、毎月 2 日の午前 4 時に実行されるように設定されています。0 */1 * * * /home/my-user/cron-gather0 4 2 * * /home/my-user/cron-report- ファイルを保存してから閉じます。
検証
正しい設定を確認するには、次の検証手順を使用します。
cronジョブのエントリーが正しく保存されたことを確認するには、次のコマンドを実行します。crontab -lcronログを調べて、cronデーモンがコマンドを実行し、metrics-utilityが出力を生成していることを確認します。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)生成されたレポートには、
CCSP-<YEAR>-<MONTH>.xlsxというデフォルトの名前が付けられます。レポートはステップ 1a で指定した送信先パスに保存されます。
時間と日付は、実行スケジュールの設定方法に応じて異なる場合があります。
12.1.2. Ansible Automation Platform Operator から OpenShift Container Platform の metrics-utility を設定する リンクのコピーリンクがクリップボードにコピーされました!
metrics-utility は、OpenShift Container Platform クラスターからメトリクスを収集し、Automation Controller インスタンスに報告するコマンドラインツールです。
metrics-utility は、バージョン 4.12、4.512、および 4.6 以降の OpenShift Container Platform イメージに含まれています。システムに metrics-utility がインストールされていない場合は、OpenShift イメージを最新バージョンに更新してください。
Ansible Automation Platform Operator を使用して OpenShift Container Platform で metrics-utility の実行スケジュールを設定するには、次の手順を実行します。
12.1.2.1. OpenShift UI の YAML ビューで ConfigMap を作成する リンクのコピーリンクがクリップボードにコピーされました!
metrics-utility cronjobs の設定データを注入するために、OpenShift UI の YAML ビューで ConfigMap を作成する方法を説明します。
設定データを含む metrics-utility cronjobs を注入するには、OpenShift UI の YAML ビューで ConfigMap を作成します。
前提条件
- 実行中の OpenShift クラスター
- Operator によって OpenShift Container Platform にインストールされた Ansible Automation Platform
metrics-utility は、設定ファイルで設定したパラメーターに従って実行されます。OpenShift Container Platform では、このユーティリティーを手動で実行することはできません。
手順
- ナビゲーションパネルから、 を選択します。
- をクリックします。
- 次の画面で、YAML view タブを選択します。
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: CCSPv2 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"- をクリックします。
検証
-
ConfigMap が作成され、
metrics-utilityがインストールされていることを確認するために、ナビゲーションパネルから ConfigMap を選択し、リストで ConfigMap を探します。
12.1.2.2. Automation Controller のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller には、使用状況に関する情報を収集し、指定された間隔でレポートを生成する metrics-utility の cronjob が組み込まれています。
Automation Controller をデプロイし、metrics-utility によって使用状況情報を収集してレポートを生成する頻度を表す変数を指定するには、次の手順を使用します。
手順
- ナビゲーションパネルから、Installed Operators を選択します。
- Ansible Automation Platform を選択します。
- Operator の詳細で、Automation Controller タブを選択します。
- をクリックします。
YAML view オプションを選択します。YAML に Automation Controller のデフォルトパラメーターが表示されます。
metrics-utilityに関連するパラメーターは次のとおりです。Expand パラメーター 変数 metrics_utility_enabledTrue
metrics_utility_cronjob_gather_schedule@hourlyまたは@daily。metrics_utility_cronjob_report_schedule@dailyまたは@monthly-
metrics_utility_enabledパラメーターを見つけて、変数を true に変更します。 -
metrics_utility_cronjob_gather_scheduleパラメーターを見つけて、ユーティリティーによって使用状況情報を収集する頻度を表す変数を入力します (たとえば、@hourlyまたは@daily)。 -
metrics_utility_cronjob_report_scheduleパラメーターを見つけて、ユーティリティーによってレポートを生成する頻度を表す変数を入力します (たとえば、@dailyまたは@monthly)。 - をクリックします。
12.1.3. Ansible Automation Platform の手動コンテナー化インストールで metrics-utility を設定する リンクのコピーリンクがクリップボードにコピーされました!
metrics-utility ツールは、Ansible Automation Platform インストールのパフォーマンスメトリクスとレポートを生成します。
metrics-utility は、バージョン 4.12、4.512、および 4.6 以降の OpenShift Container Platform イメージに含まれています。システムに metrics-utility がインストールされていない場合は、OpenShift イメージを最新バージョンに更新してください。
手動でインストールしたコンテナー化された Ansible Automation Platform で metrics-utility を設定するには、次の手順を使用します。
-
インベントリーファイルで
metrics-utilityを有効にして設定します。 -
metrics-utility設定を適用します。 -
systemctlタイマーを確認します。 - データ収集を確認します。
- 生成されたレポートを見つけます。
有効な Ansible Automation Platform サブスクリプションが必要です。
最小リソース要件
コンテナー化された Ansible Automation Platform のインストール環境で metrics-utility ツールを使用するには、次のリソースが必要です。
CPU: 専用 CPU コア 1 個
- 実行中に 1 コアの 100% を使用
メモリー:
- 最小: 256 MB RAM (最大約 10,000 件のジョブホストサマリーをサポート)
- 推奨: 512 MB RAM (標準デプロイメント)
大規模: 1 GB RAM (最大約 100,000 件のジョブホストサマリーをサポート)
注記メモリー要件は、処理されるホストとジョブの数に応じて変化します。
- 実行時間: レポート生成は、データ量に応じて通常 10 - 30 秒以内に完了します。
12.1.3.1. インベントリーファイルで metrics-utility を有効にして設定する リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform インベントリーファイルを変更して、metrics-utility を有効にして設定します。
手順
インベントリーファイルを変更して、
[automationcontroller]セクションの下に次の行を追加し、metrics-utilityコンテナーのデプロイメントを有効にします。metrics_utility_enabled=trueこの設定は、Ansible Automation Platform デプロイメントの一部として専用の
automation-controller-metrics-utilityコンテナーを作成して設定するようにインストールプログラムに指示します。この行を、他のグローバル変数と一緒に、インベントリーファイルの[automationcontroller]ヘッダーの下に配置します。Ansible Automation Platform のデプロイメントがすでに設定されている場合は、インストールスクリプトを再実行してコンテナーをアクティブ化します。metrics_utility_extra_settings変数を追加してレポートパラメーターを設定します。この変数は、レポートが保存される場所、レポートに含まれる内容、その他のメタデータを制御します。metrics_utility_extra_settings=[ {"setting": "METRICS_UTILITY_SHIP_TARGET", "value": "directory"}, {"setting": "METRICS_UTILITY_SHIP_PATH", "value": "~/aap/controller/data/metrics/"}, {"setting": "METRICS_UTILITY_REPORT_TYPE", "value": "CCSPv2"}, {"setting": "METRICS_UTILITY_PRICE_PER_NODE", "value": "100"}, {"setting": "METRICS_UTILITY_REPORT_COMPANY_NAME", "value": "My Company Inc"}, {"setting": "METRICS_UTILITY_REPORT_EMAIL", "value": "admin@mycompany.com"}, {"setting": "METRICS_UTILITY_REPORT_SKU", "value": "MCT3752MO"}]オプション:
systemd timer式に次の変数を追加して、デフォルトのデータ収集スケジュールをオーバーライドします。注記systemd timer式はcron式とは異なります。# Gathers data every 30 minutes metrics_utility_cronjob_gather_schedule=*:0/30 # Generates the report at midnight on the 2nd of the month metrics_utility_cronjob_report_schedule=*-*-02 00:00:00
12.1.3.2. metrics-utility 設定の適用 リンクのコピーリンクがクリップボードにコピーされました!
新しいインストールで metrics-utility を実行している場合は、設定を適用するために追加のアクションを実行する必要はありません。
既存のデプロイメントに metrics-utility 設定を適用する場合は、Ansible Automation Platform インストーラースクリプトを再実行する必要があります。スクリプトを再実行すると、更新されたインベントリーファイルが読み取られ、automation-controller-metrics-utility コンテナーがデプロイされ、データの収集とレポートの自動化に必要な systemd ユーザーサービスとタイマーが作成されます。metrics-utility 設定が適用され、正しく実行されていることを確認するには、次の検証手順を使用します。
-
systemctlタイマーを検証します。 - データ収集を検証します。
- 生成されたレポートを見つけます。
検証
次のコマンドを実行して、
systemctl timerジョブエントリーが正しく保存されたことを確認します。systemctl --user list-timers --no-pager | grep metrics-utility出力例:
Wed 2025-08-13 10:45:00 IST 8min left Wed 2025-08-13 10:30:04 IST 6min ago metrics-utility-build-report.timer metrics-utility-build-report.service Wed 2025-08-13 10:45:00 IST 8min left Wed 2025-08-13 10:30:04 IST 6min ago metrics-utility-gather.timer metrics-utility-gather.service実行しているサービスの出力ログを調べてデータ収集を確認するには、次のコマンドを使用します。
systemctl --user status metrics-utility-gather.service出力例:
metrics-utility-gather.service - Podman metrics-utility-gather.service Loaded: loaded (/home/aap/.config/systemd/user/metrics-utility-gather.service; disabled; preset: disabled) Active: inactive (dead) since Wed 2025-08-13 10:00:06 IST; 5min ago Duration: 2.008s TriggeredBy: ● metrics-utility-gather.timer Docs: man:podman-generate-systemd(1) Process: 1472847 ExecStart=/usr/bin/podman start metrics-utility-gather (code=exited, status=0/SUCCESS) Process: 1472927 ExecStop=/usr/bin/podman stop -t 10 metrics-utility-gather (code=exited, status=0/SUCCESS) Process: 1472937 ExecStopPost=/usr/bin/podman stop -t 10 metrics-utility-gather (code=exited, status=0/SUCCESS) Main PID: 1472874 (code=exited, status=0/SUCCESS) CPU: 197ms Aug 13 10:00:04 aap.example.org podman[1472847]: metrics-utility-gather Aug 13 10:00:04 aap.example.org systemd[993]: Started Podman metrics-utility-gather.service. Aug 13 10:00:05 aap.example.org metrics-utility-gather[1472874]: 2025-08-13 09:00:05,806 INFO [-] awx.main.analytics /tmp/3292ca44-3314-4f> Aug 13 10:00:05 aap.example.org metrics-utility-gather[1472874]: /tmp/3292ca44-3314-4f0b-b3f6-ba4a1e47a2b1-2025-08-13-083505+0000-2025-08-13-0> Aug 13 10:00:05 aap.example.org metrics-utility-gather[1472874]: 2025-08-13 09:00:05,808 INFO [-] awx.main.analytics /tmp/3292ca44-3314-4f> Aug 13 10:00:05 aap.example.org metrics-utility-gather[1472874]: /tmp/3292ca44-3314-4f0b-b3f6-ba4a1e47a2b1-2025-08-13-083505+0000-2025-08-13-0> Aug 13 10:00:06 aap.example.org podman[1472912]: 2025-08-13 10:00:06.169271763 +0100 IST m=+0.019922418 container died 5dc8d5674f1d1745258530f> Aug 13 10:00:06 aap.example.org podman[1472912]: 2025-08-13 10:00:06.187584135 +0100 IST m=+0.038234790 container cleanup 5dc8d5674f1d17452585> Aug 13 10:00:06 aap.example.org podman[1472927]: metrics-utility-gather Aug 13 10:00:06 aap.example.org podman[1472937]: metrics-utility-gather生成されたレポートを見つけます。レポートは、
METRICS_UTILITY_SHIP_PATH設定で指定したディレクトリーに保存されます。-
パス: このドキュメントで提供されている例を使用すると、レポートパスは
/aap/controller/data/metrics/になります。 -
ファイル名: レポート名は
CCSP-<YEAR>-<MONTH>.xlsxの形式に従います。たとえば、2025 年 8 月に生成されたレポートの名前はCCSP-2025-08.xlsxになります。
-
パス: このドキュメントで提供されている例を使用すると、レポートパスは