2014-11-20 5 views
5

Am laufenden Sellerie 3.1.16 mit einem RabbitMQ 3.4.1 Back-End und die Verwendung von Flower 0.7.3 auf Python3.4, um meine Sellerie Aufgaben zu überwachen. Ich habe mehrere Aufgaben laufen und ich kann ihre Ergebnisse in der Task-Registerkarte von Sellerie Flower sehen.Wie man alle Graphen im Sellerie-Blumenmonitor-Tab

In der Registerkarte monitor gibt es 4 Abschnitte. Erfolgreiche Aufgaben, fehlgeschlagene Aufgaben, Aufgabenzeiten und Broker. Von diesen 4 zeigt nur die Ansicht "Broker" ein Diagramm "Verkehr". Gibt es eine Einstellung, mit der die anderen Diagramme Statistiken anzeigen können?

flowerconfig.py

# Broker settings 
BROKER_URL = 'amqp://guest:[email protected]:5672//' 

# RabbitMQ management api 
broker_api = 'http://guest:[email protected]:15672/api/' 

#Port 
port = 5555 

# Enable debug logging 
logging = 'INFO' 

Betreuer: flower.conf

[program:flower] 
command=/opt/apps/venv/my_app/bin/celery flower --app=celery_conf.celeryapp --conf=flowerconfig 
directory=/opt/apps/my_app/celery_conf 
user=www-data 
autostart=true 
autorestart=true 
startsecs=10 
redirect_stderr=true 
stderr_logfile=/var/log/celery/flower.err.log 
stdout_logfile=/var/log/celery/flower.out.log 

Während es waren, in der Grafik Broker, ich habe zwei Warteschlangen ein grün die othe rot. Dasjenige, das in der Grafik angezeigt wird, ist jedoch das rote, aber beide laufen, und ich kann ihre Ergebnisse im Fenster Aufgaben sehen.

Ich habe etwas Besonderes in der in Flower Config Tab unter Workers Tab bemerkt. Die CELERY_ROUTE und CELERY_QUEUES zeigen als leere Listen, während alle anderen Felder schauen, wie sie die richtigen Daten aus der Datei celeryconfig

nahm
BROKER_URL amqp://guest:********@localhost:5672// 
CELERYBEAT_SCHEDULE {} 
CELERYD_PREFETCH_MULTIPLIER 0 
CELERY_ALWAYS_EAGER False 
CELERY_AMQP_TASK_RESULT_EXPIRES 60 
CELERY_CREATE_MISSING_QUEUES False 
CELERY_DEFAULT_EXCHANGE default 
CELERY_DEFAULT_QUEUE default 
CELERY_DEFAULT_ROUTING_KEY ******** 
CELERY_IMPORTS ['student.admission', 'student.schedule'] 
CELERY_INCLUDE ['celery.app.builtins', 'student.schedule', 'student.admission'] 
CELERY_QUEUES [{}, {}, {}, {}, {}]  #<==== Should it show an empty list? 
CELERY_RESULT_BACKEND amqp://guest:[email protected]:5672// 
CELERY_ROUTES [{}, {}, {}, {}]  #<==== Should it show an empty list? 
CELERY_STORE_ERRORS_EVEN_IF_IGNORED True 
CELERY_TASK_RESULT_EXPIRES 3600 

Die celeryconfig.py sieht aus wie folgt:

BROKER_URL = 'amqp://guest:[email protected]:5672//' 
CELERY_RESULT_BACKEND = 'amqp://guest:[email protected]:5672//' 

#Task settings 
CELERY_TASK_RESULT_EXPIRES = 3600 
CELERY_AMQP_TASK_RESULT_EXPIRES = 60 
CELERYD_PREFETCH_MULTIPLIER = 0 
CELERY_ALWAYS_EAGER = False 
CELERY_CREATE_MISSING_QUEUES = False 
CELERY_STORE_ERRORS_EVEN_IF_IGNORED = True 

#Scripts to be imported 
CELERY_IMPORTS=('student.admission', 'student.schedule') 

#Celery Exchanges, Queues, Routes 
default_exchange = Exchange('default', type='direct') 
student_admission_exchange = Exchange('student_admission_exchange', type='direct', durable=False) 

CELERY_QUEUES = (
    Queue('default', default_exchange, routing_key='default'), 
    Queue('student_admission_queue', student_admission_exchange, routing_key='admission', durable=False), 
) 
CELERY_ROUTES = (
       {'student.admission.admit': {'queue': 'student_admission_queue','routing_key': 'admission'}}, 
        ) 
CELERY_DEFAULT_QUEUE = 'default' 
CELERY_DEFAULT_EXCHANGE = 'default' 
CELERY_DEFAULT_ROUTING_KEY = 'default' 

Edit

Wie ich sehe, bin nicht der einzige fest auf diesem, obwohl ich den Screenshot der "fehlenden" Graphen als Leitfaden enthalten.

Celery: Uncharted Graphs

+0

Ich denke, das Beste, was Sie tun können, ist ein Problem auf dem Flower GitHub Issue Tracker zu öffnen. Ich denke nicht, dass die fehlenden CELERY_ROUTES- und CELERY_QUEUES-Einstellungen etwas damit zu tun haben; Wenn Sie durch die Quelle gräten, wird nicht angezeigt, dass sie überall verwendet werden. Quelle: Ich habe das gleiche Problem. – jvkersch

Antwort

1

In meinem Fall war dies kein Problem mit Blumen selbst, sondern mit der Tatsache, dass die Zeitstempel auf meinen Aufgaben nicht korrekt waren (wie durch die Meldung „erhebliche Drift von ausgestellt *** Uhren bedeuten kann sind in meinen Sellerie-Logs nicht synchron ". Das Reparieren der Uhr könnte die Antwort sein.

Flower ermittelt, ob ein Ereignis neu ist (und daher geplottet werden muss), indem es den Zeitstempel des Ereignisses mit dem Zeitstempel der letzten Aktualisierung des Diagramms vergleicht (siehe https://github.com/mher/flower/blob/master/flower/views/monitor.py#L47). In meinem Fall war dieser Vergleich immer falsch, also wurden keine Ereignisse geplant.

+0

Welche Uhr soll ich wechseln? Sellerie, Blumen sind in einer Maschine und wenn ein Lauf "Datum" zeigt es mir 'Sat Jan 10 19: 49: 34' das ist das richtige Datum. Wenn ich auf den Tab "Aufgaben" in Sellerie gehe, sehe ich die letzte ran-Aufgabe mit der Anzeige "Erhalten 2015-01-10 19: 49: 46.709552" und "Gestartet \t 2015-01-10 19: 49: 46.711021", die beide korrekt sind. Von welcher Uhr reden wir hier? – lukik

+0

Ich weiß es nicht (ich habe das Quick'n'Dirty gemacht und die 'if'-Klausel in Flower angepasst, weil ich nur eine begrenzte Zeit hatte und mir die zugrunde liegende Ursache nicht erklären konnte). Ich werde meine Antwort aktualisieren, wenn ich mehr weiß.In der Zwischenzeit würde ich vorschlagen, die Zeitstempel auf den Ereignissen in einem der Monitore auszudrucken und zu sehen, ob irgendetwas aus ist. – jvkersch

+0

Der Zeitstempel wird auf Javascript generiert, was ich für einen Fehler halte, warum nicht auf Python generieren, der die Serveruhr benutzt? Dies geschieht auf Flower 0.9.1, welches die letzte Version ist. – Hassek

Verwandte Themen