2010-01-11 16 views
5

Cette question est liée à une question plus ancienne: MySQL tracking system. En bref: je dois mettre en place un système de suivi qui aura des charges élevées en utilisant Python. Pour la partie base de données, je me suis installé sur mongoDB (qui semble être le bon outil pour ce travail). Le langage de développement sera Python.Système de suivi et analyse des statistiques en temps réel en Python

Je pensais utiliser plusieurs instances d'une application CherryPy derrière nginx. Le raisonnement derrière cela est que je ne veux pas gérer toute la partie wsgi moi-même, mais d'autre part, je n'ai pas besoin d'un framework web complet car l'application sera simple et il n'y a pas besoin d'ORM.

Mes questions sont les suivantes:

  • Dois-je utiliser le serveur ou CherryPy builtin dois-je utiliser Apache avec modwsgi (ou un autre serveur tout à fait)?

  • Est-ce que cela ressemble à une approche raisonnable (nginx, mongoDB)? Sinon, que recommanderiez-vous?

Merci d'avance.

+0

+1 pour une bonne question. MongDB ressemble à un très bon DB pour les charges élevées, mais avez-vous également considéré une base de données avec support SIG? – Mawg

Répondre

1

Sons comme MongoDB sera un bon moyen pour cela - des mises à jour rapides avec les opérateurs avancés, et M/R pour hors-ligne de lot En traitement. Je pense que CherryPy derrière Nginx devrait bien fonctionner aussi. Si vous allez sur la route mod_wsgi, faites attention à this issue.

+0

Merci pour le conseil :). – Alex

+0

Je dirais que la documentation de Mongo décrit mal le problème avec l'utilisation de mod_wsgi. Il dit: «Lorsque PyMongo est exécuté avec l'extension C activée, il est possible de voir des échecs étranges lors de l'encodage en raison de la façon dont mod_wsgi gère le rechargement des modules avec plusieurs sous-interprètes. Tout problème que vous voyez n'est pas dû à la façon dont mod_wsgi gère le rechargement des modules, car l'extension Mongo C n'a pas été écrite correctement pour fonctionner dans plusieurs sous-interpréteurs en même temps. Cela se produira pour tout système multi-interprète, pas seulement mod_wsgi. Mongo pourrait corriger l'extension C. –

+0

Graham - les documents sont ouverts, alors n'hésitez pas à bifurquer et contribuer aux changements que vous pensez devraient être là. Vous avez raison de dire que nous pourrions changer l'extension C pour gérer ce cas, bien que je m'inquiète de l'impact sur les performances de toute «correction». Si vous souhaitez en discuter plus en détail, adressons-nous à http://jira.mongodb.org - merci pour votre contribution! – mdirolf

3

Avez-vous vérifié Graphite? Cela ressemble exactement au genre de chose dont vous avez besoin (en regardant votre autre question) et a été conçu pour la surveillance des applications et des serveurs par l'équipe Orbitz. C'est extrêmement robuste et facile à utiliser pour ce genre de chose.

+0

Ça a l'air génial. Je vais regarder par-dessus (et je demanderai aux autres membres de l'équipe de regarder par-dessus). J'espère que cela fera l'affaire. Merci. – Alex