Add profiling
This commit is contained in:
parent
586440fe8d
commit
c620e4a005
@ -22,6 +22,7 @@ type TLSConnectionMonitor struct {
|
||||
|
||||
type Config struct {
|
||||
ListenAddr string `toml:"ListenAddr"`
|
||||
Profiling bool `toml:"Profiling"`
|
||||
StepMonitors []StepMonitor `toml:"StepMonitors"`
|
||||
TLSConnectionMonitors []TLSConnectionMonitor `toml:"TLSConnectionMonitors"`
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Endpoint for the metrics server
|
||||
ListenAddr = ":9969"
|
||||
Profiling = true
|
||||
|
||||
# Monitor step-ca root certificate
|
||||
[[StepMonitors]]
|
||||
|
22
main.go
22
main.go
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"net/http/pprof"
|
||||
"os"
|
||||
"os/signal"
|
||||
"time"
|
||||
@ -31,8 +32,8 @@ func LoadConfig() (*config.Config, error) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
// Load config
|
||||
config, err := LoadConfig()
|
||||
// Load cfg
|
||||
cfg, err := LoadConfig()
|
||||
if err != nil {
|
||||
fmt.Printf("Error loading config: %v\n", err)
|
||||
os.Exit(1)
|
||||
@ -45,7 +46,7 @@ func main() {
|
||||
|
||||
// Setup stepmons
|
||||
var stepmons []*stepmon.StepMonitor
|
||||
for _, s := range config.StepMonitors {
|
||||
for _, s := range cfg.StepMonitors {
|
||||
if s.Enabled {
|
||||
sm := stepmon.NewStepMonitor(s.BaseURL, s.RootID)
|
||||
sm.SetLogger(logger)
|
||||
@ -62,7 +63,7 @@ func main() {
|
||||
|
||||
// Setup tlsconmons
|
||||
var tlsconmons []*tlsconmon.TLSConnectionMonitor
|
||||
for _, t := range config.TLSConnectionMonitors {
|
||||
for _, t := range cfg.TLSConnectionMonitors {
|
||||
if t.Enabled {
|
||||
duration, err := time.ParseDuration(t.Duration)
|
||||
if err != nil {
|
||||
@ -95,14 +96,21 @@ func main() {
|
||||
|
||||
// Start http server
|
||||
srv := &http.Server{}
|
||||
srv.Addr = config.ListenAddr
|
||||
srv.Addr = cfg.ListenAddr
|
||||
|
||||
mux := http.NewServeMux()
|
||||
mux.Handle("/metrics", promhttp.Handler())
|
||||
srv.Handler = mux
|
||||
|
||||
mux.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
if cfg.Profiling {
|
||||
logger.Info("Profiling enabled, exposing /debug/pprof")
|
||||
mux.HandleFunc("/debug/pprof/", pprof.Index)
|
||||
}
|
||||
|
||||
// Start http server
|
||||
go func() {
|
||||
logger.Info("Starting HTTP server", "addr", config.ListenAddr)
|
||||
logger.Info("Starting HTTP server", "addr", cfg.ListenAddr)
|
||||
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
logger.Error("HTTP server error", "error", err)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user