DataDog / datadog-go

go dogstatsd client library for datadog
MIT License
353 stars 132 forks source link

Add an API to send multiple samples at once #296

Closed iksaif closed 11 months ago

iksaif commented 11 months ago

DistributionSamples is similar to Distribution, but it lets the client deals with the sampling, rate is passed to the agent and not used for further sampling. WithMaxBufferedMetricsPerContext is ignored when using this method.

Because this is a shift compared to how other methods are behaving, this method is provided only in ClientDirect which provides direct access to some low level dogstatsd protocol features like DataDog/datadog-go#extended-aggregation

This is recommended in high performance cases were the overhead of the statsd library might be significant and the sampling is already done by the client.

NewDirect and NewDirectWithWriter can be used to instantiate a new direct client, mocks and noop clients are available.

replaces https://github.com/DataDog/datadog-go/pull/292