The Erst daemon exposes Prometheus metrics at the /metrics endpoint when running in daemon mode. These metrics track the health and performance of remote Stellar nodes (Horizon and Soroban RPC endpoints) used during simulation operations.
Type: GaugeDescription: Unix timestamp (in seconds) of the last successful simulation response from a remote node.Labels:
node_address: The RPC URL or identifier of the remote node (e.g., https://soroban-testnet.stellar.org)
network: The Stellar network (testnet, mainnet, futurenet)
Purpose: This metric enables staleness alerting by tracking when each remote node last successfully responded. The timestamp is only updated on successful responses.
# HELP remote_node_last_response_timestamp_seconds Unix timestamp of the last successful simulation response from a remote node# TYPE remote_node_last_response_timestamp_seconds gaugeremote_node_last_response_timestamp_seconds{network="testnet",node_address="https://horizon-testnet.stellar.org/"} 1.709123456e+09remote_node_last_response_timestamp_seconds{network="testnet",node_address="https://soroban-testnet.stellar.org"} 1.709123457e+09# HELP remote_node_response_duration_seconds Duration of simulation requests to remote nodes in seconds# TYPE remote_node_response_duration_seconds histogramremote_node_response_duration_seconds_bucket{network="testnet",node_address="https://soroban-testnet.stellar.org",le="0.005"} 0remote_node_response_duration_seconds_bucket{network="testnet",node_address="https://soroban-testnet.stellar.org",le="0.1"} 1remote_node_response_duration_seconds_bucket{network="testnet",node_address="https://soroban-testnet.stellar.org",le="0.5"} 10remote_node_response_duration_seconds_bucket{network="testnet",node_address="https://soroban-testnet.stellar.org",le="+Inf"} 20remote_node_response_duration_seconds_sum{network="testnet",node_address="https://soroban-testnet.stellar.org"} 8.5remote_node_response_duration_seconds_count{network="testnet",node_address="https://soroban-testnet.stellar.org"} 20# HELP remote_node_response_total Total number of simulation responses from remote nodes by status# TYPE remote_node_response_total counterremote_node_response_total{network="testnet",node_address="https://soroban-testnet.stellar.org",status="success"} 18remote_node_response_total{network="testnet",node_address="https://soroban-testnet.stellar.org",status="error"} 2# HELP simulation_execution_total Total number of simulation executions by status# TYPE simulation_execution_total countersimulation_execution_total{status="success"} 45simulation_execution_total{status="error"} 3
The metrics are automatically recorded at the following points:
Remote node responses
Metrics are recorded in internal/rpc/client.go for:
GetTransaction calls to Horizon
GetLedgerEntries calls to Soroban RPC
Other RPC methods that interact with remote nodes
Simulation executions
Metrics are recorded in internal/simulator/runner.go for every simulation run.
Timestamp updates
The remote_node_last_response_timestamp_seconds gauge is only updated on successful responses, ensuring it accurately reflects the last time the node was healthy.