Skip to content

Commit a50da8e

Browse files
authored
diagnostics: updated serving ui port (#11740) (#11916)
- Changed UI serving port to 5137 as 6060 is busy with diag API - Refactored request headers to be set in middleware
1 parent 9d9f22c commit a50da8e

17 files changed

+28
-25
lines changed

cmd/diag/ui/ui.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var (
2323
Name: "ui.addr",
2424
Usage: "URL to serve UI web application",
2525
Required: false,
26-
Value: "127.0.0.1:6060",
26+
Value: "127.0.0.1:5137",
2727
}
2828
)
2929

diagnostics/block_body_download_stats.go

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ func SetupBlockBodyDownload(metricsMux *http.ServeMux) {
3131
}
3232

3333
metricsMux.HandleFunc("/block_body_download", func(w http.ResponseWriter, r *http.Request) {
34-
w.Header().Set("Access-Control-Allow-Origin", "*")
3534
writeBlockBodyDownload(w, r)
3635
})
3736
}

diagnostics/bodies_info.go

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ func SetupBodiesAccess(metricsMux *http.ServeMux, diag *diaglib.DiagnosticClient
2828
}
2929

3030
metricsMux.HandleFunc("/bodies", func(w http.ResponseWriter, r *http.Request) {
31-
w.Header().Set("Access-Control-Allow-Origin", "*")
3231
w.Header().Set("Content-Type", "application/json")
3332
writeBodies(w, diag)
3433
})

diagnostics/bootnodes.go

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ func SetupBootnodesAccess(metricsMux *http.ServeMux, node *node.ErigonNode) {
2929
}
3030

3131
metricsMux.HandleFunc("/bootnodes", func(w http.ResponseWriter, r *http.Request) {
32-
w.Header().Set("Access-Control-Allow-Origin", "*")
3332
w.Header().Set("Content-Type", "application/json")
3433

3534
bootnodes := node.Node().Config().P2P.BootstrapNodesV5

diagnostics/cmd_line.go

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ func SetupCmdLineAccess(metricsMux *http.ServeMux) {
2929
}
3030

3131
metricsMux.HandleFunc("/cmdline", func(w http.ResponseWriter, r *http.Request) {
32-
w.Header().Set("Access-Control-Allow-Origin", "*")
3332
w.Header().Set("Content-Type", "application/json")
3433

3534
var space []byte

diagnostics/db.go

-2
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,10 @@ func SetupDbAccess(ctx *cli.Context, metricsMux *http.ServeMux) {
4343
dataDir = paths.DataDirForNetwork(paths.DefaultDataDir(), ctx.String("chain"))
4444
}
4545
metricsMux.HandleFunc("/dbs", func(w http.ResponseWriter, r *http.Request) {
46-
w.Header().Set("Access-Control-Allow-Origin", "*")
4746
w.Header().Set("Content-Type", "application/json")
4847
writeDbList(w, dataDir)
4948
})
5049
metricsMux.HandleFunc("/dbs/", func(w http.ResponseWriter, r *http.Request) {
51-
w.Header().Set("Access-Control-Allow-Origin", "*")
5250

5351
urlPath := r.URL.Path
5452

diagnostics/flags.go

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ func SetupFlagsAccess(ctx *cli.Context, metricsMux *http.ServeMux) {
2929
}
3030

3131
metricsMux.HandleFunc("/flags", func(w http.ResponseWriter, r *http.Request) {
32-
w.Header().Set("Access-Control-Allow-Origin", "*")
3332
w.Header().Set("Content-Type", "application/json")
3433
flags := map[string]interface{}{}
3534

diagnostics/header_downloader_stats.go

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ func SetupHeaderDownloadStats(metricsMux *http.ServeMux) {
3131
}
3232

3333
metricsMux.HandleFunc("/headers_download", func(w http.ResponseWriter, r *http.Request) {
34-
w.Header().Set("Access-Control-Allow-Origin", "*")
3534
writeHeaderDownload(w, r)
3635
})
3736
}

diagnostics/headers.go

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ func SetupHeadersAccess(metricsMux *http.ServeMux, diag *diaglib.DiagnosticClien
2828
}
2929

3030
metricsMux.HandleFunc("/headers", func(w http.ResponseWriter, r *http.Request) {
31-
w.Header().Set("Access-Control-Allow-Origin", "*")
3231
w.Header().Set("Content-Type", "application/json")
3332
writeHeaders(w, diag)
3433
})

diagnostics/logs.go

-2
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,9 @@ func SetupLogsAccess(ctx *cli.Context, metricsMux *http.ServeMux) {
5151
return
5252
}
5353
metricsMux.HandleFunc("/logs", func(w http.ResponseWriter, r *http.Request) {
54-
w.Header().Set("Access-Control-Allow-Origin", "*")
5554
writeLogsList(w, dirPath)
5655
})
5756
metricsMux.HandleFunc("/logs/", func(w http.ResponseWriter, r *http.Request) {
58-
w.Header().Set("Access-Control-Allow-Origin", "*")
5957
writeLogsRead(w, r, dirPath)
6058
})
6159
}

diagnostics/mem.go

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ func SetupMemAccess(metricsMux *http.ServeMux) {
2929
}
3030

3131
metricsMux.HandleFunc("/mem", func(w http.ResponseWriter, r *http.Request) {
32-
w.Header().Set("Access-Control-Allow-Origin", "*")
3332
w.Header().Set("Content-Type", "application/json")
3433
writeMem(w)
3534
})

diagnostics/nodeinfo.go

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ func SetupNodeInfoAccess(metricsMux *http.ServeMux, node *node.ErigonNode) {
2929
}
3030

3131
metricsMux.HandleFunc("/nodeinfo", func(w http.ResponseWriter, r *http.Request) {
32-
w.Header().Set("Access-Control-Allow-Origin", "*")
3332
writeNodeInfo(w, node)
3433
})
3534
}

diagnostics/peers.go

-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ func SetupPeersAccess(ctxclient *cli.Context, metricsMux *http.ServeMux, node *n
5858
}
5959

6060
metricsMux.HandleFunc("/peers", func(w http.ResponseWriter, r *http.Request) {
61-
w.Header().Set("Access-Control-Allow-Origin", "*")
6261
w.Header().Set("Content-Type", "application/json")
6362
writePeers(w, ctxclient, node, diag)
6463
})

diagnostics/setup.go

+12
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,18 @@ func SetupMiddleMuxHandler(mux *http.ServeMux, middleMux *http.ServeMux, path st
114114
middleMux.HandleFunc(path+"/", func(w http.ResponseWriter, r *http.Request) {
115115
r.URL.Path = strings.TrimPrefix(r.URL.Path, path)
116116
r.URL.RawPath = strings.TrimPrefix(r.URL.RawPath, path)
117+
118+
// Set CORS headers
119+
w.Header().Set("Access-Control-Allow-Origin", "*")
120+
w.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS")
121+
w.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization")
122+
123+
// Handle preflight requests
124+
if r.Method == "OPTIONS" {
125+
w.WriteHeader(http.StatusOK)
126+
return
127+
}
128+
117129
mux.ServeHTTP(w, r)
118130
})
119131
}

diagnostics/snapshot_sync.go

-5
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,26 @@ func SetupStagesAccess(metricsMux *http.ServeMux, diag *diaglib.DiagnosticClient
2828
}
2929

3030
metricsMux.HandleFunc("/snapshot-sync", func(w http.ResponseWriter, r *http.Request) {
31-
w.Header().Set("Access-Control-Allow-Origin", "*")
3231
w.Header().Set("Content-Type", "application/json")
3332
writeStages(w, diag)
3433
})
3534

3635
metricsMux.HandleFunc("/snapshot-files-list", func(w http.ResponseWriter, r *http.Request) {
37-
w.Header().Set("Access-Control-Allow-Origin", "*")
3836
w.Header().Set("Content-Type", "application/json")
3937
writeFilesList(w, diag)
4038
})
4139

4240
metricsMux.HandleFunc("/resources-usage", func(w http.ResponseWriter, r *http.Request) {
43-
w.Header().Set("Access-Control-Allow-Origin", "*")
4441
w.Header().Set("Content-Type", "application/json")
4542
writeResourcesUsage(w, diag)
4643
})
4744

4845
metricsMux.HandleFunc("/network-speed", func(w http.ResponseWriter, r *http.Request) {
49-
w.Header().Set("Access-Control-Allow-Origin", "*")
5046
w.Header().Set("Content-Type", "application/json")
5147
writeNetworkSpeed(w, diag)
5248
})
5349

5450
metricsMux.HandleFunc("/sync-stages", func(w http.ResponseWriter, r *http.Request) {
55-
w.Header().Set("Access-Control-Allow-Origin", "*")
5651
w.Header().Set("Content-Type", "application/json")
5752
writeSyncStages(w, diag)
5853
})

diagnostics/sysinfo.go

+15-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ package diagnostics
1818

1919
import (
2020
"encoding/json"
21+
"fmt"
2122
"net/http"
23+
"runtime/pprof"
2224

2325
diaglib "github.com/ledgerwatch/erigon-lib/diagnostics"
2426
"github.com/ledgerwatch/erigon-lib/sysutils"
@@ -30,28 +32,37 @@ func SetupSysInfoAccess(metricsMux *http.ServeMux, diag *diaglib.DiagnosticClien
3032
}
3133

3234
metricsMux.HandleFunc("/hardware-info", func(w http.ResponseWriter, r *http.Request) {
33-
w.Header().Set("Access-Control-Allow-Origin", "*")
3435
w.Header().Set("Content-Type", "application/json")
3536
writeHardwareInfo(w, diag)
3637
})
3738

3839
metricsMux.HandleFunc("/cpu-usage", func(w http.ResponseWriter, r *http.Request) {
39-
w.Header().Set("Access-Control-Allow-Origin", "*")
4040
w.Header().Set("Content-Type", "application/json")
4141
writeCPUUsage(w)
4242
})
4343

4444
metricsMux.HandleFunc("/processes-info", func(w http.ResponseWriter, r *http.Request) {
45-
w.Header().Set("Access-Control-Allow-Origin", "*")
4645
w.Header().Set("Content-Type", "application/json")
4746
writeProcessesInfo(w)
4847
})
4948

5049
metricsMux.HandleFunc("/memory-info", func(w http.ResponseWriter, r *http.Request) {
51-
w.Header().Set("Access-Control-Allow-Origin", "*")
5250
w.Header().Set("Content-Type", "application/json")
5351
writeMemoryInfo(w)
5452
})
53+
54+
metricsMux.HandleFunc("/heap-profile", func(w http.ResponseWriter, r *http.Request) {
55+
w.Header().Set("Content-Type", "aplication/profile")
56+
writeHeapProfile(w)
57+
})
58+
}
59+
60+
func writeHeapProfile(w http.ResponseWriter) {
61+
err := pprof.Lookup("heap").WriteTo(w, 0)
62+
if err != nil {
63+
http.Error(w, fmt.Sprintf("Failed to write profile: %v", err), http.StatusInternalServerError)
64+
return
65+
}
5566
}
5667

5768
func writeHardwareInfo(w http.ResponseWriter, diag *diaglib.DiagnosticClient) {

diagnostics/version.go

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ func SetupVersionAccess(metricsMux *http.ServeMux) {
3131
}
3232

3333
metricsMux.HandleFunc("/version", func(w http.ResponseWriter, r *http.Request) {
34-
w.Header().Set("Access-Control-Allow-Origin", "*")
3534
w.Header().Set("Content-Type", "application/json")
3635
json.NewEncoder(w).Encode(struct {
3736
Node int `json:"nodeVersion"`

0 commit comments

Comments
 (0)