diff --git a/examples/dev/conf/chassis.yaml b/examples/dev/conf/chassis.yaml
index 4eab0d2..cb2cc69 100755
--- a/examples/dev/conf/chassis.yaml
+++ b/examples/dev/conf/chassis.yaml
@@ -6,6 +6,9 @@
   protocols:
     rest:
       listenAddress: 127.0.0.1:30110
+  metrics:
+    enable: true
+    interval: 10s
   match:
     rateLimitPolicy: |
       matches:
diff --git a/pkg/common/common.go b/pkg/common/common.go
index 9e452f3..7eb1d3d 100644
--- a/pkg/common/common.go
+++ b/pkg/common/common.go
@@ -40,6 +40,7 @@
 	QueryParamURLPath      = "urlPath"
 	QueryParamUserAgent    = "userAgent"
 	QueryParamOverride     = "override"
+	QueryParamMode         = "mode"
 )
 
 // http headers
diff --git a/server/config/struct.go b/server/config/struct.go
index 3047ded..7391027 100644
--- a/server/config/struct.go
+++ b/server/config/struct.go
@@ -22,7 +22,7 @@
 	DB   DB   `yaml:"db"`
 	RBAC RBAC `yaml:"rbac"`
 	Sync Sync `yaml:"sync"`
-	//config from cli
+	// config from cli
 	ConfigFile     string
 	NodeName       string
 	ListenPeerAddr string
diff --git a/server/metrics/prometheus.go b/server/metrics/prometheus.go
new file mode 100644
index 0000000..6d38031
--- /dev/null
+++ b/server/metrics/prometheus.go
@@ -0,0 +1,54 @@
+package metrics
+
+import (
+	"context"
+	"time"
+
+	"github.com/go-chassis/go-archaius"
+	"github.com/go-chassis/go-chassis/v2/pkg/metrics"
+	"github.com/go-chassis/openlog"
+
+	"github.com/apache/servicecomb-kie/server/datasource"
+)
+
+const domain = "default"
+const project = "default"
+
+func InitMetric() error {
+	err := metrics.CreateGauge(metrics.GaugeOpts{
+		Key:    "servicecomb_kie_config_count",
+		Help:   "use to show the number of config under a specifical domain and project pair",
+		Labels: []string{"domain", "project"},
+	})
+	if err != nil {
+		openlog.Error("init servicecomb_kie_config_count Gauge fail:" + err.Error())
+		return err
+	}
+	reportIntervalstr := archaius.GetString("servicecomb.metrics.interval", "5s")
+	reportInterval, _ := time.ParseDuration(reportIntervalstr)
+	reportTicker := time.NewTicker(reportInterval)
+	go func() {
+		for {
+			_, ok := <-reportTicker.C
+			if !ok {
+				return
+			}
+			getTotalConfigCount(project, domain)
+		}
+	}()
+	return nil
+}
+
+func getTotalConfigCount(project, domain string) {
+	total, err := datasource.GetBroker().GetKVDao().Total(context.TODO(), project, domain)
+	if err != nil {
+		openlog.Error("set total config number fail: " + err.Error())
+		return
+	}
+	labels := map[string]string{"domain": domain, "project": project}
+	err = metrics.GaugeSet("servicecomb_kie_config_count", float64(total), labels)
+	if err != nil {
+		openlog.Error("set total config number fail:" + err.Error())
+		return
+	}
+}
diff --git a/server/resource/v1/admin_resource.go b/server/resource/v1/admin_resource.go
index 4d79eb1..d63b0a4 100644
--- a/server/resource/v1/admin_resource.go
+++ b/server/resource/v1/admin_resource.go
@@ -22,13 +22,15 @@
 	"strconv"
 	"time"
 
-	"github.com/apache/servicecomb-kie/pkg/model"
-	"github.com/apache/servicecomb-kie/server/datasource"
 	goRestful "github.com/emicklei/go-restful"
 	"github.com/go-chassis/cari/config"
 	"github.com/go-chassis/go-chassis/v2/pkg/runtime"
 	"github.com/go-chassis/go-chassis/v2/server/restful"
 	"github.com/go-chassis/openlog"
+
+	"github.com/apache/servicecomb-kie/pkg/common"
+	"github.com/apache/servicecomb-kie/pkg/model"
+	"github.com/apache/servicecomb-kie/server/datasource"
 )
 
 type AdminResource struct {
@@ -57,6 +59,10 @@
 
 // HealthCheck provider version info and time info
 func (r *AdminResource) HealthCheck(context *restful.Context) {
+	healthCheckMode := context.ReadQueryParameter(common.QueryParamMode)
+	if healthCheckMode == "liveness" {
+		return
+	}
 	domain := ReadDomain(context.Ctx)
 	resp := &model.DocHealthCheck{}
 	latest, err := datasource.GetBroker().GetRevisionDao().GetRevision(context.Ctx, domain)
diff --git a/server/resource/v1/admin_resource_test.go b/server/resource/v1/admin_resource_test.go
index 9344bf0..f7ed64d 100644
--- a/server/resource/v1/admin_resource_test.go
+++ b/server/resource/v1/admin_resource_test.go
@@ -19,6 +19,7 @@
 
 import (
 	"encoding/json"
+	"fmt"
 	"io/ioutil"
 	"net/http"
 	"net/http/httptest"
@@ -26,10 +27,11 @@
 
 	_ "github.com/apache/servicecomb-kie/test"
 
-	"github.com/apache/servicecomb-kie/pkg/model"
-	v1 "github.com/apache/servicecomb-kie/server/resource/v1"
 	"github.com/go-chassis/go-chassis/v2/server/restful/restfultest"
 	"github.com/stretchr/testify/assert"
+
+	"github.com/apache/servicecomb-kie/pkg/model"
+	v1 "github.com/apache/servicecomb-kie/server/resource/v1"
 )
 
 func Test_HeathCheck(t *testing.T) {
@@ -47,3 +49,16 @@
 	assert.NoError(t, err)
 	assert.NotEmpty(t, data)
 }
+
+func Test_HeakthCheckLiveMode(t *testing.T) {
+	path := fmt.Sprintf("/v1/health?mode=liveness")
+	r, _ := http.NewRequest("GET", path, nil)
+
+	revision := &v1.AdminResource{}
+	c, err := restfultest.New(revision, nil)
+	assert.NoError(t, err)
+	resp := httptest.NewRecorder()
+	c.ServeHTTP(resp, r)
+	respcode := resp.Code
+	assert.NotEmpty(t, respcode)
+}
diff --git a/server/server.go b/server/server.go
index 4214262..eaf13e5 100644
--- a/server/server.go
+++ b/server/server.go
@@ -22,6 +22,7 @@
 	"github.com/apache/servicecomb-kie/server/config"
 	"github.com/apache/servicecomb-kie/server/datasource"
 	"github.com/apache/servicecomb-kie/server/db"
+	"github.com/apache/servicecomb-kie/server/metrics"
 	"github.com/apache/servicecomb-kie/server/pubsub"
 	"github.com/apache/servicecomb-kie/server/rbac"
 	v1 "github.com/apache/servicecomb-kie/server/resource/v1"
@@ -46,6 +47,9 @@
 	if err := datasource.Init(config.GetDB().Kind); err != nil {
 		openlog.Fatal(err.Error())
 	}
+	if err := metrics.InitMetric(); err != nil {
+		openlog.Fatal(err.Error())
+	}
 	if err := validator.Init(); err != nil {
 		openlog.Fatal("validate init failed: " + err.Error())
 	}
