mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-18 12:17:33 -06:00
[feature] Add healthcheck endpoints /livez and /readyz (#2783)
* [feature] Add healthcheck endpoints `/livez` and `/readyz` * use select that returns no data
This commit is contained in:
parent
36f79e650c
commit
b7b42e832a
11 changed files with 328 additions and 4 deletions
|
|
@ -33,8 +33,8 @@ type Basic interface {
|
|||
// If the database implementation doesn't need to be stopped, this can just return nil.
|
||||
Close() error
|
||||
|
||||
// IsHealthy should return nil if the database connection is healthy, or an error if not.
|
||||
IsHealthy(ctx context.Context) error
|
||||
// Ready returns nil if the database connection is ready, or an error if not.
|
||||
Ready(ctx context.Context) error
|
||||
|
||||
// GetByID gets one entry by its id. In a database like postgres, this might be the 'id' field of the entry,
|
||||
// for other implementations (for example, in-memory) it might just be the key of a map.
|
||||
|
|
|
|||
|
|
@ -124,8 +124,14 @@ func (b *basicDB) DropTable(ctx context.Context, i interface{}) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func (b *basicDB) IsHealthy(ctx context.Context) error {
|
||||
return b.db.PingContext(ctx)
|
||||
func (b *basicDB) Ready(ctx context.Context) error {
|
||||
if _, err := b.db.
|
||||
NewRaw("SELECT NULL FROM ? LIMIT 0", bun.Ident("instances")).
|
||||
Exec(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *basicDB) Close() error {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue