こまメモ

Twitter以上技術ブログ未満

DatadogのMonitorのSlackへの投稿に個別のユーザーへのメンションを追加したい

動機

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 the GROUP_ID, query the usergroups.list API endpoint of Slack.

https://docs.datadoghq.com/integrations/slack/?tab=applicationforslack#-mentions-in-slack-from-monitor-alert


うまくいかない方法

単純に考えると、 Slackでメンションを飛ばすときと同じく @username という文字列をメッセージの中に組み込めばよさそうですが、それではメンションを飛ばすことはできません。

解決策

User IDを使って、<@U04SFRAKAG0> のように記載してやればよいです。

追記: User Nameでも可能です。

実際のSlackへの投稿では<@U04SFRAKAG0> の部分がメンション(@始まりのハイライトされた文字列)として表示されます。

User ID は、以下のようにプロフィールから取得できるほか、

(無料プランでは見られませんが)ワークスペースごとの https://example.slack.com/stats#members (exampleの部分を使っているワークスペースのものに変更してください)のページから参照できます(User IDの列が表示されない場合は「Edit columns」から追加してください)。