riemann.slack
Post alerts to slack.com
default-formatter
(default-formatter events)
Simple formatter for rendering an event as a Slack attachment.
extended-formatter
(extended-formatter events)
Format an event as a Slack attachment with a series of fields.
slack
(slack account_name token username channel)
(slack account-info message-info)
(slack {:keys [webhook_uri account token]} {:keys [username channel icon formatter], :or {formatter default-formatter}} http-params)
Posts events into a slack.com channel using Incoming Webhooks. Takes your account name, webhook token, bot username and channel name. Returns a function that will post a message into slack.com channel:
(def credentials {:account "some_org", :token "53CR3T"})
(def slacker (slack credentials {:username "Riemann bot"
:channel "#monitoring"
:icon ":smile:"}))
(by [:service] slacker)
Hint: token is the last part of the webhook URL that Slack gives you. https://hooks.slack.com/services/QWERSAFG0/AFOIUYTQ48/120984SAFJSFR Token in this case would be 120984SAFJSFR
You can also supply a custom formatter for formatting events into Slack messages. Formatter result may contain:
username
- overrides the username provided upon constructionchannel
- overrides the channel provided upon constructionicon
- overrides the icon provided upon constructiontext
- main text formatted using Slack markupattachments
- array of attachments according to https://api.slack.com/docs/attachments
(def slacker (slack credentials {:username "Riemann bot", :channel "#monitoring"
:formatter (fn [e] {:text (:state e)
:icon ":happy:"})))
You can use slack
inside of a grouping function which produces a seq of events, like rollup
:
(def slacker (slack credentials {:username "Riemann bot", :channel "#monitoring"
:formatter (fn [es] {:text (apply str (map :state es))})))
(rollup 5 60 slacker)
The last parameter of the arity-3 version of the function is a map of parameters passed directly to clj-http. For example, you can set socket and connection timeouts like so:
(slack {…} {…} {:socket-timeout 1000 :conn-timeout 1000})
slack-fallback
(slack-fallback events)
Minimal, plain-text event formatting. Used for dumb clients such as IRC.