mirror of
https://github.com/hanzoai/traces.git
synced 2026-11-03 04:05:45 +00:00
* Update Prometheus to v0.307.2 * Update otel collector * Update OTel collector
81 lines
2.5 KiB
Go
81 lines
2.5 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package plogotlp // import "go.opentelemetry.io/collector/pdata/plog/plogotlp"
|
|
|
|
import (
|
|
"slices"
|
|
|
|
"go.opentelemetry.io/collector/pdata/internal"
|
|
otlpcollectorlog "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/logs/v1"
|
|
"go.opentelemetry.io/collector/pdata/internal/json"
|
|
"go.opentelemetry.io/collector/pdata/internal/otlp"
|
|
"go.opentelemetry.io/collector/pdata/plog"
|
|
)
|
|
|
|
// ExportRequest represents the request for gRPC/HTTP client/server.
|
|
// It's a wrapper for plog.Logs data.
|
|
type ExportRequest struct {
|
|
orig *otlpcollectorlog.ExportLogsServiceRequest
|
|
state *internal.State
|
|
}
|
|
|
|
// NewExportRequest returns an empty ExportRequest.
|
|
func NewExportRequest() ExportRequest {
|
|
return ExportRequest{
|
|
orig: &otlpcollectorlog.ExportLogsServiceRequest{},
|
|
state: internal.NewState(),
|
|
}
|
|
}
|
|
|
|
// NewExportRequestFromLogs returns a ExportRequest from plog.Logs.
|
|
// Because ExportRequest is a wrapper for plog.Logs,
|
|
// any changes to the provided Logs struct will be reflected in the ExportRequest and vice versa.
|
|
func NewExportRequestFromLogs(ld plog.Logs) ExportRequest {
|
|
return ExportRequest{
|
|
orig: internal.GetOrigLogs(internal.Logs(ld)),
|
|
state: internal.GetLogsState(internal.Logs(ld)),
|
|
}
|
|
}
|
|
|
|
// MarshalProto marshals ExportRequest into proto bytes.
|
|
func (ms ExportRequest) MarshalProto() ([]byte, error) {
|
|
size := internal.SizeProtoOrigExportLogsServiceRequest(ms.orig)
|
|
buf := make([]byte, size)
|
|
_ = internal.MarshalProtoOrigExportLogsServiceRequest(ms.orig, buf)
|
|
return buf, nil
|
|
}
|
|
|
|
// UnmarshalProto unmarshalls ExportRequest from proto bytes.
|
|
func (ms ExportRequest) UnmarshalProto(data []byte) error {
|
|
err := internal.UnmarshalProtoOrigExportLogsServiceRequest(ms.orig, data)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
otlp.MigrateLogs(ms.orig.ResourceLogs)
|
|
return nil
|
|
}
|
|
|
|
// MarshalJSON marshals ExportRequest into JSON bytes.
|
|
func (ms ExportRequest) MarshalJSON() ([]byte, error) {
|
|
dest := json.BorrowStream(nil)
|
|
defer json.ReturnStream(dest)
|
|
internal.MarshalJSONOrigExportLogsServiceRequest(ms.orig, dest)
|
|
if dest.Error() != nil {
|
|
return nil, dest.Error()
|
|
}
|
|
return slices.Clone(dest.Buffer()), nil
|
|
}
|
|
|
|
// UnmarshalJSON unmarshalls ExportRequest from JSON bytes.
|
|
func (ms ExportRequest) UnmarshalJSON(data []byte) error {
|
|
iter := json.BorrowIterator(data)
|
|
defer json.ReturnIterator(iter)
|
|
internal.UnmarshalJSONOrigExportLogsServiceRequest(ms.orig, iter)
|
|
return iter.Error()
|
|
}
|
|
|
|
func (ms ExportRequest) Logs() plog.Logs {
|
|
return plog.Logs(internal.NewLogs(ms.orig, ms.state))
|
|
}
|