Kann das Tool pprof nicht mit einem vorhandenen Server verwenden

8

Ich habe einen http-Server, den ich profilieren möchte. Ich habe _ "net/http/pprof" zu meinen Importen hinzugefügt, und ich habe bereits http-Server ausgeführt:

%Vor%

Wenn ich versuche, auf Ссылка zuzugreifen, erhalte ich 404 page not found .

Das bekomme ich, wenn ich go tool pprof auf einem lokalen Rechner verwende:

%Vor%

Gleiches gilt für einen Remote-Client:

%Vor%     
Max Malysh 31.05.2015, 18:09
quelle

2 Antworten

11

Es wird nicht explizit in der Dokumentation erwähnt, aber net/http/pprof registriert nur seine Handler mit http.DefaultServeMux .

Von der Quelle :

%Vor%

Wenn Sie den Standard-Mux nicht verwenden, müssen Sie nur einen oder alle gewünschten Parameter mit dem von Ihnen verwendeten Mux registrieren, z. etwas wie mymux.HandleFunc("…", pprof.Index) , etc.

Alternativ können Sie einen separaten Port (der möglicherweise auch nur an localhost gebunden ist) mit dem Standard-Mux als abhören .

    
Dave C 31.05.2015, 18:47
quelle
9

Sieht so aus, als ob das Problem in einem *mux.Router von github.com/gorilla/mux lag, das ich als Handler in meiner http.Server Instanz verwendet habe.

Lösung: Starten Sie einfach einen weiteren Server nur für die pprof :

%Vor%     
Max Malysh 31.05.2015 18:09
quelle

Tags und Links