package metrics import ( "time" metrics_impl "git.frostfs.info/TrueCloudLab/frostfs-node/internal/metrics" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/fstree" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/shard/mode" ) func NewFSTreeMetricsWithoutShardID(path string, m metrics_impl.FSTreeMetrics) fstree.Metrics { return &fstreeMetrics{ shardID: undefined, path: path, m: m, } } type fstreeMetrics struct { shardID string path string m metrics_impl.FSTreeMetrics } func (m *fstreeMetrics) SetParentID(parentID string) { m.shardID = parentID } func (m *fstreeMetrics) SetMode(mod mode.ComponentMode) { m.m.SetMode(m.shardID, m.path, mod) } func (m *fstreeMetrics) Close() { m.m.Close(m.shardID, m.path) } func (m *fstreeMetrics) Iterate(d time.Duration, success bool) { m.m.MethodDuration(m.shardID, m.path, "Iterate", d, success) } func (m *fstreeMetrics) IterateInfo(d time.Duration, success bool) { m.m.MethodDuration(m.shardID, m.path, "IterateInfo", d, success) } func (m *fstreeMetrics) Delete(d time.Duration, success bool) { m.m.MethodDuration(m.shardID, m.path, "Delete", d, success) } func (m *fstreeMetrics) Exists(d time.Duration, success bool) { m.m.MethodDuration(m.shardID, m.path, "Exists", d, success) } func (m *fstreeMetrics) Put(d time.Duration, size int, success bool) { m.m.MethodDuration(m.shardID, m.path, "Put", d, success) if success { m.m.AddPut(m.shardID, m.path, size) } } func (m *fstreeMetrics) Get(d time.Duration, size int, success bool) { m.m.MethodDuration(m.shardID, m.path, "Get", d, success) if success { m.m.AddGet(m.shardID, m.path, size) } } func (m *fstreeMetrics) GetRange(d time.Duration, size int, success bool) { m.m.MethodDuration(m.shardID, m.path, "GetRange", d, success) if success { m.m.AddGet(m.shardID, m.path, size) } } func (m *fstreeMetrics) ObjectsCount(d time.Duration, success bool) { m.m.MethodDuration(m.shardID, m.path, "ObjectsCount", d, success) }