package metrics import ( "time" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/blobtree" metrics_impl "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/metrics" ) func NewBlobTreeMetrics(path string, m metrics_impl.BlobTreeMetrics) blobtree.Metrics { return &blobTreeMetrics{ path: path, m: m, } } type blobTreeMetrics struct { shardID string path string m metrics_impl.BlobTreeMetrics } func (m *blobTreeMetrics) SetParentID(parentID string) { m.shardID = parentID } func (m *blobTreeMetrics) SetMode(readOnly bool) { m.m.SetBlobTreeMode(m.shardID, m.path, readOnly) } func (m *blobTreeMetrics) Close() { m.m.CloseBlobTree(m.shardID, m.path) } func (m *blobTreeMetrics) Delete(d time.Duration, success, withStorageID bool) { m.m.BlobTreeMethodDuration(m.shardID, m.path, "Delete", d, success, metrics_impl.NullBool{Valid: true, Bool: withStorageID}) } func (m *blobTreeMetrics) Exists(d time.Duration, success, withStorageID bool) { m.m.BlobTreeMethodDuration(m.shardID, m.path, "Exists", d, success, metrics_impl.NullBool{Valid: true, Bool: withStorageID}) } func (m *blobTreeMetrics) GetRange(d time.Duration, size int, success, withStorageID bool) { m.m.BlobTreeMethodDuration(m.shardID, m.path, "GetRange", d, success, metrics_impl.NullBool{Valid: true, Bool: withStorageID}) if success { m.m.AddBlobTreeGet(m.shardID, m.path, size) } } func (m *blobTreeMetrics) Get(d time.Duration, size int, success, withStorageID bool) { m.m.BlobTreeMethodDuration(m.shardID, m.path, "Get", d, success, metrics_impl.NullBool{Valid: true, Bool: withStorageID}) if success { m.m.AddBlobTreeGet(m.shardID, m.path, size) } } func (m *blobTreeMetrics) Iterate(d time.Duration, success bool) { m.m.BlobTreeMethodDuration(m.shardID, m.path, "Iterate", d, success, metrics_impl.NullBool{}) } func (m *blobTreeMetrics) Put(d time.Duration, size int, success bool) { m.m.BlobTreeMethodDuration(m.shardID, m.path, "Put", d, success, metrics_impl.NullBool{}) if success { m.m.AddBlobTreePut(m.shardID, m.path, size) } } func (m *blobTreeMetrics) IncFilesCount() { m.m.IncBlobTreeFilesCount(m.shardID, m.path) } func (m *blobTreeMetrics) DecFilesCount() { m.m.DecBlobTreeFilesCount(m.shardID, m.path) }