Documentation ¶
Overview ¶
Package exporterhelper provides helper functions for exporters.
Index ¶
- func NewLogsExporter(_ context.Context, set exporter.CreateSettings, cfg component.Config, ...) (exporter.Logs, error)
- func NewLogsRequestExporter(_ context.Context, set exporter.CreateSettings, converter LogsConverter, ...) (exporter.Logs, error)
- func NewMetricsExporter(_ context.Context, set exporter.CreateSettings, cfg component.Config, ...) (exporter.Metrics, error)
- func NewMetricsRequestExporter(_ context.Context, set exporter.CreateSettings, converter MetricsConverter, ...) (exporter.Metrics, error)
- func NewThrottleRetry(err error, delay time.Duration) error
- func NewTracesExporter(_ context.Context, set exporter.CreateSettings, cfg component.Config, ...) (exporter.Traces, error)
- func NewTracesRequestExporter(_ context.Context, set exporter.CreateSettings, converter TracesConverter, ...) (exporter.Traces, error)
- type LogsConverter
- type MetricsConverter
- type Option
- func WithCapabilities(capabilities consumer.Capabilities) Option
- func WithQueue(config QueueSettings) Option
- func WithRetry(retrySettings RetrySettings) Option
- func WithShutdown(shutdown component.ShutdownFunc) Option
- func WithStart(start component.StartFunc) Option
- func WithTimeout(timeoutSettings TimeoutSettings) Option
- type QueueSettings
- type Request
- type RequestItemsCounter
- type RetrySettings
- type TimeoutSettings
- type TracesConverter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewLogsExporter ¶
func NewLogsExporter( _ context.Context, set exporter.CreateSettings, cfg component.Config, pusher consumer.ConsumeLogsFunc, options ...Option, ) (exporter.Logs, error)
NewLogsExporter creates an exporter.Logs that records observability metrics and wraps every request with a Span.
func NewLogsRequestExporter ¶ added in v0.84.0
func NewLogsRequestExporter( _ context.Context, set exporter.CreateSettings, converter LogsConverter, options ...Option, ) (exporter.Logs, error)
NewLogsRequestExporter creates new logs exporter based on custom LogsConverter and RequestSender. This API is at the early stage of development and may change without backward compatibility until https://github.com/open-telemetry/opentelemetry-collector/issues/8122 is resolved.
func NewMetricsExporter ¶
func NewMetricsExporter( _ context.Context, set exporter.CreateSettings, cfg component.Config, pusher consumer.ConsumeMetricsFunc, options ...Option, ) (exporter.Metrics, error)
NewMetricsExporter creates an exporter.Metrics that records observability metrics and wraps every request with a Span.
func NewMetricsRequestExporter ¶ added in v0.84.0
func NewMetricsRequestExporter( _ context.Context, set exporter.CreateSettings, converter MetricsConverter, options ...Option, ) (exporter.Metrics, error)
NewMetricsRequestExporter creates a new metrics exporter based on a custom MetricsConverter and RequestSender. This API is at the early stage of development and may change without backward compatibility until https://github.com/open-telemetry/opentelemetry-collector/issues/8122 is resolved.
func NewThrottleRetry ¶
NewThrottleRetry creates a new throttle retry error.
func NewTracesExporter ¶
func NewTracesExporter( _ context.Context, set exporter.CreateSettings, cfg component.Config, pusher consumer.ConsumeTracesFunc, options ...Option, ) (exporter.Traces, error)
NewTracesExporter creates an exporter.Traces that records observability metrics and wraps every request with a Span.
func NewTracesRequestExporter ¶ added in v0.84.0
func NewTracesRequestExporter( _ context.Context, set exporter.CreateSettings, converter TracesConverter, options ...Option, ) (exporter.Traces, error)
NewTracesRequestExporter creates a new traces exporter based on a custom TracesConverter and RequestSender. This API is at the early stage of development and may change without backward compatibility until https://github.com/open-telemetry/opentelemetry-collector/issues/8122 is resolved.
Types ¶
type LogsConverter ¶ added in v0.84.0
type LogsConverter interface { // RequestFromLogs converts plog.Logs data into a request. RequestFromLogs(context.Context, plog.Logs) (Request, error) }
LogsConverter provides an interface for converting plog.Logs into a request. This API is at the early stage of development and may change without backward compatibility until https://github.com/open-telemetry/opentelemetry-collector/issues/8122 is resolved.
type MetricsConverter ¶ added in v0.84.0
type MetricsConverter interface { // RequestFromMetrics converts pdata.Metrics into a request. RequestFromMetrics(context.Context, pmetric.Metrics) (Request, error) }
MetricsConverter provides an interface for converting pmetric.Metrics into a request. This API is at the early stage of development and may change without backward compatibility until https://github.com/open-telemetry/opentelemetry-collector/issues/8122 is resolved.
type Option ¶
type Option func(*baseExporter)
Option apply changes to baseExporter.
func WithCapabilities ¶
func WithCapabilities(capabilities consumer.Capabilities) Option
WithCapabilities overrides the default Capabilities() function for a Consumer. The default is non-mutable data. TODO: Verify if we can change the default to be mutable as we do for processors.
func WithQueue ¶
func WithQueue(config QueueSettings) Option
WithQueue overrides the default QueueSettings for an exporter. The default QueueSettings is to disable queueing. This option cannot be used with the new exporter helpers New[Traces|Metrics|Logs]RequestExporter.
func WithRetry ¶
func WithRetry(retrySettings RetrySettings) Option
WithRetry overrides the default RetrySettings for an exporter. The default RetrySettings is to disable retries.
func WithShutdown ¶
func WithShutdown(shutdown component.ShutdownFunc) Option
WithShutdown overrides the default Shutdown function for an exporter. The default shutdown function does nothing and always returns nil.
func WithStart ¶
WithStart overrides the default Start function for an exporter. The default start function does nothing and always returns nil.
func WithTimeout ¶
func WithTimeout(timeoutSettings TimeoutSettings) Option
WithTimeout overrides the default TimeoutSettings for an exporter. The default TimeoutSettings is 5 seconds.
type QueueSettings ¶
type QueueSettings struct { // Enabled indicates whether to not enqueue batches before sending to the consumerSender. Enabled bool `mapstructure:"enabled"` // NumConsumers is the number of consumers from the queue. NumConsumers int `mapstructure:"num_consumers"` // QueueSize is the maximum number of batches allowed in queue at a given time. QueueSize int `mapstructure:"queue_size"` // StorageID if not empty, enables the persistent storage and uses the component specified // as a storage extension for the persistent queue StorageID *component.ID `mapstructure:"storage"` }
QueueSettings defines configuration for queueing batches before sending to the consumerSender.
func NewDefaultQueueSettings ¶
func NewDefaultQueueSettings() QueueSettings
NewDefaultQueueSettings returns the default settings for QueueSettings.
func (*QueueSettings) Validate ¶
func (qCfg *QueueSettings) Validate() error
Validate checks if the QueueSettings configuration is valid
type Request ¶ added in v0.84.0
type Request interface { // Export exports the request to an external endpoint. Export(ctx context.Context) error }
Request represents a single request that can be sent to an external endpoint. This API is at the early stage of development and may change without backward compatibility until https://github.com/open-telemetry/opentelemetry-collector/issues/8122 is resolved.
type RequestItemsCounter ¶ added in v0.84.0
type RequestItemsCounter interface { // ItemsCount returns a number of basic items in the request where item is the smallest piece of data that can be // sent. For example, for OTLP exporter, this value represents the number of spans, // metric data points or log records. ItemsCount() int }
RequestItemsCounter is an optional interface that can be implemented by Request to provide a number of items in the request. This is a recommended interface to implement for exporters. It is required for batching and queueing based on number of items. Also, it's used for reporting number of items in collector's logs, metrics and traces. If not implemented, collector's logs, metrics and traces will report 0 items. This API is at the early stage of development and may change without backward compatibility until https://github.com/open-telemetry/opentelemetry-collector/issues/8122 is resolved.
type RetrySettings ¶
type RetrySettings struct { // Enabled indicates whether to not retry sending batches in case of export failure. Enabled bool `mapstructure:"enabled"` // InitialInterval the time to wait after the first failure before retrying. InitialInterval time.Duration `mapstructure:"initial_interval"` // RandomizationFactor is a random factor used to calculate next backoffs // Randomized interval = RetryInterval * (1 ± RandomizationFactor) RandomizationFactor float64 `mapstructure:"randomization_factor"` // Multiplier is the value multiplied by the backoff interval bounds Multiplier float64 `mapstructure:"multiplier"` // MaxInterval is the upper bound on backoff interval. Once this value is reached the delay between // consecutive retries will always be `MaxInterval`. MaxInterval time.Duration `mapstructure:"max_interval"` // MaxElapsedTime is the maximum amount of time (including retries) spent trying to send a request/batch. // Once this value is reached, the data is discarded. MaxElapsedTime time.Duration `mapstructure:"max_elapsed_time"` }
RetrySettings defines configuration for retrying batches in case of export failure. The current supported strategy is exponential backoff.
func NewDefaultRetrySettings ¶
func NewDefaultRetrySettings() RetrySettings
NewDefaultRetrySettings returns the default settings for RetrySettings.
type TimeoutSettings ¶
type TimeoutSettings struct { // Timeout is the timeout for every attempt to send data to the backend. Timeout time.Duration `mapstructure:"timeout"` }
TimeoutSettings for timeout. The timeout applies to individual attempts to send data to the backend.
func NewDefaultTimeoutSettings ¶
func NewDefaultTimeoutSettings() TimeoutSettings
NewDefaultTimeoutSettings returns the default settings for TimeoutSettings.
type TracesConverter ¶ added in v0.84.0
type TracesConverter interface { // RequestFromTraces converts ptrace.Traces into a Request. RequestFromTraces(context.Context, ptrace.Traces) (Request, error) }
TracesConverter provides an interface for converting ptrace.Traces into a request. This API is at the early stage of development and may change without backward compatibility until https://github.com/open-telemetry/opentelemetry-collector/issues/8122 is resolved.