Go

Rollbar SDK for Go

rollbar-go

rollbar-go is a Golang Rollbar client that makes it easy to report errors to Rollbar with full stacktraces. Errors are sent to Rollbar asynchronously in a background goroutine.

Because Go's error type doesn't include stack information from when it was set or allocated, we use the stack information from where the error was reported.

Usage

package main

import (
  "github.com/rollbar/rollbar-go"
  "time"
)

func main() {
  rollbar.SetToken("MY_TOKEN")
  rollbar.SetEnvironment("production")                 // defaults to "development"
  rollbar.SetCodeVersion("v2")                         // optional Git hash/branch/tag (required for GitHub integration)
  rollbar.SetServerHost("web.1")                       // optional override; defaults to hostname
  rollbar.SetServerRoot("github.com/heroku/myproject") // path of project (required for GitHub integration and non-project stacktrace collapsing)

  rollbar.Info("Message body goes here")
  rollbar.WrapAndWait(doSomething)
}

func doSomething() {
  var timer *time.Timer = nil
  timer.Reset(10) // this will panic
}

Documentation

API docs on godoc.org

Running Tests

For full integation tests, set up a dummy project in Rollbar and pass the access token as an environment variable to go test:

TOKEN=POST_SERVER_ITEM_ACCESS_TOKEN go test

and verify the reported errors manually.

For coverage results, run:

TOKEN=POST_SERVER_ITEM_ACCESS_TOKEN go test -coverprofile=cover.out
go tool cover -html=cover.out -o cover.html

Help / Support

If you run into any problems, please email us at support@rollbar.com or file a bug report.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

History

This library originated with the project github.com/stvp/rollbar, which was subsequently forked by Heroku to github.com/heroku/rollbar
and extended. Those two libraries diverged as features were added independently to both.

This official library is a fork of the Heroku fork with some git magic to make it appear as a standalone repository along with all of that history. We then also went back to the original stvp library and brought over most of the divergent changes. Since then, we have moved forward to add more functionality to this library and it is the recommended Rollbar SDK for Go going forward.

Go

Rollbar SDK for Go