datadog-0.2.2.0: Datadog client for Haskell. Supports both the HTTP API and StatsD.

Safe HaskellNone
LanguageHaskell2010

Network.StatsD.Datadog

Contents

Description

DogStatsD accepts custom application metrics points over UDP, and then periodically aggregates and forwards the metrics to Datadog, where they can be graphed on dashboards. The data is sent by using a client library such as this one that communicates with a DogStatsD server.

Synopsis

Client interface

data DogStatsSettings Source #

Constructors

DogStatsSettings 

Fields

send :: (MonadBase IO m, ToStatsD v) => StatsClient -> v -> m () Source #

Send a Metric, Event, or StatusCheck to the DogStatsD server.

Since UDP is used to send the events, there is no ack that sent values are successfully dealt with.

withDogStatsD defaultSettings $ \client -> do
  send client $ event "Wombat attack" "A host of mighty wombats has breached the gates"
  send client $ metric "wombat.force_count" Gauge (9001 :: Int)
  send client $ serviceCheck "Wombat Radar" ServiceOk

Data supported by DogStatsD

metric :: ToMetricValue a => MetricName -> MetricType -> a -> Metric Source #

Smart Metric constructor. Use the lens functions to set the optional fields.

data MetricType Source #

Constructors

Gauge

Gauges measure the value of a particular thing at a particular time, like the amount of fuel in a car’s gas tank or the number of users connected to a system.

Counter

Counters track how many times something happened per second, like the number of database requests or page views.

Timer

StatsD only supports histograms for timing, not generic values (like the size of uploaded files or the number of rows returned from a query). Timers are essentially a special case of histograms, so they are treated in the same manner by DogStatsD for backwards compatibility.

Histogram

Histograms track the statistical distribution of a set of values, like the duration of a number of database queries or the size of files uploaded by users. Each histogram will track the average, the minimum, the maximum, the median and the 95th percentile.

Set

Sets are used to count the number of unique elements in a group. If you want to track the number of unique visitor to your site, sets are a great way to do that.

event :: Text -> Text -> Event Source #

Smart Event constructor. Use the lens functions to set the optional fields.

data ServiceCheckStatus Source #

Instances

Enum ServiceCheckStatus Source # 
Eq ServiceCheckStatus Source # 
Ord ServiceCheckStatus Source # 
Read ServiceCheckStatus Source # 
Show ServiceCheckStatus Source # 
HasStatus ServiceCheck ServiceCheckStatus Source # 

class ToStatsD a Source #

Convert an Event, Metric, or StatusCheck to their wire format.

Minimal complete definition

toStatsD

Optional fields

data Tag Source #

Tags are a Datadog specific extension to StatsD. They allow you to tag a metric with a dimension that’s meaningful to you and slice and dice along that dimension in your graphs. For example, if you wanted to measure the performance of two video rendering algorithms, you could tag the rendering time metric with the version of the algorithm you used.

tag :: Text -> Text -> Tag Source #

Create a tag from a key-value pair. Useful for slicing and dicing events in Datadog.

Key and value text values are normalized by converting ":"s, "|"s, and "@"s to underscores ("_").

class ToMetricValue a where Source #

Converts a supported numeric type to the format understood by DogStatsD. Currently limited by BufferBuilder encoding options.

Minimal complete definition

encodeValue

Methods

encodeValue :: a -> Utf8Builder () Source #

value :: ToMetricValue a => Setter Metric Metric (Utf8Builder ()) a Source #

Special setter to update the value of a Metric.

metric ("foo"" :: Text) Counter (1 :: Int) & value .~ (5 :: Double)

class HasName s a | s -> a where Source #

Minimal complete definition

name

Methods

name :: Lens' s a Source #

class HasSampleRate s a | s -> a where Source #

Minimal complete definition

sampleRate

Methods

sampleRate :: Lens' s a Source #

class HasType' s a | s -> a where Source #

Minimal complete definition

type'

Methods

type' :: Lens' s a Source #

class HasTags s a | s -> a where Source #

Minimal complete definition

tags

Methods

tags :: Lens' s a Source #

class HasTitle s a | s -> a where Source #

Minimal complete definition

title

Methods

title :: Lens' s a Source #

class HasText s a | s -> a where Source #

Minimal complete definition

text

Methods

text :: Lens' s a Source #

class HasHostname s a | s -> a where Source #

Minimal complete definition

hostname

Methods

hostname :: Lens' s a Source #

class HasAggregationKey s a | s -> a where Source #

Minimal complete definition

aggregationKey

class HasPriority s a | s -> a where Source #

Minimal complete definition

priority

Methods

priority :: Lens' s a Source #

class HasSourceTypeName s a | s -> a where Source #

Minimal complete definition

sourceTypeName

class HasAlertType s a | s -> a where Source #

Minimal complete definition

alertType

Methods

alertType :: Lens' s a Source #

class HasHost s a | s -> a where Source #

Minimal complete definition

host

Methods

host :: Lens' s a Source #

class HasPort s a | s -> a where Source #

Minimal complete definition

port

Methods

port :: Lens' s a Source #

class HasStatus s a | s -> a where Source #

Minimal complete definition

status

Methods

status :: Lens' s a Source #

class HasMessage s a | s -> a where Source #

Minimal complete definition

message

Methods

message :: Lens' s a Source #

Dummy client

data StatsClient Source #

Note that Dummy is not the only constructor, just the only publicly available one.

Constructors

Dummy

Just drops all stats.