Remove extra allocation when record metrics (#11365)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
parent
8bc3eae83f
commit
cceb6c14e0
|
|
@ -23,7 +23,7 @@ type ObsReport struct {
|
|||
tracer trace.Tracer
|
||||
Signal pipeline.Signal
|
||||
|
||||
otelAttrs attribute.Set
|
||||
otelAttrs metric.MeasurementOption
|
||||
TelemetryBuilder *metadata.TelemetryBuilder
|
||||
}
|
||||
|
||||
|
|
@ -44,7 +44,7 @@ func NewExporter(cfg ObsReportSettings) (*ObsReport, error) {
|
|||
spanNamePrefix: ExporterPrefix + cfg.ExporterID.String(),
|
||||
tracer: cfg.ExporterCreateSettings.TracerProvider.Tracer(cfg.ExporterID.String()),
|
||||
Signal: cfg.Signal,
|
||||
otelAttrs: attribute.NewSet(attribute.String(ExporterKey, cfg.ExporterID.String())),
|
||||
otelAttrs: metric.WithAttributeSet(attribute.NewSet(attribute.String(ExporterKey, cfg.ExporterID.String()))),
|
||||
TelemetryBuilder: telemetryBuilder,
|
||||
}, nil
|
||||
}
|
||||
|
|
@ -116,8 +116,8 @@ func (or *ObsReport) recordMetrics(ctx context.Context, signal pipeline.Signal,
|
|||
failedMeasure = or.TelemetryBuilder.ExporterSendFailedLogRecords
|
||||
}
|
||||
|
||||
sentMeasure.Add(ctx, sent, metric.WithAttributeSet(or.otelAttrs))
|
||||
failedMeasure.Add(ctx, failed, metric.WithAttributeSet(or.otelAttrs))
|
||||
sentMeasure.Add(ctx, sent, or.otelAttrs)
|
||||
failedMeasure.Add(ctx, failed, or.otelAttrs)
|
||||
}
|
||||
|
||||
func endSpan(ctx context.Context, err error, numSent, numFailedToSend int64, sentItemsKey, failedToSendItemsKey string) {
|
||||
|
|
@ -153,5 +153,5 @@ func (or *ObsReport) RecordEnqueueFailure(ctx context.Context, signal pipeline.S
|
|||
enqueueFailedMeasure = or.TelemetryBuilder.ExporterEnqueueFailedLogRecords
|
||||
}
|
||||
|
||||
enqueueFailedMeasure.Add(ctx, failed, metric.WithAttributeSet(or.otelAttrs))
|
||||
enqueueFailedMeasure.Add(ctx, failed, or.otelAttrs)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,17 +27,16 @@ type batchProcessorTelemetry struct {
|
|||
|
||||
exportCtx context.Context
|
||||
|
||||
processorAttr attribute.Set
|
||||
processorAttr metric.MeasurementOption
|
||||
telemetryBuilder *metadata.TelemetryBuilder
|
||||
}
|
||||
|
||||
func newBatchProcessorTelemetry(set processor.Settings, currentMetadataCardinality func() int) (*batchProcessorTelemetry, error) {
|
||||
attrs := attribute.NewSet(attribute.String(internal.ProcessorKey, set.ID.String()))
|
||||
attrs := metric.WithAttributeSet(attribute.NewSet(attribute.String(internal.ProcessorKey, set.ID.String())))
|
||||
|
||||
telemetryBuilder, err := metadata.NewTelemetryBuilder(set.TelemetrySettings,
|
||||
metadata.WithProcessorBatchMetadataCardinalityCallback(func() int64 {
|
||||
return int64(currentMetadataCardinality())
|
||||
}, metric.WithAttributeSet(attrs)),
|
||||
telemetryBuilder, err := metadata.NewTelemetryBuilder(
|
||||
set.TelemetrySettings,
|
||||
metadata.WithProcessorBatchMetadataCardinalityCallback(func() int64 { return int64(currentMetadataCardinality()) }, attrs),
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
|
|
@ -55,11 +54,11 @@ func newBatchProcessorTelemetry(set processor.Settings, currentMetadataCardinali
|
|||
func (bpt *batchProcessorTelemetry) record(trigger trigger, sent, bytes int64) {
|
||||
switch trigger {
|
||||
case triggerBatchSize:
|
||||
bpt.telemetryBuilder.ProcessorBatchBatchSizeTriggerSend.Add(bpt.exportCtx, 1, metric.WithAttributeSet(bpt.processorAttr))
|
||||
bpt.telemetryBuilder.ProcessorBatchBatchSizeTriggerSend.Add(bpt.exportCtx, 1, bpt.processorAttr)
|
||||
case triggerTimeout:
|
||||
bpt.telemetryBuilder.ProcessorBatchTimeoutTriggerSend.Add(bpt.exportCtx, 1, metric.WithAttributeSet(bpt.processorAttr))
|
||||
bpt.telemetryBuilder.ProcessorBatchTimeoutTriggerSend.Add(bpt.exportCtx, 1, bpt.processorAttr)
|
||||
}
|
||||
|
||||
bpt.telemetryBuilder.ProcessorBatchBatchSendSize.Record(bpt.exportCtx, sent, metric.WithAttributeSet(bpt.processorAttr))
|
||||
bpt.telemetryBuilder.ProcessorBatchBatchSendSizeBytes.Record(bpt.exportCtx, bytes, metric.WithAttributeSet(bpt.processorAttr))
|
||||
bpt.telemetryBuilder.ProcessorBatchBatchSendSize.Record(bpt.exportCtx, sent, bpt.processorAttr)
|
||||
bpt.telemetryBuilder.ProcessorBatchBatchSendSizeBytes.Record(bpt.exportCtx, bytes, bpt.processorAttr)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import (
|
|||
)
|
||||
|
||||
type obsReport struct {
|
||||
otelAttrs attribute.Set
|
||||
otelAttrs metric.MeasurementOption
|
||||
telemetryBuilder *metadata.TelemetryBuilder
|
||||
}
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ func newObsReport(set processor.Settings) (*obsReport, error) {
|
|||
}
|
||||
|
||||
return &obsReport{
|
||||
otelAttrs: attribute.NewSet(attribute.String(internal.ProcessorKey, set.ID.String())),
|
||||
otelAttrs: metric.WithAttributeSet(attribute.NewSet(attribute.String(internal.ProcessorKey, set.ID.String()))),
|
||||
telemetryBuilder: telemetryBuilder,
|
||||
}, nil
|
||||
}
|
||||
|
|
@ -36,11 +36,11 @@ func newObsReport(set processor.Settings) (*obsReport, error) {
|
|||
func (or *obsReport) accepted(ctx context.Context, num int, signal pipeline.Signal) {
|
||||
switch signal {
|
||||
case pipeline.SignalTraces:
|
||||
or.telemetryBuilder.ProcessorAcceptedSpans.Add(ctx, int64(num), metric.WithAttributeSet(or.otelAttrs))
|
||||
or.telemetryBuilder.ProcessorAcceptedSpans.Add(ctx, int64(num), or.otelAttrs)
|
||||
case pipeline.SignalMetrics:
|
||||
or.telemetryBuilder.ProcessorAcceptedMetricPoints.Add(ctx, int64(num), metric.WithAttributeSet(or.otelAttrs))
|
||||
or.telemetryBuilder.ProcessorAcceptedMetricPoints.Add(ctx, int64(num), or.otelAttrs)
|
||||
case pipeline.SignalLogs:
|
||||
or.telemetryBuilder.ProcessorAcceptedLogRecords.Add(ctx, int64(num), metric.WithAttributeSet(or.otelAttrs))
|
||||
or.telemetryBuilder.ProcessorAcceptedLogRecords.Add(ctx, int64(num), or.otelAttrs)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -48,10 +48,10 @@ func (or *obsReport) accepted(ctx context.Context, num int, signal pipeline.Sign
|
|||
func (or *obsReport) refused(ctx context.Context, num int, signal pipeline.Signal) {
|
||||
switch signal {
|
||||
case pipeline.SignalTraces:
|
||||
or.telemetryBuilder.ProcessorRefusedSpans.Add(ctx, int64(num), metric.WithAttributeSet(or.otelAttrs))
|
||||
or.telemetryBuilder.ProcessorRefusedSpans.Add(ctx, int64(num), or.otelAttrs)
|
||||
case pipeline.SignalMetrics:
|
||||
or.telemetryBuilder.ProcessorRefusedMetricPoints.Add(ctx, int64(num), metric.WithAttributeSet(or.otelAttrs))
|
||||
or.telemetryBuilder.ProcessorRefusedMetricPoints.Add(ctx, int64(num), or.otelAttrs)
|
||||
case pipeline.SignalLogs:
|
||||
or.telemetryBuilder.ProcessorRefusedLogRecords.Add(ctx, int64(num), metric.WithAttributeSet(or.otelAttrs))
|
||||
or.telemetryBuilder.ProcessorRefusedLogRecords.Add(ctx, int64(num), or.otelAttrs)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ func NewObsReport(_ ObsReportSettings) (*ObsReport, error) {
|
|||
}
|
||||
|
||||
type obsReport struct {
|
||||
otelAttrs attribute.Set
|
||||
otelAttrs metric.MeasurementOption
|
||||
telemetryBuilder *metadata.TelemetryBuilder
|
||||
}
|
||||
|
||||
|
|
@ -56,15 +56,15 @@ func newObsReport(set processor.Settings, signal pipeline.Signal) (*obsReport, e
|
|||
return nil, err
|
||||
}
|
||||
return &obsReport{
|
||||
otelAttrs: attribute.NewSet(
|
||||
otelAttrs: metric.WithAttributeSet(attribute.NewSet(
|
||||
attribute.String(internal.ProcessorKey, set.ID.String()),
|
||||
attribute.String(signalKey, signal.String()),
|
||||
),
|
||||
)),
|
||||
telemetryBuilder: telemetryBuilder,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (or *obsReport) recordInOut(ctx context.Context, incoming, outgoing int) {
|
||||
or.telemetryBuilder.ProcessorIncomingItems.Add(ctx, int64(incoming), metric.WithAttributeSet(or.otelAttrs))
|
||||
or.telemetryBuilder.ProcessorOutgoingItems.Add(ctx, int64(outgoing), metric.WithAttributeSet(or.otelAttrs))
|
||||
or.telemetryBuilder.ProcessorIncomingItems.Add(ctx, int64(incoming), or.otelAttrs)
|
||||
or.telemetryBuilder.ProcessorOutgoingItems.Add(ctx, int64(outgoing), or.otelAttrs)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ type ObsReport struct {
|
|||
longLivedCtx bool
|
||||
tracer trace.Tracer
|
||||
|
||||
otelAttrs attribute.Set
|
||||
otelAttrs metric.MeasurementOption
|
||||
telemetryBuilder *metadata.TelemetryBuilder
|
||||
}
|
||||
|
||||
|
|
@ -60,10 +60,10 @@ func newReceiver(cfg ObsReportSettings) (*ObsReport, error) {
|
|||
longLivedCtx: cfg.LongLivedCtx,
|
||||
tracer: cfg.ReceiverCreateSettings.TracerProvider.Tracer(cfg.ReceiverID.String()),
|
||||
|
||||
otelAttrs: attribute.NewSet(
|
||||
otelAttrs: metric.WithAttributeSet(attribute.NewSet(
|
||||
attribute.String(internal.ReceiverKey, cfg.ReceiverID.String()),
|
||||
attribute.String(internal.TransportKey, cfg.Transport),
|
||||
),
|
||||
)),
|
||||
telemetryBuilder: telemetryBuilder,
|
||||
}, nil
|
||||
}
|
||||
|
|
@ -207,6 +207,6 @@ func (rec *ObsReport) recordMetrics(receiverCtx context.Context, signal pipeline
|
|||
refusedMeasure = rec.telemetryBuilder.ReceiverRefusedLogRecords
|
||||
}
|
||||
|
||||
acceptedMeasure.Add(receiverCtx, int64(numAccepted), metric.WithAttributeSet(rec.otelAttrs))
|
||||
refusedMeasure.Add(receiverCtx, int64(numRefused), metric.WithAttributeSet(rec.otelAttrs))
|
||||
acceptedMeasure.Add(receiverCtx, int64(numAccepted), rec.otelAttrs)
|
||||
refusedMeasure.Add(receiverCtx, int64(numRefused), rec.otelAttrs)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ type obsReport struct {
|
|||
scraper component.ID
|
||||
tracer trace.Tracer
|
||||
|
||||
otelAttrs attribute.Set
|
||||
otelAttrs metric.MeasurementOption
|
||||
telemetryBuilder *metadata.TelemetryBuilder
|
||||
}
|
||||
|
||||
|
|
@ -47,10 +47,10 @@ func newScraper(cfg obsReportSettings) (*obsReport, error) {
|
|||
scraper: cfg.Scraper,
|
||||
tracer: cfg.ReceiverCreateSettings.TracerProvider.Tracer(cfg.Scraper.String()),
|
||||
|
||||
otelAttrs: attribute.NewSet(
|
||||
otelAttrs: metric.WithAttributeSet(attribute.NewSet(
|
||||
attribute.String(internal.ReceiverKey, cfg.ReceiverID.String()),
|
||||
attribute.String(internal.ScraperKey, cfg.Scraper.String()),
|
||||
),
|
||||
)),
|
||||
telemetryBuilder: telemetryBuilder,
|
||||
}, nil
|
||||
}
|
||||
|
|
@ -103,6 +103,6 @@ func (s *obsReport) EndMetricsOp(
|
|||
}
|
||||
|
||||
func (s *obsReport) recordMetrics(scraperCtx context.Context, numScrapedMetrics, numErroredMetrics int) {
|
||||
s.telemetryBuilder.ScraperScrapedMetricPoints.Add(scraperCtx, int64(numScrapedMetrics), metric.WithAttributeSet(s.otelAttrs))
|
||||
s.telemetryBuilder.ScraperErroredMetricPoints.Add(scraperCtx, int64(numErroredMetrics), metric.WithAttributeSet(s.otelAttrs))
|
||||
s.telemetryBuilder.ScraperScrapedMetricPoints.Add(scraperCtx, int64(numScrapedMetrics), s.otelAttrs)
|
||||
s.telemetryBuilder.ScraperErroredMetricPoints.Add(scraperCtx, int64(numErroredMetrics), s.otelAttrs)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue