github.com/polarismesh/polaris@v1.17.8/plugin/statis/prometheus/discovery_handle.go (about) 1 /** 2 * Tencent is pleased to support the open source community by making Polaris available. 3 * 4 * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. 5 * 6 * Licensed under the BSD 3-Clause License (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * https://opensource.org/licenses/BSD-3-Clause 11 * 12 * Unless required by applicable law or agreed to in writing, software distributed 13 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 14 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 * specific language governing permissions and limitations under the License. 16 */ 17 18 package prometheus 19 20 import ( 21 "github.com/polarismesh/polaris/common/metrics" 22 ) 23 24 func newDiscoveryMetricHandle() *discoveryMetricHandle { 25 return &discoveryMetricHandle{} 26 } 27 28 type discoveryMetricHandle struct { 29 } 30 31 func (h *discoveryMetricHandle) handle(ms []metrics.DiscoveryMetric) { 32 for i := range ms { 33 m := ms[i] 34 switch m.Type { 35 case metrics.ServiceMetrics: 36 metrics.GetServiceCount().With(m.Labels).Set(float64(m.Total)) 37 metrics.GetServiceAbnormalCountl().With(m.Labels).Set(float64(m.Abnormal)) 38 metrics.GetServiceOfflineCountl().With(m.Labels).Set(float64(m.Offline)) 39 metrics.GetServiceOnlineCountl().With(m.Labels).Set(float64(m.Online)) 40 case metrics.InstanceMetrics: 41 metrics.GetInstanceCount().With(m.Labels).Set(float64(m.Total)) 42 metrics.GetInstanceAbnormalCountl().With(m.Labels).Set(float64(m.Abnormal)) 43 metrics.GetInstanceIsolateCountl().With(m.Labels).Set(float64(m.Isolate)) 44 metrics.GetInstanceOnlineCountl().With(m.Labels).Set(float64(m.Online)) 45 case metrics.ClientMetrics: 46 metrics.GetClientInstanceTotal().Set(float64(m.Total)) 47 } 48 } 49 }