Skip to content

Commit 681a20a

Browse files
juexiaolinjuexiaolin(林觉霄)
andauthored
v2.2.0 (#20)
* feat: product instances support auto reload interval * feat: add redis mem product * docs: add redis mem docs Co-authored-by: juexiaolin(林觉霄) <[email protected]>
1 parent 22fe15b commit 681a20a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+991
-331
lines changed

cmd/qcloud-exporter/qcloud_exporter.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ package main
22

33
import (
44
"fmt"
5+
"net/http"
6+
"os"
7+
58
"github.com/go-kit/kit/log"
69
"github.com/go-kit/kit/log/level"
710
"github.com/prometheus/client_golang/prometheus"
@@ -12,8 +15,6 @@ import (
1215
"github.com/tencentyun/tencentcloud-exporter/pkg/collector"
1316
"github.com/tencentyun/tencentcloud-exporter/pkg/config"
1417
kingpin "gopkg.in/alecthomas/kingpin.v2"
15-
"net/http"
16-
"os"
1718
)
1819

1920
func newHandler(c *config.TencentConfig, includeExporterMetrics bool, maxRequests int, logger log.Logger) (*http.Handler, error) {

go.mod

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@ require (
88
github.com/prometheus/client_golang v1.5.1
99
github.com/prometheus/common v0.9.1
1010
github.com/prometheus/tsdb v0.7.1 // indirect
11-
github.com/tencentcloud/tencentcloud-sdk-go v3.0.226+incompatible
11+
github.com/tencentcloud/tencentcloud-sdk-go v1.0.67
1212
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
1313
gopkg.in/alecthomas/kingpin.v2 v2.2.6
1414
gopkg.in/yaml.v2 v2.2.5
15+
github.com/golang/mock v1.4.4
16+
github.com/stretchr/testify v1.6.1
17+
1518
)

go.sum

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf
1717
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
1818
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
1919
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
20+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2021
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2122
github.com/deckarep/golang-set v1.7.1/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ=
2223
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
@@ -28,6 +29,8 @@ github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80n
2829
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
2930
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
3031
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
32+
github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc=
33+
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
3134
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
3235
github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
3336
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -56,6 +59,7 @@ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn
5659
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
5760
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
5861
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
62+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
5963
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
6064
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
6165
github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8=
@@ -91,6 +95,10 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
9195
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
9296
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
9397
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
98+
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
99+
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
100+
github.com/tencentcloud/tencentcloud-sdk-go v1.0.67 h1:fKSwJ7hrvHTxr33EcmrbKcavYJ/U2zNIH8Lvsj2FNTE=
101+
github.com/tencentcloud/tencentcloud-sdk-go v1.0.67/go.mod h1:asUz5BPXxgoPGaRgZaVm1iGcUAuHyYUo1nXqKa83cvI=
94102
github.com/tencentcloud/tencentcloud-sdk-go v3.0.73-0.20190704135516-e86c9d8b05ee+incompatible h1:bqYHIfgYCNbwEDT+06X2KWi5g7svrzAhZAZCGnK6Mks=
95103
github.com/tencentcloud/tencentcloud-sdk-go v3.0.73-0.20190704135516-e86c9d8b05ee+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4=
96104
github.com/tencentcloud/tencentcloud-sdk-go v3.0.226+incompatible h1:e6tY2NFYiRHEhBZiugeZhAjlL6fw+Gq2BtCm1tnAtmg=
@@ -101,9 +109,11 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1
101109
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
102110
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
103111
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
112+
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
104113
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
105114
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
106115
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
116+
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
107117
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
108118
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
109119
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -116,6 +126,7 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w
116126
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
117127
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s=
118128
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
129+
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
119130
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
120131
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
121132
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
@@ -127,3 +138,5 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
127138
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
128139
gopkg.in/yaml.v2 v2.2.5 h1:ymVxjfMaHvXD8RqPRmzHHsB3VvucivSkIAvJFDI5O3c=
129140
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
141+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
142+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

pkg/collector/collector.go

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
package collector
22

33
import (
4+
"context"
45
"fmt"
6+
"sync"
7+
"time"
8+
59
"github.com/go-kit/kit/log"
610
"github.com/go-kit/kit/log/level"
711
"github.com/prometheus/client_golang/prometheus"
812
"github.com/tencentyun/tencentcloud-exporter/pkg/config"
913
"github.com/tencentyun/tencentcloud-exporter/pkg/metric"
10-
"sync"
11-
"time"
1214
)
1315

1416
const exporterNamespace = "tcm"
@@ -39,6 +41,7 @@ var (
3941
// 总指标采集器, 包含多个产品的采集器
4042
type TcMonitorCollector struct {
4143
Collectors map[string]*TcProductCollector
44+
Reloaders map[string]*TcProductCollectorReloader
4245
config *config.TencentConfig
4346
logger log.Logger
4447
lock sync.Mutex
@@ -85,6 +88,7 @@ func collect(name string, c *TcProductCollector, ch chan<- prometheus.Metric, lo
8588

8689
func NewTcMonitorCollector(conf *config.TencentConfig, logger log.Logger) (*TcMonitorCollector, error) {
8790
collectors := make(map[string]*TcProductCollector)
91+
reloaders := make(map[string]*TcProductCollectorReloader)
8892

8993
metricRepo, err := metric.NewTcmMetricRepository(conf, logger)
9094
if err != nil {
@@ -99,18 +103,35 @@ func NewTcMonitorCollector(conf *config.TencentConfig, logger log.Logger) (*TcMo
99103
continue
100104
}
101105

102-
collector, err := NewTcProductCollector(namespace, metricRepoCache, conf, logger)
106+
pconf, err := conf.GetProductConfig(namespace)
107+
if err != nil {
108+
return nil, err
109+
}
110+
111+
collector, err := NewTcProductCollector(namespace, metricRepoCache, conf, &pconf, logger)
103112
if err != nil {
104113
panic(fmt.Sprintf("Create product collecter fail, err=%s, Namespace=%s", err, namespace))
105114
}
106115
collectors[namespace] = collector
107116
collectorState[namespace] = 1
108117
level.Info(logger).Log("msg", "Create product collecter ok", "Namespace", namespace)
118+
119+
if pconf.IsReloadEnable() {
120+
relodInterval := time.Duration(pconf.RelodIntervalMinutes * int64(time.Minute))
121+
reloader := NewTcProductCollectorReloader(context.TODO(), collector, relodInterval, logger)
122+
reloaders[namespace] = reloader
123+
go reloader.Run()
124+
level.Info(logger).Log(
125+
"msg", fmt.Sprintf("reload %s instances every %d minutes",
126+
namespace, pconf.RelodIntervalMinutes),
127+
)
128+
}
109129
}
110130

111131
level.Info(logger).Log("msg", "Create all product collecter ok", "num", len(collectors))
112132
return &TcMonitorCollector{
113133
Collectors: collectors,
134+
Reloaders: reloaders,
114135
config: conf,
115136
logger: logger,
116137
}, nil

pkg/collector/handler.go

Lines changed: 106 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,34 @@ package collector
22

33
import (
44
"fmt"
5+
56
"github.com/go-kit/kit/log"
67
"github.com/go-kit/kit/log/level"
78
"github.com/tencentyun/tencentcloud-exporter/pkg/metric"
89
)
910

1011
var (
11-
handlerFactoryMap = make(map[string]func(*TcProductCollector, log.Logger) (productHandler, error))
12+
handlerFactoryMap = make(map[string]func(*TcProductCollector, log.Logger) (ProductHandler, error))
1213
)
1314

1415
// 每个产品的指标处理逻辑
15-
type productHandler interface {
16+
type ProductHandler interface {
1617
// 获取云监控指标namespace
1718
GetNamespace() string
18-
// 对指标元数据做检验和补充
19-
CheckMetricMeta(meta *metric.TcmMeta) bool
20-
// 是否包含该指标, ture=包含, false=不包含
21-
IsIncludeMetric(m *metric.TcmMetric) bool
19+
// 对指标元数据做检验, true=可用, false=跳过
20+
IsMetricMetaVaild(meta *metric.TcmMeta) bool
21+
// 修改指标元数据
22+
ModifyMetricMeta(meta *metric.TcmMeta) error
23+
// 对指标做校验, true=可用, false=跳过
24+
IsMetricVaild(m *metric.TcmMetric) bool
25+
// 修改指标
26+
ModifyMetric(m *metric.TcmMetric) error
2227
// 获取该指标下符合条件的所有实例, 并生成所有的series
2328
GetSeries(tcmMetric *metric.TcmMetric) (series []*metric.TcmSeries, err error)
2429
}
2530

2631
// 将对应的产品handler注册到Factory中
27-
func registerHandler(namespace string, isDefaultEnabled bool, factory func(*TcProductCollector, log.Logger) (productHandler, error)) {
32+
func registerHandler(namespace string, isDefaultEnabled bool, factory func(*TcProductCollector, log.Logger) (ProductHandler, error)) {
2833
handlerFactoryMap[namespace] = factory
2934
}
3035

@@ -34,61 +39,104 @@ type baseProductHandler struct {
3439
logger log.Logger
3540
}
3641

37-
func (h *baseProductHandler) GetSeries(m *metric.TcmMetric) (slist []*metric.TcmSeries, err error) {
38-
if len(m.Conf.OnlyIncludeInstances) != 0 {
39-
for _, insId := range m.Conf.OnlyIncludeInstances {
40-
ins, err := h.collector.InstanceRepo.Get(insId)
41-
if err != nil {
42-
level.Error(h.logger).Log("msg", "Instance not found", "id", insId)
43-
continue
44-
}
45-
ql := map[string]string{
46-
h.monitorQueryKey: ins.GetMonitorQueryKey(),
47-
}
48-
s, err := metric.NewTcmSeries(m, ql, ins)
49-
if err != nil {
50-
level.Error(h.logger).Log("msg", "Create metric series fail", "metric", m.Meta.MetricName, "instacne", insId)
51-
continue
52-
}
53-
slist = append(slist, s)
42+
func (h *baseProductHandler) IsMetricMetaVaild(meta *metric.TcmMeta) bool {
43+
return true
44+
}
45+
46+
func (h *baseProductHandler) ModifyMetricMeta(meta *metric.TcmMeta) error {
47+
return nil
48+
}
49+
50+
func (h *baseProductHandler) IsMetricVaild(m *metric.TcmMetric) bool {
51+
return true
52+
}
53+
54+
func (h *baseProductHandler) ModifyMetric(m *metric.TcmMetric) error {
55+
return nil
56+
}
57+
58+
func (h *baseProductHandler) GetSeries(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
59+
if m.Conf.IsIncludeOnlyInstance() {
60+
return h.GetSeriesByOnly(m)
61+
}
62+
63+
if m.Conf.IsIncludeAllInstance() {
64+
return h.GetSeriesByAll(m)
65+
}
66+
67+
if m.Conf.IsCustomQueryDimensions() {
68+
return h.GetSeriesByCustom(m)
69+
}
70+
71+
return nil, fmt.Errorf("must config all_instances or only_include_instances or custom_query_dimensions")
72+
}
73+
74+
func (h *baseProductHandler) GetSeriesByOnly(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
75+
var slist []*metric.TcmSeries
76+
for _, insId := range m.Conf.OnlyIncludeInstances {
77+
ins, err := h.collector.InstanceRepo.Get(insId)
78+
if err != nil {
79+
level.Error(h.logger).Log("msg", "Instance not found", "id", insId)
80+
continue
81+
}
82+
ql := map[string]string{
83+
h.monitorQueryKey: ins.GetMonitorQueryKey(),
84+
}
85+
s, err := metric.NewTcmSeries(m, ql, ins)
86+
if err != nil {
87+
level.Error(h.logger).Log("msg", "Create metric series fail",
88+
"metric", m.Meta.MetricName, "instacne", insId)
89+
continue
90+
}
91+
slist = append(slist, s)
92+
}
93+
return slist, nil
94+
}
95+
96+
func (h *baseProductHandler) GetSeriesByAll(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
97+
var slist []*metric.TcmSeries
98+
insList, err := h.collector.InstanceRepo.ListByFilters(m.Conf.InstanceFilters)
99+
if err != nil {
100+
return nil, err
101+
}
102+
for _, ins := range insList {
103+
ql := map[string]string{
104+
h.monitorQueryKey: ins.GetMonitorQueryKey(),
54105
}
55-
} else if m.Conf.AllInstances {
56-
insList, err := h.collector.InstanceRepo.ListByFilters(m.Conf.InstanceFilters)
106+
s, err := metric.NewTcmSeries(m, ql, ins)
57107
if err != nil {
58-
return nil, err
108+
level.Error(h.logger).Log("msg", "Create metric series fail",
109+
"metric", m.Meta.MetricName, "instacne", ins.GetInstanceId())
110+
continue
111+
}
112+
slist = append(slist, s)
113+
}
114+
return slist, nil
115+
}
116+
117+
func (h *baseProductHandler) GetSeriesByCustom(m *metric.TcmMetric) ([]*metric.TcmSeries, error) {
118+
var slist []*metric.TcmSeries
119+
for _, ql := range m.Conf.CustomQueryDimensions {
120+
v, ok := ql[h.monitorQueryKey]
121+
if !ok {
122+
level.Error(h.logger).Log(
123+
"msg", fmt.Sprintf("not found %s in queryDimensions", h.monitorQueryKey),
124+
"ql", fmt.Sprintf("%v", ql))
125+
continue
59126
}
60-
for _, ins := range insList {
61-
ql := map[string]string{
62-
h.monitorQueryKey: ins.GetMonitorQueryKey(),
63-
}
64-
s, err := metric.NewTcmSeries(m, ql, ins)
65-
if err != nil {
66-
level.Error(h.logger).Log("msg", "Create metric series fail", "metric", m.Meta.MetricName, "instacne", ins.GetInstanceId())
67-
continue
68-
}
69-
slist = append(slist, s)
127+
ins, err := h.collector.InstanceRepo.Get(v)
128+
if err != nil {
129+
level.Error(h.logger).Log("msg", "Instance not found", "err", err, "id", v)
130+
continue
70131
}
71-
} else {
72-
for _, ql := range m.Conf.CustomQueryDimensions {
73-
v, ok := ql[h.monitorQueryKey]
74-
if !ok {
75-
level.Error(h.logger).Log("msg", fmt.Sprintf("not found %s in queryDimensions", h.monitorQueryKey),
76-
"ql", fmt.Sprintf("%v", ql))
77-
continue
78-
}
79-
ins, err := h.collector.InstanceRepo.Get(v)
80-
if err != nil {
81-
level.Error(h.logger).Log("msg", "Instance not found", "err", err, "id", v)
82-
continue
83-
}
84-
85-
s, err := metric.NewTcmSeries(m, ql, ins)
86-
if err != nil {
87-
level.Error(h.logger).Log("msg", "Create metric series fail", "err", err, "metric", m.Meta.MetricName, "instacne", ins.GetInstanceId())
88-
continue
89-
}
90-
slist = append(slist, s)
132+
133+
s, err := metric.NewTcmSeries(m, ql, ins)
134+
if err != nil {
135+
level.Error(h.logger).Log("msg", "Create metric series fail",
136+
"err", err, "metric", m.Meta.MetricName, "instacne", ins.GetInstanceId())
137+
continue
91138
}
139+
slist = append(slist, s)
92140
}
93-
return
141+
return slist, nil
94142
}

pkg/collector/handler_cdb.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ type cdbHandler struct {
1818
baseProductHandler
1919
}
2020

21-
func (h *cdbHandler) CheckMetricMeta(meta *metric.TcmMeta) bool {
21+
func (h *cdbHandler) IsMetricMetaVaild(meta *metric.TcmMeta) bool {
2222
return true
2323
}
2424

2525
func (h *cdbHandler) GetNamespace() string {
2626
return CdbNamespace
2727
}
2828

29-
func (h *cdbHandler) IsIncludeMetric(m *metric.TcmMetric) bool {
29+
func (h *cdbHandler) IsMetricVaild(m *metric.TcmMetric) bool {
3030
return true
3131
}
3232

33-
func NewCdbHandler(c *TcProductCollector, logger log.Logger) (handler productHandler, err error) {
33+
func NewCdbHandler(c *TcProductCollector, logger log.Logger) (handler ProductHandler, err error) {
3434
handler = &cdbHandler{
3535
baseProductHandler{
3636
monitorQueryKey: CdbInstanceidKey,

0 commit comments

Comments
 (0)