You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by as...@apache.org on 2018/08/02 04:54:24 UTC

[incubator-servicecomb-service-center] branch master updated: SCB-792 More abundant metrics information (#407)

This is an automated email from the ASF dual-hosted git repository.

asifdxtreme pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-service-center.git


The following commit(s) were added to refs/heads/master by this push:
     new 94f55f9  SCB-792 More abundant metrics information (#407)
94f55f9 is described below

commit 94f55f92682160f0105c913633d7f412e9caa51c
Author: little-cui <su...@qq.com>
AuthorDate: Thu Aug 2 12:54:21 2018 +0800

    SCB-792 More abundant metrics information (#407)
    
    * Update the paas-lager package
    
    * SCB-792 More abundant metrics information
    
    * Add readme
---
 docs/README.md                                     |  14 +-
 docs/integration-grafana.PNG                       | Bin 0 -> 74642 bytes
 docs/integration-grafana.md                        |   9 ++
 docs/{security_tls.md => security-tls.md}          |   0
 glide.yaml                                         |   6 +-
 integration/health-metrics-grafana.json            | 170 ++++++++++-----------
 pkg/etcdsync/mutex.go                              |   4 +-
 pkg/grace/grace.go                                 |   2 +-
 pkg/plugin/loader.go                               |   2 +-
 pkg/rest/server.go                                 |   4 +-
 pkg/tlsutil/tlsutil.go                             |   4 +-
 pkg/util/log.go                                    |  12 +-
 server/api.go                                      |   4 +-
 server/broker/util.go                              |   2 +-
 server/core/backend/cacher_kv.go                   |   8 +-
 server/core/backend/defer_instance.go              |   8 +-
 server/core/backend/lease.go                       |   2 +-
 server/core/core.go                                |   4 +-
 .../infra/registry/embededetcd/embededetcd.go      |   2 +-
 server/plugin/infra/registry/etcd/etcd.go          |   4 +-
 server/plugin/infra/registry/etcd/logger.go        |   2 +-
 server/plugin/infra/tls/buildin/tls.go             |   4 +-
 server/plugin/infra/tracing/buildin/common.go      |   2 +-
 .../plugin/infra/tracing/buildin/file_collector.go |   2 +-
 server/server.go                                   |   6 +-
 server/service/event/instance_event_handler.go     |   4 +-
 server/service/event/rule_event_handler.go         |   2 +-
 server/service/event/tag_event_handler.go          |   4 +-
 server/service/instance.go                         |   4 +-
 server/service/microservice.go                     |  10 +-
 server/service/notification/listwatcher.go         |   3 +-
 .../service/notification/notification_service.go   |   2 +-
 server/service/notification/websocket.go           |   2 +-
 server/service/schema.go                           |   4 +-
 server/service/util/dependency_query.go            |  10 +-
 server/service/util/instance_util.go               |   2 +-
 server/service/util/rule_util.go                   |   2 +-
 server/service/validate.go                         |   2 +-
 38 files changed, 173 insertions(+), 155 deletions(-)

diff --git a/docs/README.md b/docs/README.md
index 481d3f8..5a9f8aa 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -6,7 +6,7 @@
 
 - [Api Documentation](https://rawcdn.githack.com/ServiceComb/service-center/master/docs/api-docs.html)
 
-#### [Contribution Guide](/docs/contribution.md) 
+- [Plug-in Extension](/server/plugin/README.md)
 
 #### [Docker Image Guide](/scripts/docker) 
 
@@ -14,4 +14,14 @@
 
 - [Making Front-end Image](/scripts/docker/build-frontend-image)
 
-#### [Deploy Service-Center in Cluster](/docs/sc-cluster.md)
+#### Deploy Service-Center
+
+- [Cluster Deployment](/docs/sc-cluster.md)
+
+- [Deploy with TLS](/docs/security-tls.md)
+
+#### Monitoring Service-Center
+
+- [Integrate with Grafana](/docs/integration-grafana.md)
+
+#### [Contribution Guide](/docs/contribution.md) 
\ No newline at end of file
diff --git a/docs/integration-grafana.PNG b/docs/integration-grafana.PNG
new file mode 100644
index 0000000..e8e9609
Binary files /dev/null and b/docs/integration-grafana.PNG differ
diff --git a/docs/integration-grafana.md b/docs/integration-grafana.md
new file mode 100644
index 0000000..1909fd8
--- /dev/null
+++ b/docs/integration-grafana.md
@@ -0,0 +1,9 @@
+# Integrate with Grafana
+
+As Service-Center uses Prometheus lib to report metrics.
+Then it is easy to integrate with Grafana.
+Here is a [template](/integration/health-metrics-grafana.json) file can be imported in Grafana.
+
+After the import, you can get the view like blow.
+
+![Grafana](/docs/integration-grafana.PNG)
\ No newline at end of file
diff --git a/docs/security_tls.md b/docs/security-tls.md
similarity index 100%
rename from docs/security_tls.md
rename to docs/security-tls.md
diff --git a/glide.yaml b/glide.yaml
index 2a8830a..fce282b 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -3,9 +3,9 @@ import:
 - package: github.com/Knetic/govaluate
   version: 91facc4ae520fef82c9aee6b6ae720d9ae789131
   repo: https://github.com/Knetic/govaluate
-- package: github.com/ServiceComb/paas-lager
-  version: 378a833fc008d8343083dc73e77db142afccf377
-  repo: https://github.com/ServiceComb/paas-lager
+- package: github.com/go-chassis/paas-lager
+  version: master
+  repo: https://github.com/go-chassis/paas-lager
   subpackages:
   - third_party/forked/cloudfoundry/lager
 - package: github.com/Shopify/sarama
diff --git a/integration/health-metrics-grafana.json b/integration/health-metrics-grafana.json
index fdc80d2..7b435ba 100644
--- a/integration/health-metrics-grafana.json
+++ b/integration/health-metrics-grafana.json
@@ -109,7 +109,7 @@
       },
       "gridPos": {
         "h": 3,
-        "w": 2,
+        "w": 4,
         "x": 0,
         "y": 0
       },
@@ -191,88 +191,6 @@
       },
       "gridPos": {
         "h": 3,
-        "w": 2,
-        "x": 2,
-        "y": 0
-      },
-      "id": 19,
-      "interval": null,
-      "links": [],
-      "mappingType": 1,
-      "mappingTypes": [
-        {
-          "name": "value to text",
-          "value": 1
-        },
-        {
-          "name": "range to text",
-          "value": 2
-        }
-      ],
-      "maxDataPoints": 100,
-      "minSpan": 4,
-      "nullPointMode": "connected",
-      "nullText": null,
-      "postfix": "",
-      "postfixFontSize": "50%",
-      "prefix": "",
-      "prefixFontSize": "50%",
-      "rangeMaps": [
-        {
-          "from": "null",
-          "text": "N/A",
-          "to": "null"
-        }
-      ],
-      "sparkline": {
-        "fillColor": "rgba(31, 118, 189, 0.18)",
-        "full": true,
-        "lineColor": "rgb(31, 120, 193)",
-        "show": false
-      },
-      "tableColumn": "",
-      "targets": [
-        {
-          "expr": "max(service_center_db_backend_total{job=\"service-center\"})",
-          "format": "time_series",
-          "instant": false,
-          "intervalFactor": 2,
-          "refId": "A"
-        }
-      ],
-      "thresholds": "",
-      "title": "Backends",
-      "type": "singlestat",
-      "valueFontSize": "80%",
-      "valueMaps": [
-        {
-          "op": "=",
-          "text": "N/A",
-          "value": "null"
-        }
-      ],
-      "valueName": "current"
-    },
-    {
-      "cacheTimeout": null,
-      "colorBackground": false,
-      "colorValue": false,
-      "colors": [
-        "#299c46",
-        "rgba(237, 129, 40, 0.89)",
-        "#d44a3a"
-      ],
-      "datasource": "${DS_LOCAL}",
-      "format": "none",
-      "gauge": {
-        "maxValue": 100,
-        "minValue": 0,
-        "show": false,
-        "thresholdLabels": false,
-        "thresholdMarkers": true
-      },
-      "gridPos": {
-        "h": 3,
         "w": 3,
         "x": 4,
         "y": 0
@@ -494,6 +412,88 @@
       },
       "gridPos": {
         "h": 3,
+        "w": 4,
+        "x": 0,
+        "y": 3
+      },
+      "id": 19,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "minSpan": 4,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "max(service_center_db_backend_total{job=\"service-center\"})",
+          "format": "time_series",
+          "instant": false,
+          "intervalFactor": 2,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "",
+      "title": "Backends",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "${DS_LOCAL}",
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
         "w": 3,
         "x": 4,
         "y": 3
@@ -2437,7 +2437,7 @@
     "list": []
   },
   "time": {
-    "from": "now-15m",
+    "from": "now-5m",
     "to": "now"
   },
   "timepicker": {
@@ -2468,5 +2468,5 @@
   "timezone": "",
   "title": "ServiceCenter",
   "uid": "Zg6NoHGiz",
-  "version": 45
+  "version": 47
 }
\ No newline at end of file
diff --git a/pkg/etcdsync/mutex.go b/pkg/etcdsync/mutex.go
index cc7fc2d..81070f8 100644
--- a/pkg/etcdsync/mutex.go
+++ b/pkg/etcdsync/mutex.go
@@ -133,7 +133,7 @@ func (m *DLock) Lock(wait bool) (err error) {
 		return fmt.Errorf("Key %s is locked by id=%s", m.builder.key, m.id)
 	}
 
-	util.Logger().Warnf(err, "Key %s is locked, waiting for other node releases it, id=%s", m.builder.key, m.id)
+	util.Logger().Errorf(err, "Key %s is locked, waiting for other node releases it, id=%s, %s", m.builder.key, m.id)
 
 	ctx, cancel := context.WithTimeout(m.builder.ctx, time.Duration(m.builder.ttl)*time.Second)
 	util.Go(func(context.Context) {
@@ -149,7 +149,7 @@ func (m *DLock) Lock(wait bool) (err error) {
 					return nil
 				}))
 		if err != nil {
-			util.Logger().Warnf(nil, "%s, key=%s, id=%s", err.Error(), m.builder.key, m.id)
+			util.Logger().Warnf("%s, key=%s, id=%s", err.Error(), m.builder.key, m.id)
 		}
 	})
 	select {
diff --git a/pkg/grace/grace.go b/pkg/grace/grace.go
index e53c6d4..2d18855 100644
--- a/pkg/grace/grace.go
+++ b/pkg/grace/grace.go
@@ -157,7 +157,7 @@ func fork() (err error) {
 		util.Logger().Errorf(err, "fork a process failed, %v", args)
 		return
 	}
-	util.Logger().Warnf(nil, "fork process %v", args)
+	util.Logger().Warnf("fork process %v", args)
 	return
 }
 
diff --git a/pkg/plugin/loader.go b/pkg/plugin/loader.go
index 0306ef2..f5a3bba 100644
--- a/pkg/plugin/loader.go
+++ b/pkg/plugin/loader.go
@@ -49,7 +49,7 @@ func (pm *Loader) Init() {
 
 	err := pm.ReloadPlugins()
 	if len(pm.Plugins) == 0 {
-		util.Logger().Warnf(err, "no any plugin has been loaded.")
+		util.Logger().Errorf(err, "no any plugin has been loaded.")
 	}
 }
 
diff --git a/pkg/rest/server.go b/pkg/rest/server.go
index 06bbcaa..0bcabb6 100644
--- a/pkg/rest/server.go
+++ b/pkg/rest/server.go
@@ -260,10 +260,10 @@ func (srv *Server) gracefulStop(d time.Duration) {
 	}
 
 	if n != 0 {
-		util.Logger().Warnf(nil, "%s timed out, force close %d connection(s)", d, n)
+		util.Logger().Warnf("%s timed out, force close %d connection(s)", d, n)
 		err := srv.Server.Close()
 		if err != nil {
-			util.Logger().Warnf(err, "server close failed")
+			util.Logger().Errorf(err, "server close failed")
 		}
 	}
 }
diff --git a/pkg/tlsutil/tlsutil.go b/pkg/tlsutil/tlsutil.go
index b50acd1..4995ecd 100644
--- a/pkg/tlsutil/tlsutil.go
+++ b/pkg/tlsutil/tlsutil.go
@@ -42,7 +42,7 @@ func ParseSSLCipherSuites(ciphers string, permitTlsCipherSuiteMap map[string]uin
 			cipherSuiteList = append(cipherSuiteList, cipherSuite)
 		} else {
 			// 配置算法不存在
-			util.Logger().Warnf(nil, "cipher %s not exist.", cipherSuiteName)
+			util.Logger().Warnf("cipher %s not exist.", cipherSuiteName)
 		}
 	}
 
@@ -58,7 +58,7 @@ func ParseSSLProtocol(sprotocol string) uint16 {
 	if protocol, ok := TLS_VERSION_MAP[sprotocol]; ok {
 		result = protocol
 	} else {
-		util.Logger().Warnf(nil, "invalid ssl minimal version(%s), use default.", sprotocol)
+		util.Logger().Warnf("invalid ssl minimal version(%s), use default.", sprotocol)
 	}
 
 	return result
diff --git a/pkg/util/log.go b/pkg/util/log.go
index 38d8051..9f1da95 100644
--- a/pkg/util/log.go
+++ b/pkg/util/log.go
@@ -18,8 +18,8 @@ package util
 
 import (
 	"fmt"
-	"github.com/ServiceComb/paas-lager"
-	"github.com/ServiceComb/paas-lager/third_party/forked/cloudfoundry/lager"
+	stlager "github.com/go-chassis/paas-lager"
+	"github.com/go-chassis/paas-lager/third_party/forked/cloudfoundry/lager"
 	"golang.org/x/net/context"
 	"os"
 	"path/filepath"
@@ -148,7 +148,7 @@ func Logger() lager.Logger {
 			}
 			logger = NewLogger(cfg)
 			loggers[logFile] = logger
-			logger.Warnf(nil, "match %s, new globalLogger %s for %s", prefix, logFile, funcFullName)
+			logger.Warnf("match %s, new globalLogger %s for %s", prefix, logFile, funcFullName)
 		}
 		loggersMux.Unlock()
 		return logger
@@ -223,7 +223,7 @@ func LogNilOrWarnf(start time.Time, format string, args ...interface{}) {
 	if cost < time.Second {
 		return
 	}
-	Logger().Warnf(nil, "[%s]%s", cost, fmt.Sprintf(format, args...))
+	Logger().Warnf("[%s]%s", cost, fmt.Sprintf(format, args...))
 }
 
 func LogDebugOrWarnf(start time.Time, format string, args ...interface{}) {
@@ -232,7 +232,7 @@ func LogDebugOrWarnf(start time.Time, format string, args ...interface{}) {
 		Logger().Debugf("[%s]%s", cost, fmt.Sprintf(format, args...))
 		return
 	}
-	Logger().Warnf(nil, "[%s]%s", cost, fmt.Sprintf(format, args...))
+	Logger().Warnf("[%s]%s", cost, fmt.Sprintf(format, args...))
 }
 
 func LogInfoOrWarnf(start time.Time, format string, args ...interface{}) {
@@ -241,5 +241,5 @@ func LogInfoOrWarnf(start time.Time, format string, args ...interface{}) {
 		Logger().Infof("[%s]%s", cost, fmt.Sprintf(format, args...))
 		return
 	}
-	Logger().Warnf(nil, "[%s]%s", cost, fmt.Sprintf(format, args...))
+	Logger().Warnf("[%s]%s", cost, fmt.Sprintf(format, args...))
 }
diff --git a/server/api.go b/server/api.go
index c694535..8783d51 100644
--- a/server/api.go
+++ b/server/api.go
@@ -98,7 +98,7 @@ func (s *APIServer) registryService(pCtx context.Context) error {
 		return err
 	}
 	if respE.Response.Code == pb.Response_SUCCESS {
-		util.Logger().Warnf(nil, "service center service already registered, serviceId %s", respE.ServiceId)
+		util.Logger().Warnf("service center service already registered, serviceId %s", respE.ServiceId)
 		respG, err := core.ServiceAPI.GetOne(ctx, core.GetServiceRequest(respE.ServiceId))
 		if respG.Response.Code != pb.Response_SUCCESS {
 			util.Logger().Errorf(err, "query service center service info failed, serviceId %s", respE.ServiceId)
@@ -153,7 +153,7 @@ func (s *APIServer) unregisterInstance(pCtx context.Context) error {
 		util.Logger().Error(err.Error(), nil)
 		return err
 	}
-	util.Logger().Warnf(nil, "unregister service center instance %s/%s",
+	util.Logger().Warnf("unregister service center instance %s/%s",
 		core.Service.ServiceId, core.Instance.InstanceId)
 	return nil
 }
diff --git a/server/broker/util.go b/server/broker/util.go
index 8f8e70a..9b43341 100644
--- a/server/broker/util.go
+++ b/server/broker/util.go
@@ -24,7 +24,6 @@ import (
 	"strconv"
 	"strings"
 
-	"github.com/ServiceComb/paas-lager/third_party/forked/cloudfoundry/lager"
 	"github.com/apache/incubator-servicecomb-service-center/pkg/util"
 	"github.com/apache/incubator-servicecomb-service-center/server/broker/brokerpb"
 	"github.com/apache/incubator-servicecomb-service-center/server/core"
@@ -33,6 +32,7 @@ import (
 	scerr "github.com/apache/incubator-servicecomb-service-center/server/error"
 	"github.com/apache/incubator-servicecomb-service-center/server/infra/registry"
 	serviceUtil "github.com/apache/incubator-servicecomb-service-center/server/service/util"
+	"github.com/go-chassis/paas-lager/third_party/forked/cloudfoundry/lager"
 	"path/filepath"
 	"time"
 )
diff --git a/server/core/backend/cacher_kv.go b/server/core/backend/cacher_kv.go
index 9be17aa..7f97b67 100644
--- a/server/core/backend/cacher_kv.go
+++ b/server/core/backend/cacher_kv.go
@@ -80,7 +80,7 @@ func (c *KvCacher) doList(cfg ListWatchConfig) error {
 	evts := c.filter(c.lw.Revision(), kvs)
 	if ec, kc := len(evts), len(kvs); c.Cfg.DeferHandler != nil && ec == 0 && kc != 0 &&
 		c.Cfg.DeferHandler.Reset() {
-		util.Logger().Warnf(nil, "most of the protected data(%d/%d) are recovered",
+		util.Logger().Warnf("most of the protected data(%d/%d) are recovered",
 			kc, c.cache.GetAll(nil))
 	}
 	c.sync(evts)
@@ -379,11 +379,11 @@ func (c *KvCacher) onEvents(evts []KvEvent) {
 			case init:
 				evt.Type = proto.EVT_INIT
 			case !ok && evt.Type != proto.EVT_CREATE:
-				util.Logger().Warnf(nil, "unexpected %s event! it should be %s key %s",
+				util.Logger().Warnf("unexpected %s event! it should be %s key %s",
 					evt.Type, proto.EVT_CREATE, key)
 				evt.Type = proto.EVT_CREATE
 			case ok && evt.Type != proto.EVT_UPDATE:
-				util.Logger().Warnf(nil, "unexpected %s event! it should be %s key %s",
+				util.Logger().Warnf("unexpected %s event! it should be %s key %s",
 					evt.Type, proto.EVT_UPDATE, key)
 				evt.Type = proto.EVT_UPDATE
 			}
@@ -392,7 +392,7 @@ func (c *KvCacher) onEvents(evts []KvEvent) {
 			evts[i] = evt
 		case proto.EVT_DELETE:
 			if !ok {
-				util.Logger().Warnf(nil, "unexpected %s event! key %s does not cache",
+				util.Logger().Warnf("unexpected %s event! key %s does not cache",
 					evt.Type, key)
 			} else {
 				evt.KV = prevKv
diff --git a/server/core/backend/defer_instance.go b/server/core/backend/defer_instance.go
index b89d511..095c5b8 100644
--- a/server/core/backend/defer_instance.go
+++ b/server/core/backend/defer_instance.go
@@ -115,7 +115,7 @@ func (iedh *InstanceEventDeferHandler) check(ctx context.Context) {
 			total := iedh.cache.GetAll(nil)
 			if total > 5 && float64(del) >= float64(total)*iedh.Percent {
 				iedh.enabled = true
-				util.Logger().Warnf(nil, "self preservation is enabled, caught %d/%d(>=%.0f%%) DELETE events",
+				util.Logger().Warnf("self preservation is enabled, caught %d/%d(>=%.0f%%) DELETE events",
 					del, total, iedh.Percent*100)
 			}
 
@@ -133,20 +133,20 @@ func (iedh *InstanceEventDeferHandler) check(ctx context.Context) {
 					default:
 						continue
 					}
-					util.Logger().Warnf(nil, "defer handle timed out, removed key is %s", key)
+					util.Logger().Warnf("defer handle timed out, removed key is %s", key)
 				}
 				iedh.recover(item.event)
 			}
 
 			if iedh.enabled && len(iedh.items) == 0 {
 				iedh.renew()
-				util.Logger().Warnf(nil, "self preservation is stopped")
+				util.Logger().Warnf("self preservation is stopped")
 			}
 
 			t.Reset(DEFAULT_CHECK_WINDOW)
 		case <-iedh.resetCh:
 			iedh.renew()
-			util.Logger().Warnf(nil, "self preservation is reset")
+			util.Logger().Warnf("self preservation is reset")
 
 			util.ResetTimer(t, DEFAULT_CHECK_WINDOW)
 		}
diff --git a/server/core/backend/lease.go b/server/core/backend/lease.go
index d3e7e8e..928e95d 100644
--- a/server/core/backend/lease.go
+++ b/server/core/backend/lease.go
@@ -61,7 +61,7 @@ func (lat *LeaseTask) Do(ctx context.Context) (err error) {
 
 	cost := time.Now().Sub(recv)
 	if cost >= 2*time.Second {
-		util.Logger().Warnf(nil, "[%s]renew lease %d(recv: %s, send: %s), key %s", cost,
+		util.Logger().Warnf("[%s]renew lease %d(recv: %s, send: %s), key %s", cost,
 			lat.LeaseID,
 			recv.Format(TIME_FORMAT),
 			start.Format(TIME_FORMAT),
diff --git a/server/core/core.go b/server/core/core.go
index 0d5c214..8562ada 100644
--- a/server/core/core.go
+++ b/server/core/core.go
@@ -96,10 +96,10 @@ func handleSignals() {
 		switch sig {
 		case syscall.SIGINT, syscall.SIGKILL, syscall.SIGTERM:
 			<-time.After(wait)
-			util.Logger().Warnf(nil, "waiting for server response timed out(%s), force shutdown", wait)
+			util.Logger().Warnf("waiting for server response timed out(%s), force shutdown", wait)
 			os.Exit(1)
 		default:
-			util.Logger().Warnf(nil, "received signal '%v'", sig)
+			util.Logger().Warnf("received signal '%v'", sig)
 		}
 	}
 }
diff --git a/server/plugin/infra/registry/embededetcd/embededetcd.go b/server/plugin/infra/registry/embededetcd/embededetcd.go
index fd0a174..f39257a 100644
--- a/server/plugin/infra/registry/embededetcd/embededetcd.go
+++ b/server/plugin/infra/registry/embededetcd/embededetcd.go
@@ -503,7 +503,7 @@ func setResponseAndCallback(pResp *registry.PluginResponse, kvs []*mvccpb.KeyVal
 }
 
 func getEmbedInstance() mgr.PluginInstance {
-	util.Logger().Warnf(nil, "starting service center in embed mode")
+	util.Logger().Warnf("starting service center in embed mode")
 
 	hostName := beego.AppConfig.DefaultString("manager_name", "sc-0")
 	mgrAddrs := beego.AppConfig.DefaultString("manager_addr", "http://127.0.0.1:2380")
diff --git a/server/plugin/infra/registry/etcd/etcd.go b/server/plugin/infra/registry/etcd/etcd.go
index 5127db6..3205f3f 100644
--- a/server/plugin/infra/registry/etcd/etcd.go
+++ b/server/plugin/infra/registry/etcd/etcd.go
@@ -98,7 +98,7 @@ func (c *EtcdClient) Initialize() (err error) {
 
 	close(c.ready)
 
-	util.Logger().Warnf(nil, "get etcd client %v completed, auto sync endpoints interval is %s.",
+	util.Logger().Warnf("get etcd client %v completed, auto sync endpoints interval is %s.",
 		c.Endpoints, c.AutoSyncInterval)
 	return
 }
@@ -809,7 +809,7 @@ func callback(action registry.ActionType, rev int64, kvs []*mvccpb.KeyValue, cb
 }
 
 func NewRegistry() mgr.PluginInstance {
-	util.Logger().Warnf(nil, "starting service center in proxy mode")
+	util.Logger().Warnf("starting service center in proxy mode")
 
 	inst := &EtcdClient{}
 	if err := inst.Initialize(); err != nil {
diff --git a/server/plugin/infra/registry/etcd/logger.go b/server/plugin/infra/registry/etcd/logger.go
index c0e35ba..349614d 100644
--- a/server/plugin/infra/registry/etcd/logger.go
+++ b/server/plugin/infra/registry/etcd/logger.go
@@ -71,7 +71,7 @@ func (l *clientLogger) Warningln(args ...interface{}) {
 }
 
 func (l *clientLogger) Warningf(format string, args ...interface{}) {
-	util.Logger().Warnf(nil, format, args...)
+	util.Logger().Warnf(format, args...)
 }
 
 func (l *clientLogger) Error(args ...interface{}) {
diff --git a/server/plugin/infra/tls/buildin/tls.go b/server/plugin/infra/tls/buildin/tls.go
index 9ed8064..67ae48a 100644
--- a/server/plugin/infra/tls/buildin/tls.go
+++ b/server/plugin/infra/tls/buildin/tls.go
@@ -47,14 +47,14 @@ func GetSSLPath(path string) string {
 func GetPassphase() (pass string, decrypt string) {
 	passphase, err := ioutil.ReadFile(GetSSLPath("cert_pwd"))
 	if err != nil {
-		util.Logger().Warn("read file cert_pwd failed.", err)
+		util.Logger().Errorf(err, "read file cert_pwd failed.")
 	}
 
 	pass = util.BytesToStringWithNoCopy(passphase)
 	if len(pass) > 0 {
 		decrypt, err = plugin.Plugins().Cipher().Decrypt(pass)
 		if err != nil {
-			util.Logger().Warnf(err, "decrypt ssl passphase(%d) failed.", len(pass))
+			util.Logger().Errorf(err, "decrypt ssl passphase(%d) failed.", len(pass))
 			decrypt = ""
 		}
 	}
diff --git a/server/plugin/infra/tracing/buildin/common.go b/server/plugin/infra/tracing/buildin/common.go
index fb83985..14e30f7 100644
--- a/server/plugin/infra/tracing/buildin/common.go
+++ b/server/plugin/infra/tracing/buildin/common.go
@@ -31,7 +31,7 @@ import (
 func initTracer() {
 	collector, err := newCollector()
 	if err != nil {
-		util.Logger().Warnf(err, "new tracing collector failed, use the noop tracer")
+		util.Logger().Errorf(err, "new tracing collector failed, use the noop tracer")
 		return
 	}
 	ipPort := metric.InstanceName()
diff --git a/server/plugin/infra/tracing/buildin/file_collector.go b/server/plugin/infra/tracing/buildin/file_collector.go
index 46de622..4de5588 100644
--- a/server/plugin/infra/tracing/buildin/file_collector.go
+++ b/server/plugin/infra/tracing/buildin/file_collector.go
@@ -98,7 +98,7 @@ func (f *FileCollector) checkFile() error {
 		return fmt.Errorf("stat %s: %s", f.Fd.Name(), err)
 	}
 
-	util.Logger().Warnf(nil, "tracing file %s does not exist, re-create one", f.Fd.Name())
+	util.Logger().Warnf("tracing file %s does not exist, re-create one", f.Fd.Name())
 	fd, err := os.OpenFile(f.Fd.Name(), os.O_APPEND|os.O_CREATE|os.O_RDWR, stat.Mode())
 	if err != nil {
 		return fmt.Errorf("open %s: %s", f.Fd.Name(), err)
diff --git a/server/server.go b/server/server.go
index ca70ad4..6999228 100644
--- a/server/server.go
+++ b/server/server.go
@@ -75,7 +75,7 @@ func (s *ServiceCenterServer) needUpgrade() bool {
 	update := !serviceUtil.VersionMatchRule(core.ServerInfo.Version,
 		fmt.Sprintf("%s+", version.Ver().Version))
 	if !update && version.Ver().Version != core.ServerInfo.Version {
-		util.Logger().Warnf(nil,
+		util.Logger().Warnf(
 			"there is a higher version '%s' in cluster, now running '%s' version may be incompatible",
 			core.ServerInfo.Version, version.Ver().Version)
 	}
@@ -134,7 +134,7 @@ func (s *ServiceCenterServer) autoCompactBackend() {
 			case <-time.After(interval):
 				lock, err := mux.Try(mux.GLOBAL_LOCK)
 				if lock == nil {
-					util.Logger().Warnf(err, "can not compact backend by this service center instance now")
+					util.Logger().Errorf(err, "can not compact backend by this service center instance now")
 					continue
 				}
 
@@ -198,5 +198,5 @@ func (s *ServiceCenterServer) Stop() {
 
 	backend.Registry().Close()
 
-	util.Logger().Warnf(nil, "service center stopped")
+	util.Logger().Warnf("service center stopped")
 }
diff --git a/server/service/event/instance_event_handler.go b/server/service/event/instance_event_handler.go
index b594e78..b660508 100644
--- a/server/service/event/instance_event_handler.go
+++ b/server/service/event/instance_event_handler.go
@@ -58,7 +58,7 @@ func (h *InstanceEventHandler) OnEvent(evt backend.KvEvent) {
 	}
 
 	if nf.GetNotifyService().Closed() {
-		util.Logger().Warnf(nil, "caught [%s] instance event %s/%s, but notify service is closed",
+		util.Logger().Warnf("caught [%s] instance event %s/%s, but notify service is closed",
 			action, providerId, providerInstanceId)
 		return
 	}
@@ -68,7 +68,7 @@ func (h *InstanceEventHandler) OnEvent(evt backend.KvEvent) {
 	ctx := util.SetContext(context.Background(), serviceUtil.CTX_CACHEONLY, "1")
 	ms, err := serviceUtil.GetService(ctx, domainProject, providerId)
 	if ms == nil {
-		util.Logger().Warnf(err, "get provider service %s/%s id in cache failed",
+		util.Logger().Errorf(err, "get provider service %s/%s id in cache failed",
 			providerId, providerInstanceId)
 		return
 	}
diff --git a/server/service/event/rule_event_handler.go b/server/service/event/rule_event_handler.go
index e054923..e2bc687 100644
--- a/server/service/event/rule_event_handler.go
+++ b/server/service/event/rule_event_handler.go
@@ -88,7 +88,7 @@ func (h *RuleEventHandler) OnEvent(evt backend.KvEvent) {
 
 	providerId, ruleId, domainProject := backend.GetInfoFromRuleKV(evt.KV)
 	if nf.GetNotifyService().Closed() {
-		util.Logger().Warnf(nil, "caught [%s] service rule event %s/%s, but notify service is closed",
+		util.Logger().Warnf("caught [%s] service rule event %s/%s, but notify service is closed",
 			action, providerId, ruleId)
 		return
 	}
diff --git a/server/service/event/tag_event_handler.go b/server/service/event/tag_event_handler.go
index 8ad62c3..aecf7cb 100644
--- a/server/service/event/tag_event_handler.go
+++ b/server/service/event/tag_event_handler.go
@@ -75,7 +75,7 @@ func (apt *TagsChangedTask) publish(ctx context.Context, domainProject, consumer
 	for _, providerId := range providerIds {
 		provider, err := serviceUtil.GetService(ctx, domainProject, providerId)
 		if provider == nil {
-			util.Logger().Warnf(err, "get service %s file failed", providerId)
+			util.Logger().Errorf(err, "get service %s file failed", providerId)
 			continue
 		}
 		providerKey := pb.MicroServiceToKey(domainProject, provider)
@@ -101,7 +101,7 @@ func (h *TagEventHandler) OnEvent(evt backend.KvEvent) {
 	consumerId, domainProject := backend.GetInfoFromTagKV(evt.KV)
 
 	if nf.GetNotifyService().Closed() {
-		util.Logger().Warnf(nil, "caught [%s] service tags event %s/%s, but notify service is closed",
+		util.Logger().Warnf("caught [%s] service tags event %s/%s, but notify service is closed",
 			action, consumerId, evt.KV.Value)
 		return
 	}
diff --git a/server/service/instance.go b/server/service/instance.go
index 2ecc3dc..fe1ef03 100644
--- a/server/service/instance.go
+++ b/server/service/instance.go
@@ -316,7 +316,7 @@ func (s *InstanceService) Heartbeat(ctx context.Context, in *pb.HeartbeatRequest
 	}
 
 	if ttl == 0 {
-		util.Logger().Warnf(errors.New("connect backend timed out"),
+		util.Logger().Errorf(errors.New("connect backend timed out"),
 			"heartbeat successful, but renew %s failed. operator: %s", instanceFlag, remoteIP)
 	} else {
 		util.Logger().Infof("heartbeat successful: %s renew ttl to %d. operator: %s", instanceFlag, ttl, remoteIP)
@@ -341,7 +341,7 @@ func (s *InstanceService) HeartbeatSet(ctx context.Context, in *pb.HeartbeatSetR
 	noMultiCounter := 0
 	for _, heartbeatElement := range in.Instances {
 		if _, ok := existFlag[heartbeatElement.ServiceId+heartbeatElement.InstanceId]; ok {
-			util.Logger().Warnf(nil, "heartbeat set %s/%s multiple", heartbeatElement.ServiceId, heartbeatElement.InstanceId)
+			util.Logger().Warnf("heartbeat set %s/%s multiple", heartbeatElement.ServiceId, heartbeatElement.InstanceId)
 			continue
 		} else {
 			existFlag[heartbeatElement.ServiceId+heartbeatElement.InstanceId] = true
diff --git a/server/service/microservice.go b/server/service/microservice.go
index 5a64578..cd88ff8 100644
--- a/server/service/microservice.go
+++ b/server/service/microservice.go
@@ -158,7 +158,7 @@ func (s *MicroServiceService) CreateServicePri(ctx context.Context, in *pb.Creat
 	if !resp.Succeeded {
 		if s.isCreateServiceEx(in) == true {
 			serviceIdInner, _ := serviceUtil.GetServiceId(ctx, serviceKey)
-			util.Logger().Warnf(nil, "create micro-service failed, serviceId = %s , flag = %s: service already exists. operator: %s",
+			util.Logger().Warnf("create micro-service failed, serviceId = %s , flag = %s: service already exists. operator: %s",
 				serviceIdInner, serviceFlag, remoteIP)
 
 			return &pb.CreateServiceResponse{
@@ -167,7 +167,7 @@ func (s *MicroServiceService) CreateServicePri(ctx context.Context, in *pb.Creat
 			}, nil
 		}
 
-		util.Logger().Warnf(nil, "create micro-service failed, %s: service already exists. operator: %s",
+		util.Logger().Warnf("create micro-service failed, %s: service already exists. operator: %s",
 			serviceFlag, remoteIP)
 
 		return &pb.CreateServiceResponse{
@@ -362,7 +362,7 @@ func (s *MicroServiceService) DeleteServices(ctx context.Context, request *pb.De
 	for _, serviceId := range request.ServiceIds {
 		//ServiceId重复性检查
 		if _, ok := existFlag[serviceId]; ok {
-			util.Logger().Warnf(nil, "delete micro-service %s , multiple.", serviceId)
+			util.Logger().Warnf("delete micro-service %s , multiple.", serviceId)
 			continue
 		} else {
 			existFlag[serviceId] = true
@@ -597,7 +597,7 @@ func (s *MicroServiceService) Exist(ctx context.Context, in *pb.GetExistenceRequ
 		}
 
 		if !serviceUtil.ServiceExist(ctx, domainProject, in.ServiceId) {
-			util.Logger().Warnf(nil, "schema exist failed, serviceId %s, schemaId %s: service not exist.", in.ServiceId, in.SchemaId)
+			util.Logger().Warnf("schema exist failed, serviceId %s, schemaId %s: service not exist.", in.ServiceId, in.SchemaId)
 			return &pb.GetExistenceResponse{
 				Response: pb.CreateResponse(scerr.ErrServiceNotExists, "service does not exist."),
 			}, nil
@@ -630,7 +630,7 @@ func (s *MicroServiceService) Exist(ctx context.Context, in *pb.GetExistenceRequ
 			Summary:  schemaSummary,
 		}, nil
 	default:
-		util.Logger().Warnf(nil, "unexpected type '%s' for query.", in.Type)
+		util.Logger().Warnf("unexpected type '%s' for query.", in.Type)
 		return &pb.GetExistenceResponse{
 			Response: pb.CreateResponse(scerr.ErrInvalidParams, "Only micro-service and schema can be used as type."),
 		}, nil
diff --git a/server/service/notification/listwatcher.go b/server/service/notification/listwatcher.go
index 0877b27..bffbb45 100644
--- a/server/service/notification/listwatcher.go
+++ b/server/service/notification/listwatcher.go
@@ -90,8 +90,7 @@ func (w *ListWatcher) OnMessage(job NotifyJob) {
 	}
 
 	if wJob.Revision <= w.ListRevision {
-		util.Logger().Warnf(nil,
-			"unexpected notify %s job is coming in, watcher %s %s, job is %v, current revision is %v",
+		util.Logger().Warnf("unexpected notify %s job is coming in, watcher %s %s, job is %v, current revision is %v",
 			w.Type(), w.Group(), w.Subject(), job, w.ListRevision)
 		return
 	}
diff --git a/server/service/notification/notification_service.go b/server/service/notification/notification_service.go
index 4f64981..8837396 100644
--- a/server/service/notification/notification_service.go
+++ b/server/service/notification/notification_service.go
@@ -54,7 +54,7 @@ func (s *NotifyService) init() {
 
 func (s *NotifyService) Start() {
 	if !s.Closed() {
-		util.Logger().Warnf(nil, "notify service is already running")
+		util.Logger().Warnf("notify service is already running")
 		return
 	}
 	s.closeMux.Lock()
diff --git a/server/service/notification/websocket.go b/server/service/notification/websocket.go
index 85c5e2f..00778ea 100644
--- a/server/service/notification/websocket.go
+++ b/server/service/notification/websocket.go
@@ -174,7 +174,7 @@ func (wh *WebSocket) HandleWatchWebSocketJob(o interface{}) {
 	switch o.(type) {
 	case error:
 		err := o.(error)
-		util.Logger().Warnf(err, "watcher[%s] catch an err, subject: %s, group: %s",
+		util.Logger().Errorf(err, "watcher[%s] catch an err, subject: %s, group: %s",
 			remoteAddr, wh.watcher.Subject(), wh.watcher.Group())
 
 		message = util.StringToBytesWithNoCopy(fmt.Sprintf("watcher catch an err: %s", err.Error()))
diff --git a/server/service/schema.go b/server/service/schema.go
index 17b1f08..182ce4f 100644
--- a/server/service/schema.go
+++ b/server/service/schema.go
@@ -363,7 +363,7 @@ func modifySchemas(ctx context.Context, domainProject string, service *pb.MicroS
 					opts := schemaWithDatabaseOpera(registry.OpPut, domainProject, serviceId, needUpdateSchema)
 					pluginOps = append(pluginOps, opts...)
 				} else {
-					util.Logger().Warnf(nil, "schema and summary already exist, skip to update, serviceId %s, schemaId %s", serviceId, needUpdateSchema.SchemaId)
+					util.Logger().Warnf("schema and summary already exist, skip to update, serviceId %s, schemaId %s", serviceId, needUpdateSchema.SchemaId)
 				}
 			}
 		}
@@ -537,7 +537,7 @@ func (s *MicroServiceService) canModifySchema(ctx context.Context, domainProject
 		return errQuota
 	}
 	if len(in.Summary) == 0 {
-		util.Logger().Warnf(nil, "service %s schema %s summary is empty.", in.ServiceId, schemaId)
+		util.Logger().Warnf("service %s schema %s summary is empty.", in.ServiceId, schemaId)
 	}
 	return nil
 }
diff --git a/server/service/util/dependency_query.go b/server/service/util/dependency_query.go
index d7f1029..eab4c57 100644
--- a/server/service/util/dependency_query.go
+++ b/server/service/util/dependency_query.go
@@ -85,7 +85,7 @@ func (dr *DependencyRelation) GetDependencyProviders(opts ...DependencyRelationF
 		for _, providerId := range providerIds {
 			provider, err := GetService(dr.ctx, key.Tenant, providerId)
 			if err != nil {
-				util.Logger().Warnf(nil, "Provider does not exist, %s/%s/%s",
+				util.Logger().Warnf("Provider does not exist, %s/%s/%s",
 					key.AppId, key.ServiceName, key.Version)
 				continue
 			}
@@ -146,7 +146,7 @@ func (dr *DependencyRelation) getDependencyProviderIds(providerRules []*pb.Micro
 				return provideServiceIds, err
 			}
 			if len(serviceIds) == 0 {
-				util.Logger().Warnf(nil, "Get providerIds is empty, service: %s/%s/%s does not exist",
+				util.Logger().Warnf("Get providerIds is empty, service: %s/%s/%s does not exist",
 					provider.AppId, provider.ServiceName, provider.Version)
 				continue
 			}
@@ -198,7 +198,7 @@ func (dr *DependencyRelation) GetDependencyConsumers(opts ...DependencyRelationF
 			return nil, err
 		}
 		if service == nil {
-			util.Logger().Warnf(nil, "Consumer does not exist, %v", consumer)
+			util.Logger().Warnf("Consumer does not exist, %v", consumer)
 			continue
 		}
 
@@ -217,7 +217,7 @@ func (dr *DependencyRelation) getServiceByMicroServiceKey(service *pb.MicroServi
 		return nil, err
 	}
 	if len(serviceId) == 0 {
-		util.Logger().Warnf(nil, "Service not exist,%v", service)
+		util.Logger().Warnf("Service not exist,%v", service)
 		return nil, nil
 	}
 	return GetService(dr.ctx, service.Tenant, serviceId)
@@ -236,7 +236,7 @@ func (dr *DependencyRelation) GetDependencyConsumerIds() ([]string, error) {
 			return nil, err
 		}
 		if len(consumerId) == 0 {
-			util.Logger().Warnf(nil, "Get consumer not exist, %v", consumer)
+			util.Logger().Warnf("Get consumer not exist, %v", consumer)
 			continue
 		}
 		consumerIds = append(consumerIds, consumerId)
diff --git a/server/service/util/instance_util.go b/server/service/util/instance_util.go
index 65c507e..a523c61 100644
--- a/server/service/util/instance_util.go
+++ b/server/service/util/instance_util.go
@@ -160,7 +160,7 @@ func DeleteServiceAllInstances(ctx context.Context, serviceId string) error {
 		return err
 	}
 	if resp.Count <= 0 {
-		util.Logger().Warnf(nil, "service %s has no deployment of instance.", serviceId)
+		util.Logger().Warnf("service %s has no deployment of instance.", serviceId)
 		return nil
 	}
 	for _, v := range resp.Kvs {
diff --git a/server/service/util/rule_util.go b/server/service/util/rule_util.go
index 246dada..3d76855 100644
--- a/server/service/util/rule_util.go
+++ b/server/service/util/rule_util.go
@@ -235,7 +235,7 @@ func patternBlackList(rulesOfProvider []*pb.ServiceRule, tagsOfConsumer map[stri
 
 		match, _ := regexp.MatchString(rule.Pattern, value)
 		if match {
-			util.Logger().Warnf(nil, "no permission to access, consumer %s match black list, rule.Pattern is %s, value is %s",
+			util.Logger().Warnf("no permission to access, consumer %s match black list, rule.Pattern is %s, value is %s",
 				consumerId, rule.Pattern, value)
 			return scerr.NewError(scerr.ErrPermissionDeny, "Found in black list")
 		}
diff --git a/server/service/validate.go b/server/service/validate.go
index f41003d..f6b9c2d 100644
--- a/server/service/validate.go
+++ b/server/service/validate.go
@@ -91,7 +91,7 @@ func Validate(v interface{}) error {
 	case *pb.GetAppsRequest:
 		return MicroServiceKeyValidator().Validate(v)
 	default:
-		util.Logger().Warnf(nil, "No validator for %T.", t)
+		util.Logger().Warnf("No validator for %T.", t)
 		return nil
 	}
 }