Skip to main content

Observabilité des erreurs (swing positions)

1. Contrat errorCode

  • Chaque activité d’échec exchange pertinente inclut context.errorCode (voir error-map.json).
  • Les logs structurés (logError) incluent les mêmes champs : errorCode, positionId, exchangePair, activityType, spec: swing-positions/observability-errors.

2. errorFlags sur swingPosition

En plus des flags d’intégrité existants (RELATIVE_AMOUNT_INCONSISTENT, TP2_BEFORE_TP1, etc.) : Objectif : requêtes Mongo / alertes sans parser tout le tableau activity.

3. BetterStack (recommandations)

Configurer des vues / alertes sur les champs JSON des logs applicatifs (adapter au format exact de ton shipper) :
  • Critique : errorFlags contient TP_EXCHANGE_ERROR_STALLED ou errorCode répété > N fois / 15 min pour un même positionId.
  • Warning : errorCode = EXCHANGE_MIN_AMOUNT ou flag REPEATED_TP_EXCHANGE_ERROR.
  • Réduction de bruit : ne pas alerter sur le même positionId + même errorCode plus d’une fois par heure sans variation (déduplication côté BetterStack si disponible).
Le mapping détaillé des requêtes suggérées est dans error-map.json.

4. Audits MongoDB (exemples)

À exécuter dans Compass, mongosh ou via MCP (lecture seule). Positions RUNNING avec erreurs TP répétées (aperçu) :
Dernière activité = erreur TP (pipeline indicatif) :
Les requêtes d’audit réutilisables sont dans scripts/mongo/README.md.

5. Fichiers liés