TelemetryDeck.Config (telemetry_deck v0.1.0)

Copy Markdown View Source

Runtime configuration for TelemetryDeck Ingest API v2.

A TelemetryDeck.Config contains the namespace endpoint, app ID, test-mode flag, and request function used by TelemetryDeck.Client.

Summary

Types

Function used by TelemetryDeck.Client to perform an HTTP request.

t()

Configuration for TelemetryDeck Ingest API v2.

Types

request_fun()

(since 0.1.0)
@type request_fun() :: (String.t(), keyword() ->
                    {:ok, Req.Response.t()} | {:error, term()})

Function used by TelemetryDeck.Client to perform an HTTP request.

t()

(since 0.1.0)
@type t() :: %TelemetryDeck.Config{
  app_id: String.t(),
  endpoint: String.t(),
  is_test_mode: boolean(),
  namespace: String.t(),
  request_fun: request_fun()
}

Configuration for TelemetryDeck Ingest API v2.

Functions

ingest_url(config)

(since 0.1.0)
@spec ingest_url(t()) :: String.t()

Returns the Ingest API v2 URL for a TelemetryDeck.Config.

Examples

iex> config = TelemetryDeck.Config.new!(namespace: "acme", app_id: "APP-ID")
iex> TelemetryDeck.Config.ingest_url(config)
"https://nom.telemetrydeck.com/v2/namespace/acme/"

new(opts)

(since 0.1.0)
@spec new(keyword() | map()) :: {:ok, t()} | {:error, map()}

Builds a TelemetryDeck.Config.

Required options are :namespace and :app_id. Optional values are :endpoint, :is_test_mode, and :request_fun.

Examples

iex> {:ok, config} = TelemetryDeck.Config.new(namespace: "acme", app_id: "APP-ID")
iex> TelemetryDeck.Config.ingest_url(config)
"https://nom.telemetrydeck.com/v2/namespace/acme/"

iex> TelemetryDeck.Config.new([])
{:error, %{app_id: "is required", namespace: "is required"}}

new!(opts)

(since 0.1.0)
@spec new!(keyword() | map()) :: t()

Builds a TelemetryDeck.Config or raises ArgumentError.