AzureSDK.Core.Telemetry (Azure SDK v0.1.0)

Copy Markdown View Source

Telemetry helpers for AzureSDK operations.

Events

  • [:azure_sdk, :request, :start] — pipeline span started
  • [:azure_sdk, :request, :stop] — pipeline span finished with duration
  • [:azure_sdk, :request, :attempt] — emitted before each HTTP attempt
  • [:azure_sdk, :auth, :sign] — emitted when a request is signed
  • [:azure_sdk, :retry] — emitted on retry backoff
  • [:azure_sdk, :blob, :put | :get | :delete | ...] — service operations

Attach a handler:

:telemetry.attach(
  "ex-azure-logger",
  [:azure_sdk, :request, :stop],
  fn _event, measurements, metadata, _config ->
    IO.inspect({measurements, metadata}, label: "azure_sdk request")
  end,
  nil
)

Summary

Functions

Emits a per-attempt request telemetry event.

Emits an operation telemetry event for a service module.

Emits a signing telemetry event.

Wraps a function with request duration telemetry.

Functions

emit_attempt(metadata)

@spec emit_attempt(map()) :: :ok

Emits a per-attempt request telemetry event.

emit_operation(service, operation, metadata)

@spec emit_operation(atom(), atom(), map()) :: :ok

Emits an operation telemetry event for a service module.

emit_sign(metadata)

@spec emit_sign(map()) :: :ok

Emits a signing telemetry event.

span(metadata, fun)

@spec span(map(), (-> term())) :: term()

Wraps a function with request duration telemetry.