Documentation ¶
Overview ¶
Package nrgraphgophers instruments https://github.com/graph-gophers/graphql-go applications.
This package creates a graphql-go Tracer that adds adds segment instrumentation to your graphql request transactions.
Example ¶
package main import ( "log" "net/http" "os" "github.com/edwardofclt/newrelic-go-agent/v3/integrations/nrgraphgophers" "github.com/edwardofclt/newrelic-go-agent/v3/newrelic" graphql "github.com/graph-gophers/graphql-go" "github.com/graph-gophers/graphql-go/relay" ) type query struct{} func (*query) Hello() string { return "hello world" } func main() { // First create your New Relic Application: app, err := newrelic.NewApplication( newrelic.ConfigAppName("GraphQL App"), newrelic.ConfigLicense(os.Getenv("NEW_RELIC_LICENSE_KEY")), newrelic.ConfigDebugLogger(os.Stdout), ) if nil != err { panic(err) } querySchema := `type Query { hello: String! }` // Then add a graphql.Tracer(nrgraphgophers.NewTracer()) option to your // schema parsing to get field and query segment instrumentation: opt := graphql.Tracer(nrgraphgophers.NewTracer()) schema := graphql.MustParseSchema(querySchema, &query{}, opt) // Finally, instrument your request handler using newrelic.WrapHandle // to create transactions for requests: http.Handle(newrelic.WrapHandle(app, "/", &relay.Handler{Schema: schema})) log.Fatal(http.ListenAndServe(":8000", nil)) }
Output:
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.