前回のブログで、New Relic のアラートをメールに通知する記事を書きました。よかったら、見てみてください。今回はLambda を使って、Line に通知をしてみたいと思います。会社ではslack であったり、Chatwork であったり、ビジネスツールに通知すると思います。ただ、個人では流石につかいませんよね。。。ということでLine に通知できたら便利なので、通知設定していきます!
New Relic とEventbridge の連携について
以前のブログで書きましたので、その設定に関しては下記のブログで設定してみてください。変更点のみを今回
Eventbridge のターゲットをLambda に変更
前回のブログでは、SNS の通知を設定したのですが、今回はLambda と連携する必要があるので、Lmabda に変更していきます。
ターゲットをLambda に変更

ロール変更
新しいロールを選択して、適当にRole 名称をつけてあげます。

他のところは、そのままの設定で大丈夫です。これで、Lambda の連携は完了です。
Lambda のコードをデプロイ
今回もコードをGithub で管理しているので、それを参照してみてください!
今回のレポジトリ
Lambda のコードのみを管理しているので、デプロイ方法は他の記事でまた紹介します!
Layer に関しては以前紹介したLine 通知の記事のLibrary を使用しています。
今回のポイント
今回のポイントは下記になります。
- Lambda でNew Relic のEvent を取得する処理
- New Relic で必要な情報のみを選定する
- Line Flex Message を使ってLine 通知をオシャレにする
New Relic => Eventbridge のjson 構造に関して
Eventbridge から渡って来る時は、下記のような構造になります。
{
"version": "0",
"id": "...",
"detail-type": "...",
"source": "NewRelicEventSource", // New Relic からの通知であることを示すソース
"account": "...",
"time": "...",
"region": "...",
"resources": [
"..."
],
"detail": {
// ここに New Relic のイベントテンプレートで定義したデータが入ります
}
}
つまりは、detail に全てalert の内容が入ってきます。なので、detail の内容を取得する処理を入れる必要があります。
New Relic event 取得処理
これは簡単で、Lambda が受け取ったevent のdetail の中の処理を変数に入れてあげるだけです。
これはとても簡単ですね。detail の中でも不要な情報もでてくるので、その選定もここでしてあげます。
def process_newrelic_alert(event):
"""
New Relicアラートイベントを処理
"""
detail = event.get('detail', {})
# アラート情報を抽出
alert_info = {
'policy_name': detail.get('alertPolicyNames'),
'condition_name': detail.get('alertConditionNames'),
'severity': detail.get('priority'),
'incident_url': detail.get('issueUrl'),
'timestamp': event.get('time', ''),
'account_id': detail.get('accountId', ''),
'entity_name': detail.get('entityName', ''),
}
logger.info(f"Extracted alert_info: {alert_info}")
return alert_info
Flex message に関して
今回、Flex Message を使うこと自体が初めてだったので、今回はAI に書いてもらいました。CSS の要素とかもかかわるとあまり詳しくないので、こういうの書いてくれるの本当にありがたいです。
Flex Message Simulator というのがあるらしいので、そこで一から作成したい人はチェックしてみてください。面白そうですが、またの機会にしようと思います。
最後に環境変数を設定
今回も前に紹介したGroup ID とLine Token で認証しているので、Lambdaの環境変数で設定してあげてください!
Line 通知の画像
こんな感じで通知されます。View in New Relic を押したら、New Relic のコンソールに移動できるみたいな感じです。Policy Name がダサいのがちょっと残念ですね。もうちょっと改善の余地ありです。

まとめ
Lambda の管理が少し大変ですが、こんな感じでアラート通知もLine にできたりするので、興味のある人はやってみてください!!
コメント