mirror of
https://github.com/hanzoai/otel-collector.git
synced 2026-10-30 18:26:25 +00:00
- Go module: github.com/SigNoz/signoz-otel-collector → github.com/hanzoai/otel-collector - All signoz-prefixed packages → o11y-prefixed - Docker: signoz/* → ghcr.io/hanzoai/otel-collector - ClickHouse exporter → Hanzo Datastore - Env vars: SIGNOZ_* → HANZO_* - Directory renames for all processor/receiver/exporter packages
106 lines
3.1 KiB
Go
106 lines
3.1 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package o11ytransformprocessor // import "github.com/hanzoai/otel-collector/processor/o11ytransformprocessor"
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"go.opentelemetry.io/collector/component"
|
|
"go.opentelemetry.io/collector/consumer"
|
|
"go.opentelemetry.io/collector/processor"
|
|
"go.opentelemetry.io/collector/processor/processorhelper"
|
|
|
|
"github.com/hanzoai/otel-collector/processor/o11ytransformprocessor/internal/common"
|
|
"github.com/hanzoai/otel-collector/processor/o11ytransformprocessor/internal/logs"
|
|
"github.com/hanzoai/otel-collector/processor/o11ytransformprocessor/internal/metadata"
|
|
"github.com/hanzoai/otel-collector/processor/o11ytransformprocessor/internal/metrics"
|
|
"github.com/hanzoai/otel-collector/processor/o11ytransformprocessor/internal/traces"
|
|
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl"
|
|
)
|
|
|
|
var processorCapabilities = consumer.Capabilities{MutatesData: true}
|
|
|
|
func NewFactory() processor.Factory {
|
|
return processor.NewFactory(
|
|
metadata.Type,
|
|
createDefaultConfig,
|
|
processor.WithLogs(createLogsProcessor, metadata.LogsStability),
|
|
processor.WithTraces(createTracesProcessor, metadata.TracesStability),
|
|
processor.WithMetrics(createMetricsProcessor, metadata.MetricsStability),
|
|
)
|
|
}
|
|
|
|
func createDefaultConfig() component.Config {
|
|
return &Config{
|
|
ErrorMode: ottl.PropagateError,
|
|
TraceStatements: []common.ContextStatements{},
|
|
MetricStatements: []common.ContextStatements{},
|
|
LogStatements: []common.ContextStatements{},
|
|
}
|
|
}
|
|
|
|
func createLogsProcessor(
|
|
ctx context.Context,
|
|
set processor.Settings,
|
|
cfg component.Config,
|
|
nextConsumer consumer.Logs,
|
|
) (processor.Logs, error) {
|
|
oCfg := cfg.(*Config)
|
|
|
|
proc, err := logs.NewProcessor(oCfg.LogStatements, oCfg.ErrorMode, set.TelemetrySettings)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("invalid config for \"transform\" processor %w", err)
|
|
}
|
|
return processorhelper.NewLogs(
|
|
ctx,
|
|
set,
|
|
cfg,
|
|
nextConsumer,
|
|
proc.ProcessLogs,
|
|
processorhelper.WithCapabilities(processorCapabilities))
|
|
}
|
|
|
|
func createTracesProcessor(
|
|
ctx context.Context,
|
|
set processor.Settings,
|
|
cfg component.Config,
|
|
nextConsumer consumer.Traces,
|
|
) (processor.Traces, error) {
|
|
oCfg := cfg.(*Config)
|
|
|
|
proc, err := traces.NewProcessor(oCfg.TraceStatements, oCfg.ErrorMode, set.TelemetrySettings)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("invalid config for \"transform\" processor %w", err)
|
|
}
|
|
return processorhelper.NewTraces(
|
|
ctx,
|
|
set,
|
|
cfg,
|
|
nextConsumer,
|
|
proc.ProcessTraces,
|
|
processorhelper.WithCapabilities(processorCapabilities))
|
|
}
|
|
|
|
func createMetricsProcessor(
|
|
ctx context.Context,
|
|
set processor.Settings,
|
|
cfg component.Config,
|
|
nextConsumer consumer.Metrics,
|
|
) (processor.Metrics, error) {
|
|
oCfg := cfg.(*Config)
|
|
|
|
proc, err := metrics.NewProcessor(oCfg.MetricStatements, oCfg.ErrorMode, set.TelemetrySettings)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("invalid config for \"transform\" processor %w", err)
|
|
}
|
|
return processorhelper.NewMetrics(
|
|
ctx,
|
|
set,
|
|
cfg,
|
|
nextConsumer,
|
|
proc.ProcessMetrics,
|
|
processorhelper.WithCapabilities(processorCapabilities))
|
|
}
|