mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-04-05 20:52:50 +08:00
add metrics for filer store
This commit is contained in:
parent
6bc3dee5b3
commit
c369e5a13b
@ -3,7 +3,10 @@ package filer2
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
|
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
|
||||||
|
"github.com/chrislusf/seaweedfs/weed/stats"
|
||||||
"github.com/chrislusf/seaweedfs/weed/util"
|
"github.com/chrislusf/seaweedfs/weed/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -45,16 +48,28 @@ func (fsw *FilerStoreWrapper) Initialize(configuration util.Configuration) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (fsw *FilerStoreWrapper) InsertEntry(ctx context.Context, entry *Entry) error {
|
func (fsw *FilerStoreWrapper) InsertEntry(ctx context.Context, entry *Entry) error {
|
||||||
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "insert").Inc()
|
||||||
|
start := time.Now()
|
||||||
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "insert").Observe(time.Since(start).Seconds()) }()
|
||||||
|
|
||||||
filer_pb.BeforeEntrySerialization(entry.Chunks)
|
filer_pb.BeforeEntrySerialization(entry.Chunks)
|
||||||
return fsw.actualStore.InsertEntry(ctx, entry)
|
return fsw.actualStore.InsertEntry(ctx, entry)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fsw *FilerStoreWrapper) UpdateEntry(ctx context.Context, entry *Entry) error {
|
func (fsw *FilerStoreWrapper) UpdateEntry(ctx context.Context, entry *Entry) error {
|
||||||
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "update").Inc()
|
||||||
|
start := time.Now()
|
||||||
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "update").Observe(time.Since(start).Seconds()) }()
|
||||||
|
|
||||||
filer_pb.BeforeEntrySerialization(entry.Chunks)
|
filer_pb.BeforeEntrySerialization(entry.Chunks)
|
||||||
return fsw.actualStore.UpdateEntry(ctx, entry)
|
return fsw.actualStore.UpdateEntry(ctx, entry)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fsw *FilerStoreWrapper) FindEntry(ctx context.Context, fp FullPath) (entry *Entry, err error) {
|
func (fsw *FilerStoreWrapper) FindEntry(ctx context.Context, fp FullPath) (entry *Entry, err error) {
|
||||||
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "find").Inc()
|
||||||
|
start := time.Now()
|
||||||
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "find").Observe(time.Since(start).Seconds()) }()
|
||||||
|
|
||||||
entry, err = fsw.actualStore.FindEntry(ctx, fp)
|
entry, err = fsw.actualStore.FindEntry(ctx, fp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -64,10 +79,18 @@ func (fsw *FilerStoreWrapper) FindEntry(ctx context.Context, fp FullPath) (entry
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (fsw *FilerStoreWrapper) DeleteEntry(ctx context.Context, fp FullPath) (err error) {
|
func (fsw *FilerStoreWrapper) DeleteEntry(ctx context.Context, fp FullPath) (err error) {
|
||||||
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "delete").Inc()
|
||||||
|
start := time.Now()
|
||||||
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "delete").Observe(time.Since(start).Seconds()) }()
|
||||||
|
|
||||||
return fsw.actualStore.DeleteEntry(ctx, fp)
|
return fsw.actualStore.DeleteEntry(ctx, fp)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fsw *FilerStoreWrapper) ListDirectoryEntries(ctx context.Context, dirPath FullPath, startFileName string, includeStartFile bool, limit int) ([]*Entry, error) {
|
func (fsw *FilerStoreWrapper) ListDirectoryEntries(ctx context.Context, dirPath FullPath, startFileName string, includeStartFile bool, limit int) ([]*Entry, error) {
|
||||||
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "list").Inc()
|
||||||
|
start := time.Now()
|
||||||
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "list").Observe(time.Since(start).Seconds()) }()
|
||||||
|
|
||||||
entries, err := fsw.actualStore.ListDirectoryEntries(ctx, dirPath, startFileName, includeStartFile, limit)
|
entries, err := fsw.actualStore.ListDirectoryEntries(ctx, dirPath, startFileName, includeStartFile, limit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -31,6 +31,23 @@ var (
|
|||||||
Buckets: prometheus.ExponentialBuckets(0.0001, 2, 24),
|
Buckets: prometheus.ExponentialBuckets(0.0001, 2, 24),
|
||||||
}, []string{"type"})
|
}, []string{"type"})
|
||||||
|
|
||||||
|
FilerStoreCounter = prometheus.NewCounterVec(
|
||||||
|
prometheus.CounterOpts{
|
||||||
|
Namespace: "SeaweedFS",
|
||||||
|
Subsystem: "filerStore",
|
||||||
|
Name: "request_total",
|
||||||
|
Help: "Counter of filer store requests.",
|
||||||
|
}, []string{"store", "type"})
|
||||||
|
|
||||||
|
FilerStoreHistogram = prometheus.NewHistogramVec(
|
||||||
|
prometheus.HistogramOpts{
|
||||||
|
Namespace: "SeaweedFS",
|
||||||
|
Subsystem: "filerStore",
|
||||||
|
Name: "request_seconds",
|
||||||
|
Help: "Bucketed histogram of filer store request processing time.",
|
||||||
|
Buckets: prometheus.ExponentialBuckets(0.0001, 2, 24),
|
||||||
|
}, []string{"store", "type"})
|
||||||
|
|
||||||
VolumeServerRequestCounter = prometheus.NewCounterVec(
|
VolumeServerRequestCounter = prometheus.NewCounterVec(
|
||||||
prometheus.CounterOpts{
|
prometheus.CounterOpts{
|
||||||
Namespace: "SeaweedFS",
|
Namespace: "SeaweedFS",
|
||||||
@ -77,6 +94,8 @@ func init() {
|
|||||||
|
|
||||||
FilerGather.MustRegister(FilerRequestCounter)
|
FilerGather.MustRegister(FilerRequestCounter)
|
||||||
FilerGather.MustRegister(FilerRequestHistogram)
|
FilerGather.MustRegister(FilerRequestHistogram)
|
||||||
|
FilerGather.MustRegister(FilerStoreCounter)
|
||||||
|
FilerGather.MustRegister(FilerStoreHistogram)
|
||||||
|
|
||||||
VolumeServerGather.MustRegister(VolumeServerRequestCounter)
|
VolumeServerGather.MustRegister(VolumeServerRequestCounter)
|
||||||
VolumeServerGather.MustRegister(VolumeServerRequestHistogram)
|
VolumeServerGather.MustRegister(VolumeServerRequestHistogram)
|
||||||
|
Loading…
Reference in New Issue
Block a user