func stackdriverTracerFactory()

in tracing/impl/stackdriver_tracer.go [339:366]


func stackdriverTracerFactory(config map[string]string) (opentracing.Tracer, io.Closer, error) {
	stackdriverCfg := &stackdriverConfig{
		options: &stackdriver.Options{},
		sampler: trace.NeverSample(),
	}

	for k, v := range config {
		mapper := stackdriverConfigMapper[k]
		if mapper != nil {
			err := mapper(stackdriverCfg, v)
			if err != nil {
				return nil, nil, err
			}
		} else {
			log.Printf("stackdriver tracer: warning: ignoring unknown configuration option: %s", k)
		}
	}

	exporter, err := stackdriver.NewExporter(*stackdriverCfg.options)
	if err != nil {
		return nil, nil, err
	}

	trace.RegisterExporter(exporter)
	trace.ApplyConfig(trace.Config{DefaultSampler: stackdriverCfg.sampler})

	return &adapterTracer{exporter}, &stackdriverCloser{exporter}, nil
}