Tink.Telemetry (Tink v1.0.0)

Copy Markdown View Source

Telemetry integration. Attach handlers to these events in your application:

:telemetry.attach("tink-requests", [:tink, :request, :stop], &MyApp.handle_tink_event/4, nil)

Events

  • [:tink, :request, :start] — measurements: %{system_time: integer}, metadata: %{method, url}
  • [:tink, :request, :stop] — measurements: %{duration: integer}, metadata: %{method, url, status}
  • [:tink, :cache, :hit] — metadata: %{key}
  • [:tink, :cache, :miss] — metadata: %{key}
  • [:tink, :rate_limit, :check] — metadata: %{key, allowed}

Summary

Functions

Emit [:tink, :cache, :hit].

Emit [:tink, :cache, :miss].

Emit [:tink, :rate_limit, :check].

Emit [:tink, :request, :start].

Emit [:tink, :request, :stop] with duration and derived status.

Types

method()

@type method() :: :get | :post | :put | :patch | :delete

request_result()

@type request_result() :: {:ok, map()} | {:error, Tink.Error.t()}

Functions

cache_hit(key)

@spec cache_hit(String.t()) :: :ok

Emit [:tink, :cache, :hit].

cache_miss(key)

@spec cache_miss(String.t()) :: :ok

Emit [:tink, :cache, :miss].

rate_limit_check(key, allowed)

@spec rate_limit_check(String.t(), boolean()) :: :ok

Emit [:tink, :rate_limit, :check].

request_start(method, url)

@spec request_start(method(), String.t()) :: :ok

Emit [:tink, :request, :start].

request_stop(method, url, result, duration)

@spec request_stop(method(), String.t(), request_result(), integer()) :: :ok

Emit [:tink, :request, :stop] with duration and derived status.