Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DDEvent ¶
type DDEvent struct { Title string `json:"msg_title"` Text string `json:"msg_text"` Timestamp int64 `json:"timestamp,omitempty"` // represented as a unix epoch Hostname string `json:"host,omitempty"` Aggregation string `json:"aggregation_key,omitempty"` Priority string `json:"priority,omitempty"` Source string `json:"source_type_name,omitempty"` AlertType string `json:"alert_type,omitempty"` Tags []string `json:"tags,omitempty"` }
DDEvent represents the structure of datadog's undocumented /intake endpoint
type DDMetric ¶
type DDMetric struct { Name string `json:"metric"` Value [1][2]float64 `json:"points"` Tags []string `json:"tags,omitempty"` MetricType string `json:"type"` Hostname string `json:"host,omitempty"` DeviceName string `json:"device_name,omitempty"` Interval int32 `json:"interval,omitempty"` }
DDMetric is a data structure that represents the JSON that Datadog wants when posting to the API
type DDServiceCheck ¶
type DDServiceCheck struct { Name string `json:"check"` Status int `json:"status"` Hostname string `json:"host_name"` Timestamp int64 `json:"timestamp,omitempty"` // represented as a unix epoch Tags []string `json:"tags,omitempty"` Message string `json:"message,omitempty"` }
DDServiceCheck is a representation of the service check.
type DatadogMetricSink ¶
type DatadogMetricSink struct { HTTPClient *http.Client APIKey string DDHostname string // contains filtered or unexported fields }
func NewDatadogMetricSink ¶
func NewDatadogMetricSink(interval float64, flushMaxPerBody int, hostname string, tags []string, ddHostname string, apiKey string, httpClient *http.Client, log *logrus.Logger) (*DatadogMetricSink, error)
NewDatadogMetricSink creates a new Datadog sink for trace spans.
func (*DatadogMetricSink) Flush ¶
func (dd *DatadogMetricSink) Flush(ctx context.Context, interMetrics []samplers.InterMetric) error
Flush sends metrics to Datadog
func (*DatadogMetricSink) FlushOtherSamples ¶
func (dd *DatadogMetricSink) FlushOtherSamples(ctx context.Context, samples []ssf.SSFSample)
FlushOtherSamples serializes Events or Service Checks directly to datadog. May make 2 external calls to the datadog client.
func (*DatadogMetricSink) Name ¶
func (dd *DatadogMetricSink) Name() string
Name returns the name of this sink.
type DatadogSpanSink ¶
DatadogSpanSink is a sink for sending spans to a Datadog trace agent.
func NewDatadogSpanSink ¶
func NewDatadogSpanSink(address string, bufferSize int, httpClient *http.Client, log *logrus.Logger) (*DatadogSpanSink, error)
NewDatadogSpanSink creates a new Datadog sink for trace spans.
func (*DatadogSpanSink) Flush ¶
func (dd *DatadogSpanSink) Flush()
Flush signals the sink to send it's spans to their destination. For this sync it means we'll be making an HTTP request to send them along. We assume it's beneficial to performance to defer these until the normal 10s flush.
func (*DatadogSpanSink) Ingest ¶
func (dd *DatadogSpanSink) Ingest(span *ssf.SSFSpan) error
Ingest takes the span and adds it to the ringbuffer.
func (*DatadogSpanSink) Name ¶
func (dd *DatadogSpanSink) Name() string
Name returns the name of this sink.
type DatadogTraceSpan ¶
type DatadogTraceSpan struct { Duration int64 `json:"duration"` Error int64 `json:"error"` Meta map[string]string `json:"meta"` Metrics map[string]float64 `json:"metrics"` Name string `json:"name"` ParentID int64 `json:"parent_id,omitempty"` Resource string `json:"resource,omitempty"` Service string `json:"service"` SpanID int64 `json:"span_id"` Start int64 `json:"start"` TraceID int64 `json:"trace_id"` Type string `json:"type"` }
DatadogTraceSpan represents a trace span as JSON for the Datadog tracing API.