exporterhelper

package
v0.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 5, 2020 License: Apache-2.0 Imports: 19 Imported by: 259

README

Exporter Helper

This is a helper exporter that other exporters can depend on. Today, it primarily offers queued retries capabilities.

⚠ This exporter should not be added to a service pipeline.

Configuration

The following configuration options can be modified:

  • retry_on_failure
    • enabled (default = true)
    • initial_interval (default = 5s): Time to wait after the first failure before retrying; ignored if enabled is false
    • max_interval (default = 30s): Is the upper bound on backoff; ignored if enabled is false
    • max_elapsed_time (default = 120s): Is the maximum amount of time spent trying to send a batch; ignored if enabled is false
  • sending_queue
    • enabled (default = true)
    • num_consumers (default = 10): Number of consumers that dequeue batches; ignored if enabled is false
    • queue_size (default = 5000): Maximum number of batches kept in memory before data; ignored if enabled is false; User should calculate this as num_seconds * requests_per_second where:
      • num_seconds is the number of seconds to buffer in case of a backend outage
      • requests_per_second is the average number of requests per seconds.

The full list of settings exposed for this helper exporter are documented here.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewFactory added in v0.7.0

func NewFactory(
	cfgType configmodels.Type,
	createDefaultConfig CreateDefaultConfig,
	options ...FactoryOption) component.ExporterFactory

NewFactory returns a component.ExporterFactory.

func NewLogsExporter

func NewLogsExporter(
	cfg configmodels.Exporter,
	logger *zap.Logger,
	pushLogsData PushLogsData,
	options ...ExporterOption,
) (component.LogsExporter, error)

NewLogsExporter creates an LogsExporter that records observability metrics and wraps every request with a Span.

func NewMetricsExporter

func NewMetricsExporter(
	cfg configmodels.Exporter,
	logger *zap.Logger,
	pushMetricsData PushMetricsData,
	options ...ExporterOption,
) (component.MetricsExporter, error)

NewMetricsExporter creates an MetricsExporter that records observability metrics and wraps every request with a Span.

func NewThrottleRetry added in v0.7.0

func NewThrottleRetry(err error, delay time.Duration) error

func NewTraceExporter

func NewTraceExporter(
	cfg configmodels.Exporter,
	logger *zap.Logger,
	dataPusher traceDataPusher,
	options ...ExporterOption,
) (component.TracesExporter, error)

NewTraceExporter creates a TracesExporter that records observability metrics and wraps every request with a Span.

func NumTimeSeries

func NumTimeSeries(md consumerdata.MetricsData) int

NumTimeSeries returns the number of timeseries in a MetricsData.

Types

type CreateDefaultConfig added in v0.7.0

type CreateDefaultConfig func() configmodels.Exporter

CreateDefaultConfig is the equivalent of component.ExporterFactory.CreateDefaultConfig()

type CreateLogsExporter added in v0.7.0

CreateMetricsExporter is the equivalent of component.ExporterFactory.CreateLogsExporter()

type CreateMetricsExporter added in v0.7.0

CreateMetricsExporter is the equivalent of component.ExporterFactory.CreateMetricsExporter()

type CreateTraceExporter added in v0.7.0

CreateTraceExporter is the equivalent of component.ExporterFactory.CreateTracesExporter()

type ExporterOption

type ExporterOption func(*internalOptions)

ExporterOption apply changes to internalOptions.

func WithQueue added in v0.7.0

func WithQueue(queueSettings QueueSettings) ExporterOption

WithQueue overrides the default QueueSettings for an exporter. The default QueueSettings is to disable queueing.

func WithRetry added in v0.7.0

func WithRetry(retrySettings RetrySettings) ExporterOption

WithRetry overrides the default RetrySettings for an exporter. The default RetrySettings is to disable retries.

func WithShutdown

func WithShutdown(shutdown Shutdown) ExporterOption

WithShutdown overrides the default Shutdown function for an exporter. The default shutdown function does nothing and always returns nil.

func WithStart added in v0.6.0

func WithStart(start Start) ExporterOption

WithStart overrides the default Start function for an exporter. The default shutdown function does nothing and always returns nil.

func WithTimeout added in v0.7.0

func WithTimeout(timeoutSettings TimeoutSettings) ExporterOption

WithTimeout overrides the default TimeoutSettings for an exporter. The default TimeoutSettings is 5 seconds.

type FactoryOption added in v0.7.0

type FactoryOption func(o *factory)

FactoryOption apply changes to ExporterOptions.

func WithCustomUnmarshaler added in v0.8.0

func WithCustomUnmarshaler(customUnmarshaler component.CustomUnmarshaler) FactoryOption

WithCustomUnmarshaler implements component.ConfigUnmarshaler.

func WithLogs added in v0.7.0

func WithLogs(createLogsExporter CreateLogsExporter) FactoryOption

WithLogs overrides the default "error not supported" implementation for CreateLogsReceiver.

func WithMetrics added in v0.7.0

func WithMetrics(createMetricsExporter CreateMetricsExporter) FactoryOption

WithMetrics overrides the default "error not supported" implementation for CreateMetricsReceiver.

func WithTraces added in v0.7.0

func WithTraces(createTraceExporter CreateTraceExporter) FactoryOption

WithTraces overrides the default "error not supported" implementation for CreateTracesReceiver.

type PushLogsData

type PushLogsData func(ctx context.Context, md pdata.Logs) (droppedTimeSeries int, err error)

PushLogsData is a helper function that is similar to ConsumeLogsData but also returns the number of dropped logs.

type PushMetricsData

type PushMetricsData func(ctx context.Context, md pdata.Metrics) (droppedTimeSeries int, err error)

PushMetricsData is a helper function that is similar to ConsumeMetricsData but also returns the number of dropped metrics.

type QueueSettings added in v0.7.0

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"`
}

QueueSettings defines configuration for queueing batches before sending to the consumerSender.

func CreateDefaultQueueSettings added in v0.7.0

func CreateDefaultQueueSettings() QueueSettings

CreateDefaultQueueSettings returns the default settings for QueueSettings.

type RetrySettings added in v0.7.0

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"`
	// 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 CreateDefaultRetrySettings added in v0.7.0

func CreateDefaultRetrySettings() RetrySettings

CreateDefaultRetrySettings returns the default settings for RetrySettings.

type Shutdown

type Shutdown func(context.Context) error

Shutdown specifies the function invoked when the exporter is being shutdown.

type Start added in v0.6.0

type Start func(context.Context, component.Host) error

Start specifies the function invoked when the exporter is being started.

type TimeoutSettings added in v0.7.0

type TimeoutSettings struct {
	// Timeout is the timeout for every attempt to send data to the backend.
	Timeout time.Duration `mapstructure:"timeout"`
}

Settings for timeout. The timeout applies to individual attempts to send data to the backend.

func CreateDefaultTimeoutSettings added in v0.7.0

func CreateDefaultTimeoutSettings() TimeoutSettings

CreateDefaultTimeoutSettings returns the default settings for TimeoutSettings.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL