• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

ワークフローの例

このページでは、ワークフロー自動化を使用して構築できる一般的な自動化シナリオを示します。これらの例を独自のワークフローの開始点として使用するか、すぐにデプロイできるソリューションのテンプレート ライブラリを探索してください。

インシデント対応と修復

APIゲートウェイのロールバック

API ゲートウェイの構成を以前の状態に戻して、エラーや誤った構成を修正できるようにします。

このワークフローの機能:

  • New Relic Change Tracking (変更追跡機能) を使用して、問題に関連する最近のデプロイメントを検出します
  • 承認ボタン(:+1: または :-1:)付きの Slack 通知を送信します
  • 承認後、ロールバックを自動化するための AWS Systems Manager ドキュメントを作成します。
  • API Gateway 統合を以前のLambdaバージョンにロールバックします
  • ロールバックを適用するための新しいデプロイメントを作成します
  • Slackに成功または失敗の通知を送信します
  • 完了後にSSMドキュメントをクリーンアップします

要件:

  • API Gateway および Systems Manager の権限を持つ AWS 認証情報
  • 通知と承認を受け取るための設定済みSlackアプリ
  • 変更追跡によるNew Relicエンティティ監視 (変更追跡機能)

キーアクション: newrelic.nerdgraph.executeslack.chat.postMessageslack.chat.getReactionsaws.systemsManager.writeDocumentaws.systemsManager.startAutomationaws.systemsManager.waitForAutomationStatusaws.systemsManager.deleteDocument

EC2インスタンス管理

EC2 インスタンスのプロビジョニング、スケーリング、終了を自動化して、最適なパフォーマンスとコストを実現します。

このワークフローの機能:

  • New RelicからCPU使用率が高いというアラートを受信する
  • 大量の詳細を取得し、影響を受ける EC2 インスタンスを特定します
  • インスタンスの詳細を含む Slack 通知を送信し、サイズ変更の承認requests
  • 承認後、インスタンスのサイズ変更を自動化するための SSM ドキュメントを作成します。
  • インスタンスを停止し、インスタンスタイプを変更して再起動します
  • サイズ変更プロセス中に進捗状況を Slack に送信します
  • 完了を待ち、成功または失敗のステータスを送信します
  • SSM文書をクリーンアップし、最終確認を送信します

要件:

  • EC2 および Systems Manager の権限を持つ AWS 認証情報
  • EC2 メトリクスのアクティブな New Relic アラート条件
  • 通知と承認を受け取るための設定済みSlackアプリ

キーアクション: newrelic.nerdgraph.executenewrelic.nrdb.queryslack.chat.postMessageslack.chat.getReactionsaws.systemsManager.writeDocumentaws.systemsManager.startAutomationaws.systemsManager.waitForAutomationStatusaws.systemsManager.deleteDocumentutils.datetime.fromEpochutils.uuid.generate

デプロイメントのロールバック

エンティティが異常になった場合はデプロイメントをロールバックし、AWS SQS または HTTP のいずれかで通知します。

このワークフローの機能:

  • エンティティの重大度を指定された期間 (デフォルトは 30 分) 監視します。
  • エンティティの健全性を1分ごとにチェックします
  • エンティティがCRITICALまたはWARNINGになった場合、不健全な状態をログに記録します。
  • エンティティの詳細を含むロールバック通知を AWS SQS (設定されている場合) 経由で送信します。
  • HTTP Webhook 経由でロールバック通知を送信します (設定されている場合)
  • エンティティが全期間健全なままであれば、成功をログに記録します
  • エンティティが見つからない場合は監視を停止します

要件:

  • New Relicエンティティの重大度監視
  • (オプション) ロールバック通知を受信するための AWS SQS キューとロール
  • (オプション) ロールバック通知を受信する HTTP エンドポイント

キーアクション: newrelic.nerdgraph.executenewrelic.ingest.sendLogsaws.execute.api (sqs.send_message)、 http.post

データ処理とレポート

Slackにレポートを送信する

NRQL クエリ出力を CSV ファイルとして Slack に送信します。

このワークフローの機能:

  • 指定された New Relic アカウントに対して NRQL クエリを実行します。
  • クエリ結果からCSVファイルを生成します
  • CSVファイルを指定されたSlackチャンネルにメッセージとともに投稿する

要件:

  • New Relic 認証情報と機能的な NRQL クエリ
  • トークンとターゲットチャンネルが設定されたSlackアプリ

キーアクション: newrelic.nrdb.queryutils.transform.toCSVslack.chat.postMessage

JSON解析

New Relic パブリック ステータス API JSON (HTTP) を解析し、オプションで運用コンポーネントと非運用コンポーネントをログに記録します。

このワークフローの機能:

  • New RelicステータスAPIからJSONデータを取得します
  • コンポーネントを動作状態別に抽出し分類します
  • 条件付きで運用コンポーネントをログに記録する(有効な場合)
  • 条件付きで非動作コンポーネントをログに記録する(有効な場合)
  • HTTPエラーを処理し、エラーメッセージをログに記録します

要件:

  • New Relic ステータス API (summary.json) へのアクセス
  • newrelic.ingest.sendLogs 経由でログを送信する権限

キーアクション: http.getnewrelic.ingest.sendLogs

利用可能なテンプレートワークフロー

上記のテンプレートはNew Relicワークフロー Automation UIで直接利用できます。 アクセスするには:

  1. one.newrelic.com > All Capabilities > Workflow Automationにアクセスしてください。
  2. Create workflow [ワークフローの作成を]クリック
  3. Use a template [テンプレートを使用するを]選択
  4. テンプレートライブラリを参照して、ユースケースに合ったワークフローを選択します

各テンプレートには以下が含まれます。

  • 事前設定されたワークフローステップとロジック
  • 入力例
  • 必要な認証情報と統合
  • 期待される成果の文書化

テンプレートをそのまま使用することも、特定の要件に合わせてカスタマイズすることもできます。

ステップ間でのデータの受け渡し

すべてのワークフローは、テンプレート構文を使用して前のステップからの出力を参照できます。これにより、アクションを連結し、複雑な自動化ロジックを構築できます。

基本的なデータの受け渡し

steps:
- name: getAlert
action: newrelic.nerdgraph.execute
inputs:
query: |
{
actor {
account(id: 123456) {
alerts {
violation(id: 789) {
condition
entity {
name
guid
}
}
}
}
}
}
- name: sendToSlack
action: slack.chat.postMessage
inputs:
channel: "#incidents"
text: "Alert: ${{ .steps.getAlert.outputs.data.actor.account.alerts.violation.condition }}"

ループ内でのデータの使用

steps:
- name: listInstances
type: action
action: aws.ec2.describeInstances
version: 1
inputs:
filters:
- name: "tag:Environment"
values: ["production"]
- name: checkEachInstance
type: loop
for:
in: "${{ .steps.listInstances.outputs.reservations }}"
steps:
- name: getInstanceMetrics
type: action
action: newrelic.nerdgraph.execute
version: 1
inputs:
query: "SELECT average(cpuPercent) FROM SystemSample WHERE instanceId = '${{ .steps.checkEachInstance.loop.element.instanceId }}'"

データを使った条件付きロジック

steps:
- name: checkCPU
type: action
action: newrelic.nerdgraph.execute
version: 1
# ... query configuration
- name: decideAction
type: switch
switch:
- condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 90 }}"
next: resizeInstance
- condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 70 }}"
next: sendWarning
next: normalOperation
- name: resizeInstance
type: action
action: aws.ec2.modifyInstanceAttribute
version: 1
# ... resize configuration
- name: sendWarning
type: action
action: slack.chat.postMessage
version: 1
# ... warning message
- name: normalOperation
type: action
action: newrelic.ingest.sendLogs
version: 1
# ... log normal status

次のステップ

Copyright © 2025 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.