TelemetryDeck.Client (telemetry_deck v0.1.0)

Copy Markdown View Source

Sends TelemetryDeck.Signal data to TelemetryDeck Ingest API v2.

TelemetryDeck.Client posts signals as the JSON array shape expected by TelemetryDeck. A custom request function can be provided through TelemetryDeck.Config for tests or alternate HTTP behavior.

Summary

Functions

send(config, signal)

(since 0.1.0)

Sends one TelemetryDeck.Signal.

Returns {:ok, %TelemetryDeck.Response{}} for 2xx responses and {:error, %TelemetryDeck.Error{}} for request failures or non-2xx responses.

Examples

iex> config =
...>   TelemetryDeck.Config.new!(
...>     namespace: "acme",
...>     app_id: "APP-ID",
...>     request_fun: fn _url, _opts -> {:ok, %Req.Response{status: 202, body: "accepted"}} end
...>   )
iex> signal = TelemetryDeck.Signal.new!(type: "App.started", client_user: "user-hash")
iex> TelemetryDeck.Client.send(config, signal)
{:ok, %TelemetryDeck.Response{status: 202, body: "accepted"}}

send_batch(config, signals)

(since 0.1.0)

Sends multiple TelemetryDeck.Signal structs in one request.

TelemetryDeck Ingest API v2 accepts an array of signal objects, so batching is the natural transport shape for this client.