Skip to content
Time Series Alerting Framework
Go JavaScript TypeScript HTML CSS Shell Other
Branch: master
Clone or download

Latest commit

Latest commit 7c1ed2a May 18, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
_version Migrate to Go modules (#2432) Nov 28, 2019
annotate cmd/bosun: BREAKING-CHANGE: support multiple elasticsearch versions a… Sep 25, 2018
build Format imports May 12, 2020
cmd Move docker directory to the repository root May 13, 2020
collect Format imports May 12, 2020
docker Remove unnecessary environment variables May 13, 2020
docs Update the documentation May 13, 2020
graphite Allow to query graphite with Auth informations Sep 25, 2015
host Format imports May 12, 2020
metadata Allow for configurable host name + some refactoring Dec 12, 2019
models cmd/bosun: support Azure Application Insights metrics Oct 17, 2018
name Use raw string literals to avoid having to escape \'s Dec 13, 2019
opentsdb Format imports May 12, 2020
plugins scollector: move static files from Puppet to the RPM Feb 4, 2015
slog slog: create a function that will recover panics and log them using s… Jan 10, 2017
snmp cmd/scollector: snmp lag monitoring and support non 1.3 oids May 16, 2017
util Initialise host manager when starting tsdbrelay May 11, 2020
.gitignore Add test coverage report generation (#2481) May 14, 2020
.travis.yml Migrate to Go modules (#2432) Nov 28, 2019
AUTHORS Less original spelling of original Mar 12, 2015 Add contributing guidelines Nov 22, 2019 Add Github CI actions May 12, 2020
LICENSE Move LICENSE to root directory Dec 4, 2014
Makefile Build all packages during CI May 17, 2020 Update the documentation May 13, 2020 build: make executable Jun 18, 2015 cmd/tsdbrelay: build file also had incorrect line endings Aug 18, 2016
go.sum Add a Makefile May 11, 2020
mk_rpm_fpmdir.bosun-silence.txt Rename mk_rpm_fpmdir.silence.txt -> mk_rpm_fpmdir.bosun-silence.txt Jul 31, 2015
mk_rpm_fpmdir.scollector.txt scollector: move static files from Puppet to the RPM Feb 4, 2015
mk_rpm_fpmdir.tsdbrelay.txt Add fpm config for tsdbrelay. Apr 29, 2015
package-lock.json Use a local version of tsc May 12, 2020
package.json Use a local version of tsc May 12, 2020 Specify report file paths May 17, 2020


Bosun is a time series alerting framework developed by Stack Exchange. Scollector is a metric collection agent. Learn more at

Build Status


bosun and scollector are found under the cmd directory. Run go build in the corresponding directories to build each project. There's also a Makefile available for most tasks.


For a full stack with all dependencies, run docker-compose up from the docker directory. Don't forget to rebuild images and containers if you change the code:

$ cd docker
$ docker-compose down
$ docker-compose up --build

If you only need the dependencies (Redis, OpenTSDB, HBase) and would like to run Bosun on your machine directly (e.g. to attach a debugger), you can bring up the dependencies with these three commands from the repository's root:

$ docker run -p 6379:6379 --name redis redis:6
$ docker build -f docker/opentsdb.Dockerfile -t opentsdb .
$ docker run -p 4242:4242 --name opentsdb opentsdb

The OpenTSDB container will be reachable at http://localhost:4242. Redis listens on its default port 6379. Bosun, if brought up in a Docker container, is available at http://localhost:8070.



  • Run make deps and make testdeps to set up all dependencies.
  • Run make generate when new static assets (like JS and CSS files) are added or changed.

The script will automatically build and run bosun in a loop. It will update itself when go/js/ts files change, and it runs in read-only mode, not sending any alerts.

$ cd cmd/bosun
$ ./

Go Version:

  • See the version number in .travis.yml in the root of this repo for the version of Go to use. Generally speaking, you should be able to use newer versions of Go if you are able to build Bosun without error.


  • Bosun includes miniprofiler in the web UI which can help with debugging. The key combination ALT-P will show miniprofiler. This allows you to see timings, as well as the raw queries sent to TSDBs.
You can’t perform that action at this time.