|
| 1 | +// Copyright The OpenTelemetry Authors |
| 2 | +// SPDX-License-Identifier: Apache-2.0 |
| 3 | + |
| 4 | +package autoexport_test |
| 5 | + |
| 6 | +import ( |
| 7 | + "context" |
| 8 | + "os" |
| 9 | + |
| 10 | + "go.opentelemetry.io/contrib/exporters/autoexport" |
| 11 | + "go.opentelemetry.io/otel/sdk/log" |
| 12 | + "go.opentelemetry.io/otel/sdk/metric" |
| 13 | + "go.opentelemetry.io/otel/sdk/trace" |
| 14 | +) |
| 15 | + |
| 16 | +func Example_complete() { |
| 17 | + ctx := context.Background() |
| 18 | + |
| 19 | + // Only for demonstration purposes. |
| 20 | + _ = os.Setenv("OTEL_LOGS_EXPORTER", "otlp,console") |
| 21 | + _ = os.Setenv("OTEL_TRACES_EXPORTER", "otlp") |
| 22 | + _ = os.Setenv("OTEL_METRICS_EXPORTER", "otlp") |
| 23 | + |
| 24 | + // Consider checking errors in your production code. |
| 25 | + logExporters, _ := autoexport.NewLogExporters(ctx) |
| 26 | + metricReaders, _ := autoexport.NewMetricReaders(ctx) |
| 27 | + traceExporters, _ := autoexport.NewSpanExporters(ctx) |
| 28 | + |
| 29 | + // Now that your exporters and readers are initialized, |
| 30 | + // you can simply initialize the different TracerProvider, |
| 31 | + // LoggerProvider and MeterProvider. |
| 32 | + // https://opentelemetry.io/docs/languages/go/getting-started/#initialize-the-opentelemetry-sdk |
| 33 | + |
| 34 | + // Traces |
| 35 | + var tracerProviderOpts []trace.TracerProviderOption |
| 36 | + for _, traceExporter := range traceExporters { |
| 37 | + tracerProviderOpts = append(tracerProviderOpts, trace.WithBatcher(traceExporter)) |
| 38 | + } |
| 39 | + _ = trace.NewTracerProvider(tracerProviderOpts...) |
| 40 | + |
| 41 | + // Metrics |
| 42 | + var meterProviderOpts []metric.Option |
| 43 | + for _, metricReader := range metricReaders { |
| 44 | + meterProviderOpts = append(meterProviderOpts, metric.WithReader(metricReader)) |
| 45 | + } |
| 46 | + _ = metric.NewMeterProvider(meterProviderOpts...) |
| 47 | + |
| 48 | + // Logs |
| 49 | + var loggerProviderOpts []log.LoggerProviderOption |
| 50 | + for _, logExporter := range logExporters { |
| 51 | + loggerProviderOpts = append(loggerProviderOpts, log.WithProcessor( |
| 52 | + log.NewBatchProcessor(logExporter), |
| 53 | + )) |
| 54 | + } |
| 55 | + _ = log.NewLoggerProvider(loggerProviderOpts...) |
| 56 | +} |
0 commit comments