Output from 'dep status': PROJECT CONSTRAINT VERSION REVISION LATEST PKGS USED cloud.google.com/go v0.23.0 v0.23.0 0fd7230 v0.23.0 1 github.com/briandowns/openweathermap ^0.11.0 0.11 1b87579 0.11 1 github.com/gdamore/encoding branch master branch master b23993c b23993c 1 github.com/gdamore/tcell ^1.0.0 v1.0.0 061d51a v1.0.0 2 github.com/go-test/deep ^1.0.1 v1.0.1 6592d9c v1.0.1 1 github.com/golang/protobuf v1.1.0 v1.1.0 b4deda0 v1.1.0 1 github.com/google/go-github branch master branch master 2ae5df7 2ae5df7 1 github.com/google/go-querystring branch master branch master 53e6ce1 53e6ce1 1 github.com/jessevdk/go-flags ^1.4.0 v1.4.0 c6ca198 v1.4.0 1 github.com/lucasb-eyer/go-colorful v1.0 v1.0 345fbb3 v1.0 1 github.com/mattn/go-runewidth v0.0.2 v0.0.2 9e777a8 v0.0.2 1 github.com/olebedev/config branch master branch master 9a10d05 9a10d05 1 github.com/radovskyb/watcher ^1.0.2 v1.0.2 6145e14 v1.0.2 1 github.com/rivo/tview branch master branch master 71ecf1f 71ecf1f 1 github.com/yfronto/newrelic branch master branch master f7fa0c6 f7fa0c6 1 golang.org/x/net branch master branch master 1e49130 1e49130 2 golang.org/x/oauth2 branch master branch master 1e0a3fa 1e0a3fa 5 golang.org/x/text v0.3.0 v0.3.0 f21a4df v0.3.0 5 google.golang.org/api branch master branch master 00e3bb8 00e3bb8 4 google.golang.org/appengine v1.0.0 v1.0.0 150dc57 v1.0.0 10 gopkg.in/yaml.v2 ^2.2.1 v2.2.1 5420a8b v2.2.1 1 See https://golang.github.io/dep/docs/daily-dep.html
2.2 KiB
New Relic API library for Go
This is a Go library that wraps the New Relic REST API. It provides the needed types to interact with the New Relic REST API.
It's still in progress and I haven't finished the entirety of the API, yet. I plan to finish all GET (read) operations before any POST (create) operations, and then PUT (update) operations, and, finally, the DELETE operations.
The API documentation can be found from New Relic, and you'll need an API key (for some operations, an Admin API key is required).
USAGE
This library will provide a client object and any operations can be performed through it. Simply import this library and create a client to get started:
package main
import (
"github.com/yfronto/newrelic"
)
var api_key = "..." // Required
func main() {
// Create the client object
client := newrelic.NewClient(api_key)
// Get the applciation with ID 12345
myApp, err := client.GetApplication(12345)
if err != nil {
// Handle error
}
// Work with the object
fmt.Println(myApp.Name)
// Some operations accept options
opts := &newrelic.AlertEventOptions{
// Only events with "MyProduct" as the product name
Filter: newRelic.AlertEventFilter{
Product: "MyProduct",
},
}
// Get a list of recent events for my product
events, err := client.GetAlertEvents(opts)
if err != nil {
// Handle error
}
// Display each event with some information
for _, e := range events {
fmt.Printf("%d -- %d (%s): %s\n", e.Timestamp, e.Id, e.Priority, e.Description)
}
}
Contributing
As I work to populate all actions, bugs are bound to come up. Feel free to send me a pull request or just file an issue. Staying up to date with an API is hard work and I'm happy to accept contributors.
DISCLAIMER: I am in no way affiliated with New Relic and this work is merely a convenience project for myself with no guarantees. It should be considered "as-is" with no implication of responsibility. See the included LICENSE for more details.