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
Sends one TelemetryDeck.Signal.
Sends multiple TelemetryDeck.Signal structs in one request.
Functions
@spec send(TelemetryDeck.Config.t(), TelemetryDeck.Signal.t()) :: {:ok, TelemetryDeck.Response.t()} | {:error, TelemetryDeck.Error.t()}
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"}}
@spec send_batch(TelemetryDeck.Config.t(), [TelemetryDeck.Signal.t()]) :: {:ok, TelemetryDeck.Response.t()} | {:error, TelemetryDeck.Error.t()}
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.