このトピックでは、レコーディングルールを設定し、レコーディングルールメトリックの詳細を表示する方法について説明します。
背景情報
レコーディングルールは、メトリックデータのカスタム開発に使用できます。一部のクエリでは、クエリ対象のサーバーで大量の計算が必要になる場合があり、サーバーのワークロードが増加します。レコーディングルールを設定して、計算プロセスを結果が書き込まれるサーバーに事前に実行することができます。これにより、クエリ対象のサーバーのリソース使用量が削減されます。大規模なクラスターが使用され、ビジネスが複雑なシナリオでは、レコーディングルールを使用すると、PromQL 式の複雑さを軽減できます。これにより、クエリのパフォーマンスが向上し、ユーザー設定が簡素化されます。
レコーディングルールを設定する
ARMS コンソールにログインします。
左側のナビゲーションペインで、 を選択します。
- ページの左上隅で、Prometheus インスタンスが存在するリージョンを選択します。次に、Prometheus インスタンスの名前をクリックします。
- 左側のナビゲーションペインで、設定 をクリックします。設定 タブをクリックします。次に、Recordingrule.yaml を編集 をクリックします。
- 表示されたダイアログボックスで、デフォルトの設定を削除し、レコーディングルールの設定を入力して、保存 をクリックします。説明 クラスターごとに 1 つの RecordingRule.yaml ファイルのみを設定する必要があります。ルールグループの名前は一意である必要があります。

次のセクションでは、ルールグループの例を示します。
groups: - name: apiserver_request_total // APIサーバーのリクエスト合計 interval: 60s // 間隔 rules: // ルール - record: job_instance_mode:apiserver_request_total:avg_rate5m // 5分間の平均レート expr: avg by (job, instance, mode) (rate(apiserver_request_total[5m])) // 式 labels: // ラベル team: operations // チーム - record: job:apiserver_request_total:sum_rate10m // 10分間の合計レート expr: sum by (job)(rate(apiserver_request_total[10m])) // 式 labels: // ラベル team: operations // チームパラメーター 説明 groups ルールグループ。RecordingRule.yaml ファイルには複数のルールグループを設定できます。 name ルールグループの名前。ルールグループの名前は、ファイル内で一意である必要があります。 interval オプション。ルールグループを評価する間隔。デフォルト値は 60 秒です。 rules レコーディングルール。ルールグループには複数のレコーディングルールを含めることができます。 record ルールの名前。レコーディングルールの名前は、有効なメトリック名である必要があります。 説明 レコーディングルール名の推奨フォーマット:level:metric:operations。levelは、ルール出力の集計レベルとラベルを示します。metricは、メトリック名を示します。operationsは、メトリックに適用される操作のリストです。最新の操作が最初に表示されます。
expr 式。Managed Service for Prometheus は、この式を使用してメトリックを計算します。式は、有効な PromQL 式である必要があります。 labels オプション。メトリックのラベル。
レコーディングルールメトリックの詳細を表示する
方法 1: Grafana ダッシュボードを使用する
- オンプレミスの Grafana システムに管理者としてログインします。
- 左側のナビゲーションペインで、Explore をクリックします。
- Explore ページで、Kubernetes クラスター名を選択し、Metrics の横にあるテキストボックスにレコーディングルールメトリックの名前を入力します。メトリックの詳細が表示されます。

方法 2: Managed Service for Prometheus コンソールを使用する
ARMS コンソールにログインします。
左側のナビゲーションペインで、 を選択します。
- ページの左上隅で、Prometheus インスタンスが存在するリージョンを選択します。次に、Prometheus インスタンスの名前をクリックします。
- 左側のナビゲーションペインで、サービスディスカバリ をクリックします。メトリック タブをクリックします。次に、検索ボックスにレコーディングルールメトリックの名前を入力して、メトリックの詳細を表示します。
レコーディングルールのリモート書き込みを設定する
Managed Service for Prometheus は、オープンソースの Prometheus のリモート書き込み機能をサポートしています。
ARMS コンソールにログインします。
左側のナビゲーションペインで、 を選択します。
- ページの左上隅で、リモート書き込みを設定する Prometheus インスタンスが存在するリージョンを選択します。次に、Prometheus インスタンスの名前をクリックします。
- 左側のナビゲーションペインで、設定 をクリックします。設定 タブをクリックします。次に、Prometheus.yaml を編集 をクリックします。
- Prometheus.yaml を編集 ダイアログボックスで、リモート書き込みを設定します。
説明 Managed Service for Prometheus では、オープンソースの Prometheus と同じ方法で remote_write パラメーターを設定できます。リモート書き込み設定の配列を指定できます。さらに、書き込み再ラベル設定を指定できます。リモート書き込み設定は、エージェントとレコーディングルールの両方に有効になります。レコーディングルールによって生成されたメトリックデータのみを他のデータベースにリモートで書き込む必要がある場合は、書き込み再ラベル設定を指定できます。例:remote_write: - url: "https://xxxx/api/v1/prom/write?db=dbname&u=username&p=password" // リモート書き込みデータベースのエンドポイント。 write_relabel_configs: // 書き込み再ラベル設定 - source_labels: [__name__] // ソースラベル regex: job_instance_mode:apiserver_request_total:avg_rate5m // 正規表現 action: keep // アクション説明 上記の構成では、レコーディングルールメトリック (job_instance_mode:apiserver_request_total:avg_rate5m) のみが他のライブラリにリモートで書き込まれます。
関連操作
レコーディングルールによって生成された新しいメトリックデータをリモートで書き込むには、URL をパブリックエンドポイントに設定する必要があります。レコーディングルールのネットワークホワイトリストを設定するには、リージョンに基づいて IP アドレスを追加する必要があります。
中国 (北京): 101.200.XX.XX
中国 (杭州): 118.31.XX.XX
中国 (上海): 106.14.XX.XX.XX
中国 (深圳): 8.129.XX.XX
中国 (張家口): 39.103.XX.XX
中国 (青島): 139.129.XX.XX
中国 (成都): 47.108.XX.XX
中国 (香港): 47.242.XX.XX
シンガポール: 47.241.XX.XX上記のパブリックエンドポイントを取得するには、チケットを送信するか、Managed Service for Prometheus のテクニカルサポート (DingTalk ID: aliprometheus) にお問い合わせください。