blob: dd907eceafcc3d4adb30e6301a3e09a59bcba2f0 [file] [log] [blame] [edit]
// Copyright 2026 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package otel
import (
"time"
)
// Default configuration values.
const (
DefaultEndpoint = "http://localhost:4318"
DefaultServiceName = "unknown_service"
DefaultTimeout = 10 * time.Second
DefaultFlushPeriod = 2 * time.Second
)
// Option configures an OTelExporter.
type Option func(*Exporter)
// WithEndpoint sets the OTLP HTTP endpoint.
func WithEndpoint(endpoint string) Option {
return func(e *Exporter) {
e.endpoint = endpoint
}
}
// WithServiceName sets the service name for exported spans.
func WithServiceName(name string) Option {
return func(e *Exporter) {
e.serviceName = name
}
}
// WithTimeout sets the HTTP client timeout.
func WithTimeout(timeout time.Duration) Option {
return func(e *Exporter) {
e.client.Timeout = timeout
}
}
// WithFlushPeriod sets the interval for automatic background flushing.
func WithFlushPeriod(period time.Duration) Option {
return func(e *Exporter) {
e.flushPeriod = period
}
}
// WithServiceVersion sets the service version for exported telemetry.
func WithServiceVersion(version string) Option {
return func(e *Exporter) {
e.serviceVersion = version
}
}