72 lines
1.9 KiB
Go
72 lines
1.9 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
//go:generate mdatagen metadata.yaml
|
|
|
|
package batchprocessor // import "go.opentelemetry.io/collector/processor/batchprocessor"
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"go.opentelemetry.io/collector/component"
|
|
"go.opentelemetry.io/collector/consumer"
|
|
"go.opentelemetry.io/collector/processor"
|
|
"go.opentelemetry.io/collector/processor/batchprocessor/internal/metadata"
|
|
)
|
|
|
|
const (
|
|
defaultSendBatchSize = uint32(8192)
|
|
defaultTimeout = 200 * time.Millisecond
|
|
|
|
// defaultMetadataCardinalityLimit should be set to the number
|
|
// of metadata configurations the user expects to submit to
|
|
// the collector.
|
|
defaultMetadataCardinalityLimit = 1000
|
|
)
|
|
|
|
// NewFactory returns a new factory for the Batch processor.
|
|
func NewFactory() processor.Factory {
|
|
return processor.NewFactory(
|
|
metadata.Type,
|
|
createDefaultConfig,
|
|
processor.WithTraces(createTraces, metadata.TracesStability),
|
|
processor.WithMetrics(createMetrics, metadata.MetricsStability),
|
|
processor.WithLogs(createLogs, metadata.LogsStability))
|
|
}
|
|
|
|
func createDefaultConfig() component.Config {
|
|
return &Config{
|
|
SendBatchSize: defaultSendBatchSize,
|
|
Timeout: defaultTimeout,
|
|
MetadataCardinalityLimit: defaultMetadataCardinalityLimit,
|
|
}
|
|
}
|
|
|
|
func createTraces(
|
|
_ context.Context,
|
|
set processor.Settings,
|
|
cfg component.Config,
|
|
nextConsumer consumer.Traces,
|
|
) (processor.Traces, error) {
|
|
return newBatchTracesProcessor(set, nextConsumer, cfg.(*Config))
|
|
}
|
|
|
|
func createMetrics(
|
|
_ context.Context,
|
|
set processor.Settings,
|
|
cfg component.Config,
|
|
nextConsumer consumer.Metrics,
|
|
) (processor.Metrics, error) {
|
|
return newBatchMetricsProcessor(set, nextConsumer, cfg.(*Config))
|
|
}
|
|
|
|
func createLogs(
|
|
_ context.Context,
|
|
set processor.Settings,
|
|
cfg component.Config,
|
|
nextConsumer consumer.Logs,
|
|
) (processor.Logs, error) {
|
|
return newBatchLogsProcessor(set, nextConsumer, cfg.(*Config))
|
|
}
|