diff --git a/tidb-server/main.go b/tidb-server/main.go
index <HASH>..<HASH> 100644
--- a/tidb-server/main.go
+++ b/tidb-server/main.go
@@ -218,7 +218,8 @@ func prometheusPushClient(addr string, interval time.Duration) {
 	job := "tidb"
 	for {
 		err := push.AddFromGatherer(
-			job, push.HostnameGroupingKey(),
+			job,
+			map[string]string{"instance": instanceName()},
 			addr,
 			prometheus.DefaultGatherer,
 		)
@@ -229,6 +230,14 @@ func prometheusPushClient(addr string, interval time.Duration) {
 	}
 }
 
+func instanceName() string {
+	hostname, err := os.Hostname()
+	if err != nil {
+		return "unknown"
+	}
+	return fmt.Sprintf("%s_%s", hostname, *port)
+}
+
 // parseLease parses lease argument string.
 func parseLease(lease string) time.Duration {
 	dur, err := time.ParseDuration(lease)
tidb-server: change prometrics metric instance name to host_port (#<I>)