mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2024-12-12 10:04:29 +02:00
Update error handling exporters to use global.Handle
This commit is contained in:
parent
0cb2666b7c
commit
3e95c9c78e
@ -109,6 +109,7 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
|
@ -50,8 +50,6 @@ type Exporter struct {
|
||||
lock sync.RWMutex
|
||||
controller *pull.Controller
|
||||
|
||||
onError func(error)
|
||||
|
||||
defaultSummaryQuantiles []float64
|
||||
defaultHistogramBoundaries []float64
|
||||
}
|
||||
@ -85,10 +83,6 @@ type Config struct {
|
||||
// DefaultHistogramBoundaries defines the default histogram bucket
|
||||
// boundaries.
|
||||
DefaultHistogramBoundaries []float64
|
||||
|
||||
// OnError is a function that handle errors that may occur while exporting metrics.
|
||||
// TODO: This should be refactored or even removed once we have a better error handling mechanism.
|
||||
OnError func(error)
|
||||
}
|
||||
|
||||
// NewExportPipeline sets up a complete export pipeline with the recommended setup,
|
||||
@ -106,19 +100,12 @@ func NewExportPipeline(config Config, options ...pull.Option) (*Exporter, error)
|
||||
config.Gatherer = config.Registry
|
||||
}
|
||||
|
||||
if config.OnError == nil {
|
||||
config.OnError = func(err error) {
|
||||
fmt.Println(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
e := &Exporter{
|
||||
handler: promhttp.HandlerFor(config.Gatherer, promhttp.HandlerOpts{}),
|
||||
registerer: config.Registerer,
|
||||
gatherer: config.Gatherer,
|
||||
defaultSummaryQuantiles: config.DefaultSummaryQuantiles,
|
||||
defaultHistogramBoundaries: config.DefaultHistogramBoundaries,
|
||||
onError: config.OnError,
|
||||
}
|
||||
|
||||
c := &collector{
|
||||
@ -257,7 +244,7 @@ func (c *collector) Collect(ch chan<- prometheus.Metric) {
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
c.exp.onError(err)
|
||||
global.Handle(err)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,6 @@ package jaeger
|
||||
import (
|
||||
"context"
|
||||
"encoding/binary"
|
||||
"log"
|
||||
|
||||
"go.opentelemetry.io/otel/api/kv/value"
|
||||
|
||||
@ -37,11 +36,6 @@ type Option func(*options)
|
||||
|
||||
// options are the options to be used when initializing a Jaeger export.
|
||||
type options struct {
|
||||
// OnError is the hook to be called when there is
|
||||
// an error occurred when uploading the span data.
|
||||
// If no custom hook is set, errors are logged.
|
||||
OnError func(err error)
|
||||
|
||||
// Process contains the information about the exporting process.
|
||||
Process Process
|
||||
|
||||
@ -55,15 +49,6 @@ type options struct {
|
||||
RegisterGlobal bool
|
||||
}
|
||||
|
||||
// WithOnError sets the hook to be called when there is
|
||||
// an error occurred when uploading the span data.
|
||||
// If no custom hook is set, errors are logged.
|
||||
func WithOnError(onError func(err error)) Option {
|
||||
return func(o *options) {
|
||||
o.OnError = onError
|
||||
}
|
||||
}
|
||||
|
||||
// WithProcess sets the process with the information about the exporting process.
|
||||
func WithProcess(process Process) Option {
|
||||
return func(o *options) {
|
||||
@ -106,13 +91,6 @@ func NewRawExporter(endpointOption EndpointOption, opts ...Option) (*Exporter, e
|
||||
opt(&o)
|
||||
}
|
||||
|
||||
onError := func(err error) {
|
||||
if o.OnError != nil {
|
||||
o.OnError(err)
|
||||
return
|
||||
}
|
||||
log.Printf("Error when uploading spans to Jaeger: %v", err)
|
||||
}
|
||||
service := o.Process.ServiceName
|
||||
if service == "" {
|
||||
service = defaultServiceName
|
||||
@ -134,7 +112,7 @@ func NewRawExporter(endpointOption EndpointOption, opts ...Option) (*Exporter, e
|
||||
}
|
||||
bundler := bundler.NewBundler((*gen.Span)(nil), func(bundle interface{}) {
|
||||
if err := e.upload(bundle.([]*gen.Span)); err != nil {
|
||||
onError(err)
|
||||
global.Handle(err)
|
||||
}
|
||||
})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user