|
|
@@ -110,30 +110,46 @@ var AuthRequest = func(req *http.Request) (any, sensitive bool) {
|
|
|
}
|
|
|
|
|
|
func init() {
|
|
|
- http.HandleFunc("/debug/requests", func(w http.ResponseWriter, req *http.Request) {
|
|
|
- any, sensitive := AuthRequest(req)
|
|
|
- if !any {
|
|
|
- http.Error(w, "not allowed", http.StatusUnauthorized)
|
|
|
- return
|
|
|
- }
|
|
|
- w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
|
|
- Render(w, req, sensitive)
|
|
|
- })
|
|
|
- http.HandleFunc("/debug/events", func(w http.ResponseWriter, req *http.Request) {
|
|
|
- any, sensitive := AuthRequest(req)
|
|
|
- if !any {
|
|
|
- http.Error(w, "not allowed", http.StatusUnauthorized)
|
|
|
- return
|
|
|
- }
|
|
|
- w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
|
|
- RenderEvents(w, req, sensitive)
|
|
|
- })
|
|
|
+ // TODO(jbd): Serve Traces from /debug/traces in the future?
|
|
|
+ // There is no requirement for a request to be present to have traces.
|
|
|
+ http.HandleFunc("/debug/requests", Traces)
|
|
|
+ http.HandleFunc("/debug/events", Events)
|
|
|
+}
|
|
|
+
|
|
|
+// Traces responds with traces from the program.
|
|
|
+// The package initialization registers it in http.DefaultServeMux
|
|
|
+// at /debug/requests.
|
|
|
+//
|
|
|
+// It performs authorization by running AuthRequest.
|
|
|
+func Traces(w http.ResponseWriter, req *http.Request) {
|
|
|
+ any, sensitive := AuthRequest(req)
|
|
|
+ if !any {
|
|
|
+ http.Error(w, "not allowed", http.StatusUnauthorized)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
|
|
+ Render(w, req, sensitive)
|
|
|
+}
|
|
|
+
|
|
|
+// Events responds with a page of events collected by EventLogs.
|
|
|
+// The package initialization registers it in http.DefaultServeMux
|
|
|
+// at /debug/events.
|
|
|
+//
|
|
|
+// It performs authorization by running AuthRequest.
|
|
|
+func Events(w http.ResponseWriter, req *http.Request) {
|
|
|
+ any, sensitive := AuthRequest(req)
|
|
|
+ if !any {
|
|
|
+ http.Error(w, "not allowed", http.StatusUnauthorized)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
|
|
+ RenderEvents(w, req, sensitive)
|
|
|
}
|
|
|
|
|
|
// Render renders the HTML page typically served at /debug/requests.
|
|
|
-// It does not do any auth checking; see AuthRequest for the default auth check
|
|
|
-// used by the handler registered on http.DefaultServeMux.
|
|
|
-// req may be nil.
|
|
|
+// It does not do any auth checking. The request may be nil.
|
|
|
+//
|
|
|
+// Most users will use the Traces handler.
|
|
|
func Render(w io.Writer, req *http.Request, sensitive bool) {
|
|
|
data := &struct {
|
|
|
Families []string
|