2009-03-04 6 views
2

J'ai besoin de collecter des statistiques de mon application serveur écrite en python. Je suis à la recherche de quelques conseils généraux sur la façon de configurer les modèles et exactement comment stocker les informations statistiques. Je pensais stocker et organiser toutes ces informations dans une base de données, mais ma mise en œuvre s'avère trop spécifique.Comment les applications collectent-elles les statistiques?

J'ai besoin de recueillir des statistiques comme les utilisateurs actifs, les demandes traitées et d'autres choses de ce genre au fil du temps. Y at-il des guides ou des techniques pour créer des systèmes de stockage de statistiques plus génériques?

Répondre

2

Comme la plupart des solutions logicielles, je ne peux recommander aucune solution pour résoudre votre problème. Mais j'ai créé quelques programmes similaires et voici quelques choses que j'ai trouvées qui ont bien fonctionné.

  • Créez un service de journalisation asynchrone afin que la journalisation n'affecte pas les performances de votre code. (Vous devez être conscient de l'endroit où vous stockez vos données, où elles sont traitées, etc. car vous pouvez toujours dégrader les performances de manière significative si vous ne faites pas attention.) J'ai trouvé que la création d'un service Web est souvent pratique. Essayez de sauvegarder autant d'informations que possible sur la demande. À l'avenir, cela facilitera l'ajout de nouvelles requêtes et de nouveaux rapports.
    • Normalize vos données
    • comprennent toujours le temps de l'action a été réalisée. Si vous pouvez capturer le temps d'exécution qu'il est généralement utile aussi.
1

Une approche consiste à procéder par étapes: stockez les journaux d'activité, y compris les demandes et les utilisateurs, sous la forme de fichiers texte. Plus tard, extraire les logs dans les points de données (python devrait pouvoir le faire facilement). Vous pouvez utiliser le logging library for python pour l'étape de consignation. En général, commencez par une journalisation à haute résolution temporelle, que vous pouvez ensuite regrouper en résumés horaires, quotidiens, hebdomadaires, etc.

Questions connexes