Giter Site home page Giter Site logo

mattermost-plugin-statuspage's Introduction

Mattermost Statuspage Plugin

This plugin sends webhook notifications from Statuspage to Mattermost. Use it to get notified of system outages and of partially degraded services.

Supported Mattermost Server Versions: 5.37+

To see the plugin in action, join the Statuspage channel in our communtiy server at https://community.mattermost.com/core/channels/statuspage.

Statuspage notifications

Installation

  1. Go to the releases page of this GitHub repository and download the latest release for your Mattermost server.
  2. Upload this file in the Mattermost System Console > Plugins > Management page to install the plugin, and enable it. To learn more about how to upload a plugin, see the documentation.

Next, to configure the plugin, follow these steps:

  1. After you've uploaded the plugin in System Console > Plugins > Management, go to the plugin's settings page at System Console > Plugins > Statuspage.
  2. Specify the team and channel to send messages to. For each, use the URL of the team or channel instead of their respective display names.
  3. Generate the Token that will be use to validate the requests.
  4. Hit Save.
  5. Next, copy the Token above the Save button, which is used to configure the plugin for your Statuspage account.
  6. Go to your Statuspage account, paste the following webhook URL and specfiy the name of the service and the token you copied in step 8.
https://SITEURL/plugins/statuspage/webhook?service=SERVICENAME&token=TOKEN

mattermost-plugin-statuspage's People

Contributors

cpanato avatar jasonblais avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mattermost-plugin-statuspage's Issues

Notifications not posted to channel

We've enabled this plugin on a server running Mattermost Team edition v5.10, and notifications aren't posted to the channel we picked, possibly because Statuspage changed the format of their webhooks.

The webhook's payload is sent in a POST request with Content-type: application/x-www-form-urlencoded, which doesn't seem to be handled properly by the plugin. The request body seems to be interpreted as JSON directly, while the body first needs to be decoded.

Debug logs:

{"level":"info","ts":1557316687.5624783,"caller":"mlog/sugar.go:19","msg":"Received statuspage notification","plugin_id":"statuspage","service=":"NAMEOFSERVICE"}
{"level":"debug","ts":1557316687.5630443,"caller":"mlog/sugar.go:15","msg":"Failed to serve HTTP request","plugin_id":"statuspage","Error message":"invalid character 'p' looking for beginning of value"}

Received request body (intercepted using https://webhook.site):

payload=%7B%22username%22%3A%22statuspageio%22%2C%22channel%22%3A%22%23testing123%22%2C%22text%22%3A%22%22%2C%22attachments%22%3A%5B%7B%22color%22%3A%22warning%22%2C%22pretext%22%3A%22TEST+Status+page+page%22%2C%22text%22%3A%22*user%email.com*+updated+component+*TEST+Application*+from+*Degraded+Performance*+to+*Major+Outage*.%5Cn%5Cu003chttp%3A%2F%2Fmanage.statuspage.io%2Fpages%2Fabcd1234abcd%2Fcomponents%3Futm_source%3Dslack%7CManage+your+Components%5Cu003e%22%2C%22fallback%22%3A%22user%40email.com+updated+component+TEST+Application+from+Degraded+Performance+to+Major+Outage.+%22%7D%5D%7D

Decoded payload:

{
  "username": "statuspageio",
  "channel": "#testing123",
  "text": "",
  "attachments": [
    {
      "color": "warning",
      "pretext": "TEST Status page page",
      "text": "*[email protected]* updated component *TEST Application* from *Degraded Performance* to *Major Outage*.\n<http://manage.statuspage.io/pages/abcd1234abcd/components?utm_source=slack|Manage your Components>",
      "fallback": "[email protected] updated component TEST Application from Degraded Performance to Major Outage. "
    }
  ]
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.