diff options
Diffstat (limited to 'vendor/go.opentelemetry.io/contrib/exporters/autoexport/noop.go')
| -rw-r--r-- | vendor/go.opentelemetry.io/contrib/exporters/autoexport/noop.go | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/vendor/go.opentelemetry.io/contrib/exporters/autoexport/noop.go b/vendor/go.opentelemetry.io/contrib/exporters/autoexport/noop.go new file mode 100644 index 000000000..2a8b173b2 --- /dev/null +++ b/vendor/go.opentelemetry.io/contrib/exporters/autoexport/noop.go @@ -0,0 +1,87 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package autoexport // import "go.opentelemetry.io/contrib/exporters/autoexport" + +import ( + "context" + + "go.opentelemetry.io/otel/sdk/log" + "go.opentelemetry.io/otel/sdk/metric" + "go.opentelemetry.io/otel/sdk/metric/metricdata" + "go.opentelemetry.io/otel/sdk/trace" +) + +// noopSpanExporter is an implementation of trace.SpanExporter that performs no operations. +type noopSpanExporter struct{} + +var _ trace.SpanExporter = noopSpanExporter{} + +// ExportSpans is part of trace.SpanExporter interface. +func (e noopSpanExporter) ExportSpans(ctx context.Context, spans []trace.ReadOnlySpan) error { + return nil +} + +// Shutdown is part of trace.SpanExporter interface. +func (e noopSpanExporter) Shutdown(ctx context.Context) error { + return nil +} + +// IsNoneSpanExporter returns true for the exporter returned by [NewSpanExporter] +// when OTEL_TRACES_EXPORTER environment variable is set to "none". +func IsNoneSpanExporter(e trace.SpanExporter) bool { + _, ok := e.(noopSpanExporter) + return ok +} + +type noopMetricReader struct { + *metric.ManualReader +} + +func newNoopMetricReader() noopMetricReader { + return noopMetricReader{metric.NewManualReader()} +} + +// IsNoneMetricReader returns true for the exporter returned by [NewMetricReader] +// when OTEL_METRICS_EXPORTER environment variable is set to "none". +func IsNoneMetricReader(e metric.Reader) bool { + _, ok := e.(noopMetricReader) + return ok +} + +type noopMetricProducer struct{} + +func (e noopMetricProducer) Produce(ctx context.Context) ([]metricdata.ScopeMetrics, error) { + return nil, nil +} + +func newNoopMetricProducer() noopMetricProducer { + return noopMetricProducer{} +} + +// noopLogExporter is an implementation of log.SpanExporter that performs no operations. +type noopLogExporter struct{} + +var _ log.Exporter = noopLogExporter{} + +// ExportSpans is part of log.Exporter interface. +func (e noopLogExporter) Export(ctx context.Context, records []log.Record) error { + return nil +} + +// Shutdown is part of log.Exporter interface. +func (e noopLogExporter) Shutdown(ctx context.Context) error { + return nil +} + +// ForceFlush is part of log.Exporter interface. +func (e noopLogExporter) ForceFlush(ctx context.Context) error { + return nil +} + +// IsNoneLogExporter returns true for the exporter returned by [NewLogExporter] +// when OTEL_LOGSS_EXPORTER environment variable is set to "none". +func IsNoneLogExporter(e log.Exporter) bool { + _, ok := e.(noopLogExporter) + return ok +} |
