diff --git a/pkg/cache/metrics.go b/pkg/cache/metrics.go new file mode 100644 index 000000000..9203b9bc3 --- /dev/null +++ b/pkg/cache/metrics.go @@ -0,0 +1,22 @@ +package cache + +import "github.com/bilibili/kratos/pkg/stat/metric" + +const _metricNamespace = "cache" + +var ( + MetricHits = metric.NewCounterVec(&metric.CounterVecOpts{ + Namespace: _metricNamespace, + Subsystem: "", + Name: "hits_total", + Help: "cache hits total.", + Labels: []string{"name"}, + }) + MetricMisses = metric.NewCounterVec(&metric.CounterVecOpts{ + Namespace: _metricNamespace, + Subsystem: "", + Name: "misses_total", + Help: "cache misses total.", + Labels: []string{"name"}, + }) +) diff --git a/tool/kratos-gen-bts/header_template.go b/tool/kratos-gen-bts/header_template.go index c19d79494..3d5d56292 100644 --- a/tool/kratos-gen-bts/header_template.go +++ b/tool/kratos-gen-bts/header_template.go @@ -17,7 +17,7 @@ import ( "context" {{if .EnableBatch }}"sync"{{end}} NEWLINE - "github.com/bilibili/kratos/pkg/stat/metric" + "github.com/bilibili/kratos/pkg/cache" {{if .EnableBatch }}"github.com/bilibili/kratos/pkg/sync/errgroup"{{end}} {{.ImportPackage}} NEWLINE @@ -26,8 +26,6 @@ NEWLINE var ( _ _bts - _metricHits = metric.NewBusinessMetricCount("hits_total", "name") - _metricMisses = metric.NewBusinessMetricCount("misses_total", "name") ) {{if .EnableSingleFlight}} var cacheSingleFlights = [SFCOUNT]*singleflight.Group{SFINIT} diff --git a/tool/kratos-gen-bts/multi_template.go b/tool/kratos-gen-bts/multi_template.go index 0343aa054..6d4ffcffa 100644 --- a/tool/kratos-gen-bts/multi_template.go +++ b/tool/kratos-gen-bts/multi_template.go @@ -26,7 +26,7 @@ func (d *Dao) NAME(c context.Context, {{.IDName}} []KEY{{.ExtraArgsType}}) (res miss = append(miss, key) } } - _metricHits.Add(float64(len({{.IDName}}) - len(miss)), "NAME") + cache.MetricHits.Add(float64(len({{.IDName}}) - len(miss)), "bts:NAME") {{if .EnableNullCache}} for k, v := range res { {{if .SimpleValue}} if v == {{.NullCache}} { {{else}} if {{.CheckNullCode}} { {{end}} @@ -47,14 +47,14 @@ func (d *Dao) NAME(c context.Context, {{.IDName}} []KEY{{.ExtraArgsType}}) (res var rr interface{} sf := d.cacheSFNAME({{.IDName}} {{.ExtraArgs}}) rr, err, _ = cacheSingleFlights[SFNUM].Do(sf, func() (r interface{}, e error) { - _metricMisses.Add(float64(len(miss)), "NAME") + cache.MetricMisses.Add(float64(len(miss)), "bts:NAME") r, e = RAWFUNC(c, miss {{.ExtraRawArgs}}) return }) missData = rr.(map[KEY]VALUE) {{else}} {{if .EnableBatch}} - _metricMisses.Add(int64(missLen), "NAME") + cache.MetricMisses.Add(float64(missLen), "bts:NAME") var mutex sync.Mutex {{if .BatchErrBreak}} group := errgroup.WithCancel(c) @@ -87,7 +87,7 @@ func (d *Dao) NAME(c context.Context, {{.IDName}} []KEY{{.ExtraArgsType}}) (res } err = group.Wait() {{else}} - _metricMisses.Add(int64(len(miss)), "NAME") + cache.MetricMisses.Add(float64(len(miss)), "bts:NAME") missData, err = RAWFUNC(c, miss {{.ExtraRawArgs}}) {{end}} {{end}} diff --git a/tool/kratos-gen-bts/none_template.go b/tool/kratos-gen-bts/none_template.go index b26627c18..dfdf53ab8 100644 --- a/tool/kratos-gen-bts/none_template.go +++ b/tool/kratos-gen-bts/none_template.go @@ -21,20 +21,20 @@ func (d *Dao) NAME(c context.Context) (res VALUE, err error) { {{else}} if res != {{.ZeroValue}} { {{end}} - _metricHits.Incr("NAME") + cache.MetricHits.Inc("bts:NAME") return } {{if .EnableSingleFlight}} var rr interface{} sf := d.cacheSFNAME() rr, err, _ = cacheSingleFlights[SFNUM].Do(sf, func() (r interface{}, e error) { - _metricMisses.Incr("NAME") + cache.MetricMisses.Inc("bts:NAME") r, e = RAWFUNC(c) return }) res = rr.(VALUE) {{else}} - _metricMisses.Incr("NAME") + cache.MetricMisses.Inc("bts:NAME") res, err = RAWFUNC(c) {{end}} if err != nil { diff --git a/tool/kratos-gen-bts/single_template.go b/tool/kratos-gen-bts/single_template.go index 9d5da90f7..7d3219e1f 100644 --- a/tool/kratos-gen-bts/single_template.go +++ b/tool/kratos-gen-bts/single_template.go @@ -21,7 +21,7 @@ func (d *Dao) NAME(c context.Context, {{.IDName}} KEY{{.ExtraArgsType}}) (res VA {{else}} if res != {{.ZeroValue}} { {{end}} - prom.CacheHit.Incr("NAME") + cache.MetricHits.Inc("bts:NAME") return } {{if .EnablePaging}} @@ -31,7 +31,7 @@ func (d *Dao) NAME(c context.Context, {{.IDName}} KEY{{.ExtraArgsType}}) (res VA var rr interface{} sf := d.cacheSFNAME({{.IDName}} {{.ExtraArgs}}) rr, err, _ = cacheSingleFlights[SFNUM].Do(sf, func() (r interface{}, e error) { - prom.CacheMiss.Incr("NAME") + cache.MetricMisses.Inc("bts:NAME") {{if .EnablePaging}} var rrs [2]interface{} rrs[0], rrs[1], e = RAWFUNC(c, {{.IDName}} {{.ExtraRawArgs}}) @@ -48,7 +48,7 @@ func (d *Dao) NAME(c context.Context, {{.IDName}} KEY{{.ExtraArgsType}}) (res VA res = rr.(VALUE) {{end}} {{else}} - prom.CacheMiss.Incr("NAME") + cache.MetricMisses.Inc("bts:NAME") {{if .EnablePaging}} res, miss, err = RAWFUNC(c, {{.IDName}} {{.ExtraRawArgs}}) {{else}} diff --git a/tool/kratos-gen-mc/header_template.go b/tool/kratos-gen-mc/header_template.go index e73d0bab8..b0237c6a6 100644 --- a/tool/kratos-gen-mc/header_template.go +++ b/tool/kratos-gen-mc/header_template.go @@ -19,7 +19,6 @@ import ( {{if .UseStrConv}}"strconv"{{end}} {{if .EnableBatch }}"sync"{{end}} NEWLINE - "github.com/bilibili/kratos/pkg/stat/metric" {{if .UseMemcached }}"github.com/bilibili/kratos/pkg/cache/memcache"{{end}} {{if .EnableBatch }}"github.com/bilibili/kratos/pkg/sync/errgroup"{{end}} "github.com/bilibili/kratos/pkg/log" @@ -28,6 +27,5 @@ NEWLINE var ( _ _mc - _metricErrCount = metric.NewBusinessMetricCount("mc_error_total", "NAME") ) ` diff --git a/tool/kratos-gen-mc/multi_template.go b/tool/kratos-gen-mc/multi_template.go index 229e06eae..214adad76 100644 --- a/tool/kratos-gen-mc/multi_template.go +++ b/tool/kratos-gen-mc/multi_template.go @@ -44,7 +44,6 @@ func (d *{{.StructName}}) NAME(c context.Context, ids []KEY {{.ExtraArgsType}}) } replies, err := d.mc.GetMulti(c, keys) if err != nil { - _metricErrCount.Inc("NAME") log.Errorv(ctx, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("keys", keys)) return } @@ -67,14 +66,12 @@ func (d *{{.StructName}}) NAME(c context.Context, ids []KEY {{.ExtraArgsType}}) {{end}} {{end}} if err != nil { - _metricErrCount.Inc("NAME") log.Errorv(ctx, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } {{if .GetSimpleValue}} r, err := {{.ConvertBytes2Value}} if err != nil { - _metricErrCount.Inc("NAME") log.Errorv(ctx, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return res, err } @@ -114,7 +111,6 @@ func (d *{{.StructName}}) NAME(c context.Context, ids []KEY {{.ExtraArgsType}}) } replies, err := d.mc.GetMulti(c, keys) if err != nil { - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("keys", keys)) return } @@ -132,14 +128,12 @@ func (d *{{.StructName}}) NAME(c context.Context, ids []KEY {{.ExtraArgsType}}) {{end}} {{end}} if err != nil { - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } {{if .GetSimpleValue}} r, err := {{.ConvertBytes2Value}} if err != nil { - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return res, err } @@ -174,7 +168,6 @@ func (d *{{.StructName}}) NAME(c context.Context, values map[KEY]VALUE {{.ExtraA item := &memcache.Item{Key: key, Object: val, Expiration: {{.ExpireCode}}, Flags: {{.Encode}}} {{end}} if err = d.mc.Set(c, item); err != nil { - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } @@ -198,7 +191,6 @@ func (d *{{.StructName}}) NAME(c context.Context, ids []KEY {{.ExtraArgsType}}) err = nil continue } - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } diff --git a/tool/kratos-gen-mc/none_template.go b/tool/kratos-gen-mc/none_template.go index c3dda3cad..fb7a28353 100644 --- a/tool/kratos-gen-mc/none_template.go +++ b/tool/kratos-gen-mc/none_template.go @@ -37,14 +37,12 @@ func (d *{{.StructName}}) NAME(c context.Context) (res VALUE, err error) { return } {{end}} - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } {{if .GetSimpleValue}} r, err := {{.ConvertBytes2Value}} if err != nil { - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } @@ -75,7 +73,6 @@ func (d *{{.StructName}}) NAME(c context.Context, val VALUE) (err error) { item := &memcache.Item{Key: key, Object: val, Expiration: {{.ExpireCode}}, Flags: {{.Encode}}} {{end}} if err = d.mc.Set(c, item); err != nil { - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } @@ -94,7 +91,6 @@ func (d *{{.StructName}}) NAME(c context.Context) (err error) { err = nil return } - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } diff --git a/tool/kratos-gen-mc/single_template.go b/tool/kratos-gen-mc/single_template.go index ba07ece52..b7a111cc4 100644 --- a/tool/kratos-gen-mc/single_template.go +++ b/tool/kratos-gen-mc/single_template.go @@ -36,14 +36,12 @@ func (d *{{.StructName}}) NAME(c context.Context, id KEY {{.ExtraArgsType}}) (re return } {{end}} - _metricErrCount.Inc("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } {{if .GetSimpleValue}} r, err := {{.ConvertBytes2Value}} if err != nil { - _metricErrCount.Incr("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } @@ -74,7 +72,6 @@ func (d *{{.StructName}}) NAME(c context.Context, id KEY, val VALUE {{.ExtraArgs item := &memcache.Item{Key: key, Object: val, Expiration: {{.ExpireCode}}, Flags: {{.Encode}}} {{end}} if err = d.mc.Set(c, item); err != nil { - _metricErrCount.Incr("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } @@ -93,7 +90,6 @@ func (d *{{.StructName}}) NAME(c context.Context, id KEY {{.ExtraArgsType}}) (er err = nil return } - _metricErrCount.Incr("NAME") log.Errorv(c, log.KV("NAME", fmt.Sprintf("%+v", err)), log.KV("key", key)) return } diff --git a/tool/kratos/tool_index.go b/tool/kratos/tool_index.go index 67a6ba753..1a5edb73b 100644 --- a/tool/kratos/tool_index.go +++ b/tool/kratos/tool_index.go @@ -33,7 +33,7 @@ var toolIndexs = []*Tool{ &Tool{ Name: "genbts", Alias: "kratos-gen-bts", - BuildTime: time.Date(2019, 7, 20, 0, 0, 0, 0, time.Local), + BuildTime: time.Date(2019, 7, 23, 0, 0, 0, 0, time.Local), Install: "go get -u github.com/bilibili/kratos/tool/kratos-gen-bts", Summary: "缓存回源逻辑代码生成器", Platform: []string{"darwin", "linux", "windows"}, @@ -42,7 +42,7 @@ var toolIndexs = []*Tool{ &Tool{ Name: "genmc", Alias: "kratos-gen-mc", - BuildTime: time.Date(2019, 7, 20, 0, 0, 0, 0, time.Local), + BuildTime: time.Date(2019, 7, 23, 0, 0, 0, 0, time.Local), Install: "go get -u github.com/bilibili/kratos/tool/kratos-gen-mc", Summary: "mc缓存代码生成", Platform: []string{"darwin", "linux", "windows"},