From 62f89a07f6b22898fc00465860d07100f196db73 Mon Sep 17 00:00:00 2001 From: Shaun Davis Date: Tue, 31 Jan 2023 09:37:19 -0600 Subject: [PATCH 1/3] Cleanup logging --- cmd/event_handler/main.go | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/cmd/event_handler/main.go b/cmd/event_handler/main.go index 4f3ecd02..de7528d4 100644 --- a/cmd/event_handler/main.go +++ b/cmd/event_handler/main.go @@ -4,6 +4,7 @@ import ( "context" "flag" "fmt" + "log" "os" "strconv" "time" @@ -11,6 +12,8 @@ import ( "github.com/fly-apps/postgres-flex/pkg/flypg" ) +const eventLogFile = "/data/event.log" + func main() { event := flag.String("event", "", "event type") nodeID := flag.Int("node-id", 0, "the node id") @@ -23,56 +26,45 @@ func main() { details := flag.String("details", "", "details") flag.Parse() - eventDetails := fmt.Sprintf("%s - Event: %s\n Node: %d\n Success: %s\n Details: %s\n", time.Now().String(), *event, *nodeID, *success, *details) - - // TODO - Use an actual logging framework instead of just writing strings to a file. - logFile, err := os.OpenFile("/data/event.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) + logFile, err := os.OpenFile(eventLogFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644) if err != nil { fmt.Printf("failed to open event log: %s", err) } defer logFile.Close() - logFile.WriteString(eventDetails) + log.SetOutput(logFile) + log.Printf("Event: %s\n Node: %d\n Success: %s\n Details: %s\n", *event, *nodeID, *success, *details) switch *event { - case "repmgrd_failover_promote", "standby_promote": // TODO - Need to figure out what to do when success == 0. - retry := 0 maxRetries := 5 success := false for retry < maxRetries { if err := reconfigurePGBouncer(*nodeID); err != nil { - errMsg := fmt.Sprintf("%s [%s] attempt: %d - failed to reconfigure pgbouncer: %s\n", *event, time.Now().String(), retry, err) - logFile.WriteString(errMsg) - + log.Printf("%s - attempt: %d - failed to reconfigure pgbouncer: %s\n", *event, retry, err) retry++ time.Sleep(1 * time.Second) continue } - success = true break } if success { - msg := fmt.Sprintf("%s [%s] Successfully reconfigured pgBouncer to %d\n", *event, time.Now().String(), *nodeID) - logFile.WriteString(msg) + log.Printf("%s - Successfully reconfigured pgBouncer to %d\n", *event, *nodeID) os.Exit(0) } else { - msg := fmt.Sprintf(" %s [%s] Failed ot reconfigured pgBouncer to %d\n", *event, time.Now().String(), *nodeID) - logFile.WriteString(msg) + log.Printf("%s - Failed ot reconfigured pgBouncer to %d\n", *event, *nodeID) os.Exit(1) } case "standby_follow": - newMemberID, err := strconv.Atoi(*newPrimary) if err != nil { - errMsg := fmt.Sprintf("failed to parse newMemberID %s: %s\n", *newPrimary, err) - logFile.WriteString(errMsg) + log.Printf("failed to parse newMemberID %s: %s\n", *newPrimary, err) os.Exit(1) } @@ -82,25 +74,20 @@ func main() { for retry < maxRetries { if err := reconfigurePGBouncer(*&newMemberID); err != nil { - errMsg := fmt.Sprintf("%s [%s] attempt: %d - failed to reconfigure pgbouncer: %s\n", *event, time.Now().String(), retry, err) - logFile.WriteString(errMsg) - + log.Printf("%s - attempt: %d - failed to reconfigure pgbouncer: %s\n", *event, retry, err) retry++ time.Sleep(1 * time.Second) continue } - success = true break } if success { - msg := fmt.Sprintf("%s [%s] Successfully reconfigured pgBouncer to %d\n", *event, time.Now().String(), newMemberID) - logFile.WriteString(msg) + log.Printf("%s - Successfully reconfigured pgBouncer to %d\n", *event, newMemberID) os.Exit(0) } else { - msg := fmt.Sprintf(" %s [%s] Failed ot reconfigured pgBouncer to %d\n", *event, time.Now().String(), newMemberID) - logFile.WriteString(msg) + log.Printf("%s - Failed ot reconfigured pgBouncer to %d\n", *event, newMemberID) os.Exit(1) } From a5c4e94375cd163cc03ae454906808396e3d269b Mon Sep 17 00:00:00 2001 From: Shaun Davis Date: Tue, 31 Jan 2023 09:40:52 -0600 Subject: [PATCH 2/3] More cleanup --- cmd/event_handler/main.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/event_handler/main.go b/cmd/event_handler/main.go index de7528d4..d05791ce 100644 --- a/cmd/event_handler/main.go +++ b/cmd/event_handler/main.go @@ -33,7 +33,7 @@ func main() { defer logFile.Close() log.SetOutput(logFile) - log.Printf("Event: %s\n Node: %d\n Success: %s\n Details: %s\n", *event, *nodeID, *success, *details) + log.Printf("event: %s\n node: %d\n success: %s\n details: %s\n", *event, *nodeID, *success, *details) switch *event { case "repmgrd_failover_promote", "standby_promote": @@ -44,7 +44,7 @@ func main() { for retry < maxRetries { if err := reconfigurePGBouncer(*nodeID); err != nil { - log.Printf("%s - attempt: %d - failed to reconfigure pgbouncer: %s\n", *event, retry, err) + log.Printf("%s - failed to reconfigure pgbouncer: %s. (attempt: %d)\n", *event, err, retry) retry++ time.Sleep(1 * time.Second) continue @@ -54,10 +54,10 @@ func main() { } if success { - log.Printf("%s - Successfully reconfigured pgBouncer to %d\n", *event, *nodeID) + log.Printf("%s - successfully reconfigured pgbouncer to target: %d\n", *event, *nodeID) os.Exit(0) } else { - log.Printf("%s - Failed ot reconfigured pgBouncer to %d\n", *event, *nodeID) + log.Printf("%s - failed to reconfigured pgbouncer to target: %d\n", *event, *nodeID) os.Exit(1) } @@ -74,7 +74,7 @@ func main() { for retry < maxRetries { if err := reconfigurePGBouncer(*&newMemberID); err != nil { - log.Printf("%s - attempt: %d - failed to reconfigure pgbouncer: %s\n", *event, retry, err) + log.Printf("%s - failed to reconfigure pgbouncer: %s. (attempt: %d)\n", *event, err, retry) retry++ time.Sleep(1 * time.Second) continue @@ -84,10 +84,10 @@ func main() { } if success { - log.Printf("%s - Successfully reconfigured pgBouncer to %d\n", *event, newMemberID) + log.Printf("%s - successfully reconfigured pgbouncer to target: %d\n", *event, newMemberID) os.Exit(0) } else { - log.Printf("%s - Failed ot reconfigured pgBouncer to %d\n", *event, newMemberID) + log.Printf("%s - failed to reconfigured pgbouncer to target: %d\n", *event, newMemberID) os.Exit(1) } From b431277b25e6e589c9f4bfa956af7737e6fd6f2e Mon Sep 17 00:00:00 2001 From: Shaun Davis Date: Tue, 31 Jan 2023 09:42:06 -0600 Subject: [PATCH 3/3] Cleanup --- cmd/event_handler/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/event_handler/main.go b/cmd/event_handler/main.go index d05791ce..2a777121 100644 --- a/cmd/event_handler/main.go +++ b/cmd/event_handler/main.go @@ -33,7 +33,7 @@ func main() { defer logFile.Close() log.SetOutput(logFile) - log.Printf("event: %s\n node: %d\n success: %s\n details: %s\n", *event, *nodeID, *success, *details) + log.Printf("event: %s, node: %d, success: %s, details: %s\n", *event, *nodeID, *success, *details) switch *event { case "repmgrd_failover_promote", "standby_promote":