NewCfdTracer creates a new tracer for the current request context.
(ctx context.Context, log *zerolog.Logger)
| 111 | |
| 112 | // NewCfdTracer creates a new tracer for the current request context. |
| 113 | func newCfdTracer(ctx context.Context, log *zerolog.Logger) *cfdTracer { |
| 114 | mc := new(InMemoryOtlpClient) |
| 115 | exp, err := otlptrace.New(ctx, mc) |
| 116 | if err != nil { |
| 117 | return &cfdTracer{trace.NewNoopTracerProvider(), &NoopOtlpClient{}, log} |
| 118 | } |
| 119 | tp := tracesdk.NewTracerProvider( |
| 120 | // We want to dump to in-memory exporter immediately |
| 121 | tracesdk.WithSyncer(exp), |
| 122 | // Record information about this application in a Resource. |
| 123 | tracesdk.WithResource(resource.NewWithAttributes( |
| 124 | semconv.SchemaURL, |
| 125 | serviceAttribute, |
| 126 | otelVersionAttribute, |
| 127 | hostnameAttribute, |
| 128 | cloudflaredVersionAttribute, |
| 129 | HostOSAttribute, |
| 130 | HostArchAttribute, |
| 131 | )), |
| 132 | ) |
| 133 | |
| 134 | return &cfdTracer{tp, mc, log} |
| 135 | } |
| 136 | |
| 137 | func (cft *cfdTracer) Tracer() trace.Tracer { |
| 138 | return cft.TracerProvider.Tracer(tracerInstrumentName) |
no outgoing calls
no test coverage detected