github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/tracing/honeycomb.go (about) 1 package tracing 2 3 import ( 4 "fmt" 5 6 "github.com/honeycombio/opentelemetry-exporter-go/honeycomb" 7 export "go.opentelemetry.io/otel/sdk/export/trace" 8 ) 9 10 type Honeycomb struct { 11 APIKey string `long:"honeycomb-api-key" description:"honeycomb.io api key"` 12 Dataset string `long:"honeycomb-dataset" description:"honeycomb.io dataset name"` 13 ServiceName string `long:"honeycomb-service-name" description:"honeycomb.io service name" default:"concourse"` 14 } 15 16 func (h Honeycomb) IsConfigured() bool { 17 return h.APIKey != "" && h.Dataset != "" 18 } 19 20 func (h Honeycomb) Exporter() (export.SpanSyncer, error) { 21 exporter, err := honeycomb.NewExporter( 22 honeycomb.Config{ 23 APIKey: h.APIKey, 24 }, 25 honeycomb.TargetingDataset(h.Dataset), 26 honeycomb.WithServiceName(h.ServiceName), 27 ) 28 if err != nil { 29 err = fmt.Errorf("failed to create honeycomb exporter: %w", err) 30 return nil, err 31 } 32 33 return exporter, nil 34 }