Paper2 Blog

ともに、かける

Cloud MonitoringのSlack通知でメンションを利用する

🎄 SRE Advent Calendar 2023 23日目の記事です。

Google Cloud MonitoringのアラートポリシーによるSlack通知でグループへのメンションなどを活用したい場合があります。例えばエラーバジェットを急激に消費しているファストバーンアラートなどはより気付きやすくなるようにメンションをつけておきたい場合もあるかと思います。

サマリ

Cloud MonitoringのDocumentationに記載した内容はSlackのtext objectとして表示されるため、メンションしたい場合は特別に解釈される文字列を利用する必要があります。例えばグループメンションは <!subteam^ID> を利用します。

@groupと書いてもメンションされない

Documentationに直接 @group と入力してもSlack通知時にはメンションとして扱われません。

Cloud MonitoringのDocumentation入力画面

以下のようにメンションになりません。

うまくメンションされない時のSlack通知画面

メンションにする方法

Cloud MonitoringのDocumentationに記載した内容はSlackのtext objectとして扱われるため、メンションしたい場合は以下のように特別に解釈される文字列を利用する必要があります。

  • グループメンション
<!subteam^ID>

特定グループにメンションしたい場合は上記の文字列を利用します。ID 部分をグループIDで置き換えます。グループIDはusergroups.list Web APIで検索することができます。 また、ブラウザで開いて特定のユーザーグループを編集するときのURLにもIDが含まれるのでそこから取得することもできます。

  • 特定ユーザへのメンション
<@ID>

特定ユーザにメンションしたい場合は上記の文字列を利用します。ID 部分をユーザIDで置き換えます。こちらはプロフィールからも取得できます。

プロフィールでのメンバーIDの取得

  • 特別なメンション
<!here> <!channel> <!everyone>

@here @channel @everyone などの特別なメンションを利用する場合は上記の文字列を利用します。ただし、これらのメンションは多くのユーザに通知してしまう傾向があるため極力利用しないことが推奨されています。

上記文字列を活用することで、Slack通知時にメンションを利用することができます。

特別な文字列を利用してメンションした際の通知

(おまけ)その他の特別な文字列

  • チャンネルへのリンク
<#C123ABC456>

アラート通知時に特定のチャンネルを見て欲しい時があります。そういう時は上記の文字列が利用できます。

  • dateフォーマット
<!date^timestamp^token_string^optional_link|fallback_text>

こんなのあるんだ的なやつですが、任意のフォーマットで時刻を表示できます。

Block Kit Builderでdateフォーマットを試してみる

まとめ

Cloud MonitoringのSlack通知でメンションを利用する方法を紹介しました。意外とネットですぐ見つからなかったので小ネタとして書いてみました。どこかで役に立てば幸いです。