You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by wu...@apache.org on 2018/04/12 00:36:47 UTC

[incubator-servicecomb-java-chassis] 02/04: SCB-445 delete old performance stat mechanism

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

wujimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit 99ac3b75b5d02f7c5464ed737be0c2fcac4b7d77
Author: wujimin <wu...@huawei.com>
AuthorDate: Wed Apr 4 17:05:32 2018 +0800

    SCB-445 delete old performance stat mechanism
---
 .../servicecomb/foundation/metrics/Metrics.java    |  81 -----------
 .../foundation/metrics/MetricsConfig.java          |  46 ------
 .../foundation/metrics/MetricsThread.java          |  68 ---------
 .../foundation/metrics/performance/PerfResult.java |  93 ------------
 .../foundation/metrics/performance/PerfStat.java   |  37 -----
 .../metrics/performance/PerfStatContext.java       |  52 -------
 .../metrics/performance/PerfStatData.java          | 161 ---------------------
 .../metrics/performance/PerfStatImpl.java          |  91 ------------
 .../metrics/performance/PerfStatMonitor.java       |  91 ------------
 .../metrics/performance/PerfStatMonitorMgr.java    |  83 -----------
 .../metrics/performance/PerfStatSuccFail.java      |  50 -------
 .../resources/META-INF/spring/metrics.bean.xml     |  27 ----
 .../foundation/metrics/TestMetrics.java            |  35 -----
 .../foundation/metrics/TestMetricsThread.java      |  47 ------
 .../metrics/performance/TestPerfResult.java        |  70 ---------
 .../metrics/performance/TestPerfStatContext.java   |  68 ---------
 .../metrics/performance/TestPerfStatData.java      |  83 -----------
 .../metrics/performance/TestPerfStatImpl.java      |  70 ---------
 .../metrics/performance/TestPerfStatMonitor.java   |  56 -------
 .../performance/TestPerfStatMonitorMgr.java        |  68 ---------
 .../metrics/performance/TestPerfStatSuccFail.java  |  48 ------
 21 files changed, 1425 deletions(-)

diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/Metrics.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/Metrics.java
deleted file mode 100644
index ae7a47f..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/Metrics.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.servicecomb.foundation.common.CommonThread;
-import org.apache.servicecomb.foundation.metrics.performance.PerfStat;
-import org.apache.servicecomb.foundation.metrics.performance.PerfStatMonitorMgr;
-import org.apache.servicecomb.foundation.metrics.performance.PerfStatSuccFail;
-
-/**
- * Metrics
- * core layer performance logger
- *
- */
-public class Metrics extends CommonThread {
-  // 每个线程只在本线程内部做统计,不涉及多线程并发
-  // 每个周期,统计线程会对所有线程做一次汇总,并与前一周期结果做对比,得出本周期的统计数据
-  protected static final ThreadLocal<Map<String, PerfStatSuccFail>> LOCAL_PERF_STAT_MAP = new ThreadLocal<>();
-
-  private static PerfStatMonitorMgr perfMonitorMgr = new PerfStatMonitorMgr();
-
-  public static void onCycle() throws Exception {
-    long msNow = System.currentTimeMillis();
-
-    synchronized (perfMonitorMgr) {
-      perfMonitorMgr.onCycle(msNow, MetricsConfig.getMsCycle());
-    }
-  }
-
-  public static long getMsTick() {
-    return MetricsThread.getMsTick();
-  }
-
-  public static void registerPerfStat(PerfStat perfStat, int index) {
-    synchronized (perfMonitorMgr) {
-      perfMonitorMgr.registerPerfStat(perfStat, index);
-    }
-  }
-
-  public static PerfStatSuccFail getOrCreateLocalPerfStat(String name, int index) {
-    Map<String, PerfStatSuccFail> map = LOCAL_PERF_STAT_MAP.get();
-    if (map == null) {
-      map = new HashMap<>();
-      LOCAL_PERF_STAT_MAP.set(map);
-    }
-
-    PerfStatSuccFail perfStat = map.get(name);
-    if (perfStat == null) {
-      perfStat = new PerfStatSuccFail(name);
-      map.put(name, perfStat);
-
-      registerPerfStat(perfStat, index);
-    }
-
-    return perfStat;
-  }
-
-  public static Map<String, PerfStat> getMonitorPerfStat() {
-    synchronized (perfMonitorMgr) {
-      return perfMonitorMgr.getMonitorPerfStat();
-    }
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/MetricsConfig.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/MetricsConfig.java
deleted file mode 100644
index 3787434..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/MetricsConfig.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics;
-
-import org.springframework.beans.factory.InitializingBean;
-
-import com.netflix.config.DynamicPropertyFactory;
-
-public class MetricsConfig implements InitializingBean {
-
-  private static final int DEFAULT_METRICS_CYCLE = 60000;
-
-  public static int getMsCycle() {
-    return DynamicPropertyFactory.getInstance()
-        .getIntProperty("cse.metrics.cycle.ms", DEFAULT_METRICS_CYCLE)
-        .get();
-  }
-
-  public static boolean isEnable() {
-    return DynamicPropertyFactory.getInstance().getBooleanProperty("cse.metrics.enabled", false).get();
-  }
-
-  @Override
-  public void afterPropertiesSet() throws Exception {
-    if (!isEnable()) {
-      return;
-    }
-
-    new MetricsThread().start();
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/MetricsThread.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/MetricsThread.java
deleted file mode 100644
index a1e7c39..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/MetricsThread.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics;
-
-import org.apache.servicecomb.foundation.common.CommonThread;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class MetricsThread extends CommonThread {
-  private static final Logger LOGGER = LoggerFactory.getLogger(MetricsThread.class);
-
-  private static final long SECOND_MILLS = 1000;
-
-  // 从进程启动开始,每秒加1000
-  // 这不是一个精确值,用于不关注精度的超时检测
-  private static long msTick = 0;
-
-  public MetricsThread() {
-    setName("metrics");
-  }
-
-  @Override
-  public void run() {
-    while (isRunning()) {
-      waitOneCycle();
-
-      try {
-        Metrics.onCycle();
-      } catch (Exception e) {
-        LOGGER.info(e.getMessage());
-      }
-    }
-  }
-
-  private void waitOneCycle() {
-    long msLastCycle = msTick;
-    for (;;) {
-      try {
-        sleep(SECOND_MILLS);
-      } catch (InterruptedException e) {
-      }
-      msTick += SECOND_MILLS;
-
-      if (msTick - msLastCycle >= MetricsConfig.getMsCycle()) {
-        break;
-      }
-    }
-  }
-
-  public static long getMsTick() {
-    return msTick;
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfResult.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfResult.java
deleted file mode 100644
index bc91ae4..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfResult.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-/**
- * PerfResult
- *
- *
- */
-public class PerfResult {
-  private String name;
-
-  private long callCount;
-
-  private long msgCount;
-
-  private long avgCallCount;
-
-  private double msAvgLatency;
-
-  private long[] msLatencySegments;
-
-  public String getName() {
-    return name;
-  }
-
-  public void setName(String name) {
-    this.name = name;
-  }
-
-  public long getCallCount() {
-    return callCount;
-  }
-
-  public void setCallCount(long callCount) {
-    this.callCount = callCount;
-  }
-
-  public long getMsgCount() {
-    return msgCount;
-  }
-
-  public void setMsgCount(long msgCount) {
-    this.msgCount = msgCount;
-  }
-
-  public long getAvgCallCount() {
-    return avgCallCount;
-  }
-
-  public void setAvgCallCount(long avgCallCount) {
-    this.avgCallCount = avgCallCount;
-  }
-
-  public double getMsAvgLatency() {
-    return msAvgLatency;
-  }
-
-  public void setMsAvgLatency(double msAvgLatency) {
-    this.msAvgLatency = msAvgLatency;
-  }
-
-  public long[] getMsLatencySegments() {
-    return msLatencySegments;
-  }
-
-  public void setMsLatencySegments(long[] msLatencySegments) {
-    this.msLatencySegments = msLatencySegments;
-  }
-
-  public String segmentsToString(String fmt) {
-    StringBuilder sb = new StringBuilder();
-    for (long segCount : msLatencySegments) {
-      sb.append(String.format(fmt, segCount));
-    }
-    return sb.toString();
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStat.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStat.java
deleted file mode 100644
index df999a3..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStat.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import java.util.List;
-
-/**
- * PerfStat
- *
- *
- */
-public interface PerfStat {
-  String getName();
-
-  List<PerfStatData> getPerfStatDataList();
-
-  void mergeFrom(PerfStat otherPerfStat);
-
-  void calc(long msNow, List<PerfResult> perfResultList);
-
-  void calc(PerfStat lastCycle, long msCycle, List<PerfResult> perfResultList);
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatContext.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatContext.java
deleted file mode 100644
index 68d9f72..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatContext.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-/**
- * PerfStatContext
- *
- *
- */
-public class PerfStatContext {
-  // 调用开始时间,用于统计
-  protected long callBegin;
-
-  // 本次统计涉及消息数量
-  private int msgCount;
-
-  public PerfStatContext() {
-    reset();
-  }
-
-  public long getLatency() {
-    return System.currentTimeMillis() - callBegin;
-  }
-
-  public int getMsgCount() {
-    return msgCount;
-  }
-
-  public void setMsgCount(int msgCount) {
-    this.msgCount = msgCount;
-  }
-
-  public void reset() {
-    callBegin = System.currentTimeMillis();
-    msgCount = 0;
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatData.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatData.java
deleted file mode 100644
index 53c28bf..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatData.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import java.util.Arrays;
-
-/**
- * PerfStatData
- *
- *
- */
-public class PerfStatData {
-  private static long processBegin = System.currentTimeMillis();
-
-  private static long[] segmentDef;
-
-  private static final long[] SEGMENT_BOUNDRYS = new long[] {20, 100, 300, 500};
-
-  static {
-    setSegmentDef(SEGMENT_BOUNDRYS);
-  }
-
-  //CodeDEX 不允许public static 非final的成员
-  private static String strSegmentDef;
-
-  private String name;
-
-  private long callCount;
-
-  private long msgCount;
-
-  private long msLatency;
-
-  private long[] msLatencySegments;
-
-  private static final int MILLI_COUNT_IN_SECOND = 1000;
-
-  public PerfStatData(String name) {
-    msLatencySegments = new long[segmentDef.length + 1];
-    this.name = name;
-  }
-
-  public static void setSegmentDef(long[] segmentDef) {
-    PerfStatData.segmentDef = segmentDef;
-
-    StringBuilder sb = new StringBuilder();
-    long last = 0;
-    for (long def : segmentDef) {
-      sb.append(String.format("%-10s", String.format("[%d,%d)", last, def)));
-      last = def;
-    }
-    sb.append(String.format("%-10s", String.format("[%d,...)", last)));
-    strSegmentDef = sb.toString();
-  }
-
-  public static String getStrSegmentDef() {
-    return strSegmentDef;
-  }
-
-  public String getName() {
-    return name;
-  }
-
-  public long getCallCount() {
-    return callCount;
-  }
-
-  public long getMsgCount() {
-    return msgCount;
-  }
-
-  public long getMsLatency() {
-    return msLatency;
-  }
-
-  public long[] getMsLatencySegments() {
-    return msLatencySegments;
-  }
-
-  protected int findSegmentIdx(long latency) {
-    long lastDef = 0;
-    for (int idx = 0; idx < segmentDef.length; idx++) {
-      long def = segmentDef[idx];
-      if (latency >= lastDef && latency < def) {
-        return idx;
-      }
-
-      lastDef = def;
-    }
-
-    return segmentDef.length;
-  }
-
-  public void add(int count, long latency) {
-    this.callCount++;
-    this.msgCount += count;
-    this.msLatency += latency;
-
-    int segmentIdx = findSegmentIdx(latency);
-    this.msLatencySegments[segmentIdx]++;
-  }
-
-  public void add(PerfStatContext context) {
-    add(context.getMsgCount(), context.getLatency());
-  }
-
-  public void mergeFrom(PerfStatData other) {
-    callCount += other.callCount;
-    msgCount += other.msgCount;
-    msLatency += other.msLatency;
-    for (int idx = 0; idx < msLatencySegments.length; idx++) {
-      msLatencySegments[idx] += other.msLatencySegments[idx];
-    }
-  }
-
-  public PerfResult calc(long msNow) {
-    PerfResult perf = new PerfResult();
-    perf.setName("  all " + name + "  :");
-    perf.setCallCount(callCount);
-    perf.setMsgCount(msgCount);
-    perf.setAvgCallCount(
-        callCount * MILLI_COUNT_IN_SECOND / (msNow - processBegin > 0 ? msNow - processBegin : 1));
-    perf.setMsAvgLatency((callCount != 0) ? (double) msLatency / callCount : 0);
-    perf.setMsLatencySegments(msLatencySegments);
-    return perf;
-  }
-
-  public PerfResult calc(PerfStatData lastCycle, long msCycle) {
-    PerfResult perf = new PerfResult();
-
-    long diffCount = callCount - lastCycle.callCount;
-    perf.setName("  cycle " + name + ":");
-    perf.setCallCount(diffCount);
-    perf.setMsgCount(msgCount - lastCycle.msgCount);
-    perf.setAvgCallCount(diffCount * MILLI_COUNT_IN_SECOND / msCycle);
-    perf.setMsAvgLatency((diffCount != 0) ? (double) (msLatency - lastCycle.msLatency) / diffCount : 0);
-
-    long[] clone = Arrays.copyOf(msLatencySegments, msLatencySegments.length);
-    long[] lastCycleSegments = lastCycle.getMsLatencySegments();
-    for (int idx = 0; idx < clone.length; idx++) {
-      clone[idx] -= lastCycleSegments[idx];
-    }
-    perf.setMsLatencySegments(clone);
-    return perf;
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatImpl.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatImpl.java
deleted file mode 100644
index 1ba26b1..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatImpl.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * PerfStatImpl
- *
- *
- */
-public class PerfStatImpl implements PerfStat {
-  // 接口或是场景名称
-  private String name;
-
-  private List<PerfStatData> dataList = new ArrayList<>();
-
-  public PerfStatImpl(String name) {
-    this.name = name;
-  }
-
-  public PerfStatImpl(String name, PerfStatData data) {
-    this.name = name;
-    addPerfStatData(data);
-  }
-
-  public void addPerfStatData(PerfStatData data) {
-    dataList.add(data);
-  }
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  @Override
-  public List<PerfStatData> getPerfStatDataList() {
-    return dataList;
-  }
-
-  @Override
-  public void mergeFrom(PerfStat otherPerfStat) {
-    name = otherPerfStat.getName();
-    List<PerfStatData> otherDataList = otherPerfStat.getPerfStatDataList();
-    if (dataList.isEmpty()) {
-      otherDataList.forEach(otherData -> dataList.add(new PerfStatData(otherData.getName())));
-    }
-
-    for (int idx = 0; idx < otherDataList.size(); idx++) {
-      dataList.get(idx).mergeFrom(otherDataList.get(idx));
-    }
-  }
-
-  @Override
-  public void calc(long msNow, List<PerfResult> perfResultList) {
-    for (PerfStatData data : dataList) {
-      perfResultList.add(data.calc(msNow));
-    }
-  }
-
-  @Override
-  public void calc(PerfStat lastCycle, long msCycle, List<PerfResult> perfResultList) {
-    if (lastCycle == null) {
-      return;
-    }
-
-    List<PerfStatData> lastCycleDataList = lastCycle.getPerfStatDataList();
-    for (int idx = 0; idx < dataList.size(); idx++) {
-      PerfStatData data = dataList.get(idx);
-      PerfStatData lastCycleData = lastCycleDataList.get(idx);
-
-      perfResultList.add(data.calc(lastCycleData, msCycle));
-    }
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatMonitor.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatMonitor.java
deleted file mode 100644
index 33b575a..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatMonitor.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * PerfStatMonitor
- *
- *
- */
-public class PerfStatMonitor {
-  // 各线程内部的统计数据
-  private List<PerfStat> threadStats = new ArrayList<>();
-
-  private String name;
-
-  private int index;
-
-  // 每周期,对threadStats进行汇总,结果保存在这里
-  private PerfStat sumStat;
-
-  // 每周期计算产生的结果
-  private List<PerfResult> perfResultList;
-
-  public PerfStatMonitor(String name, int index) {
-    this.name = name;
-    this.index = index;
-  }
-
-  public String getName() {
-    return name;
-  }
-
-  public int getIndex() {
-    return index;
-  }
-
-  public void addThreadStat(PerfStat threadStat) {
-    threadStats.add(threadStat);
-  }
-
-  public void calcCycle(long msNow, long msCycle) {
-    PerfStat newSumStat = new PerfStatImpl(null);
-    for (PerfStat threadStat : threadStats) {
-      newSumStat.mergeFrom(threadStat);
-    }
-
-    perfResultList = new ArrayList<>();
-    newSumStat.calc(msNow, perfResultList);
-    newSumStat.calc(sumStat, msCycle, perfResultList);
-
-    sumStat = newSumStat;
-  }
-
-  public void format(StringBuilder sb, String fmt) {
-    for (PerfResult result : perfResultList) {
-      String msg = String.format(result.getName() + fmt,
-          result.getCallCount(),
-          result.getMsgCount(),
-          result.getAvgCallCount(),
-          result.getMsAvgLatency(),
-          result.segmentsToString("%-10d"));
-      sb.append(msg);
-    }
-  }
-
-  public PerfStat getPerfStat() {
-    return sumStat;
-  }
-
-  public List<PerfResult> getPerfResultList() {
-    return perfResultList;
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatMonitorMgr.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatMonitorMgr.java
deleted file mode 100644
index 2c88e79..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatMonitorMgr.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * PerfStatMonitorMgr
- *
- *
- */
-public class PerfStatMonitorMgr {
-  private static final Logger LOGGER = LoggerFactory.getLogger(PerfStatMonitorMgr.class);
-
-  private Map<String, PerfStatMonitor> monitorMap = new HashMap<>();
-
-  private List<PerfStatMonitor> monitorList = new ArrayList<>();
-
-  private String header = String.format(
-      "             call count       msg count        avg tps    avg latency(ms) |%s",
-      PerfStatData.getStrSegmentDef());
-
-  private String statFmt = "%-16d %-16d %-10d %-16.3f %s\n";
-
-  public void registerPerfStat(PerfStat perfStat, int index) {
-    String name = perfStat.getName();
-    PerfStatMonitor monitor = monitorMap.get(name);
-    if (monitor == null) {
-      monitor = new PerfStatMonitor(name, index);
-      monitorMap.put(name, monitor);
-
-      monitorList.add(monitor);
-
-      monitorList.sort(Comparator.comparingInt(PerfStatMonitor::getIndex));
-    }
-
-    monitor.addThreadStat(perfStat);
-  }
-
-  public void onCycle(long msNow, long msCycle) {
-    StringBuilder sb = new StringBuilder();
-    sb.append("Cycle stat output:\n" + header + "\n");
-    for (PerfStatMonitor monitor : monitorList) {
-      monitor.calcCycle(msNow, msCycle);
-
-      sb.append(" " + monitor.getName() + ":\n");
-      monitor.format(sb, statFmt);
-    }
-
-    LOGGER.info(sb.toString());
-  }
-
-  public Map<String, PerfStat> getMonitorPerfStat() {
-    return monitorList.stream().collect(Collectors.toMap(PerfStatMonitor::getName, PerfStatMonitor::getPerfStat));
-  }
-
-  public List<PerfStatMonitor> getMonitorList() {
-    return monitorList;
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatSuccFail.java b/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatSuccFail.java
deleted file mode 100644
index a5eb015..0000000
--- a/foundations/foundation-metrics/src/main/java/org/apache/servicecomb/foundation/metrics/performance/PerfStatSuccFail.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-/**
- * PerfStatSuccFail
- *
- *
- */
-public class PerfStatSuccFail extends PerfStatImpl {
-
-  private PerfStatData succ = new PerfStatData("succ");
-
-  private PerfStatData fail = new PerfStatData("fail");
-
-  public PerfStatSuccFail(String name) {
-    super(name);
-
-    addPerfStatData(succ);
-    addPerfStatData(fail);
-  }
-
-  public void add(boolean isSucc, int msgCount, long latency) {
-    PerfStatData statData = succ;
-    if (!isSucc) {
-      msgCount = 0;
-      statData = fail;
-    }
-    statData.add(msgCount, latency);
-  }
-
-  public void add(boolean isSucc, PerfStatContext context) {
-    add(isSucc, context.getMsgCount(), context.getLatency());
-  }
-}
diff --git a/foundations/foundation-metrics/src/main/resources/META-INF/spring/metrics.bean.xml b/foundations/foundation-metrics/src/main/resources/META-INF/spring/metrics.bean.xml
deleted file mode 100644
index c0c178f..0000000
--- a/foundations/foundation-metrics/src/main/resources/META-INF/spring/metrics.bean.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<beans xmlns="http://www.springframework.org/schema/beans"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="
-        http://www.springframework.org/schema/beans
-        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
-
-  <bean class="org.apache.servicecomb.foundation.metrics.MetricsConfig">
-  </bean>
-</beans>
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/TestMetrics.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/TestMetrics.java
deleted file mode 100644
index e4a23bc..0000000
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/TestMetrics.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics;
-
-import org.apache.servicecomb.foundation.metrics.performance.PerfStatSuccFail;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class TestMetrics {
-
-  @Test
-  public void testOnCycle() throws Exception {
-    PerfStatSuccFail oPerfStatSuccFail = Metrics.getOrCreateLocalPerfStat("test", 1);
-    Metrics.onCycle();
-    Assert.assertEquals(0, Metrics.getMsTick());
-    Assert.assertEquals(1, Metrics.getMonitorPerfStat().size());
-    Assert.assertEquals("test", oPerfStatSuccFail.getName());
-    Assert.assertEquals(2, oPerfStatSuccFail.getPerfStatDataList().size());
-  }
-}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/TestMetricsThread.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/TestMetricsThread.java
deleted file mode 100644
index e184fbe..0000000
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/TestMetricsThread.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestMetricsThread {
-
-  MetricsThread oMetricsThread = null;
-
-  @Before
-  public void setUp() throws Exception {
-    oMetricsThread = new MetricsThread();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    oMetricsThread.shutdown();
-    oMetricsThread = null;
-  }
-
-  @Test
-  public void test() {
-    oMetricsThread.start();
-    Assert.assertEquals(true, oMetricsThread.isRunning());
-    oMetricsThread.shutdown();
-    Assert.assertEquals(false, oMetricsThread.isRunning());
-  }
-}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfResult.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfResult.java
deleted file mode 100644
index 5c23ea5..0000000
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfResult.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestPerfResult {
-
-  PerfResult oPerfResult = null;
-
-  @Before
-  public void setUp() throws Exception {
-    oPerfResult = new PerfResult();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    oPerfResult = null;
-  }
-
-  @Test
-  public void testDefaultValues() {
-    Assert.assertNull(oPerfResult.getName());
-    Assert.assertEquals(0, oPerfResult.getCallCount());
-    Assert.assertEquals(0, oPerfResult.getMsAvgLatency(), 0);
-    Assert.assertEquals(0, oPerfResult.getAvgCallCount());
-    Assert.assertNull(oPerfResult.getMsLatencySegments());
-    Assert.assertEquals(0, oPerfResult.getMsgCount());
-  }
-
-  @Test
-  public void testIntializedValues() {
-    initializeObject(); //Initialize the object.
-    Assert.assertEquals("testPerf", oPerfResult.getName());
-    Assert.assertEquals(1, oPerfResult.getCallCount());
-    Assert.assertEquals(56, oPerfResult.getMsAvgLatency(), 0);
-    Assert.assertEquals(2, oPerfResult.getAvgCallCount());
-    Assert.assertEquals(2, oPerfResult.getMsLatencySegments().length);
-    Assert.assertEquals(10, oPerfResult.getMsgCount());
-    Assert.assertEquals("testStringtestString", oPerfResult.segmentsToString("testString"));
-  }
-
-  private void initializeObject() {
-    long[] oLongLatencySegment = new long[] {123, 154};
-    oPerfResult.setAvgCallCount(2);
-    oPerfResult.setCallCount(1);
-    oPerfResult.setMsAvgLatency(56);
-    oPerfResult.setMsgCount(10);
-    oPerfResult.setName("testPerf");
-    oPerfResult.setMsLatencySegments(oLongLatencySegment);
-  }
-}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatContext.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatContext.java
deleted file mode 100644
index 38fd83b..0000000
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatContext.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import mockit.Mock;
-import mockit.MockUp;
-
-public class TestPerfStatContext {
-
-  PerfStatContext oPerfStatContext = null;
-
-  @Before
-  public void setUp() throws Exception {
-    oPerfStatContext = new PerfStatContext();
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    oPerfStatContext = null;
-  }
-
-  @Test
-  public void testDefaultValues() {
-    Assert.assertEquals(0, oPerfStatContext.getMsgCount());
-    Assert.assertTrue(oPerfStatContext.getLatency() >= 0);
-  }
-
-  @Test
-  public void testIntializedValues() throws InterruptedException {
-    new MockUp<System>() {
-      int count = 0;
-
-      @Mock
-      public long currentTimeMillis() {
-        if (count == 0) {
-          count++;
-          return 10;
-        } else {
-          return 20;
-        }
-      }
-    };
-    PerfStatContext oPerfStatContext = new PerfStatContext();
-    oPerfStatContext.setMsgCount(10);
-    Assert.assertEquals(10, oPerfStatContext.getMsgCount());
-    Assert.assertEquals(10, oPerfStatContext.getLatency());
-  }
-}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatData.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatData.java
deleted file mode 100644
index 85bea31..0000000
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatData.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestPerfStatData {
-
-  PerfStatData oPerfStatData = null;
-
-  @Before
-  public void setUp() throws Exception {
-    oPerfStatData = new PerfStatData("testData");
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    oPerfStatData = null;
-  }
-
-  @Test
-  public void testDefaultValues() {
-    Assert.assertEquals("testData", oPerfStatData.getName());
-    Assert.assertEquals(0, oPerfStatData.getCallCount());
-    Assert.assertEquals(0, oPerfStatData.getMsLatency());
-    Assert.assertNotNull(oPerfStatData.getMsLatencySegments());
-    Assert.assertEquals(0, oPerfStatData.getMsgCount());
-    Assert.assertNotNull(PerfStatData.getStrSegmentDef());
-  }
-
-  @Test
-  public void testAdd() {
-    oPerfStatData.add(10, 100);
-    Assert.assertEquals(10, oPerfStatData.getMsgCount());
-    Assert.assertEquals(100, oPerfStatData.getMsLatency());
-
-    //Test Add function with PerfStatContext
-    PerfStatContext oPerfStatContext = new PerfStatContext();
-    oPerfStatContext.setMsgCount(30);
-    oPerfStatData.add(oPerfStatContext);
-    Assert.assertEquals(40, oPerfStatData.getMsgCount());
-  }
-
-  @Test
-  public void testMergeFrom() {
-    oPerfStatData.mergeFrom(new PerfStatData("anotherData"));
-    Assert.assertEquals(0, oPerfStatData.getMsgCount());
-    Assert.assertEquals(0, oPerfStatData.getCallCount());
-    Assert.assertEquals(0, oPerfStatData.getMsLatency());
-  }
-
-  @Test
-  public void testCalc() {
-    PerfResult oPerfResult = oPerfStatData.calc(System.currentTimeMillis() + 18989);
-    Assert.assertEquals("  all testData  :", oPerfResult.getName());
-    Assert.assertEquals(0, oPerfResult.getCallCount());
-    Assert.assertEquals(0, oPerfResult.getMsgCount());
-
-    //test calc with another PerfStatData
-    oPerfResult = oPerfStatData.calc(new PerfStatData("anotherData"), System.currentTimeMillis() + 18989);
-    Assert.assertEquals("  cycle testData:", oPerfResult.getName());
-    Assert.assertEquals(0, oPerfResult.getCallCount());
-    Assert.assertEquals(0, oPerfResult.getMsgCount());
-  }
-}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatImpl.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatImpl.java
deleted file mode 100644
index 322b4f5..0000000
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatImpl.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestPerfStatImpl {
-
-  PerfStatImpl oPerfStatImpl = null;
-
-  PerfStatSuccFail oPerfStatSuccFail = null;
-
-  @Before
-  public void setUp() throws Exception {
-    oPerfStatImpl = new PerfStatImpl("testData");
-    oPerfStatSuccFail = new PerfStatSuccFail("testMergeFrom");
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    oPerfStatImpl = null;
-  }
-
-  @Test
-  public void testMergeFrom() {
-    oPerfStatImpl.mergeFrom(oPerfStatSuccFail);
-    Assert.assertEquals("testMergeFrom", oPerfStatImpl.getName());
-    Assert.assertEquals(2, oPerfStatImpl.getPerfStatDataList().size());
-  }
-
-  @Test
-  public void testCalc() {
-    oPerfStatImpl = new PerfStatImpl("testConstructor", new PerfStatData("test"));
-    PerfResult oPerfResult = new PerfResult();
-    oPerfResult.setName("test");
-    List<PerfResult> oPerfResultList = new ArrayList<>();
-    oPerfResultList.add(oPerfResult);
-    oPerfStatImpl.calc(System.currentTimeMillis(), oPerfResultList);
-    Assert.assertEquals(2, oPerfResultList.size());
-
-    //Testing Calc with null PerfStat
-    oPerfStatImpl.calc(null, 20, oPerfResultList);
-    Assert.assertEquals(2, oPerfResultList.size()); //The list size does not increase
-
-    //Testing Calc with PerfStat
-    oPerfStatImpl.calc(oPerfStatSuccFail, 20, oPerfResultList);
-    Assert.assertEquals(3, oPerfResultList.size());
-  }
-}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatMonitor.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatMonitor.java
deleted file mode 100644
index 8148d99..0000000
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatMonitor.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestPerfStatMonitor {
-
-  PerfStatMonitor oPerfStatMonitor = null;
-
-  PerfStatSuccFail oPerfStatSuccFail = null;
-
-  @Before
-  public void setUp() throws Exception {
-    oPerfStatMonitor = new PerfStatMonitor("testMonitor", 0);
-    oPerfStatSuccFail = new PerfStatSuccFail("testMergeFrom");
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    oPerfStatMonitor = null;
-  }
-
-  @Test
-  public void testCalcCycle() {
-    Assert.assertEquals("testMonitor", oPerfStatMonitor.getName());
-    Assert.assertEquals(0, oPerfStatMonitor.getIndex());
-    oPerfStatMonitor.addThreadStat(oPerfStatSuccFail);
-    oPerfStatMonitor.calcCycle(System.currentTimeMillis(), 20);
-    Assert.assertEquals("testMergeFrom", oPerfStatMonitor.getPerfStat().getName());
-    Assert.assertEquals(2, oPerfStatMonitor.getPerfResultList().size());
-
-    //Test Format
-    StringBuilder oBuilder = new StringBuilder();
-    oPerfStatMonitor.format(oBuilder, "Test");
-    Assert.assertEquals("  all succ  :Test  all fail  :Test", oBuilder.toString());
-  }
-}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatMonitorMgr.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatMonitorMgr.java
deleted file mode 100644
index 6692e90..0000000
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatMonitorMgr.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import java.util.stream.Collectors;
-
-import org.hamcrest.Matchers;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestPerfStatMonitorMgr {
-
-  PerfStatMonitorMgr oPerfStatMonitorMgr = null;
-
-  PerfStatSuccFail oPerfStatSuccFail = null;
-
-  @Before
-  public void setUp() throws Exception {
-    oPerfStatMonitorMgr = new PerfStatMonitorMgr();
-    oPerfStatSuccFail = new PerfStatSuccFail("testMergeFrom");
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    oPerfStatMonitorMgr = null;
-    oPerfStatSuccFail = null;
-  }
-
-  @Test
-  public void testRegisterPerfStat() {
-    oPerfStatMonitorMgr.registerPerfStat(oPerfStatSuccFail, 0);
-    Assert.assertEquals(1, oPerfStatMonitorMgr.getMonitorList().size());
-  }
-
-  @Test
-  public void testOnCycle() {
-    oPerfStatMonitorMgr.registerPerfStat(oPerfStatSuccFail, 0);
-    oPerfStatMonitorMgr.onCycle(System.currentTimeMillis(), 10);
-    Assert.assertEquals(1, oPerfStatMonitorMgr.getMonitorPerfStat().size());
-  }
-
-  @Test
-  public void testSort() {
-    oPerfStatMonitorMgr.registerPerfStat(new PerfStatSuccFail("a"), -1);
-    oPerfStatMonitorMgr.registerPerfStat(new PerfStatSuccFail("b"), Integer.MAX_VALUE);
-
-    Assert.assertThat(
-        oPerfStatMonitorMgr.getMonitorList().stream().map(PerfStatMonitor::getName).collect(Collectors.toList()),
-        Matchers.contains("a", "b"));
-  }
-}
diff --git a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatSuccFail.java b/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatSuccFail.java
deleted file mode 100644
index 52bd759..0000000
--- a/foundations/foundation-metrics/src/test/java/org/apache/servicecomb/foundation/metrics/performance/TestPerfStatSuccFail.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.foundation.metrics.performance;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestPerfStatSuccFail {
-
-  PerfStatSuccFail oPerfStatSuccFail = null;
-
-  @Before
-  public void setUp() throws Exception {
-    oPerfStatSuccFail = new PerfStatSuccFail("testSuccFail");
-  }
-
-  @After
-  public void tearDown() throws Exception {
-    oPerfStatSuccFail = null;
-  }
-
-  @Test
-  public void testAdd() {
-    oPerfStatSuccFail.add(true, new PerfStatContext());
-    Assert.assertEquals(2, oPerfStatSuccFail.getPerfStatDataList().size());
-
-    //Test org.apache.servicecomb.foundation.metrics.performance.PerfStatSuccFail.add(boolean, int, long)
-    oPerfStatSuccFail.add(false, 10, 100);
-    Assert.assertEquals(2, oPerfStatSuccFail.getPerfStatDataList().size());
-  }
-}

-- 
To stop receiving notification emails like this one, please contact
wujimin@apache.org.