package debug import ( "context" "fmt" "net" "net/http" "github.com/owncloud/ocis/v2/ocis-pkg/handlers" "github.com/owncloud/ocis/v2/ocis-pkg/service/debug" "github.com/owncloud/ocis/v2/ocis-pkg/version" ) // Server initializes the debug service and server. func Server(opts ...Option) (*http.Server, error) { options := newOptions(opts...) checkHandler := handlers.NewCheckHandler( handlers.NewCheckHandlerConfiguration(). WithLogger(options.Logger).WithCheck("web reachability", func(ctx context.Context) error { conn, err := net.Dial("tcp", options.Config.HTTP.Addr) defer func(conn net.Conn) { err := conn.Close() if err != nil { return } }(conn) if err != nil { return fmt.Errorf("could not connect to web server: %v", err) } return nil }), ) return debug.NewService( debug.Logger(options.Logger), debug.Name(options.Config.Service.Name), debug.Version(version.GetString()), debug.Address(options.Config.Debug.Addr), debug.Token(options.Config.Debug.Token), debug.Pprof(options.Config.Debug.Pprof), debug.Zpages(options.Config.Debug.Zpages), debug.Health(checkHandler), debug.Ready(checkHandler), ), nil }