exporter/kafkaexporter/internal/marshaler/marshaler.go (19 lines of code) (raw):
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package marshaler // import "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter/internal/marshaler"
import (
"go.opentelemetry.io/collector/pdata/plog"
"go.opentelemetry.io/collector/pdata/pmetric"
"go.opentelemetry.io/collector/pdata/ptrace"
)
// Message represents a Kafka message.
//
// Note that the topic and message headers are set by the Kafka exporter
// code, and not by the marshaler.
type Message struct {
// Key is an optional message key.
//
// Marshalers may set this, but it is generally expected that the
// Kafka producer will set this based partition_* configuration.
Key []byte
// Value is the message payload.
Value []byte
}
// TracesMarshaler marshals a ptrace.Traces into one or more Messages.
type TracesMarshaler interface {
MarshalTraces(traces ptrace.Traces) ([]Message, error)
}
// MetricsMarshaler marshals a pmetric.Metrics into one or more Messages.
type MetricsMarshaler interface {
MarshalMetrics(metrics pmetric.Metrics) ([]Message, error)
}
// LogsMarshaler marshals a plog.Logs into one or more Messages.
type LogsMarshaler interface {
MarshalLogs(logs plog.Logs) ([]Message, error)
}