diff --git a/go.mod b/go.mod index 60cdb1e..dd0d0b6 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.0.334 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.413 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.437 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.634 // indirect + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.634 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.334 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.334 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cmq v1.0.334 @@ -35,7 +35,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.413 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.430 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.334 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.576 // indirect + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.576 github.com/tencentyun/cos-go-sdk-v5 v0.7.35 golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e gopkg.in/alecthomas/kingpin.v2 v2.2.6 diff --git a/pkg/collector/handler_cbs.go b/pkg/collector/handler_cbs.go index b80904d..c84ccb5 100644 --- a/pkg/collector/handler_cbs.go +++ b/pkg/collector/handler_cbs.go @@ -214,7 +214,7 @@ func (h *cbsHandler) getInstanceSeries(m *metric.TcmMetric, ins instance.TcInsta } func NewCbsHandler(cred common.CredentialIface, c *TcProductCollector, logger log.Logger) (handler ProductHandler, err error) { - instanceInfosRepoCahe, err := instance.NewCbsTcInstanceInfosRepository(cred, c.Conf, logger) + instanceInfosRepoCache, err := instance.NewCbsTcInstanceInfosRepository(cred, c.Conf, logger) if err != nil { return nil, err } @@ -225,7 +225,7 @@ func NewCbsHandler(cred common.CredentialIface, c *TcProductCollector, logger lo collector: c, logger: logger, }, - instanceInfosRepo: instanceInfosRepoCahe, + instanceInfosRepo: instanceInfosRepoCache, } return diff --git a/pkg/collector/handler_dts.go b/pkg/collector/handler_dts.go index 5233d3a..c847356 100644 --- a/pkg/collector/handler_dts.go +++ b/pkg/collector/handler_dts.go @@ -13,7 +13,7 @@ import ( const ( DTSNamespace = "QCE/DTS" - DTSInstanceidKey = "SubscribeId" + DTSInstanceIdKey = "SubscribeId" ) func init() { @@ -85,23 +85,36 @@ func (h *dtsHandler) GetSeriesByOnly(m *metric.TcmMetric) ([]*metric.TcmSeries, } func (h *dtsHandler) GetSeriesByAll(m *metric.TcmMetric) ([]*metric.TcmSeries, error) { - var slist []*metric.TcmSeries - insList, err := h.collector.InstanceRepo.ListByFilters(m.Conf.InstanceFilters) - if err != nil { - return nil, err + var dimensions []string + for _, v := range m.Meta.SupportDimensions { + dimensions = append(dimensions, v) } - for _, ins := range insList { - if len(m.Conf.ExcludeInstances) != 0 && util.IsStrInList(m.Conf.ExcludeInstances, ins.GetInstanceId()) { - continue - } - sl, err := h.getSeriesByMetricType(m, ins) + var slist []*metric.TcmSeries + if util.IsStrInList(dimensions, "replicationjobid") || util.IsStrInList(dimensions, "migratejobid") { + sl, err := h.getSeriesByMetricType(m, nil) if err != nil { - level.Error(h.logger).Log("msg", "Create metric series fail", - "metric", m.Meta.MetricName, "instance", ins.GetInstanceId()) - continue + level.Error(h.logger).Log("msg", "Create metric series fail", "metric", m.Meta.MetricName) } slist = append(slist, sl...) + } else { + insList, err := h.collector.InstanceRepo.ListByFilters(m.Conf.InstanceFilters) + if err != nil { + return nil, err + } + for _, ins := range insList { + if len(m.Conf.ExcludeInstances) != 0 && util.IsStrInList(m.Conf.ExcludeInstances, ins.GetInstanceId()) { + continue + } + sl, err := h.getSeriesByMetricType(m, ins) + if err != nil { + level.Error(h.logger).Log("msg", "Create metric series fail", + "metric", m.Meta.MetricName, "instance", ins.GetInstanceId()) + continue + } + slist = append(slist, sl...) + } } + return slist, nil } @@ -209,7 +222,7 @@ func NewDTSHandler(cred common.CredentialIface, c *TcProductCollector, logger lo return nil, err } reloadInterval := time.Duration(c.ProductConf.ReloadIntervalMinutes * int64(time.Minute)) - migrateInfosRepoCahe := instance.NewTcDtsInstanceMigrateInfosCache(migrateInfosRepo, reloadInterval, logger) + migrateInfosRepoCache := instance.NewTcDtsInstanceMigrateInfosCache(migrateInfosRepo, reloadInterval, logger) replicationRepo, err := instance.NewDtsTcInstanceReplicationsRepository(cred, c.Conf, logger) if err != nil { @@ -219,11 +232,11 @@ func NewDTSHandler(cred common.CredentialIface, c *TcProductCollector, logger lo handler = &dtsHandler{ baseProductHandler: baseProductHandler{ - monitorQueryKey: DTSInstanceidKey, + monitorQueryKey: DTSInstanceIdKey, collector: c, logger: logger, }, - migrateInfosRepo: migrateInfosRepoCahe, + migrateInfosRepo: migrateInfosRepoCache, replicationRepo: replicationRepoCache, } return diff --git a/pkg/collector/handler_nacos.go b/pkg/collector/handler_nacos.go index c6a9c9e..a863956 100644 --- a/pkg/collector/handler_nacos.go +++ b/pkg/collector/handler_nacos.go @@ -200,21 +200,21 @@ func NewNacosHandler(cred common.CredentialIface, c *TcProductCollector, logger return nil, err } reloadInterval := time.Duration(c.ProductConf.ReloadIntervalMinutes * int64(time.Minute)) - podRepoCahe := instance.NewTcNacosInstancePodCache(podRepo, reloadInterval, logger) + podRepoCache := instance.NewTcNacosInstancePodCache(podRepo, reloadInterval, logger) interfaceRepo, err := instance.NewNacosTcInstanceInterfaceRepository(cred, c.Conf, logger) if err != nil { return nil, err } - interfaceRepoCahe := instance.NewTcNacosInstanceInterfaceCache(interfaceRepo, reloadInterval, logger) + interfaceRepoCache := instance.NewTcNacosInstanceInterfaceCache(interfaceRepo, reloadInterval, logger) handler = &NacosHandler{ baseProductHandler: baseProductHandler{ monitorQueryKey: NacosInstanceidKey, collector: c, logger: logger, }, - podRepo: podRepoCahe, - interfaceRepo: interfaceRepoCahe, + podRepo: podRepoCache, + interfaceRepo: interfaceRepoCache, } return diff --git a/pkg/collector/handler_redis_mem.go b/pkg/collector/handler_redis_mem.go index 60fbb2b..d487620 100644 --- a/pkg/collector/handler_redis_mem.go +++ b/pkg/collector/handler_redis_mem.go @@ -216,7 +216,7 @@ func NewRedisMemHandler(cred common.CredentialIface, c *TcProductCollector, logg return nil, err } reloadInterval := time.Duration(c.ProductConf.ReloadIntervalMinutes * int64(time.Minute)) - nodeRepoCahe := instance.NewTcRedisInstanceNodeCache(nodeRepo, reloadInterval, logger) + nodeRepoCache := instance.NewTcRedisInstanceNodeCache(nodeRepo, reloadInterval, logger) handler := &redisMemHandler{ baseProductHandler: baseProductHandler{ @@ -224,7 +224,7 @@ func NewRedisMemHandler(cred common.CredentialIface, c *TcProductCollector, logg collector: c, logger: logger, }, - nodeRepo: nodeRepoCahe, + nodeRepo: nodeRepoCache, } return handler, nil } diff --git a/pkg/collector/handler_tdmq.go b/pkg/collector/handler_tdmq.go index 3084999..c07c217 100644 --- a/pkg/collector/handler_tdmq.go +++ b/pkg/collector/handler_tdmq.go @@ -211,13 +211,13 @@ func NewTdmqHandler(cred common.CredentialIface, c *TcProductCollector, logger l return nil, err } reloadInterval := time.Duration(c.ProductConf.ReloadIntervalMinutes * int64(time.Minute)) - namespaceRepoCahe := instance.NewTcTdmqInstanceNamespaceCache(namespaceRepo, reloadInterval, logger) + namespaceRepoCache := instance.NewTcTdmqInstanceNamespaceCache(namespaceRepo, reloadInterval, logger) topicRepo, err := instance.NewTdmqTcInstanceRocketMQTopicsRepository(cred, c.Conf, logger) if err != nil { return nil, err } - topicRepoCahe := instance.NewTcTdmqInstanceTopicsCache(topicRepo, reloadInterval, logger) + topicRepoCache := instance.NewTcTdmqInstanceTopicsCache(topicRepo, reloadInterval, logger) handler = &tdmqHandler{ baseProductHandler: baseProductHandler{ @@ -225,8 +225,8 @@ func NewTdmqHandler(cred common.CredentialIface, c *TcProductCollector, logger l collector: c, logger: logger, }, - namespaceRepo: namespaceRepoCahe, - topicRepo: topicRepoCahe, + namespaceRepo: namespaceRepoCache, + topicRepo: topicRepoCache, } return diff --git a/pkg/collector/handler_vbc.go b/pkg/collector/handler_vbc.go index 1d76c17..74bb5a7 100644 --- a/pkg/collector/handler_vbc.go +++ b/pkg/collector/handler_vbc.go @@ -194,7 +194,7 @@ func NewVbcHandler(cred common.CredentialIface, c *TcProductCollector, logger lo return nil, err } reloadInterval := time.Duration(c.ProductConf.ReloadIntervalMinutes * int64(time.Minute)) - dRegionRepoCahe := instance.NewVbcTcInstanceDRegionRepositoryCache(dRegionRepo, reloadInterval, logger) + dRegionRepoCache := instance.NewVbcTcInstanceDRegionRepositoryCache(dRegionRepo, reloadInterval, logger) handler = &VbcHandler{ baseProductHandler: baseProductHandler{ @@ -202,7 +202,7 @@ func NewVbcHandler(cred common.CredentialIface, c *TcProductCollector, logger lo collector: c, logger: logger, }, - dRegionRepo: dRegionRepoCahe, + dRegionRepo: dRegionRepoCache, } return diff --git a/pkg/collector/handler_zookeeper.go b/pkg/collector/handler_zookeeper.go index b0b41d9..eed01f6 100644 --- a/pkg/collector/handler_zookeeper.go +++ b/pkg/collector/handler_zookeeper.go @@ -201,13 +201,13 @@ func NewZookeeperHandler(cred common.CredentialIface, c *TcProductCollector, log return nil, err } reloadInterval := time.Duration(c.ProductConf.ReloadIntervalMinutes * int64(time.Minute)) - podRepoCahe := instance.NewTcZookeeperInstancePodCache(podRepo, reloadInterval, logger) + podRepoCache := instance.NewTcZookeeperInstancePodCache(podRepo, reloadInterval, logger) interfaceRepo, err := instance.NewZookeeperTcInstanceInterfaceRepository(cred, c.Conf, logger) if err != nil { return nil, err } - interfaceRepoCahe := instance.NewTcZookeeperInstanceInterfaceCache(interfaceRepo, reloadInterval, logger) + interfaceRepoCache := instance.NewTcZookeeperInstanceInterfaceCache(interfaceRepo, reloadInterval, logger) handler = &ZookeeperHandler{ baseProductHandler: baseProductHandler{ @@ -215,8 +215,8 @@ func NewZookeeperHandler(cred common.CredentialIface, c *TcProductCollector, log collector: c, logger: logger, }, - podRepo: podRepoCahe, - interfaceRepo: interfaceRepoCahe, + podRepo: podRepoCache, + interfaceRepo: interfaceRepoCache, } return }