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

package nrelasticsearch

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

Package nrelasticsearch instruments https://github.com/elastic/go-elasticsearch.

Use this package to instrument your elasticsearch v7 calls without having to manually create DatastoreSegments.

Code:

package main

import (
    "context"

    elasticsearch "github.com/elastic/go-elasticsearch/v7"
    nrelasticsearch "github.com/newrelic/go-agent/v3/integrations/nrelasticsearch-v7"
    "github.com/newrelic/go-agent/v3/newrelic"
)

func getTransaction() *newrelic.Transaction { return nil }

func main() {
    // Step 1: Use nrelasticsearch.NewRoundTripper to assign the
    // elasticsearch.Config's Transport field.
    cfg := elasticsearch.Config{
        Transport: nrelasticsearch.NewRoundTripper(nil),
    }
    client, err := elasticsearch.NewClient(cfg)
    if err != nil {
        panic(err)
    }
    // Step 2: Ensure that all calls using the elasticsearch client have
    // a context which includes the newrelic.Transaction.
    txn := getTransaction()
    ctx := newrelic.NewContext(context.Background(), txn)
    client.Info(client.Info.WithContext(ctx))
}

Index

Examples

Package Files

nrelastic.go

func NewRoundTripper Uses

func NewRoundTripper(original http.RoundTripper) http.RoundTripper

NewRoundTripper creates a new http.RoundTripper to instrument elasticsearch calls. If an http.RoundTripper parameter is not provided, then the returned http.RoundTripper will delegate to http.DefaultTransport.

Directories

PathSynopsis
example

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