mirror of
https://github.com/hanzoai/telemetry.git
synced 2026-10-30 20:01:49 +00:00
Resolves https://github.com/open-telemetry/opentelemetry-collector/issues/13324
43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package otlptext // import "go.opentelemetry.io/collector/exporter/debugexporter/internal/otlptext"
|
|
|
|
import "go.opentelemetry.io/collector/pdata/pmetric"
|
|
|
|
// NewTextMetricsMarshaler returns a pmetric.Marshaler to encode to OTLP text bytes.
|
|
func NewTextMetricsMarshaler() pmetric.Marshaler {
|
|
return textMetricsMarshaler{}
|
|
}
|
|
|
|
type textMetricsMarshaler struct{}
|
|
|
|
// MarshalMetrics pmetric.Metrics to OTLP text.
|
|
func (textMetricsMarshaler) MarshalMetrics(md pmetric.Metrics) ([]byte, error) {
|
|
buf := dataBuffer{}
|
|
rms := md.ResourceMetrics()
|
|
for i := 0; i < rms.Len(); i++ {
|
|
buf.logEntry("ResourceMetrics #%d", i)
|
|
rm := rms.At(i)
|
|
buf.logEntry("Resource SchemaURL: %s", rm.SchemaUrl())
|
|
buf.logAttributes("Resource attributes", rm.Resource().Attributes())
|
|
buf.logEntityRefs(rm.Resource())
|
|
ilms := rm.ScopeMetrics()
|
|
for j := 0; j < ilms.Len(); j++ {
|
|
buf.logEntry("ScopeMetrics #%d", j)
|
|
ilm := ilms.At(j)
|
|
buf.logEntry("ScopeMetrics SchemaURL: %s", ilm.SchemaUrl())
|
|
buf.logInstrumentationScope(ilm.Scope())
|
|
metrics := ilm.Metrics()
|
|
for k := 0; k < metrics.Len(); k++ {
|
|
buf.logEntry("Metric #%d", k)
|
|
metric := metrics.At(k)
|
|
buf.logMetricDescriptor(metric)
|
|
buf.logMetricDataPoints(metric)
|
|
}
|
|
}
|
|
}
|
|
|
|
return buf.buf.Bytes(), nil
|
|
}
|