Documentation ¶
Overview ¶
Package exporterhelper provides helper functions for exporters.
Index ¶
- func NewLogsExporter(ctx context.Context, set exporter.Settings, cfg component.Config, ...) (exporter.Logs, error)
- func NewLogsRequestExporter(_ context.Context, set exporter.Settings, converter RequestFromLogsFunc, ...) (exporter.Logs, error)
- func NewMetricsExporter(ctx context.Context, set exporter.Settings, cfg component.Config, ...) (exporter.Metrics, error)
- func NewMetricsRequestExporter(_ context.Context, set exporter.Settings, converter RequestFromMetricsFunc, ...) (exporter.Metrics, error)
- func NewThrottleRetry(err error, delay time.Duration) error
- func NewTracesExporter(ctx context.Context, set exporter.Settings, cfg component.Config, ...) (exporter.Traces, error)
- func NewTracesRequestExporter(_ context.Context, set exporter.Settings, converter RequestFromTracesFunc, ...) (exporter.Traces, error)
- type BatcherOption
- type ObsReportdeprecated
- func (or *ObsReport) EndLogsOp(ctx context.Context, numLogRecords int, err error)deprecated
- func (or *ObsReport) EndMetricsOp(ctx context.Context, numMetricPoints int, err error)deprecated
- func (or *ObsReport) EndTracesOp(ctx context.Context, numSpans int, err error)deprecated
- func (or *ObsReport) StartLogsOp(ctx context.Context) context.Contextdeprecated
- func (or *ObsReport) StartMetricsOp(ctx context.Context) context.Contextdeprecated
- func (or *ObsReport) StartTracesOp(ctx context.Context) context.Contextdeprecated
- type ObsReportSettingsdeprecated
- type Option
- func WithBatcher(cfg exporterbatcher.Config, opts ...BatcherOption) Option
- func WithCapabilities(capabilities consumer.Capabilities) Option
- func WithQueue(config QueueSettings) Option
- func WithRequestQueue(cfg exporterqueue.Config, queueFactory exporterqueue.Factory[Request]) Option
- func WithRetry(config configretry.BackOffConfig) Option
- func WithShutdown(shutdown component.ShutdownFunc) Option
- func WithStart(start component.StartFunc) Option
- func WithTimeout(timeoutSettings TimeoutSettings) Option
- type QueueSettings
- type Request
- type RequestErrorHandler
- type RequestFromLogsFunc
- type RequestFromMetricsFunc
- type RequestFromTracesFunc
- type TimeoutSettings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewLogsExporter ¶
func NewLogsExporter( ctx context.Context, set exporter.Settings, 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.Settings, converter RequestFromLogsFunc, options ...Option, ) (exporter.Logs, error)
NewLogsRequestExporter creates new logs exporter based on custom LogsConverter and RequestSender. Experimental: 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( ctx context.Context, set exporter.Settings, 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.Settings, converter RequestFromMetricsFunc, options ...Option, ) (exporter.Metrics, error)
NewMetricsRequestExporter creates a new metrics exporter based on a custom MetricsConverter and RequestSender. Experimental: 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( ctx context.Context, set exporter.Settings, 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.Settings, converter RequestFromTracesFunc, options ...Option, ) (exporter.Traces, error)
NewTracesRequestExporter creates a new traces exporter based on a custom TracesConverter and RequestSender. Experimental: 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 BatcherOption ¶ added in v0.97.0
type BatcherOption func(*batchSender) error
BatcherOption apply changes to batcher sender.
func WithRequestBatchFuncs ¶ added in v0.97.0
func WithRequestBatchFuncs(mf exporterbatcher.BatchMergeFunc[Request], msf exporterbatcher.BatchMergeSplitFunc[Request]) BatcherOption
WithRequestBatchFuncs sets the functions for merging and splitting batches for an exporter built for custom request types.
type ObsReport
deprecated
added in
v0.86.0
type ObsReport struct {
// contains filtered or unexported fields
}
ObsReport is a helper to add observability to an exporter.
Deprecated: [v0.105.0] Not expected to be used directly. If needed, report your use case in https://github.com/open-telemetry/opentelemetry-collector/issues/10592.
func NewObsReport
deprecated
added in
v0.86.0
func NewObsReport(cfg ObsReportSettings) (*ObsReport, error)
NewObsReport creates a new Exporter.
Deprecated: [v0.105.0] Not expected to be used directly. If needed, report your use case in https://github.com/open-telemetry/opentelemetry-collector/issues/10592.
func (*ObsReport) EndLogsOp
deprecated
added in
v0.86.0
EndLogsOp completes the export operation that was started with StartLogsOp.
Deprecated: [v0.105.0] Not expected to be used directly. If needed, report your use case in https://github.com/open-telemetry/opentelemetry-collector/issues/10592.
func (*ObsReport) EndMetricsOp
deprecated
added in
v0.86.0
EndMetricsOp completes the export operation that was started with StartMetricsOp.
Deprecated: [v0.105.0] Not expected to be used directly. If needed, report your use case in https://github.com/open-telemetry/opentelemetry-collector/issues/10592.
func (*ObsReport) EndTracesOp
deprecated
added in
v0.86.0
EndTracesOp completes the export operation that was started with StartTracesOp.
Deprecated: [v0.105.0] Not expected to be used directly. If needed, report your use case in https://github.com/open-telemetry/opentelemetry-collector/issues/10592.
func (*ObsReport) StartLogsOp
deprecated
added in
v0.86.0
StartLogsOp is called at the start of an Export operation. The returned context should be used in other calls to the Exporter functions dealing with the same export operation.
Deprecated: [v0.105.0] Not expected to be used directly. If needed, report your use case in https://github.com/open-telemetry/opentelemetry-collector/issues/10592.
func (*ObsReport) StartMetricsOp
deprecated
added in
v0.86.0
StartMetricsOp is called at the start of an Export operation. The returned context should be used in other calls to the Exporter functions dealing with the same export operation.
Deprecated: [v0.105.0] Not expected to be used directly. If needed, report your use case in https://github.com/open-telemetry/opentelemetry-collector/issues/10592.
func (*ObsReport) StartTracesOp
deprecated
added in
v0.86.0
StartTracesOp is called at the start of an Export operation. The returned context should be used in other calls to the Exporter functions dealing with the same export operation.
Deprecated: [v0.105.0] Not expected to be used directly. If needed, report your use case in https://github.com/open-telemetry/opentelemetry-collector/issues/10592.
type ObsReportSettings
deprecated
added in
v0.86.0
type ObsReportSettings struct { ExporterID component.ID ExporterCreateSettings exporter.Settings DataType component.DataType }
ObsReportSettings are settings for creating an ObsReport.
Deprecated: [v0.105.0] Not expected to be used directly. If needed, report your use case in https://github.com/open-telemetry/opentelemetry-collector/issues/10592.
type Option ¶
type Option func(*baseExporter) error
Option apply changes to baseExporter.
func WithBatcher ¶ added in v0.97.0
func WithBatcher(cfg exporterbatcher.Config, opts ...BatcherOption) Option
WithBatcher enables batching for an exporter based on custom request types. For now, it can be used only with the New[Traces|Metrics|Logs]RequestExporter exporter helpers and WithRequestBatchFuncs provided. 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 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 WithRequestQueue ¶ added in v0.94.0
func WithRequestQueue(cfg exporterqueue.Config, queueFactory exporterqueue.Factory[Request]) Option
WithRequestQueue enables queueing for an exporter. This option should be used with the new exporter helpers New[Traces|Metrics|Logs]RequestExporter. Experimental: 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 WithRetry ¶
func WithRetry(config configretry.BackOffConfig) Option
WithRetry overrides the default configretry.BackOffConfig for an exporter. The default configretry.BackOffConfig 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. Defaults to 10. // If batching is enabled, a combined batch cannot contain more requests than the number of consumers. // So it's recommended to set higher number of consumers if batching is enabled. 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 // 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 }
Request represents a single request that can be sent to an external endpoint. Experimental: 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 RequestErrorHandler ¶ added in v0.89.0
type RequestErrorHandler interface { Request // OnError returns a new Request may contain the items left to be sent if some items failed to process and can be retried. // Otherwise, it should return the original Request. OnError(error) Request }
RequestErrorHandler is an optional interface that can be implemented by Request to provide a way handle partial temporary failures. For example, if some items failed to process and can be retried, this interface allows to return a new Request that contains the items left to be sent. Otherwise, the original Request should be returned. If not implemented, the original Request will be returned assuming the error is applied to the whole Request. Experimental: 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 RequestFromLogsFunc ¶ added in v0.90.0
RequestFromLogsFunc converts plog.Logs data into a user-defined request. Experimental: 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 RequestFromMetricsFunc ¶ added in v0.90.0
RequestFromMetricsFunc converts pdata.Metrics into a user-defined request. Experimental: 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 RequestFromTracesFunc ¶ added in v0.90.0
RequestFromTracesFunc converts ptrace.Traces into a user-defined Request. Experimental: 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 TimeoutSettings ¶
type TimeoutSettings struct { // Timeout is the timeout for every attempt to send data to the backend. // A zero timeout means no timeout. 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.
func (*TimeoutSettings) Validate ¶ added in v0.92.0
func (ts *TimeoutSettings) Validate() error