動機
DatadogのMonitorでは、Slack Integrationを使ってSlackの特定のチャンネルにアラートが投稿されるように設定できます。
このアラートの投稿に、個別のユーザーへのメンションを追加したい場合にどうすればよいかを紹介します。
追記
公式ドキュメントの関連する記述を見つけたので紹介しておきます。
Wrap the
@username
in< >
in your monitor’s message template to @-notify the defined user within Slack notifications. For example:@slack-SLACK_CHANNEL <@USERNAME>
, or@slack-SLACK_ACCOUNT-SLACK_CHANNEL <@USERNAME>
.If you are having trouble pinging someone, use their Slack
username
instead of the display name. The username is located in Slack account settings under Username.Mention @here or @channel by using
<!here>
or<!channel>
, respectively.For user groups, use
<!subteam^GROUP_ID>
. To find theGROUP_ID
, query theusergroups.list
API endpoint of Slack.
うまくいかない方法
単純に考えると、 Slackでメンションを飛ばすときと同じく @username という文字列をメッセージの中に組み込めばよさそうですが、それではメンションを飛ばすことはできません。
解決策
User IDを使って、<@U04SFRAKAG0> のように記載してやればよいです。
追記: User Nameでも可能です。
実際のSlackへの投稿では<@U04SFRAKAG0> の部分がメンション(@始まりのハイライトされた文字列)として表示されます。
User ID は、以下のようにプロフィールから取得できるほか、
(無料プランでは見られませんが)ワークスペースごとの https://example.slack.com/stats#members (exampleの部分を使っているワークスペースのものに変更してください)のページから参照できます(User IDの列が表示されない場合は「Edit columns」から追加してください)。