yeller is a
Shipping bugs really sucks
These bugs made it past your test suite, past Go's powerful static types, past your reasoning about the system, past your careful manual checking and into your customers' hands.
So, once you know about a bug, you need to fix it as fast as possible. This means you need to find out exactly what happened, with all the useful and relevant information at your fingertips.
Go has a different style of error handling, one that promotes more careful thought from the programmer. The problem is that just plain logging of errors doesn't let you diagnose them well enough.
How do you find out if an error has been happening a whole bunch of times? By SCPing a bunch of log files and grepping through them?
That's not good enough for production
You need to be able to deduplicate your errors smartly, so you can see what's broken
You need a full stacktrace, and logging of arbitrary data on every error.
You need Yeller.
Yeller tracks the errors your customers hit in production so you can fix them faster.
Yeller's Go client is fully open source, and there are detailed install instructions in the repository
file, err := os.Open("filename.ext")
if err != nil {
// Notify the error by itself, with additional information
// about what was going on when the error happened.
info := make(map[string]interface{})
info["filename"] = "filename.ext"
yeller.NotifyInfo(err, info)
}
http.HandleFunc("/foo", func(w http.ResponseWriter, req *http.Request) {
file, err := os.Open("filename.ext")
if err != nil {
// Log an error to yeller with HTTP request information
// in addition to information pertinent to the error.
info := make(map[string]interface{})
info["filename"] = "filename.ext"
yeller.NotifyHTTPInfo(err, request, info)
// Alternatively, just log information about the HTTP request.
yeller.NotifyHTTP(err, request)
}
})
Yeller really understands your go errors. It records a full stacktrace, http params and more for each exception.
Don't get mystified by your production go errors again. Switch to Yeller.
Yeller grabs all the relevant context from your errors, so you can figure out what went wrong quickly.
Yeller automatically investigates each of your exceptions across every time they happen, and picks out any unique piece of context
Find out about exceptions that were:
Most exceptions in production are caused by code changes.
Yeller can track your deploys, and highlight the deploy that likely caused the exception you're debugging.
If you use github, Yeller will even link to a diff of what was deployed, so you can see what changed immediately.