[#1413] engine: Remove error counting methods from Shard

All error counting and hangling logic is present on the engine level.
Currently, we pass engine metrics with shard ID metric to shard, then
export 3 methods to manipulate these metrics.
In this commits all methods are removed and error counter is tracked on
the engine level exlusively.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
Evgenii Stratonikov 2024-10-04 15:07:20 +03:00
parent 963faa615a
commit 4dc9a1b300
4 changed files with 4 additions and 25 deletions

View file

@ -144,7 +144,7 @@ func (e *StorageEngine) reportShardError(
} }
errCount := sh.errorCount.Add(1) errCount := sh.errorCount.Add(1)
sh.Shard.IncErrorCounter() e.metrics.IncErrorCounter(sh.ID().String())
sid := sh.ID() sid := sh.ID()
e.log.Warn(msg, append([]zap.Field{ e.log.Warn(msg, append([]zap.Field{

View file

@ -217,7 +217,7 @@ func (e *StorageEngine) removeShards(ids ...string) {
continue continue
} }
sh.DeleteShardMetrics() e.metrics.DeleteShardMetrics(id)
ss = append(ss, sh) ss = append(ss, sh)
delete(e.shards, id) delete(e.shards, id)
@ -318,7 +318,7 @@ func (e *StorageEngine) SetShardMode(id *shard.ID, m mode.Mode, resetErrorCounte
if id.String() == shID { if id.String() == shID {
if resetErrorCounter { if resetErrorCounter {
sh.errorCount.Store(0) sh.errorCount.Store(0)
sh.Shard.ClearErrorCounter() e.metrics.ClearErrorCounter(shID)
} }
return sh.SetMode(m) return sh.SetMode(m)
} }
@ -422,7 +422,7 @@ func (e *StorageEngine) deleteShards(ids []*shard.ID) ([]hashedShard, error) {
for _, sh := range ss { for _, sh := range ss {
idStr := sh.ID().String() idStr := sh.ID().String()
sh.DeleteShardMetrics() e.metrics.DeleteShardMetrics(idStr)
delete(e.shards, idStr) delete(e.shards, idStr)

View file

@ -24,12 +24,6 @@ type MetricsWriter interface {
SetShardID(id string) SetShardID(id string)
// SetReadonly must set shard mode. // SetReadonly must set shard mode.
SetMode(mode mode.Mode) SetMode(mode mode.Mode)
// IncErrorCounter increment error counter.
IncErrorCounter()
// ClearErrorCounter clear error counter.
ClearErrorCounter()
// DeleteShardMetrics deletes shard metrics from registry.
DeleteShardMetrics()
// SetContainerObjectsCount sets container object count. // SetContainerObjectsCount sets container object count.
SetContainerObjectsCount(cnrID string, objectType string, value uint64) SetContainerObjectsCount(cnrID string, objectType string, value uint64)
// IncContainerObjectsCount increments container object count. // IncContainerObjectsCount increments container object count.
@ -57,9 +51,6 @@ func (noopMetrics) AddToPayloadSize(int64) {}
func (noopMetrics) IncObjectCounter(string) {} func (noopMetrics) IncObjectCounter(string) {}
func (noopMetrics) SetShardID(string) {} func (noopMetrics) SetShardID(string) {}
func (noopMetrics) SetMode(mode.Mode) {} func (noopMetrics) SetMode(mode.Mode) {}
func (noopMetrics) IncErrorCounter() {}
func (noopMetrics) ClearErrorCounter() {}
func (noopMetrics) DeleteShardMetrics() {}
func (noopMetrics) SetContainerObjectsCount(string, string, uint64) {} func (noopMetrics) SetContainerObjectsCount(string, string, uint64) {}
func (noopMetrics) IncContainerObjectsCount(string, string) {} func (noopMetrics) IncContainerObjectsCount(string, string) {}
func (noopMetrics) SubContainerObjectsCount(string, string, uint64) {} func (noopMetrics) SubContainerObjectsCount(string, string, uint64) {}

View file

@ -494,18 +494,6 @@ func (s *Shard) setContainerObjectsCount(cnr string, typ string, v uint64) {
} }
} }
func (s *Shard) IncErrorCounter() {
s.cfg.metricsWriter.IncErrorCounter()
}
func (s *Shard) ClearErrorCounter() {
s.cfg.metricsWriter.ClearErrorCounter()
}
func (s *Shard) DeleteShardMetrics() {
s.cfg.metricsWriter.DeleteShardMetrics()
}
func (s *Shard) SetEvacuationInProgress(val bool) { func (s *Shard) SetEvacuationInProgress(val bool) {
s.m.Lock() s.m.Lock()
defer s.m.Unlock() defer s.m.Unlock()