View Source Hyperliquid.Telemetry (hyperliquid v0.2.2)
Telemetry events emitted by Hyperliquid.
API Events
These events are emitted by the endpoint DSL for all Info and Exchange API calls:
[:hyperliquid, :api, :request, :start]— Info API request started- Measurements:
%{system_time: integer} - Metadata:
%{module: module, request_type: String.t()}
- Measurements:
[:hyperliquid, :api, :request, :stop]— Info API request completed- Measurements:
%{duration: native_time} - Metadata:
%{module: module, request_type: String.t(), result: :ok}
- Measurements:
[:hyperliquid, :api, :request, :exception]— Info API request failed- Measurements:
%{duration: native_time} - Metadata:
%{module: module, request_type: String.t(), result: :error, reason: term}
- Measurements:
[:hyperliquid, :api, :exchange, :start]— Exchange API request started- Measurements:
%{system_time: integer} - Metadata:
%{module: module, action_type: String.t()}
- Measurements:
[:hyperliquid, :api, :exchange, :stop]— Exchange API request completed- Measurements:
%{duration: native_time} - Metadata:
%{module: module, action_type: String.t(), result: :ok}
- Measurements:
[:hyperliquid, :api, :exchange, :exception]— Exchange API request failed- Measurements:
%{duration: native_time} - Metadata:
%{module: module, action_type: String.t(), result: :error, reason: term}
- Measurements:
WebSocket Events
[:hyperliquid, :ws, :connect, :start]— Connection attempt started- Measurements:
%{system_time: integer} - Metadata:
%{key: String.t()}
- Measurements:
[:hyperliquid, :ws, :connect, :stop]— Connection established- Measurements:
%{duration: native_time} - Metadata:
%{key: String.t()}
- Measurements:
[:hyperliquid, :ws, :connect, :exception]— Connection failed- Measurements:
%{duration: native_time} - Metadata:
%{key: String.t(), reason: term}
- Measurements:
[:hyperliquid, :ws, :message, :received]— Message received- Measurements:
%{count: 1} - Metadata:
%{key: String.t()}
- Measurements:
[:hyperliquid, :ws, :disconnect]— Connection lost- Measurements:
%{} - Metadata:
%{key: String.t(), reason: term}
- Measurements:
WebSocket Manager Events
[:hyperliquid, :ws, :subscribe]— Subscription created- Measurements:
%{count: 1} - Metadata:
%{module: module, key: String.t()}
- Measurements:
[:hyperliquid, :ws, :unsubscribe]— Subscription removed- Measurements:
%{count: 1} - Metadata:
%{subscription_id: String.t()}
- Measurements:
Cache Events
[:hyperliquid, :cache, :init, :stop]— Cache initialization completed- Measurements:
%{duration: native_time} - Metadata:
%{}
- Measurements:
[:hyperliquid, :cache, :init, :exception]— Cache initialization failed- Measurements:
%{duration: native_time} - Metadata:
%{reason: term}
- Measurements:
[:hyperliquid, :cache, :refresh, :stop]— Cache refresh completed- Measurements:
%{duration: native_time} - Metadata:
%{}
- Measurements:
RPC Events
[:hyperliquid, :rpc, :request, :start]— RPC request started- Measurements:
%{system_time: integer} - Metadata:
%{method: String.t()}
- Measurements:
[:hyperliquid, :rpc, :request, :stop]— RPC request completed- Measurements:
%{duration: native_time} - Metadata:
%{method: String.t()}
- Measurements:
[:hyperliquid, :rpc, :request, :exception]— RPC request failed- Measurements:
%{duration: native_time} - Metadata:
%{method: String.t(), reason: term}
- Measurements:
Storage Events
[:hyperliquid, :storage, :flush, :stop]— Buffer flushed- Measurements:
%{record_count: integer, duration: native_time} - Metadata:
%{}
- Measurements:
Quick Setup
Hyperliquid.Telemetry.attach_default_logger()Telemetry.Metrics Example
defmodule MyApp.Telemetry do
import Telemetry.Metrics
def metrics do
[
summary("hyperliquid.api.request.stop.duration", unit: {:native, :millisecond}),
summary("hyperliquid.api.exchange.stop.duration", unit: {:native, :millisecond}),
counter("hyperliquid.ws.message.received.count"),
summary("hyperliquid.rpc.request.stop.duration", unit: {:native, :millisecond}),
last_value("hyperliquid.storage.flush.stop.record_count")
]
end
end
Summary
Functions
Attach a default logger that logs all Hyperliquid telemetry events at debug level.
Functions
@spec attach_default_logger() :: :ok
Attach a default logger that logs all Hyperliquid telemetry events at debug level.
Useful for quick debugging. Returns :ok.