Monitoreo
Si ejecutas Stellar RPC con el --admin-endpoint
configurado y expones el puerto, tendrás acceso a las métricas de Prometheus a través del endpoint /metrics
. Por ejemplo, si el admin endpoint es 0.0.0.0:8001
y estás ejecutando la imagen Docker de Stellar RPC:
curl localhost:8001/metrics
Verás muchas de las métricas predeterminadas de Go y Process (prefijadas por go_
y process_
respectivamente) como uso de memoria, uso de CPU, número de hilos, etc.
También exponemos métricas relacionadas con Stellar RPC (prefijadas por soroban_rpc
). Hay muchas, pero algunas notables son:
soroban_rpc_transactions_count
- conteo de transacciones ingeridas con una ventana dinámica de 10msoroban_rpc_events_count
- conteo de eventos ingeridos con una ventana dinámica de 10msoroban_rpc_ingest_local_latest_ledger
- último ledger ingeridosoroban_rpc_db_round_trip_time_seconds
- tiempo requerido para ejecutar la consultaSELECT 1
en la BASE DE DATOS
Stellar RPC también proporciona registro en consola para:
- Actividad de inicio
- Ingerir, aplicar y cerrar ledgers
- Manejar solicitudes JSON RPC
- Cualquier error
Los registros tienen el formato:
time=<timestamp in YYYY-MM-DDTHH:MM:SS.000Z format> level=<debug|info|error> msg=<Actual message> pid=<process ID> subservice=<optional if coming from subservice>
Dashboard de Grafana
Proporcionamos un dashboard de Grafana con diferentes métricas para monitorear tu instancia de RPC.
Verificar la instancia de RPC
Después de la instalación, valdrá la pena verificar que la instalación de Stellar RPC esté saludable. Hay dos métodos:
- Accede al endpoint de estado de salud del servicio JSON RPC usando un cliente HTTP
- Usa nuestra imagen Docker de prueba del sistema como herramienta para ejecutar un conjunto de pruebas en vivo contra Stellar RPC
Endpoint de estado de salud
Si envías una solicitud HTTP JSON RPC a tu instancia de Stellar RPC en ejecución:
curl --location 'http://localhost:8000' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc":"2.0",
"id":2,
"method":"getHealth"
}'
Deberías recibir una respuesta de estado HTTP 200 si la instancia está saludable:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"status": "healthy"
}
}
Imagen Docker de prueba del sistema
Esta prueba compilará, desplegará e invocará contratos de ejemplo a la red a la que tu instancia de RPC está conectada. Aquí hay un ejemplo para verificar tu instancia si está conectada a Testnet:
# checkout https://github.com/stellar/system-test repo first, and build the image locally with release component versions
system-test$ make \
CORE_IMAGE=stellar/stellar-core:22 \
CORE_IMAGE_BIN_PATH=/usr/bin/stellar-core \
SOROBAN_RPC_GIT_REF=https://github.com/stellar/soroban-rpc.git#v22.1.2 \
SOROBAN_CLI_GIT_REF=https://github.com/stellar/soroban-cli.git#v22.2.0 \
RS_XDR_GIT_REF=v22.1.0 \
JS_STELLAR_SDK_NPM_VERSION=13.1.0 \
build
# run the local system test image
$ docker run --rm -t --name e2e_test \
stellar/system-test:dev \
--VerboseOutput true \
--TargetNetworkRPCURL <your rpc url here> \
--TargetNetworkPassphrase "Test SDF Network ; September 2015" \
--TargetNetworkTestAccountSecret <your test account StrKey encoded key here > \
--TargetNetworkTestAccountPublic <your test account StrKey encoded pubkey here> \
Asegúrate de configurar correctamente la prueba del sistema:
- Establece
--TargetNetworkRPCURL
en tu URL HTTP RPC - Establece
--TargetNetworkPassphrase
en la misma red a la que está conectada tu instancia de RPC: "Test SDF Network ; Septiembre 2015"
para Testnet"Test SDF Future Network ; Octubre 2022"
para Futurenet- Establece
--SorobanExamplesGitHash
en la etiqueta de lanzamiento correspondiente en el repositorio de Ejemplos de Soroban - Crea y financia una cuenta que se utilizará para propósitos de prueba en la misma red a la que está conectada tu instancia de RPC
- Esta cuenta necesita un pequeño saldo de XLM para enviar transacciones Soroban
- Las pruebas se pueden realizar repetidamente con la misma cuenta
- Establece
--TargetNetworkTestAccountPublic
en la clave pública codificadaStrKey
de la cuenta - Establece
--TargetNetworkTestAccountSecret
en el secreto codificadoStrKey
para la cuenta