Terraformを使用して、重要なビジネストランザクションを追跡するためのインテリジェントなワークロードを使用する場合でも、特定のチームが所有するエンティティをグループ化するための標準のワークロードを使用する場合でも、New Relicのワークロードを作成、管理、および更新できます。公式のterraform-provider-newrelicリポジトリ内のnewrelic_workloadリソースは、両方のワークロードタイプをサポートするようになりました。
前提条件
開始する前に:
- マシンにTerraform CLIをインストールします。
- Terraformプロジェクト用のローカル作業ディレクトリを初期化します。
- 有効なNew RelicユーザーAPIキー(NerdGraph APIアクセス)とアカウントIDを取得します。
- 認証情報を安全に保つために、設定ファイルにハードコーディングするのではなく、環境変数(
NEW_RELIC_API_KEY、NEW_RELIC_ACCOUNT_ID、およびNEW_RELIC_REGION)として認証情報をエクスポートします。 terraform-provider-newrelicv3.94.0以降をインストールします。これは、Intelligent ワークロードのサポートに必要な最小バージョンです(dynamic_flows、status_config_alert_policy)。
重要
ライセンスキーまたはIngestキーを使用しないでください。ワークロードリソースのプロビジョニングには、ユーザーレベルのAPI権限が必要です。
認証を設定する
プライマリTerraform設定ファイルでNew Relicプロバイダーを宣言します:
terraform { required_providers { newrelic = { source = "newrelic/newrelic" version = ">= 3.94.0" } }}
provider "newrelic" { # Configuration inherits NEW_RELIC_API_KEY, NEW_RELIC_ACCOUNT_ID, and NEW_RELIC_REGION from environment variables}標準ワークロードを作成する
検索クエリ、明示的なエンティティGUIDリスト、またはアカウントスコープの境界を使用して、newrelic_workloadリソースを定義してください。チームが所有する特定のインフラストラクチャ、アプリケーション、またはサービスを手動でグループ化する場合は、このアプローチを使用してください。
resource "newrelic_workload" "team_standard_workload" { name = "Payments Team Workload" account_id = 1234567 # Replace with your New Relic Account ID
# Group entities using a search query entity_search_query { query = "name LIKE 'payment-%' AND type = 'SERVICE'" }}インテリジェントなワークロードを作成する
dynamic_flows設定ブロックを使用してください。インテリジェントなワークロードの主な利点は、dynamic_flowsブロックでエントリポイントのエンティティGUIDとトランザクション名を指定すると、New Relicがディストリビューティッド(分散)トレーシング(Transaction 360)を介して上流および下流のエンティティの依存関係を自動的に検出し、マッピングして、5分ごとに更新することです。つまり、基盤となるサービスのアーキテクチャーが変更されたときに、手動でGUIDを更新したり、Terraformの設定を再適用したりする必要はありません。
ヒント
エントリポイントのエンティティGUIDを見つけるには、New Relic UIでエンティティに移動し、エンティティのメタデータからGUIDをコピーするか、NerdGraphエンティティAPIを使用して取得してください。
インテリジェントなワークロードは、アラート条件から稼働ステータスを導き出すこともできます:ワークロードにstatus_config_alert_policy { enabled = true }を設定し、そのtarget_entityをワークロードのGUIDに設定してnewrelic_nrql_alert_conditionリソースをアタッチします。
重要
target_entity newrelic_nrql_alert_conditionのサポートは現在パブリックプレビュー中であり、アカウントごとに利用可能です。詳しくは、Terraformレジストリのドキュメントを参照してください。
resource "newrelic_workload" "checkout_intelligent_workload" { name = "Checkout Transaction Flow" account_id = 1234567 # Replace with your New Relic Account ID
dynamic_flows { entity_guid = "Mzg3fEFQTX..." # Replace with your entry point entity GUID transaction_name = "WebTransaction/Action/checkout" }
status_config_alert_policy { enabled = true }}設定を適用してください
リソースブロックを定義した後、ターミナルから以下のコマンドを実行します:
$terraform init$terraform plan$terraform applyTerraformがワークロードのプロビジョニングを正常に完了したら、one.newrelic.com > All capabilities > Workloads>に移動して新しいリソースを確認してください。トランザクションフローで自動的に検出されたエンティティを検査し、アラートポリシーのバインディングを確認して、ステータスロールアップが正しいワークロードの正常性を反映していることを確認できます。