[#949] metabase: fix shard.UpdateID()

metabase.Open() now reports metabase mode metric. shard.UpdateID()
needs to read shard ID from metabase => needs to open metabase.
It caused reporting 'shard undefined' metrics. To avoid reporting
wrong metrics metabase.GetShardID() was added which also opens
metabase and does not report metrics.

Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
This commit is contained in:
Ekaterina Lebedeva 2024-03-19 12:40:00 +03:00
parent 81a0346a96
commit d5194ab2a6
5 changed files with 69 additions and 38 deletions

View file

@ -202,11 +202,12 @@ func (db *DB) SyncCounters() error {
}))
}
// Close closes boltDB instance.
// Close closes boltDB instance
// and reports metabase metric.
func (db *DB) Close() error {
var err error
if db.boltDB != nil {
err = metaerr.Wrap(db.boltDB.Close())
err = db.close()
}
if err == nil {
db.metrics.Close()
@ -214,6 +215,10 @@ func (db *DB) Close() error {
return err
}
func (db *DB) close() error {
return metaerr.Wrap(db.boltDB.Close())
}
// Reload reloads part of the configuration.
// It returns true iff database was reopened.
// If a config option is invalid, it logs an error and returns nil.