mirror of
https://github.com/hanzoai/otel-collector.git
synced 2026-11-03 02:20:04 +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
59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package o11ykafkareceiver // import "github.com/hanzoai/otel-collector/receiver/o11ykafkareceiver"
|
|
|
|
import (
|
|
"bytes"
|
|
|
|
"github.com/gogo/protobuf/jsonpb"
|
|
jaegerproto "github.com/jaegertracing/jaeger/model"
|
|
"go.opentelemetry.io/collector/pdata/ptrace"
|
|
|
|
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger"
|
|
)
|
|
|
|
type jaegerProtoSpanUnmarshaler struct {
|
|
}
|
|
|
|
var _ TracesUnmarshaler = (*jaegerProtoSpanUnmarshaler)(nil)
|
|
|
|
func (j jaegerProtoSpanUnmarshaler) Unmarshal(bytes []byte) (ptrace.Traces, error) {
|
|
span := &jaegerproto.Span{}
|
|
err := span.Unmarshal(bytes)
|
|
if err != nil {
|
|
return ptrace.NewTraces(), err
|
|
}
|
|
return jaegerSpanToTraces(span)
|
|
}
|
|
|
|
func (j jaegerProtoSpanUnmarshaler) Encoding() string {
|
|
return "jaeger_proto"
|
|
}
|
|
|
|
type jaegerJSONSpanUnmarshaler struct {
|
|
}
|
|
|
|
var _ TracesUnmarshaler = (*jaegerJSONSpanUnmarshaler)(nil)
|
|
|
|
func (j jaegerJSONSpanUnmarshaler) Unmarshal(data []byte) (ptrace.Traces, error) {
|
|
span := &jaegerproto.Span{}
|
|
err := jsonpb.Unmarshal(bytes.NewReader(data), span)
|
|
if err != nil {
|
|
return ptrace.NewTraces(), err
|
|
}
|
|
return jaegerSpanToTraces(span)
|
|
}
|
|
|
|
func (j jaegerJSONSpanUnmarshaler) Encoding() string {
|
|
return "jaeger_json"
|
|
}
|
|
|
|
func jaegerSpanToTraces(span *jaegerproto.Span) (ptrace.Traces, error) {
|
|
batch := jaegerproto.Batch{
|
|
Spans: []*jaegerproto.Span{span},
|
|
Process: span.Process,
|
|
}
|
|
return jaeger.ProtoToTraces([]*jaegerproto.Batch{&batch})
|
|
}
|