writer

package
v0.57.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2024 License: Apache-2.0 Imports: 24 Imported by: 3

Documentation

Overview

Package writer contains the logic for sending payloads to the Datadog intake.

Index

Constants

This section is empty.

Variables

View Source
var MaxPayloadSize = 3200000 // 3.2MB is the maximum allowed by the Datadog API

MaxPayloadSize specifies the maximum accumulated payload size that is allowed before a flush is triggered; replaced in tests.

Functions

This section is empty.

Types

type DatadogStatsWriter added in v0.56.0

type DatadogStatsWriter struct {
	// contains filtered or unexported fields
}

DatadogStatsWriter ingests stats buckets, combining them over time and flushing them to the API. This implements the stats.Writer interface.

func NewStatsWriter

func NewStatsWriter(
	cfg *config.AgentConfig,
	telemetryCollector telemetry.TelemetryCollector,
	statsd statsd.ClientInterface,
	timing timing.Reporter,
) *DatadogStatsWriter

NewStatsWriter returns a new DatadogStatsWriter. It must be started using Run.

func (*DatadogStatsWriter) FlushSync added in v0.56.0

func (w *DatadogStatsWriter) FlushSync() error

FlushSync blocks and sends pending payloads when syncMode is true

func (*DatadogStatsWriter) Run added in v0.56.0

func (w *DatadogStatsWriter) Run()

Run starts the DatadogStatsWriter, making it ready to receive stats and report w.statsd.

func (*DatadogStatsWriter) SendPayload added in v0.56.0

func (w *DatadogStatsWriter) SendPayload(p *pb.StatsPayload)

SendPayload sends a stats payload to the Datadog backend.

func (*DatadogStatsWriter) Stop added in v0.56.0

func (w *DatadogStatsWriter) Stop()

Stop stops a running DatadogStatsWriter.

func (*DatadogStatsWriter) Write added in v0.56.0

func (w *DatadogStatsWriter) Write(sp *pb.StatsPayload)

Add appends this StatsPayload to the writer's buffer (flushing immediately if syncMode is enabled)

type SampledChunks

type SampledChunks struct {
	// TracerPayload contains all the chunks that were sampled as part of processing a payload.
	TracerPayload *pb.TracerPayload
	// Size represents the approximated message size in bytes.
	Size int
	// SpanCount specifies the number of spans that were sampled as part of a trace inside the TracerPayload.
	SpanCount int64
	// EventCount specifies the total number of events found in Traces.
	EventCount int64
}

SampledChunks represents the result of a trace sampling operation.

type TraceWriter

type TraceWriter struct {
	// contains filtered or unexported fields
}

TraceWriter implements TraceWriter interface, and buffers traces and APM events, flushing them to the Datadog API.

func NewTraceWriter

func NewTraceWriter(
	cfg *config.AgentConfig,
	prioritySampler samplerTPSReader,
	errorsSampler samplerTPSReader,
	rareSampler samplerEnabledReader,
	telemetryCollector telemetry.TelemetryCollector,
	statsd statsd.ClientInterface,
	timing timing.Reporter,
	compressor compression.Component) *TraceWriter

NewTraceWriter returns a new TraceWriter. It is created for the given agent configuration and will accept incoming spans via the in channel.

func (*TraceWriter) FlushSync

func (w *TraceWriter) FlushSync() error

FlushSync blocks and sends pending payloads when syncMode is true

func (*TraceWriter) Stop

func (w *TraceWriter) Stop()

Stop stops the TraceWriter and attempts to flush whatever is left in the senders buffers.

func (*TraceWriter) WriteChunks added in v0.56.0

func (w *TraceWriter) WriteChunks(pkg *SampledChunks)

WriteChunks serializes the provided chunks, enqueueing them to be sent

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL