Sunsetting Bosun at Stack Overflow and Call for New Bosun Maintainer(s)

Stack Overflow has decided to move away from maintaining our own open source monitoring system and instead move to a commercial SaaS monitoring product. For the size of our company, maintaining an open source monitoring system properly of Bosun’s scope is beyond our resources and does not align clearly with our objectives. We want to be building more products and features for our Stack Overflow community and clients. Building our own tools takes us away from that core mission. To that end, Stack Overflow will be migrating away from Bosun by the end of 2019.

What this means for the future of the Bosun Project

Bosun is a powerful monitoring system with a growing community. We hope that someone in the community steps up and takes over as primary maintainer(s) of the project.

It is our hope that a new maintainer can be found and the project will continue. If we can not find a new maintainer, we plan on sunsetting the project by the end of 2019.

Support for the remainder of 2019

For the remainder of 2019 (or until a new maintainer is found), Stack commits to continuing our support:

Assistance for new maintainer

If someone/group/company wants to become the new primary maintainer (govern the project, decide what gets merged and what doesn’t) then this will become less of an ending of the project and more of a handoff.

In this situation:

How can I/we learn more about becoming a maintainer?

You can email me at kyle@stackoverflow.com, or you can reach out to us in our slack instance.

Challenges/Ideas for Maintainers

There are a number of projects and/or features that have been discussed and in some cases designed but not implemented. We hope the new maintainers consider the following projects:

Summary Areas Difficulty Description
Refactor "State Machine" Backend Very Hard The code behind silences, when to send notifications, escalations etc (the sched package) is hard to understand and changes have often produced on expected results. Should be refactored into a set of finite state machines that are testable. If one wanted to make a solid 1.x.x release, I believe this would be the great challenge.
Multi-File Support UI, Backend, Configuration Parser Hard Update the UI so rules (alert definitions, templates, notifications, etc) can be in different files. So the configuration does not become overwhelming long. Use Bosun's security middleware to limit certain files to certain Users/Groups.
Clean up JS UI Medium Use some sort of packaging system for js libraries, update typescript, update d3, update angular, use more typescript objects
Snippets and Expression Autocompletion UI Medium Use the abilities of the ace editor to enable snippets to pre-fill in config blocks and expression functions. Would make Bosun easier to use. Also support best practices within a company by adding custom snippets. See experimental snippet branch. Could also integrate function documentation into language to make it available to the editor, see experimental exprDoc branch.
API V2 Backend, API Medium Make an APIv2 that is fully documented and has consistent response types, errors are always json etc
Move incident Information to Relation Database Backend, Database Medium Instead of using redis for incident state information, use a relational database to allow for reporting. Also future enhancements to do things like collect "was this alert useful" information would be easier to implement and report on.
Realtime Dashboard Backend, UI Medium Make dashboard based on websockets so dashboard can be refreshed, and other users get notifications from the actions of different users.
Graphing UIs UI Medium Creating Graphing UIs for TSDBs besides OpenTSDB, like Prometheus and Graphite
Use Grafana For UI UI Hard Deprecate Bosun's UI and rebuild it entirely as a Grafana App.