Saltar al contenido principal

Monitorización

Un relayer que se detiene sin avisar deja paquetes pendientes, así que conviene vigilarlo. Esta página enumera lo que QORel expone (telemetría de Prometheus, un endpoint REST opcional, registros y comandos) y sobre qué configurar alertas. Está dirigida a operadores que ejecutan un relayer para un canal que les importa.

Innovaciones​

  • Una comprobación del estado de la clave poscuántica que puedes automatizar. qorel keys pqc-status imprime un objeto JSON cuyo campo ready_to_relay es true solo cuando la clave está registrada en la cadena y coincide con la clave local. Una alerta sobre ese campo detecta una clave ausente o modificada antes de que se rechace al relayer.
  • Fallos que no detienen el relé en silencio. Los workers de paquetes siguen en marcha y reintentan en cada intervalo de despeje tras un intento fallido de relé o de despeje, de modo que un límite de peticiones breve aparece como avisos en el registro y no como un canal bloqueado.
  • Una comprobación previa al envío con motivo. Cuando la comprobación previa rechaza una transacción (clave no registrada, clave que no coincide, versión de los bytes de firma desconocida), no se envía nada y el motivo se registra y lo muestra qorel health-check.

Cómo se usa​

Telemetría​

Actívala en la configuración:

[telemetry]
enabled = true
host = '127.0.0.1'
port = 3001

Las métricas se sirven en formato Prometheus en http://127.0.0.1:3001/metrics. Son las métricas de Hermes; Prometheus muestra los contadores con el sufijo _total. Las que merece la pena graficar:

MétricaPor qué
workersNúmero de workers en ejecución por tipo; una caída significa que un worker se ha detenido.
backlog_size, backlog_oldest_sequencePaquetes en espera en un canal y la secuencia más antigua que sigue esperando.
wallet_balanceEl saldo del relayer en cada cadena.
receive_packets_confirmed, acknowledgment_packets_confirmed, timeout_packets_confirmedPaquetes retransmitidos. Una línea plana mientras crece el backlog indica un bloqueo.
client_updates_submitted, client_misbehaviours_submittedMantenimiento del cliente ligero e informes de comportamiento indebido.
broadcast_errors, simulate_errorsTransacciones rechazadas o que fallaron al simular.
ws_reconnectReconexiones de WebSocket; muchas seguidas apuntan a un endpoint inestable.
tx_latency_submitted, tx_latency_confirmedCuánto tardan las transacciones.

Hermes documenta el conjunto completo en su guía de telemetría. El listener está en 127.0.0.1 en la configuración de ejemplo; coloca tu recolector de Prometheus en el mismo host o cambia host deliberadamente.

Sobre qué configurar alertas​

QuéDónde
Proceso activoEl endpoint de telemetría responde
Paquetes y confirmaciones pendientes en tus canalesqorel query packet pending --chain <id> --port transfer --channel <channel>
Saldo del relayer en cada cadenaqorel keys balance --chain <id>, o wallet_balance
Clave poscuántica listaqorel keys pqc-status informa ready_to_relay: true
Frescura del clienteQORel actualiza un cliente a un tercio de su periodo de confianza; configura una alerta si un cliente no se ha actualizado durante aproximadamente la mitad de ese periodo
Erroresbroadcast_errors y simulate_errors en aumento

Una pequeña comprobación del estado de la clave, adecuada para cron o un agente de monitorización:

qorel --json keys pqc-status --chain qorechain-diana | jq -e '.result.ready_to_relay == true'

Termina con un código distinto de cero cuando la clave no está lista.

Registros​

log_level = 'info' en [global] es el valor por defecto. Con el paquete de systemd, los registros van al journal:

journalctl -u qorel -f

Aparece una línea de registro que empieza por post-quantum sign bytes cuando QORel lee de la cadena la versión de los bytes de firma y esta cambia. Los avisos sobre respuestas 429 de un endpoint significan que el endpoint aplica un límite de peticiones; QORel reintenta.

Endpoint REST​

El servidor REST opcional ([rest] en la configuración, puerto 3000 en el ejemplo, desactivado por defecto) expone el estado del relayer para inspeccionarlo. Déjalo enlazado a 127.0.0.1.

Comprobaciones manuales​

qorel health-check
qorel keys pqc-status --chain qorechain-diana
qorel query packet pending --chain qorechain-diana --port transfer --channel channel-0
curl -s https://api-testnet.qore.host/ibc/core/channel/v1/channels

Cómo acceder​

  • La telemetría y REST son locales al host del relayer; ambos quedan fuera de la red pública salvo que los expongas.
  • Los comandos qorel leen el mismo archivo de configuración que el relayer.
  • El endpoint REST público de la testnet de QoreChain (https://api-testnet.qore.host) muestra el estado de canales y de las trazas de tokens; consulta Conectarse a la testnet.

Dónde se publica​

La monitorización forma parte del binario qorel; no hay nada aparte que instalar. Código fuente y guía de telemetría de Hermes: qorechain/QORel, hermes.informal.systems.

Límites y problemas conocidos​

  • Sin panel alojado. QORel no incluye paneles ni reglas de alerta; constrúyelos a partir de las métricas anteriores.
  • Los nombres de las métricas son los de Hermes. QORel no añade métricas poscuánticas en 0.1.0; usa keys pqc-status para ese estado.
  • Los límites de peticiones son normales en endpoints públicos. Configura alertas sobre un backlog sostenido, no sobre avisos 429 aislados.
  • Solo testnet. Nada de esto se ha ejecutado contra un canal de mainnet.