Je fais une Amazone AWS Tinkering pour un projet qui tire une quantité décente de données. La majorité des services ont été super bon marché, cependant, le stockage de journal pour Cloud Watch est dominant la facture, le stockage des journaux de surveillance de nuages est de 13 $ la facture totale de 18 $. Je supprimons déjà des journaux comme je vais. p>
Comment puis-je vous débarrasser des bûches du stockage (enlever les groupes de la console ne semble pas le faire) ou réduire le coût des journaux ( Ce message indiquait qu'il devrait être 0,03 $ / gb que le mien est supérieur à cela) ou autre chose? p>
Quelles stratégies utilisent les personnes? P>
3 Réponses :
On dirait que vous devez modifier le Paramètres de conservation du journal a > Pour que vous ne reteniez pas autant de données de journal. p>
Cette page répertorie la tarification actuelle des journaux CloudWatch et Cloudwatch. Si vous pensez que vous êtes surchargé, vous devez contacter le support AWS. P>
Même avec la rétention définie au minimum, les coûts de transfert sont ce qui m'accumulait pour moi. C'est certainement quelque chose qui pourrait importer à long terme cependant.
Il y a 2 composants au prix que vous payez:
1) Frais d'ingestion: vous payez lorsque vous envoyez / téléchargez les journaux de
2) Coûts de stockage: vous payez pour garder les journaux autour. p>
Les coûts de stockage sont très bas (3cents / Go, donc devinant que ce n'est pas le problème - c'est-à-dire que l'utilisation accrue est un hareng rouge - qui vous coûte 3 cents de la facture Total Cloudwatch). Vous payez pour l'ingestion quand cela se produit. Le seul moyen réel de réduire ce qui consiste à réduire la quantité de journalisation que vous faites et / ou arrêtez d'utiliser CloudWatch. P>
Pouvez-vous nous dire combien de journaux / heures vous poussez? p>
Une chose que j'ai apprise au fil des ans, c'est que la journalisation multi-niveaux est Nice ( Pour l'enregistrement, j'ai payé plus de 1000 $ / Mo pour la journalisation des projets précédents. La conformité PCI pour les audits de sécurité nécessite 2 années de journaux et nous envoyions des milliers de journaux par seconde. P>
J'ai même donné des discussions sur la façon dont vous devriez tout enregistrer dans son contexte: p>
http: // Go-Talks .appspot.com / github.com / eduncan911 / glisse / gologit.slide # 1 p>
j'ai depuis rétracté de cette position forte> em> après avoir analysé mes applications et les funcs et les coûts globaux de la main-d'œuvre et du stockage de journal dans la production. P>
Je ne connecte maintenant que les packages minimaux (erreurs) et utilisez des packages qui nient l'évaluation au moment de l'exécution si le niveau de journalisation n'est pas défini, tel que Google's De plus, depuis le début du développement de Go, j'ai adopté la stratégie de très petites quantités de code (par exemple, des microservices et des packages) et des utilisateurs de cli dédiés qui nient la nécessité de disposer de nombreux Enfin, avec des tests d'unités de ces petits services, vous pouvez être assuré de la manière dont votre code est actionné - comme vous n'aurez pas besoin de ces Tout cela réduit fondamentalement vos besoins de journalisation à la fin. P>
Comment expédiez-vous vos journaux? P>
Si vous ne pouvez pas exclure tous les déboges, les infos et autres lignes, une autre idée est de filtrer vos journaux avant de les expédier à l'aide de Lorsque vous devez déboguer quelque chose, c'est lorsque vous modifiez le SED / AWK et envoyez les informations de journal supplémentaires. Lorsque vous avez fait le débogage, revenez au filtrage et enregistrez uniquement les exceptions et erreurs minimales telles que les exceptions et les erreurs. P> débogage code>,
info code>,
warn code>, < Code> Erreur code>,
fatal code>), il a deux inconvénients graves: p>
avertir code>,
Error code> et
fatal code> ", Débogou et informations sont toujours évaluées au moment de l'exécution! LI>
GLOG code>. P>.
blockQuote>
débogage code> et
Info Code> Déclarations dans les piles monolithiques - Si je peux simplement enregistrer le RPC à / de chaque service à la place. Mieux encore - il suffit de surveiller le bus d'événement. P>
info code> et
débogage code> de débogage car Vos tests montrent les bonnes et les mauvaises conditions d'entrée. Ces informations sur les informations et les déboges peuvent aller à l'intérieur de vos tests de l'unité, laissant votre code sans préoccupations transversales. P>
Alternative: filtrez vos journaux h2>
SED code>,
awk code> ou similaire à pipe à un autre fichier. p>
Il suffit de vous connecter à l'aide de la commande de console NODE.JS par défaut, c'est un nouveau projet et je n'ai tenu à vous connecter de suivre les différentes pièces et de vous assurer que les choses circulent correctement. J'ai réduit la journalisation à votre suggestion, mais je suis un peu confus à la deuxième question. Je ne les expédie pas n'importe où? Tout est fait avec AWS Services.
Pour la 2e partie (filtrage), comment envoyez-vous la sortie de journal code> code> à AWS? Utilisation d'un package code> nodejs code> pour parler directement à l'API AWS? Ou éventuellement utiliser des services gérés AWS comme Lambda qui lirait la sortie console.log code> pour vous? Si celles-ci sont le cas, vous ne pouvez pas filtrer - vous êtes tout directement à la force de l'API. Vous êtes seule l'option est de réduire la quantité de journalisation. Sur EC2 VMS, vous pouvez installer un agent
agent code> qui lira la sortie du logfile de votre application et de l'expédier à AWS. Si tel est le cas, vous pouvez tuyer la sortie avec
sed code> pour filtrer.
Si vous utilisez un service géré, vous pouvez envisager de migrer vers un package de nivellement de journal, au lieu de console.log code>, vous pouvez donc vous enregistrer définir différents niveaux tels que
trace code> ,
info code>,
avertir code>,
erreur code> et ainsi de suite au moment de l'exécution (démarrage de l'application). Recherche Google rapide Arrivant de nombreuses saveurs . Ensuite, en production, réglez-le sur le journal
avertir code> et inférieur (
erreur code> et
fatal code>) et ignore le reste (sauf si vous n'avez pas besoin de déboguer). Par exemple, effectuez un
sed code> et remplacez tout
console.log ( code> avec
log.trace ( code> pour démarrer. Ensuite, revenez et faites de manière sélective < Code> log.Error code>.
Ouais, en utilisant Lambda, tout va juste dans les journaux. En train de le réduire considérablement. Merci beaucoup
Je ne sais pas si cela aide mais je mets des conseils pour que les flux de journaux génèrent les données comme réponse à une réponse à Stackoverflow.com/Questtions/43327714/...