go-agent: github.com/newrelic/go-agent/v3/integrations/nrgraphgophers Index | Examples | Files | Directories

package nrgraphgophers

import "github.com/newrelic/go-agent/v3/integrations/nrgraphgophers"

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.

Code:

package main

import (
    "log"
    "net/http"
    "os"

    graphql "github.com/graph-gophers/graphql-go"
    "github.com/graph-gophers/graphql-go/relay"
    "github.com/newrelic/go-agent/v3/integrations/nrgraphgophers"
    "github.com/newrelic/go-agent/v3/newrelic"
)

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))
}

Index

Examples

Package Files

nrgraphgophers.go

func NewTracer Uses

func NewTracer() trace.Tracer

NewTracer creates a new trace.Tracer that adds segment instrumentation to the transaction.

Directories

PathSynopsis
example

Package nrgraphgophers imports 7 packages (graph) and is imported by 1 packages. Updated 2020-07-02. Refresh now. Tools for package owners.