This is a lightweight Graphite API client written in Go.
Use go-get
to install graphite-golang
go get github.com/marpaia/graphite-golang
This project has no external dependencies other than the Go standard library.
Like most every other Golang project, this projects documentation can be found on godoc at godoc.org/github.com/marpaia/graphite-golang.
package mylib
import (
"github.com/marpaia/graphite-golang"
"log"
)
func init() {
// load your configuration file / mechanism
config := newConfig()
// try to connect a graphite server
if config.GraphiteEnabled {
Graphite, err = graphite.NewGraphite(config.Graphite.Host, config.Graphite.Port)
} else {
Graphite = graphite.NewGraphiteNop(config.Graphite.Host, config.Graphite.Port)
}
// if you couldn't connect to graphite, use a nop
if err != nil {
Graphite = graphite.NewGraphiteNop(config.Graphite.Host, config.Graphite.Port)
}
log.Printf("Loaded Graphite connection: %#v", Graphite)
Graphite.SimpleSend("stats.graphite_loaded", "1")
}
func doWork() {
// this will work just fine, regardless of if you're working with a graphite
// nop or not
Graphite.SimpleSend("stats.doing_work", "1")
}
Please contribute and help improve this project!
- Fork the repo
- Make sure the tests pass
- Improve the code
- Make sure your feature has test coverage
- Make sure the tests pass
- Submit a pull request