|
8 | 8 | "net/url" |
9 | 9 | "os" |
10 | 10 | "os/signal" |
11 | | - "strconv" |
12 | 11 | "strings" |
13 | 12 | "syscall" |
14 | 13 | "time" |
@@ -69,23 +68,13 @@ const ( |
69 | 68 | codeRetryable = stacktrace.ErrorCode(1) |
70 | 69 | ) |
71 | 70 |
|
72 | | -func getDBStats(ctx context.Context, db *datastore.Datastore, databaseName string) { |
| 71 | +func checkDatabase(ctx context.Context, db *datastore.Datastore, databaseName string) { |
73 | 72 | logger := logging.WithValuesFromContext(ctx, logging.Logger) |
74 | 73 | statsPtr := db.Pool.Stat() |
75 | | - stats := make(map[string]string) |
76 | | - stats["DBName"] = databaseName |
77 | | - stats["AcquireCount"] = strconv.Itoa(int(statsPtr.AcquireCount())) |
78 | | - stats["AcquiredConns"] = strconv.Itoa(int(statsPtr.AcquiredConns())) |
79 | | - stats["CanceledAcquireCount"] = strconv.Itoa(int(statsPtr.CanceledAcquireCount())) |
80 | | - stats["ConstructingConns"] = strconv.Itoa(int(statsPtr.ConstructingConns())) |
81 | | - stats["EmptyAcquireCount"] = strconv.Itoa(int(statsPtr.EmptyAcquireCount())) |
82 | | - stats["IdleConns"] = strconv.Itoa(int(statsPtr.IdleConns())) |
83 | | - stats["MaxConns"] = strconv.Itoa(int(statsPtr.MaxConns())) |
84 | | - stats["TotalConns"] = strconv.Itoa(int(statsPtr.TotalConns())) |
85 | | - if stats["TotalConns"] == "0" { |
| 74 | + if int(statsPtr.TotalConns()) == 0 { |
86 | 75 | logger.Warn("Failed periodic DB Ping (TotalConns=0)", zap.String("Database", databaseName)) |
87 | 76 | } else { |
88 | | - logger.Info("Successful periodic DB Ping ", zap.String("Database", databaseName)) |
| 77 | + logger.Info("Successful periodic DB Ping", zap.String("Database", databaseName)) |
89 | 78 | } |
90 | 79 | } |
91 | 80 |
|
@@ -174,8 +163,8 @@ func createRIDServers(ctx context.Context, locality string, logger *zap.Logger) |
174 | 163 |
|
175 | 164 | // schedule period tasks for RID Server |
176 | 165 | ridCron := cron.New() |
177 | | - // schedule printing of DB connection stats every minute for the underlying storage for RID Server |
178 | | - if _, err := ridCron.AddFunc("@every 1m", func() { getDBStats(ctx, datastore, connectParameters.DBName) }); err != nil { |
| 166 | + // schedule printing of DB status every minute for the underlying storage |
| 167 | + if _, err := ridCron.AddFunc("@every 1m", func() { checkDatabase(ctx, datastore, connectParameters.DBName) }); err != nil { |
179 | 168 | return nil, nil, stacktrace.Propagate(err, "Failed to schedule periodic db stat check to %s", connectParameters.DBName) |
180 | 169 | } |
181 | 170 | ridCron.Start() |
@@ -214,8 +203,8 @@ func createSCDServer(ctx context.Context, logger *zap.Logger) (*scd.Server, erro |
214 | 203 |
|
215 | 204 | // schedule period tasks for SCD Server |
216 | 205 | scdCron := cron.New() |
217 | | - // schedule printing of DB connection stats every minute for the underlying storage for RID Server |
218 | | - if _, err := scdCron.AddFunc("@every 1m", func() { getDBStats(ctx, datastore, scdc.DatabaseName) }); err != nil { |
| 206 | + // schedule printing of DB status every minute for the underlying storage |
| 207 | + if _, err := scdCron.AddFunc("@every 1m", func() { checkDatabase(ctx, datastore, scdc.DatabaseName) }); err != nil { |
219 | 208 | return nil, stacktrace.Propagate(err, "Failed to schedule periodic db stat check to %s", scdc.DatabaseName) |
220 | 209 | } |
221 | 210 |
|
|
0 commit comments