Documentation ¶
Overview ¶
Package writer contains the logic for sending payloads to the Datadog intake.
Index ¶
Constants ¶
This section is empty.
Variables ¶
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) UpdateAPIKey ¶ added in v0.59.0
func (w *DatadogStatsWriter) UpdateAPIKey(oldKey, newKey string)
UpdateAPIKey updates the API Key, if needed, on Stats Writer senders.
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) UpdateAPIKey ¶ added in v0.59.0
func (w *TraceWriter) UpdateAPIKey(oldKey, newKey string)
UpdateAPIKey updates the API Key, if needed, on Trace Writer senders.
func (*TraceWriter) WriteChunks ¶ added in v0.56.0
func (w *TraceWriter) WriteChunks(pkg *SampledChunks)
WriteChunks serializes the provided chunks, enqueueing them to be sent