View Source DataDaemon (Data Daemon v0.4.3-pre0)

DataDog StatsD reporter.

Quick Setup

# In your config/config.exs file
config :my_app, Sample.DataDog,
  url: "statsd+udp://localhost:8125"

# In your application code
defmodule Sample.DataDog do
  @moduledoc ~S"My DataDog reporter."
  use DataDaemon,
    otp_app: :my_app,
    extensions: [:datadog]
end

defmodule Sample.App do
  alias Sample.DataDog

  def send_metrics do
    Sample.DataDog.start_link()

    tags = [zone: "us-east-1a"]

    DataDog.gauge("request.queue_depth", 12, tags: tags)

    DataDog.distribution("connections", 123, tags: tags)
    DataDog.histogram("request.file_size", 1034, tags: tags)

    DataDog.timing("request.duration", 34, tags: tags)

    DataDog.increment("request.count_total", tags: tags)
    DataDog.decrement("request.count_total", tags: tags)
    DataDog.count("request.count_total", 2, tags: tags)
  end
end

Summary

Types

Metric key.

Metric tag value.

Metric tags.

Supported metric types.

Possible metric values.

Functions

DataDog StatsD reporter.

Types

@type key() :: iodata()

Metric key.

@type tag() ::
  :atom | String.Chars.t() | {:system, String.t()} | {:config, atom(), atom()}

Metric tag value.

@type tags() :: [tag() | {tag(), tag()}]

Metric tags.

@type type() :: :counter | :gauge | :histogram | :set | :timing | String.t()

Supported metric types.

@type value() :: integer() | float() | String.t()

Possible metric values.

Functions

Link to this macro

__using__(opts \\ [])

View Source (macro)

DataDog StatsD reporter.

Quick Setup

# In your config/config.exs file
config :my_app, Sample.DataDog,
  url: "statsd+udp://localhost:8125"

# In your application code
defmodule Sample.DataDog do
  @moduledoc ~S"My DataDog reporter."
  use DataDaemon,
    otp_app: :my_app,
    extensions: [:datadog]
end

defmodule Sample.App do
  alias Sample.DataDog

  def send_metrics do
    Sample.DataDog.start_link()

    tags = [zone: "us-east-1a"]

    DataDog.gauge("request.queue_depth", 12, tags: tags)

    DataDog.distribution("connections", 123, tags: tags)
    DataDog.histogram("request.file_size", 1034, tags: tags)

    DataDog.timing("request.duration", 34, tags: tags)

    DataDog.increment("request.count_total", tags: tags)
    DataDog.decrement("request.count_total", tags: tags)
    DataDog.count("request.count_total", 2, tags: tags)
  end
end