Google Cloud MonitoringのアラートポリシーによるSlack通知でグループへのメンションなどを活用したい場合があります。例えばエラーバジェットを急激に消費しているファストバーンアラートなどはより気付きやすくなるようにメンションをつけておきたい場合もあるかと思います。
サマリ
Cloud MonitoringのDocumentationに記載した内容はSlackのtext objectとして表示されるため、メンションしたい場合は特別に解釈される文字列を利用する必要があります。例えばグループメンションは <!subteam^ID>
を利用します。
@groupと書いてもメンションされない
Documentationに直接 @group
と入力してもSlack通知時にはメンションとして扱われません。
以下のようにメンションになりません。
メンションにする方法
Cloud MonitoringのDocumentationに記載した内容はSlackのtext objectとして扱われるため、メンションしたい場合は以下のように特別に解釈される文字列を利用する必要があります。
- グループメンション
<!subteam^ID>
特定グループにメンションしたい場合は上記の文字列を利用します。ID
部分をグループIDで置き換えます。グループIDはusergroups.list Web APIで検索することができます。
また、ブラウザで開いて特定のユーザーグループを編集するときのURLにもIDが含まれるのでそこから取得することもできます。
- 特定ユーザへのメンション
<@ID>
特定ユーザにメンションしたい場合は上記の文字列を利用します。ID
部分をユーザIDで置き換えます。こちらはプロフィールからも取得できます。
- 特別なメンション
<!here> <!channel> <!everyone>
@here
@channel
@everyone
などの特別なメンションを利用する場合は上記の文字列を利用します。ただし、これらのメンションは多くのユーザに通知してしまう傾向があるため極力利用しないことが推奨されています。
上記文字列を活用することで、Slack通知時にメンションを利用することができます。
(おまけ)その他の特別な文字列
- チャンネルへのリンク
<#C123ABC456>
アラート通知時に特定のチャンネルを見て欲しい時があります。そういう時は上記の文字列が利用できます。
- dateフォーマット
<!date^timestamp^token_string^optional_link|fallback_text>
こんなのあるんだ的なやつですが、任意のフォーマットで時刻を表示できます。
まとめ
Cloud MonitoringのSlack通知でメンションを利用する方法を紹介しました。意外とネットですぐ見つからなかったので小ネタとして書いてみました。どこかで役に立てば幸いです。