Profiling Go Web-Anwendung mit Gorillas Mux mit net / http / pprof gebaut

8

Ich habe eine relativ große Web-Anwendung in Go geschrieben, die Gorillas Mux zum Routing verwendet. Ich habe kürzlich festgestellt, dass meine Webanwendung ziemlich langsam ist und ich möchte die Webanwendung profilieren.

Nachdem ich darüber gelesen habe, scheint es, dass net / http / pprof das ist, was ich brauche. Aber ich kann es nicht mit mux laufen lassen; sogar im Falle der einfachsten Webanwendung.

Weiß jemand, wie man das macht?

Hier ist ein Beispiel für einen trivialen Code, der nicht funktioniert (d. h. nichts wird bedient).

%Vor%     
user983716 25.10.2013, 13:21
quelle

6 Antworten

11

Entschuldigung für diese Frage. Die Antwort ist in der Funktion init () von pprof . Man muss nur 4 Funktionen von pprof zum Mux-Router hinzufügen. Hier ist der feste Code von oben.

%Vor%     
user983716 25.10.2013, 13:35
quelle
15

user983716 - Danke für Ihre Frage und Lösung!

Ich konnte die Links aus dem Web-Index ( Ссылка ) nicht verwenden, bis ich ein paar Zeilen hinzugefügt habe zu deiner Lösung, so:

%Vor%

Wenn jemand das gleiche Problem hat, hoffe ich, dass dies hilft!

    
dhoelle 12.05.2015 21:17
quelle
9

Meine bevorzugte Methode hierfür ist, dass net/http/pprof sich selbst auf http.DefaultServeMux registriert und dann alle Anfragen mit /debug/pprof/ mit:

weiterleitet %Vor%

Ich finde, dass dieser Ansatz viel stabiler ist als einer, der von der Implementierung einer versteckten Initialisierungsmethode abhängt, und garantiert auch, dass Sie nichts verpassen.

    
damien 20.10.2015 16:08
quelle
1

Ich habe etwas anderes gemacht, ich habe einen anderen nativen HTTP-Server auf einem anderen Port hinzugefügt und es funktioniert einfach aus der Box

%Vor%

Jetzt befindet sich der pprof-Endpunkt bei:      Ссылка und die Anwendung läuft auf Port: 8080

    
Eran Chetzroni 30.11.2015 14:09
quelle
0

Nur so:

%Vor%     
larryhu 09.08.2016 07:16
quelle
0

Ich benutze Ссылка , aber ich habe diese Antwort von der Google-Suche bekommen. Das habe ich gemacht

%Vor%

Ich brauche nur diese zwei Routen. Diese Antwort ist eine Kombination aus @damien und @ user983716 Antworten.

    
shemanov 27.10.2017 10:17
quelle

Tags und Links