2016-05-02 4 views
0

Ich habe eine Django-Anwendung im Docker-Container ausgeführt. Aber aus irgendeinem Grund wurde meine Bewerbung sehr langsam. Ich möchte Profiling für meine Anwendung verwenden.Docker: Wie bekomme ich genau die Zeit, die der Docker-Host die Anfrage erhält und die genaue Zeit, die der Docker-Container die Anfrage in Docker empfängt?

Dafür überprüfe ich mit Apache & nginx logs.Then wollen mehr Bild auf diesem zu bekommen.Wie die genaue Zeit der Docker Host erhält die Anfrage & genaue Zeit Docker Container erhält die Anfrage.

Jede Hilfe wird super !!!

+0

Können Sie erklären, wie Sie alles eingerichtet haben? Haben Sie einen Load-Balancer, der den Datenverkehr vor dem Senden an den Docker-Host abwickelt, wie werden Ihre Container eingerichtet? Was verwenden Sie für einen WSGI-Server für django? Wo kommen Apache und nginx ins Spiel? Warum beides? –

+0

@KenCochrane Nach Ihrer Frage habe ich viel zu erklären.Instatt ich brauche, wie die genaue Zeit Docker Host & Container erhält Anfrage dann erhalten, dass wäre sehr viel Hilfe voll ... Sorry für nicht geben alle Details. Wie ich müssen Sie die Zeit des Kontakt docker Host & container.Wenn Sie irgendeine Idee haben, die Sie teilen können !!! Danke – danny

+0

, um Ihnen eine Antwort geben wir brauchen die Details, weil die Antwort abhängig von Ihrer Einrichtung ist. Es gibt keinen allgemeinen Weg, um das zu tun, was Sie fragen. –

Antwort

0

Die Art, wie ich diese Arbeit in der Vergangenheit gesehen habe, ist das Hinzufügen eines benutzerdefinierten Headers mit dem aktuellen Zeitstempel einschließlich Millisekunden zu jeder Anfrage, da Sie die Anfragen reverse-proxying sind. In Ihrem Fall würde dies auf Ihrer nginx-Konfiguration geschehen. So etwas wie das

Dann auf der Apache-Seite, bevor es die Anfrage bearbeiten Sie können das gleiche tun.

Für Apache

RequestHeader set X-Request-Start-2 "%t" 

Sie könnten sogar aufzeichnen, wenn die Reaktion beendet ist, und haben drei Zeitpunkte zu vergleichen.

Dann in Ihren Protokollen oder django oder in Ihrem Metriken-Sammelsystem, können Sie die Zeit zwischen den Punkten zu vergleichen, um herauszufinden, wie lange es von nginx Apache zu gehen nimmt, und das ist die Anforderung Wartezeit. Es sollte ziemlich schnell sein, aber wenn Apache nicht richtig eingestellt ist, ist es möglich, dass die Anfragen in die Warteschlange gestellt werden, während sie darauf warten, dass andere verarbeitet werden.

Sie können so etwas wie neue Reliquie verwenden, die alle Details der Anfrage erfassen und Ihnen die Ergebnisse in einem hübschen Diagramm zeigen können. Sie haben sogar eine kostenlose Version, die das tut, was Sie suchen, und sie unterstützen Docker.