forked from TrueCloudLab/frostfs-node
[#725] writecache: Fix metric values
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
121f5c4dd8
commit
d4b6ebe7e7
11 changed files with 19 additions and 31 deletions
|
@ -68,16 +68,10 @@ func (m *writeCacheMetrics) Get(d time.Duration, success bool, st writecache.Sto
|
|||
|
||||
func (m *writeCacheMetrics) Delete(d time.Duration, success bool, st writecache.StorageType) {
|
||||
m.metrics.AddMethodDuration(m.shardID, "Delete", success, d, st.String())
|
||||
if success {
|
||||
m.metrics.DecActualCount(m.shardID, st.String())
|
||||
}
|
||||
}
|
||||
|
||||
func (m *writeCacheMetrics) Put(d time.Duration, success bool, st writecache.StorageType) {
|
||||
m.metrics.AddMethodDuration(m.shardID, "Put", success, d, st.String())
|
||||
if success {
|
||||
m.metrics.IncActualCount(m.shardID, st.String())
|
||||
}
|
||||
}
|
||||
|
||||
func (m *writeCacheMetrics) SetEstimateSize(db, fstree uint64) {
|
||||
|
@ -99,7 +93,6 @@ func (m *writeCacheMetrics) Flush(success bool, st writecache.StorageType) {
|
|||
}
|
||||
|
||||
func (m *writeCacheMetrics) Evict(st writecache.StorageType) {
|
||||
m.metrics.DecActualCount(m.shardID, st.String())
|
||||
m.metrics.IncOperationCounter(m.shardID, "Evict", metrics.NullBool{}, st.String())
|
||||
}
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ func (c *cache) Delete(ctx context.Context, addr oid.Address) error {
|
|||
storagelog.OpField("db DELETE"),
|
||||
)
|
||||
deleted = true
|
||||
c.objCounters.DecDB()
|
||||
c.decDB()
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -76,7 +76,7 @@ func (c *cache) put(obj objectInfo) error {
|
|||
storagelog.StorageTypeField(wcStorageType),
|
||||
storagelog.OpField("db PUT"),
|
||||
)
|
||||
c.objCounters.IncDB()
|
||||
c.incDB()
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -55,3 +55,13 @@ func (c *cache) initCounters() error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *cache) incDB() {
|
||||
c.objCounters.IncDB()
|
||||
c.metrics.SetActualCounters(c.objCounters.DB(), 0)
|
||||
}
|
||||
|
||||
func (c *cache) decDB() {
|
||||
c.objCounters.DecDB()
|
||||
c.metrics.SetActualCounters(c.objCounters.DB(), 0)
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ func (c *cache) deleteFromDB(keys []internalKey) []internalKey {
|
|||
}
|
||||
|
||||
for i := 0; i < errorIndex; i++ {
|
||||
c.objCounters.DecDB()
|
||||
c.decDB()
|
||||
c.metrics.Evict(writecache.StorageTypeDB)
|
||||
storagelog.Write(c.log,
|
||||
storagelog.AddressField(keys[i]),
|
||||
|
|
|
@ -83,6 +83,7 @@ func (c *cache) Delete(ctx context.Context, addr oid.Address) error {
|
|||
storagelog.OpField("fstree DELETE"),
|
||||
)
|
||||
deleted = true
|
||||
// counter changed by fstree
|
||||
c.estimateCacheSize()
|
||||
}
|
||||
return metaerr.Wrap(err)
|
||||
|
|
|
@ -60,6 +60,7 @@ func (c *cache) runFlushLoop(ctx context.Context) {
|
|||
case <-tt.C:
|
||||
c.flushSmallObjects(ctx)
|
||||
tt.Reset(defaultFlushInterval)
|
||||
c.estimateCacheSize()
|
||||
case <-ctx.Done():
|
||||
return
|
||||
}
|
||||
|
|
|
@ -131,6 +131,7 @@ func (c *cache) putBig(ctx context.Context, addr string, prm common.PutPrm) erro
|
|||
storagelog.StorageTypeField(wcStorageType),
|
||||
storagelog.OpField("fstree PUT"),
|
||||
)
|
||||
// counter changed by fstree
|
||||
c.estimateCacheSize()
|
||||
|
||||
return nil
|
||||
|
|
|
@ -72,5 +72,6 @@ func (c *cache) initCounters() error {
|
|||
return fmt.Errorf("could not read write-cache DB counter: %w", err)
|
||||
}
|
||||
c.objCounters.cDB.Store(inDB)
|
||||
c.estimateCacheSize()
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ func (c *cache) deleteFromDB(key string) {
|
|||
err := c.db.Batch(func(tx *bbolt.Tx) error {
|
||||
b := tx.Bucket(defaultBucket)
|
||||
key := []byte(key)
|
||||
recordDeleted = !recordDeleted && b.Get(key) != nil
|
||||
recordDeleted = b.Get(key) != nil
|
||||
return b.Delete(key)
|
||||
})
|
||||
|
||||
|
@ -122,6 +122,7 @@ func (c *cache) deleteFromDisk(ctx context.Context, keys []string) []string {
|
|||
storagelog.OpField("fstree DELETE"),
|
||||
)
|
||||
c.metrics.Evict(writecache.StorageTypeFSTree)
|
||||
// counter changed by fstree
|
||||
c.estimateCacheSize()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,16 +10,10 @@ import (
|
|||
|
||||
type WriteCacheMetrics interface {
|
||||
AddMethodDuration(shardID string, method string, success bool, d time.Duration, storageType string)
|
||||
|
||||
IncActualCount(shardID string, storageType string)
|
||||
DecActualCount(shardID string, storageType string)
|
||||
SetActualCount(shardID string, count uint64, storageType string)
|
||||
|
||||
SetEstimateSize(shardID string, size uint64, storageType string)
|
||||
SetMode(shardID string, mode string)
|
||||
|
||||
IncOperationCounter(shardID string, operation string, success NullBool, storageType string)
|
||||
|
||||
Close(shardID string)
|
||||
}
|
||||
|
||||
|
@ -65,20 +59,6 @@ func (m *writeCacheMetrics) AddMethodDuration(shardID string, method string, suc
|
|||
).Observe(d.Seconds())
|
||||
}
|
||||
|
||||
func (m *writeCacheMetrics) IncActualCount(shardID string, storageType string) {
|
||||
m.actualCount.With(prometheus.Labels{
|
||||
shardIDLabel: shardID,
|
||||
storageLabel: storageType,
|
||||
}).Inc()
|
||||
}
|
||||
|
||||
func (m *writeCacheMetrics) DecActualCount(shardID string, storageType string) {
|
||||
m.actualCount.With(prometheus.Labels{
|
||||
shardIDLabel: shardID,
|
||||
storageLabel: storageType,
|
||||
}).Dec()
|
||||
}
|
||||
|
||||
func (m *writeCacheMetrics) SetActualCount(shardID string, count uint64, storageType string) {
|
||||
m.actualCount.With(prometheus.Labels{
|
||||
shardIDLabel: shardID,
|
||||
|
|
Loading…
Reference in a new issue