nsqadmin_to_slack
sends event actions from nsqadmin to a slack channel. It's inspired by nsqadmin2hipchat by @danielhfrank.
This was adapted from a more generic internal nofication system in use at Bitly.
nsqadmin
supports creating a datastream of events of state change actions. These events cover actions like pause/unpause/empty/remove for topics and channels.
To enable this event datastream configure nsqadmin
to use the HTTP PUB endpoint on nsqd
nsqadmin --notification-http-endpoint="http://127.0.0.1:4151/pub?topic=nsqadmin_events"
If HTTP requests to nqsadmin have a Basic authorization header (often from running behind an authenticating proxy like oauth2_proxy) that will be recorded in the event as the User initiating action. If the header X-Forwarded-Email is set, that will be used to match to the right slack user.
The structure of these events is defined here.
nsqadmin_to_slack
supports reading nsqadmin events from a nsqd topic, and sending properly formatted events to slack.
Usage of ./nsqadmin_to_slack:
-channel string
NSQ channel (default "nsqadmin_to_slack")
-consumer-opt value
option to passthrough to nsq.Consumer (may be given multiple times, http://godoc.org/github.com/nsqio/go-nsq#Config)
-lookupd-http-address value
lookupd HTTP address (may be given multiple times)
-max-in-flight int
max number of messages to allow in flight (default 200)
-nsqd-tcp-address value
nsqd TCP address (may be given multiple times)
-slack-channel string
Slack channel. i.e. #test
-slack-token string
Slack API Token (may alternately be specified via SLACK_TOKEN environment variable)
-topic string
NSQ topic
-version
print version string