|
23 | 23 | }
|
24 | 24 | )
|
25 | 25 |
|
26 |
| -var ( |
27 |
| - LbPrivateSupportDimensions = []string{"vip", "vpcId", "loadBalancerPort", "protocol", "lanIp", "port"} |
28 |
| -) |
29 |
| - |
30 | 26 | func init() {
|
31 | 27 | registerHandler(ClbPrivateNamespace, defaultHandlerEnabled, NewClbPrivateHandler)
|
32 | 28 | }
|
@@ -123,35 +119,32 @@ func (h *ClbPrivateHandler) GetSeriesByAll(m *metric.TcmMetric) ([]*metric.TcmSe
|
123 | 119 | return slist, nil
|
124 | 120 | }
|
125 | 121 |
|
126 |
| -func (h *ClbPrivateHandler) GetSeriesByCustom(m *metric.TcmMetric) (slist []*metric.TcmSeries, err error) { |
| 122 | +func (h *ClbPrivateHandler) GetSeriesByCustom(m *metric.TcmMetric) ([]*metric.TcmSeries, error) { |
| 123 | + var slist []*metric.TcmSeries |
127 | 124 | for _, ql := range m.Conf.CustomQueryDimensions {
|
128 |
| - if !h.checkMonitorQueryKeys(m, ql) { |
| 125 | + v, ok := ql[h.monitorQueryKey] |
| 126 | + if !ok { |
| 127 | + level.Error(h.logger).Log( |
| 128 | + "msg", fmt.Sprintf("not found %s in queryDimensions", h.monitorQueryKey), |
| 129 | + "ql", fmt.Sprintf("%v", ql)) |
129 | 130 | continue
|
130 | 131 | }
|
131 |
| - |
132 |
| - s, err := metric.NewTcmSeries(m, ql, nil) |
| 132 | + ins, err := h.collector.InstanceRepo.Get(v) |
133 | 133 | if err != nil {
|
134 |
| - level.Error(h.logger).Log("msg", "Create metric series fail", "metric", m.Meta.MetricName, |
135 |
| - "ql", fmt.Sprintf("%v", ql)) |
| 134 | + level.Error(h.logger).Log("msg", "Instance not found", "err", err, "id", v) |
136 | 135 | continue
|
137 | 136 | }
|
138 |
| - slist = append(slist, s) |
139 |
| - } |
140 |
| - return |
141 |
| -} |
142 |
| -func (h *ClbPrivateHandler) checkMonitorQueryKeys(m *metric.TcmMetric, ql map[string]string) bool { |
143 |
| - for k := range ql { |
144 |
| - if !util.IsStrInList(LbPrivateSupportDimensions, k) { |
145 |
| - level.Error(h.logger).Log("msg", fmt.Sprintf("not found %s in supportQueryDimensions", k), |
146 |
| - "ql", fmt.Sprintf("%v", ql), |
147 |
| - "sd", fmt.Sprintf("%v", m.Meta.SupportDimensions), |
148 |
| - ) |
149 |
| - return false |
| 137 | + |
| 138 | + sl, err := h.getSeriesByMetricType(m, ins) |
| 139 | + if err != nil { |
| 140 | + level.Error(h.logger).Log("msg", "Create metric series fail", |
| 141 | + "metric", m.Meta.MetricName, "instacne", ins.GetInstanceId()) |
| 142 | + continue |
150 | 143 | }
|
| 144 | + slist = append(slist, sl...) |
151 | 145 | }
|
152 |
| - return true |
| 146 | + return slist, nil |
153 | 147 | }
|
154 |
| - |
155 | 148 | func (h *ClbPrivateHandler) getSeriesByMetricType(m *metric.TcmMetric, ins instance.TcInstance) ([]*metric.TcmSeries, error) {
|
156 | 149 | var dimensions []string
|
157 | 150 | for _, v := range m.Meta.SupportDimensions {
|
|
0 commit comments