はじめに
workflowの設定で、アラート通知をPagerDutyに指定し、擬似的なアラートを出して、テスト通知を行いたい場面がありました。
その際、期待する挙動にならず少々混乱した場面がありましたので、そちらをご紹介します。
前提
- New Relicで外形監視を設定
- New Relic → PagerDutyでアラート連携
- New Relicのworkflowでアラート通知先をPagerDutyとして登録
混乱したこと
その一:Test this workflowが実行できない
workflowの設定項目から、「Test workflow」を押下すると、「Check the warning above before you activate this workflow」のエラーが表示されます。
Check the warning aboveとのことなので、確認したところ、同設定項目の一つであるFilter dataの部分に、「This filter doesn’t match any past issues, Is that OK?」のエラーが表示されていました。
原因と対処方法
Test workflowは過去発生したからアラートを、テスト通知としてアラートを通知する仕様のようです。
当時このエラーが発生したときは、アラートが一件も発生していなかったタイミングでした(サブアカウントを作成して初めて設定を実施したタイミング)。
そのため、アラートが一件も発生しておらずTest workflowも実行できませんでした。
意図的にアラートを発報させた後、再度Test workflowを実施したところ、無事に実行でき、PagerDuty側にも通知を飛ばすことができました。
その二:Summaryで設定した変数の値がPagerDutyに出力されない
- New Relic側のSummary設定
上記のSummaryにて、「*{{ accumulations.conditionName.[0] }} {{ accumulations.conditionDescription.[0] }}*」という変数を指定し、Send test notificationを実行しました。
それぞれ、conditonで設定したNameと、Descriptionが、PagerDuty側のIncidentに表示される想定でしたが、以下のような結果になりました。
- PagerDuty側で起票されたIncident
設定したNameと、Descriptionは表示されず、上記赤枠の文言が表示され、期待した結果ではありませんでした。
原因と対処方法
意図的にアラートを発生させて、再度実行したところ、PagerDuty側に変数の値持ってきてくれて、想定通りの結果になりました。
過去のアラートが一件もなかったため、変数の値を持ってきてくれなかったようです
Send test notificationを実行した場合は、Summaryで指定した変数に定義される値は、Conditionで設定された値ではなく、過去アラートの値のようです。
そのため、過去のアラートがない場合は、New Relic側でデフォルトで用意された値が定義されるようでした。
まとめ
今回の事象について、参考になる記事が見つけられず、先輩社員にアドバイスいただけたことで、対処することができました。
New Relic初心者ですが、実体験となるこの記事がどなたかの役に立ちますと嬉しいです。