Le bot de trading automatique a fonctionné pendant plus d'une semaine, puis un matin, il n'a pas réussi à capter le marché. C'est là que j'ai réalisé que le processus d'automatisation sur le serveur est complètement différent de celui qui tourne localement, il faut vraiment le surveiller pour être serein.
Ma méthode repose sur un système d'alerte multi-niveaux. D'abord, chaque fois que le cron s'exécute, je note le timestamp last_run_at, avec une précision à la seconde. Si lors de la prochaine vérification, je constate qu'il dépasse le double de l'intervalle prévu, je reçois immédiatement une alerte. Par exemple : si la configuration normale est de récupérer les données toutes les 15 minutes, alors 30 minutes sans mise à jour doit immédiatement éveiller les soupçons. Ce seuil est basé sur des données historiques, trop sensible entraîne de fausses alertes, trop lâche risque de laisser passer de véritables pannes. Dans la pratique, ce standard me permet de capturer les problèmes à leur naissance, je ne dois pas attendre qu'ils s'effondrent complètement pour le réaliser.
Ensuite, il y a le mécanisme de protection de l'API. Bien que l'interface de Binance soit stable, les fluctuations réseau ou la limitation de débit ne sont pas inévitables. Une ou deux échecs ne sont pas inquiétants, mais si j'ai trois appels consécutifs qui échouent, je déclenche automatiquement un circuit de protection, et l'ensemble du système arrête ses opérations pendant 24 heures. Cela évite de retenter frénétiquement pendant la panne, ce qui pourrait entraîner une perte encore plus grande de quota API ou des risques pour le compte. Le circuit de protection est en soi une forme de protection passive, mieux vaut tuer un processus par erreur que de laisser passer un problème.
Pour aller plus loin, chaque fois qu'une exécution réussie ou un post est complété, je prends un instantané de l'état sur disque. Je note le timestamp, le nombre d'opérations, le compteur d'erreurs, et la distribution des mots envoyés. Ainsi, je peux revoir 30 jours d'historique, ce qui est particulièrement utile lorsque j'analyse avec Python pandas, car cela révèle des tendances.
Enfin, je consacre 30 minutes par semaine à examiner manuellement le tableau de bord : le taux de publication hebdomadaire, le taux d'erreurs, et la distribution moyenne des mots présentent-ils des anomalies significatives. Parfois, je découvre des pannes invisibles que les alertes automatiques ont ratées, comme un taux de succès constant mais un délai clairement accru. Réparer tôt les petits problèmes évite qu'ils ne se transforment en grosses pannes.
Si la surveillance est bien faite, le processus d'automatisation peut vraiment fonctionner de manière stable en arrière-plan, permettant à la première ligne de se concentrer sur des décisions de niveau supérieur. C'est là que commence la vraie tranquillité d'esprit.
$BTC #DevOps #automatisation
Ma méthode repose sur un système d'alerte multi-niveaux. D'abord, chaque fois que le cron s'exécute, je note le timestamp last_run_at, avec une précision à la seconde. Si lors de la prochaine vérification, je constate qu'il dépasse le double de l'intervalle prévu, je reçois immédiatement une alerte. Par exemple : si la configuration normale est de récupérer les données toutes les 15 minutes, alors 30 minutes sans mise à jour doit immédiatement éveiller les soupçons. Ce seuil est basé sur des données historiques, trop sensible entraîne de fausses alertes, trop lâche risque de laisser passer de véritables pannes. Dans la pratique, ce standard me permet de capturer les problèmes à leur naissance, je ne dois pas attendre qu'ils s'effondrent complètement pour le réaliser.
Ensuite, il y a le mécanisme de protection de l'API. Bien que l'interface de Binance soit stable, les fluctuations réseau ou la limitation de débit ne sont pas inévitables. Une ou deux échecs ne sont pas inquiétants, mais si j'ai trois appels consécutifs qui échouent, je déclenche automatiquement un circuit de protection, et l'ensemble du système arrête ses opérations pendant 24 heures. Cela évite de retenter frénétiquement pendant la panne, ce qui pourrait entraîner une perte encore plus grande de quota API ou des risques pour le compte. Le circuit de protection est en soi une forme de protection passive, mieux vaut tuer un processus par erreur que de laisser passer un problème.
Pour aller plus loin, chaque fois qu'une exécution réussie ou un post est complété, je prends un instantané de l'état sur disque. Je note le timestamp, le nombre d'opérations, le compteur d'erreurs, et la distribution des mots envoyés. Ainsi, je peux revoir 30 jours d'historique, ce qui est particulièrement utile lorsque j'analyse avec Python pandas, car cela révèle des tendances.
Enfin, je consacre 30 minutes par semaine à examiner manuellement le tableau de bord : le taux de publication hebdomadaire, le taux d'erreurs, et la distribution moyenne des mots présentent-ils des anomalies significatives. Parfois, je découvre des pannes invisibles que les alertes automatiques ont ratées, comme un taux de succès constant mais un délai clairement accru. Réparer tôt les petits problèmes évite qu'ils ne se transforment en grosses pannes.
Si la surveillance est bien faite, le processus d'automatisation peut vraiment fonctionner de manière stable en arrière-plan, permettant à la première ligne de se concentrer sur des décisions de niveau supérieur. C'est là que commence la vraie tranquillité d'esprit.
$BTC #DevOps #automatisation