repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

commit
b80b790
parent
c75173f
author
Antonio Mika
date
2025-02-27 09:36:10 -0500 EST
Add more detail logging attributes
23 files changed,  +49, -40
M auth/api.go
+1, -1
1@@ -779,7 +779,7 @@ func StartApiServer() {
2 		panic("must provide PICO_SECRET environment variable")
3 	}
4 
5-	logger := shared.CreateLogger("auth")
6+	logger := shared.CreateLogger("auth-web")
7 
8 	cfg.Logger = logger
9 
M auth/api_test.go
+1, -1
1@@ -276,7 +276,7 @@ func mkpath(path string) string {
2 }
3 
4 func setupTest() *shared.ApiConfig {
5-	logger := shared.CreateLogger("auth")
6+	logger := shared.CreateLogger("auth-test")
7 	cfg := &shared.ConfigSite{
8 		Issuer:        "auth.pico.test",
9 		Domain:        "http://0.0.0.0:3000",
M cmd/feeds/fetch/main.go
+1, -1
1@@ -9,7 +9,7 @@ import (
2 )
3 
4 func main() {
5-	cfg := feeds.NewConfigSite()
6+	cfg := feeds.NewConfigSite("feeds-fetch")
7 	dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 	defer dbh.Close()
9 	fetcher := feeds.NewFetcher(dbh, cfg)
M cmd/pgs/ssh/main.go
+1, -1
1@@ -13,7 +13,7 @@ func main() {
2 	minioUser := utils.GetEnv("MINIO_ROOT_USER", "")
3 	minioPass := utils.GetEnv("MINIO_ROOT_PASSWORD", "")
4 	dbURL := utils.GetEnv("DATABASE_URL", "")
5-	logger := shared.CreateLogger("pgs")
6+	logger := shared.CreateLogger("pgs-ssh")
7 	dbpool, err := pgsdb.NewDB(dbURL, logger)
8 	if err != nil {
9 		panic(err)
M cmd/pgs/web/main.go
+1, -1
1@@ -13,7 +13,7 @@ func main() {
2 	minioUser := utils.GetEnv("MINIO_ROOT_USER", "")
3 	minioPass := utils.GetEnv("MINIO_ROOT_PASSWORD", "")
4 	dbURL := utils.GetEnv("DATABASE_URL", "")
5-	logger := shared.CreateLogger("pgs")
6+	logger := shared.CreateLogger("pgs-web")
7 	dbpool, err := pgsdb.NewDB(dbURL, logger)
8 	if err != nil {
9 		panic(err)
M cmd/scripts/prose-imgs-migrate/main.go
+1, -1
1@@ -76,7 +76,7 @@ func images(logger *slog.Logger, dbh db.DB, st storage.StorageServe, bucket sst.
2 }
3 
4 func main() {
5-	cfg := prose.NewConfigSite()
6+	cfg := prose.NewConfigSite("prose-imgs-migrate")
7 	logger := cfg.Logger
8 	picoDb := postgres.NewDB(cfg.DbURL, logger)
9 	st, err := storage.NewStorageMinio(logger, cfg.MinioURL, cfg.MinioUser, cfg.MinioPass)
M cmd/scripts/rm-old-buckets/rm-old-buckets.go
+1, -1
1@@ -18,7 +18,7 @@ func bail(err error) {
2 }
3 
4 func main() {
5-	cfg := prose.NewConfigSite()
6+	cfg := prose.NewConfigSite("prose-rm-old-buckets")
7 	logger := cfg.Logger
8 	picoDb := postgres.NewDB(cfg.DbURL, logger)
9 	endpoint, err := url.Parse(cfg.MinioURL)
M feeds/api.go
+1, -1
1@@ -123,7 +123,7 @@ func createStaticRoutes() []shared.Route {
2 }
3 
4 func StartApiServer() {
5-	cfg := NewConfigSite()
6+	cfg := NewConfigSite("feeds-web")
7 	db := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 	defer db.Close()
9 	logger := cfg.Logger
M feeds/config.go
+2, -2
 1@@ -5,7 +5,7 @@ import (
 2 	"github.com/picosh/utils"
 3 )
 4 
 5-func NewConfigSite() *shared.ConfigSite {
 6+func NewConfigSite(service string) *shared.ConfigSite {
 7 	debug := utils.GetEnv("FEEDS_DEBUG", "0")
 8 	domain := utils.GetEnv("FEEDS_DOMAIN", "feeds.pico.sh")
 9 	port := utils.GetEnv("FEEDS_WEB_PORT", "3000")
10@@ -31,6 +31,6 @@ func NewConfigSite() *shared.ConfigSite {
11 		Space:       "feeds",
12 		AllowedExt:  []string{".txt"},
13 		HiddenPosts: []string{"_header.txt", "_readme.txt"},
14-		Logger:      shared.CreateLogger("feeds"),
15+		Logger:      shared.CreateLogger(service),
16 	}
17 }
M feeds/ssh.go
+1, -1
1@@ -65,7 +65,7 @@ func StartSshServer() {
2 	host := utils.GetEnv("LISTS_HOST", "0.0.0.0")
3 	port := utils.GetEnv("LISTS_SSH_PORT", "2222")
4 	promPort := utils.GetEnv("LISTS_PROM_PORT", "9222")
5-	cfg := NewConfigSite()
6+	cfg := NewConfigSite("feeds-ssh")
7 	logger := cfg.Logger
8 	dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 	defer dbh.Close()
M pastes/api.go
+1, -1
1@@ -371,7 +371,7 @@ func createSubdomainRoutes(staticRoutes []shared.Route) []shared.Route {
2 }
3 
4 func StartApiServer() {
5-	cfg := NewConfigSite()
6+	cfg := NewConfigSite("pastes-web")
7 	db := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 	defer db.Close()
9 	logger := cfg.Logger
M pastes/config.go
+2, -2
 1@@ -5,7 +5,7 @@ import (
 2 	"github.com/picosh/utils"
 3 )
 4 
 5-func NewConfigSite() *shared.ConfigSite {
 6+func NewConfigSite(service string) *shared.ConfigSite {
 7 	debug := utils.GetEnv("PASTES_DEBUG", "0")
 8 	domain := utils.GetEnv("PASTES_DOMAIN", "pastes.sh")
 9 	port := utils.GetEnv("PASTES_WEB_PORT", "3000")
10@@ -27,7 +27,7 @@ func NewConfigSite() *shared.ConfigSite {
11 		MinioUser:    minioUser,
12 		MinioPass:    minioPass,
13 		Space:        "pastes",
14-		Logger:       shared.CreateLogger("pastes"),
15+		Logger:       shared.CreateLogger(service),
16 		MaxAssetSize: int64(3 * utils.MB),
17 	}
18 }
M pastes/ssh.go
+1, -1
1@@ -58,7 +58,7 @@ func StartSshServer() {
2 	host := utils.GetEnv("PASTES_HOST", "0.0.0.0")
3 	port := utils.GetEnv("PASTES_SSH_PORT", "2222")
4 	promPort := utils.GetEnv("PASTES_PROM_PORT", "9222")
5-	cfg := NewConfigSite()
6+	cfg := NewConfigSite("pastes-ssh")
7 	logger := cfg.Logger
8 	dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 	defer dbh.Close()
M pico/config.go
+2, -2
 1@@ -5,12 +5,12 @@ import (
 2 	"github.com/picosh/utils"
 3 )
 4 
 5-func NewConfigSite() *shared.ConfigSite {
 6+func NewConfigSite(service string) *shared.ConfigSite {
 7 	dbURL := utils.GetEnv("DATABASE_URL", "")
 8 
 9 	return &shared.ConfigSite{
10 		DbURL:  dbURL,
11 		Space:  "pico",
12-		Logger: shared.CreateLogger("pico"),
13+		Logger: shared.CreateLogger(service),
14 	}
15 }
M pico/ssh.go
+1, -1
1@@ -67,7 +67,7 @@ func StartSshServer() {
2 	host := utils.GetEnv("PICO_HOST", "0.0.0.0")
3 	port := utils.GetEnv("PICO_SSH_PORT", "2222")
4 	promPort := utils.GetEnv("PICO_PROM_PORT", "9222")
5-	cfg := NewConfigSite()
6+	cfg := NewConfigSite("pico-ssh")
7 	logger := cfg.Logger
8 	dbpool := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 	defer dbpool.Close()
M pipe/api.go
+1, -1
1@@ -411,7 +411,7 @@ func createMainRoutes(staticRoutes []shared.Route) []shared.Route {
2 }
3 
4 func StartApiServer() {
5-	cfg := NewConfigSite()
6+	cfg := NewConfigSite("pipe-web")
7 	db := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 	defer db.Close()
9 	logger := cfg.Logger
M pipe/config.go
+2, -2
 1@@ -5,7 +5,7 @@ import (
 2 	"github.com/picosh/utils"
 3 )
 4 
 5-func NewConfigSite() *shared.ConfigSite {
 6+func NewConfigSite(service string) *shared.ConfigSite {
 7 	domain := utils.GetEnv("PIPE_DOMAIN", "pipe.pico.sh")
 8 	port := utils.GetEnv("PIPE_WEB_PORT", "3000")
 9 	dbURL := utils.GetEnv("DATABASE_URL", "")
10@@ -16,7 +16,7 @@ func NewConfigSite() *shared.ConfigSite {
11 		Port:     port,
12 		Protocol: protocol,
13 		DbURL:    dbURL,
14-		Logger:   shared.CreateLogger("pipe"),
15+		Logger:   shared.CreateLogger(service),
16 		Space:    "pipe",
17 	}
18 }
M pipe/ssh.go
+1, -1
1@@ -24,7 +24,7 @@ func StartSshServer() {
2 	port := utils.GetEnv("PIPE_SSH_PORT", "2222")
3 	portOverride := utils.GetEnv("PIPE_SSH_PORT_OVERRIDE", port)
4 	promPort := utils.GetEnv("PIPE_PROM_PORT", "9222")
5-	cfg := NewConfigSite()
6+	cfg := NewConfigSite("pipe-ssh")
7 	logger := cfg.Logger
8 	dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 	defer dbh.Close()
M prose/api.go
+1, -1
1@@ -907,7 +907,7 @@ func createSubdomainRoutes(staticRoutes []shared.Route) []shared.Route {
2 }
3 
4 func StartApiServer() {
5-	cfg := NewConfigSite()
6+	cfg := NewConfigSite("prose-web")
7 	dbpool := postgres.NewDB(cfg.DbURL, cfg.Logger)
8 	defer dbpool.Close()
9 	logger := cfg.Logger
M prose/config.go
+2, -2
 1@@ -7,7 +7,7 @@ import (
 2 
 3 var MAX_FILE_SIZE = 3 * utils.MB
 4 
 5-func NewConfigSite() *shared.ConfigSite {
 6+func NewConfigSite(service string) *shared.ConfigSite {
 7 	debug := utils.GetEnv("PROSE_DEBUG", "0")
 8 	domain := utils.GetEnv("PROSE_DOMAIN", "prose.sh")
 9 	port := utils.GetEnv("PROSE_WEB_PORT", "3000")
10@@ -42,7 +42,7 @@ func NewConfigSite() *shared.ConfigSite {
11 			".ico",
12 		},
13 		HiddenPosts:  []string{"_readme.md", "_styles.css", "_footer.md", "_404.md"},
14-		Logger:       shared.CreateLogger("prose"),
15+		Logger:       shared.CreateLogger(service),
16 		MaxSize:      maxSize,
17 		MaxAssetSize: maxImgSize,
18 	}
M prose/ssh.go
+1, -1
1@@ -66,7 +66,7 @@ func StartSshServer() {
2 	host := utils.GetEnv("PROSE_HOST", "0.0.0.0")
3 	port := utils.GetEnv("PROSE_SSH_PORT", "2222")
4 	promPort := utils.GetEnv("PROSE_PROM_PORT", "9222")
5-	cfg := NewConfigSite()
6+	cfg := NewConfigSite("prose-ssh")
7 	logger := cfg.Logger
8 	dbh := postgres.NewDB(cfg.DbURL, cfg.Logger)
9 	defer dbh.Close()
M shared/config.go
+22, -13
 1@@ -273,25 +273,34 @@ func (c *ConfigSite) AssetURL(username, projectName, fpath string) string {
 2 }
 3 
 4 func CreateLogger(space string) *slog.Logger {
 5-	opts := &slog.HandlerOptions{
 6-		AddSource: true,
 7-		Level:     slog.LevelInfo,
 8-	}
 9-	log := slog.New(
10-		slog.NewTextHandler(os.Stdout, opts),
11-	)
12-
13-	newLogger := log
14+	logger := slog.New(
15+		slog.NewTextHandler(
16+			os.Stdout,
17+			&slog.HandlerOptions{
18+				AddSource: true,
19+				Level:     slog.LevelInfo,
20+			},
21+		),
22+	).With("service")
23 
24 	if strings.ToLower(utils.GetEnv("PICO_PIPE_ENABLED", "true")) == "true" {
25 		conn := NewPicoPipeClient()
26-		newLogger = pipeLogger.RegisterReconnectLogger(context.Background(), log, conn, 100, 10*time.Millisecond)
27+		logger = pipeLogger.RegisterReconnectLogger(context.Background(), logger, conn, 100, 10*time.Millisecond)
28+	}
29+
30+	hostname, err := os.Hostname()
31+	if err == nil && hostname != "" {
32+		logger = logger.With("hostname", hostname)
33+	}
34+
35+	nodename := os.Getenv("NODE_NAME")
36+	if nodename != "" {
37+		logger = logger.With("nodename", nodename)
38 	}
39 
40-	defaultLogger := newLogger.With("service", space)
41-	slog.SetDefault(defaultLogger)
42+	slog.SetDefault(logger)
43 
44-	return defaultLogger
45+	return logger
46 }
47 
48 func LoggerWithUser(logger *slog.Logger, user *db.User) *slog.Logger {
M wish/logger.go
+1, -1
1@@ -31,7 +31,7 @@ func LogMiddleware(defaultLogger *slog.Logger, db FindUserInterface) wish.Middle
2 					user, err := db.FindUserByPubkey(s.Permissions().Extensions["pubkey"])
3 					if err == nil && user != nil {
4 						logger = shared.LoggerWithUser(logger, user).With(
5-							"ip", s.RemoteAddr(),
6+							"ip", s.RemoteAddr().String(),
7 						)
8 						s.Context().SetValue(ctxUserKey{}, user)
9 					}