You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2019/08/15 09:31:45 UTC

[servicecomb-pack] branch SCB-1440 created (now 960cec4)

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

ningjiang pushed a change to branch SCB-1440
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git.


      at 960cec4  SCB-1440 Removed the dependencies of Kamon

This branch includes the following new commits:

     new 960cec4  SCB-1440 Removed the dependencies of Kamon

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[servicecomb-pack] 01/01: SCB-1440 Removed the dependencies of Kamon

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch SCB-1440
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit 960cec45188ae6c354558d0dc66ea70770f0e01c
Author: Willem Jiang <wi...@gmail.com>
AuthorDate: Thu Aug 15 17:30:43 2019 +0800

    SCB-1440 Removed the dependencies of Kamon
---
 alpha/alpha-core/pom.xml                           |  5 --
 .../servicecomb/pack/alpha/core/EventScanner.java  | 13 +---
 .../pack/alpha/core/TxConsistentService.java       |  5 --
 alpha/alpha-server/pom.xml                         | 61 +-----------------
 .../pack/alpha/server/AlphaApplication.java        |  4 +-
 .../pack/alpha/server/AlphaEventController.java    |  7 --
 .../pack/alpha/server/GrpcTxEventEndpointImpl.java |  6 --
 .../pack/alpha/server/SpringCommandRepository.java |  7 --
 .../pack/alpha/server/SpringTxEventRepository.java | 11 ----
 .../alpha/server/SpringTxTimeoutRepository.java    |  7 --
 .../provider/jdbc/SpringMasterLockRepository.java  |  7 --
 .../console/saga/SagaTransactionsController.java   | 10 +--
 .../alpha/server/fsm/FsmSagaDataController.java    |  5 --
 .../alpha/server/fsm/GrpcSagaEventService.java     |  4 --
 .../alpha/server/tcc/AlphaTccEventController.java  |  3 -
 distribution/src/release/LICENSE                   |  4 --
 pom.xml                                            | 75 ----------------------
 17 files changed, 4 insertions(+), 230 deletions(-)

diff --git a/alpha/alpha-core/pom.xml b/alpha/alpha-core/pom.xml
index ec1829d..79a751e 100644
--- a/alpha/alpha-core/pom.xml
+++ b/alpha/alpha-core/pom.xml
@@ -42,11 +42,6 @@
       <groupId>javax.persistence</groupId>
       <artifactId>javax.persistence-api</artifactId>
     </dependency>
-    <!-- Add the kamon annotation dependencies for tagging -->
-    <dependency>
-      <groupId>io.kamon</groupId>
-      <artifactId>kamon-annotation_2.12</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-slf4j-impl</artifactId>
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/EventScanner.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/EventScanner.java
index 2dd7af6..7c63ef0 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/EventScanner.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/EventScanner.java
@@ -27,13 +27,9 @@ import java.lang.invoke.MethodHandles;
 import java.util.List;
 import java.util.concurrent.ScheduledExecutorService;
 
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Trace;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@EnableKamon
 public class EventScanner implements Runnable {
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
@@ -102,7 +98,6 @@ public class EventScanner implements Runnable {
         MILLISECONDS);
   }
 
-  @Trace("findTimeoutEvents")
   private void findTimeoutEvents() {
     eventRepository.findTimeoutEvents()
         .forEach(event -> {
@@ -115,7 +110,6 @@ public class EventScanner implements Runnable {
     timeoutRepository.markTimeoutAsDone();
   }
 
-  @Trace("saveUncompensatedEventsToCommands")
   private void saveUncompensatedEventsToCommands() {
     eventRepository.findFirstUncompensatedEventByIdGreaterThan(nextEndedEventId, TxEndedEvent.name())
         .forEach(event -> {
@@ -125,7 +119,6 @@ public class EventScanner implements Runnable {
         });
   }
 
-  @Trace("updateCompensationStatus")
   private void updateCompensatedCommands() {
     eventRepository.findFirstCompensatedEventByIdGreaterThan(nextCompensatedEventId)
         .ifPresent(event -> {
@@ -135,7 +128,6 @@ public class EventScanner implements Runnable {
         });
   }
 
-  @Trace("deleteDuplicateSagaEndedEvents")
   private void deleteDuplicateSagaEndedEvents() {
     try {
       eventRepository.deleteDuplicateEvents(SagaEndedEvent.name());
@@ -153,7 +145,6 @@ public class EventScanner implements Runnable {
     markSagaEnded(event);
   }
 
-  @Trace("abortTimeoutEvents")
   private void abortTimeoutEvents() {
     timeoutRepository.findFirstTimeout().forEach(timeout -> {
       LOG.info("Found timeout event {} to abort", timeout);
@@ -167,7 +158,6 @@ public class EventScanner implements Runnable {
     });
   }
 
-  @Trace("updateTransactionStatus")
   private void updateTransactionStatus() {
     eventRepository.findFirstAbortedGlobalTransaction().ifPresent(this::markGlobalTxEndWithEvents);
   }
@@ -210,8 +200,7 @@ public class EventScanner implements Runnable {
         "",
         EMPTY_PAYLOAD);
   }
-
-  @Trace("compensate")
+  
   private void compensate() {
     commandRepository.findFirstCommandToCompensate()
         .forEach(command -> {
diff --git a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/TxConsistentService.java b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/TxConsistentService.java
index 52357ec..ac7d255 100644
--- a/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/TxConsistentService.java
+++ b/alpha/alpha-core/src/main/java/org/apache/servicecomb/pack/alpha/core/TxConsistentService.java
@@ -28,10 +28,7 @@ import java.util.List;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Segment;
 
-@EnableKamon
 public class TxConsistentService {
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
@@ -42,7 +39,6 @@ public class TxConsistentService {
   public TxConsistentService(TxEventRepository eventRepository) {
     this.eventRepository = eventRepository;
   }
-  @Segment(name = "handleTxEvent", category = "application", library = "kamon")
   public boolean handle(TxEvent event) {
     if (types.contains(event.type()) && isGlobalTxAborted(event)) {
       LOG.info("Transaction event {} rejected, because its parent with globalTxId {} was already aborted",
@@ -55,7 +51,6 @@ public class TxConsistentService {
     return true;
   }
 
-  @Segment(name = "isGlobalTxAborted", category = "application", library = "kamon")
   private boolean isGlobalTxAborted(TxEvent event) {
     return !eventRepository.findTransactions(event.globalTxId(), TxAbortedEvent.name()).isEmpty();
   }
diff --git a/alpha/alpha-server/pom.xml b/alpha/alpha-server/pom.xml
index 5502cc5..091a0b7 100644
--- a/alpha/alpha-server/pom.xml
+++ b/alpha/alpha-server/pom.xml
@@ -164,21 +164,7 @@
       <groupId>io.netty</groupId>
       <artifactId>netty-tcnative-boringssl-static</artifactId>
     </dependency>
-
-    <!-- for the performance monitor -->
-    <dependency>
-      <groupId>io.kamon</groupId>
-      <artifactId>kamon-core_2.12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.kamon</groupId>
-      <artifactId>kamon-annotation_2.12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-actor_2.12</artifactId>
-    </dependency>
-
+    
     <!-- For testing the artifacts scope are test-->
     <dependency>
       <groupId>org.springframework.boot</groupId>
@@ -300,50 +286,5 @@
         </dependency>
       </dependencies>
     </profile>
-    <profile>
-      <id>perf</id>
-      <dependencies>
-        <dependency>
-          <groupId>io.kamon</groupId>
-          <artifactId>kamon-log-reporter_2.12</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>io.kamon</groupId>
-          <artifactId>kamon-statsd_2.12</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.aspectj</groupId>
-          <artifactId>aspectjweaver</artifactId>
-        </dependency>
-      </dependencies>
-      <!-- copy the aspectj file -->
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-dependency-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>aspectj.copy</id>
-                <phase>process-test-resources</phase>
-                <goals>
-                  <goal>copy</goal>
-                </goals>
-                <configuration>
-                  <artifactItems>
-                    <artifactItem>
-                      <groupId>org.aspectj</groupId>
-                      <artifactId>aspectjweaver</artifactId>
-                    </artifactItem>
-                  </artifactItems>
-                  <outputDirectory>${project.build.directory}/saga</outputDirectory>
-                  <stripVersion>true</stripVersion>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
   </profiles>
 </project>
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaApplication.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaApplication.java
index ba8d1fc..0caf059 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaApplication.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaApplication.java
@@ -19,19 +19,17 @@ package org.apache.servicecomb.pack.alpha.server;
 
 import javax.annotation.PreDestroy;
 
-import kamon.Kamon;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
 public class AlphaApplication {
   public static void main(String[] args) {
-    Kamon.start();
     SpringApplication.run(AlphaApplication.class, args);
   }
 
   @PreDestroy
   void shutdown() {
-    Kamon.shutdown();
+    // do nothing here
   }
 }
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaEventController.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaEventController.java
index b7a344a..2d06ca0 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaEventController.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/AlphaEventController.java
@@ -25,7 +25,6 @@ import java.util.List;
 import org.apache.servicecomb.pack.alpha.core.TxEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Profile;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
@@ -36,10 +35,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Trace;
-
-@EnableKamon
 @Controller
 @RequestMapping("/saga")
 @Profile("test")
@@ -53,7 +48,6 @@ class AlphaEventController {
     this.eventRepository = eventRepository;
   }
 
-  @Trace("getEvents")
   @GetMapping(value = "/events")
   ResponseEntity<Collection<TxEventVo>> events() {
     LOG.info("Get the events request");
@@ -66,7 +60,6 @@ class AlphaEventController {
     return ResponseEntity.ok(eventVos);
   }
 
-  @Trace("deleteEvents")
   @DeleteMapping("/events")
   ResponseEntity<String> clear() {
     eventRepository.deleteAll();
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/GrpcTxEventEndpointImpl.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/GrpcTxEventEndpointImpl.java
index a229892..73f4419 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/GrpcTxEventEndpointImpl.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/GrpcTxEventEndpointImpl.java
@@ -26,8 +26,6 @@ import java.util.Date;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Trace;
 import org.apache.servicecomb.pack.alpha.core.OmegaCallback;
 import org.apache.servicecomb.pack.alpha.core.TxConsistentService;
 import org.apache.servicecomb.pack.alpha.core.TxEvent;
@@ -39,7 +37,6 @@ import org.apache.servicecomb.pack.contract.grpc.TxEventServiceGrpc.TxEventServi
 
 import io.grpc.stub.StreamObserver;
 
-@EnableKamon
 class GrpcTxEventEndpointImpl extends TxEventServiceImplBase {
 
   private static final GrpcAck ALLOW = GrpcAck.newBuilder().setAborted(false).build();
@@ -56,7 +53,6 @@ class GrpcTxEventEndpointImpl extends TxEventServiceImplBase {
   }
 
   @Override
-  @Trace("alphaConnected")
   public void onConnected(GrpcServiceConfig request, StreamObserver<GrpcCompensateCommand> responseObserver) {
     omegaCallbacks
         .computeIfAbsent(request.getServiceName(), key -> new ConcurrentHashMap<>())
@@ -65,7 +61,6 @@ class GrpcTxEventEndpointImpl extends TxEventServiceImplBase {
 
   // TODO: 2018/1/5 connect is async and disconnect is sync, meaning callback may not be registered on disconnected
   @Override
-  @Trace("alphaDisconnected")
   public void onDisconnected(GrpcServiceConfig request, StreamObserver<GrpcAck> responseObserver) {
     OmegaCallback callback = omegaCallbacks.getOrDefault(request.getServiceName(), emptyMap())
         .remove(request.getInstanceId());
@@ -79,7 +74,6 @@ class GrpcTxEventEndpointImpl extends TxEventServiceImplBase {
   }
 
   @Override
-  @Trace("onTransactionEvent")
   public void onTxEvent(GrpcTxEvent message, StreamObserver<GrpcAck> responseObserver) {
     boolean ok = txConsistentService.handle(new TxEvent(
         message.getServiceName(),
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringCommandRepository.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringCommandRepository.java
index e9755b3..649ebb0 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringCommandRepository.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringCommandRepository.java
@@ -34,10 +34,7 @@ import org.apache.servicecomb.pack.alpha.core.TxEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Segment;
 
-@EnableKamon
 public class SpringCommandRepository implements CommandRepository {
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
@@ -50,7 +47,6 @@ public class SpringCommandRepository implements CommandRepository {
   }
 
   @Override
-  @Segment(name = "saveCompensationCommands", category = "application", library = "kamon")
   public void saveCompensationCommands(String globalTxId) {
     List<TxEvent> events = eventRepository
         .findStartedEventsWithMatchingEndedButNotCompensatedEvents(globalTxId);
@@ -73,20 +69,17 @@ public class SpringCommandRepository implements CommandRepository {
   }
 
   @Override
-  @Segment(name = "markCommandAsDone", category = "application", library = "kamon")
   public void markCommandAsDone(String globalTxId, String localTxId) {
     commandRepository.updateStatusByGlobalTxIdAndLocalTxId(DONE.name(), globalTxId, localTxId);
   }
 
   @Override
-  @Segment(name = "findUncompletedCommands", category = "application", library = "kamon")
   public List<Command> findUncompletedCommands(String globalTxId) {
     return commandRepository.findByGlobalTxIdAndStatus(globalTxId, NEW.name());
   }
 
   @Transactional
   @Override
-  @Segment(name = "findFirstCommandToCompensate", category = "application", library = "kamon")
   public List<Command> findFirstCommandToCompensate() {
     List<Command> commands = commandRepository
         .findFirstGroupByGlobalTxIdWithoutPendingOrderByIdDesc();
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringTxEventRepository.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringTxEventRepository.java
index bb8d4fb..f35c386 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringTxEventRepository.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringTxEventRepository.java
@@ -26,10 +26,6 @@ import org.apache.servicecomb.pack.alpha.core.TxEvent;
 import org.apache.servicecomb.pack.alpha.core.TxEventRepository;
 import org.springframework.data.domain.PageRequest;
 
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Segment;
-
-@EnableKamon
 class SpringTxEventRepository implements TxEventRepository {
   private static final PageRequest SINGLE_TX_EVENT_REQUEST = PageRequest.of(0, 1);
   private final TxEventEnvelopeRepository eventRepo;
@@ -39,43 +35,36 @@ class SpringTxEventRepository implements TxEventRepository {
   }
 
   @Override
-  @Segment(name = "TxEventSave", category = "application", library = "kamon")
   public void save(TxEvent event) {
     eventRepo.save(event);
   }
 
   @Override
-  @Segment(name = "findFirstAbortedGloableTransaction", category = "application", library = "kamon")
   public Optional<List<TxEvent>> findFirstAbortedGlobalTransaction() {
     return eventRepo.findFirstAbortedGlobalTxByType();
   }
 
   @Override
-  @Segment(name = "findTimeoutEvents", category = "application", library = "kamon")
   public List<TxEvent> findTimeoutEvents() {
     return eventRepo.findTimeoutEvents(SINGLE_TX_EVENT_REQUEST);
   }
 
   @Override
-  @Segment(name = "findTxStartedEvent", category = "application", library = "kamon")
   public Optional<TxEvent> findTxStartedEvent(String globalTxId, String localTxId) {
     return eventRepo.findFirstStartedEventByGlobalTxIdAndLocalTxId(globalTxId, localTxId);
   }
 
   @Override
-  @Segment(name = "findTransactions", category = "application", library = "kamon")
   public List<TxEvent> findTransactions(String globalTxId, String type) {
     return eventRepo.findByEventGlobalTxIdAndEventType(globalTxId, type);
   }
 
   @Override
-  @Segment(name = "findFirstUncompensatedEventByIdGreaterThan", category = "application", library = "kamon")
   public List<TxEvent> findFirstUncompensatedEventByIdGreaterThan(long id, String type) {
     return eventRepo.findFirstByTypeAndSurrogateIdGreaterThan(type, id, SINGLE_TX_EVENT_REQUEST);
   }
 
   @Override
-  @Segment(name = "findFirstCompensatedEventByIdGreaterThan", category = "application", library = "kamon")
   public Optional<TxEvent> findFirstCompensatedEventByIdGreaterThan(long id) {
     return eventRepo.findFirstByTypeAndSurrogateIdGreaterThan(TxCompensatedEvent.name(), id);
   }
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringTxTimeoutRepository.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringTxTimeoutRepository.java
index 1487da7..5569d36 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringTxTimeoutRepository.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/SpringTxTimeoutRepository.java
@@ -30,10 +30,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.data.domain.PageRequest;
 
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Segment;
-
-@EnableKamon
 public class SpringTxTimeoutRepository implements TxTimeoutRepository {
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
@@ -44,7 +40,6 @@ public class SpringTxTimeoutRepository implements TxTimeoutRepository {
   }
 
   @Override
-  @Segment(name = "TxTimeoutEventSave", category = "application", library = "kamon")
   public void save(TxTimeout timeout) {
     try {
       timeoutRepo.save(timeout);
@@ -54,14 +49,12 @@ public class SpringTxTimeoutRepository implements TxTimeoutRepository {
   }
 
   @Override
-  @Segment(name = "markTimeoutAsDone", category = "application", library = "kamon")
   public void markTimeoutAsDone() {
     timeoutRepo.updateStatusOfFinishedTx();
   }
 
   @Transactional
   @Override
-  @Segment(name = "findFirstTimeout", category = "application", library = "kamon")
   public List<TxTimeout> findFirstTimeout() {
     List<TxTimeout> timeoutEvents = timeoutRepo.findFirstTimeoutTxOrderByExpireTimeAsc(PageRequest.of(0, 1));
     timeoutEvents.forEach(event -> timeoutRepo
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/cluster/master/provider/jdbc/SpringMasterLockRepository.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/cluster/master/provider/jdbc/SpringMasterLockRepository.java
index 4d15a21..c160d83 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/cluster/master/provider/jdbc/SpringMasterLockRepository.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/cluster/master/provider/jdbc/SpringMasterLockRepository.java
@@ -17,9 +17,6 @@
 
 package org.apache.servicecomb.pack.alpha.server.cluster.master.provider.jdbc;
 
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Segment;
-
 import org.apache.servicecomb.pack.alpha.server.cluster.master.provider.jdbc.jpa.MasterLock;
 import org.apache.servicecomb.pack.alpha.server.cluster.master.provider.jdbc.jpa.MasterLockRepository;
 import org.slf4j.Logger;
@@ -30,7 +27,6 @@ import java.lang.invoke.MethodHandles;
 import java.util.Date;
 import java.util.Optional;
 
-@EnableKamon
 @ConditionalOnProperty(name = "alpha.cluster.master.enabled", havingValue = "true")
 public class SpringMasterLockRepository implements MasterLockRepository {
 
@@ -43,7 +39,6 @@ public class SpringMasterLockRepository implements MasterLockRepository {
   }
 
   @Override
-  @Segment(name = "MasterLockInit", category = "application", library = "kamon")
   public boolean initLock(MasterLock masterLock) {
     try {
       Optional<MasterLock> lock = this.findMasterLockByServiceName(masterLock.getServiceName());
@@ -60,7 +55,6 @@ public class SpringMasterLockRepository implements MasterLockRepository {
   }
 
   @Override
-  @Segment(name = "MasterUpdateLock", category = "application", library = "kamon")
   public boolean updateLock(MasterLock masterLock) {
     try {
       int size = electionRepo.updateLock(
@@ -76,7 +70,6 @@ public class SpringMasterLockRepository implements MasterLockRepository {
   }
 
   @Override
-  @Segment(name = "MasterUnLock", category = "application", library = "kamon")
   public void unLock(String serviceName, Date expireTime) {
     electionRepo.unLock(serviceName, expireTime);
   }
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/console/saga/SagaTransactionsController.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/console/saga/SagaTransactionsController.java
index b8baf54..2a04542 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/console/saga/SagaTransactionsController.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/console/saga/SagaTransactionsController.java
@@ -19,9 +19,6 @@ package org.apache.servicecomb.pack.alpha.server.console.saga;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Trace;
-
 import org.apache.servicecomb.pack.alpha.core.TxEvent;
 import org.apache.servicecomb.pack.alpha.server.TxEventEnvelopeRepository;
 import org.apache.servicecomb.pack.alpha.server.console.saga.model.Stats;
@@ -37,7 +34,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import java.lang.invoke.MethodHandles;
 import java.util.*;
 
-@EnableKamon
 @Controller
 @RequestMapping("/saga")
 
@@ -51,7 +47,6 @@ public class SagaTransactionsController {
     this.eventRepository = eventRepository;
   }
 
-  @Trace("getStats")
   @GetMapping(value = "/stats")
   ResponseEntity<Stats> getStats() {
         /*
@@ -81,7 +76,6 @@ public class SagaTransactionsController {
   }
 
 
-  @Trace("getRecentTransactions")
   @GetMapping(value = "/recent")
   ResponseEntity<Collection<SagaTransactionsController.TxEventVo>> recentTransactions(
       @RequestParam(name = "status") String status, @RequestParam(name = "count") int count) {
@@ -136,7 +130,6 @@ public class SagaTransactionsController {
     return ResponseEntity.ok(eventVos);
   }
 
-  @Trace("getTransactions")
   @GetMapping(value = "/transactions")
   ResponseEntity<Collection<SagaTransactionsController.TxEventVo>> getTransactions(
       @RequestParam(name = "status") String status) {
@@ -200,8 +193,7 @@ public class SagaTransactionsController {
 
     return ResponseEntity.ok(eventVos);
   }
-
-  @Trace("findTransactions")
+  
   @GetMapping(value = "/findTransactions")
   ResponseEntity<Collection<SagaTransactionsController.TxEventVo>> findTransactions(
       @RequestParam(required = false, name = "globalTxID") Object globalTxID,
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java
index e369ffc..bd4d07d 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/FsmSagaDataController.java
@@ -26,8 +26,6 @@ import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import kamon.annotation.EnableKamon;
-import kamon.annotation.Trace;
 import org.apache.servicecomb.pack.alpha.core.TxEvent;
 import org.apache.servicecomb.pack.alpha.fsm.model.SagaData;
 import org.apache.servicecomb.pack.alpha.fsm.spring.integration.akka.SagaDataExtension;
@@ -42,7 +40,6 @@ import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
-@EnableKamon
 @Controller
 @RequestMapping("/test/saga/akka")
 @Profile("test")
@@ -54,7 +51,6 @@ class FsmSagaDataController {
   @Autowired
   ActorSystem system;
 
-  @Trace("getEvents")
   @GetMapping(value = "/events/last")
   ResponseEntity<Collection<Map>> events() {
     LOG.info("Get the events request");
@@ -72,7 +68,6 @@ class FsmSagaDataController {
     return ResponseEntity.ok(eventVos);
   }
 
-  @Trace("deleteEvents")
   @DeleteMapping("/events")
   ResponseEntity<String> clear() {
     return ResponseEntity.ok("All events deleted");
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
index cedfc30..f711670 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/fsm/GrpcSagaEventService.java
@@ -24,7 +24,6 @@ import java.lang.invoke.MethodHandles;
 import java.util.Date;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
-import kamon.annotation.Trace;
 import org.apache.servicecomb.pack.alpha.core.OmegaCallback;
 import org.apache.servicecomb.pack.alpha.core.fsm.event.base.BaseEvent;
 import org.apache.servicecomb.pack.alpha.core.fsm.channel.ActorEventChannel;
@@ -52,7 +51,6 @@ public class GrpcSagaEventService extends TxEventServiceImplBase {
   }
 
   @Override
-  @Trace("alphaConnected")
   public void onConnected(
       GrpcServiceConfig request, StreamObserver<GrpcCompensateCommand> responseObserver) {
     omegaCallbacks
@@ -62,7 +60,6 @@ public class GrpcSagaEventService extends TxEventServiceImplBase {
 
   // TODO: 2018/1/5 connect is async and disconnect is sync, meaning callback may not be registered on disconnected
   @Override
-  @Trace("alphaDisconnected")
   public void onDisconnected(GrpcServiceConfig request, StreamObserver<GrpcAck> responseObserver) {
     OmegaCallback callback = omegaCallbacks.getOrDefault(request.getServiceName(), emptyMap())
         .remove(request.getInstanceId());
@@ -76,7 +73,6 @@ public class GrpcSagaEventService extends TxEventServiceImplBase {
   }
 
   @Override
-  @Trace("onTransactionEvent")
   public void onTxEvent(GrpcTxEvent message, StreamObserver<GrpcAck> responseObserver) {
     if(LOG.isDebugEnabled()){
       LOG.debug("onText {}",message);
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/tcc/AlphaTccEventController.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/tcc/AlphaTccEventController.java
index 0b0d5f9..5f0929b 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/tcc/AlphaTccEventController.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/pack/alpha/server/tcc/AlphaTccEventController.java
@@ -36,9 +36,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 
-import kamon.annotation.EnableKamon;
-
-@EnableKamon
 @Controller
 @RequestMapping("/tcc")
 @Profile("test")
diff --git a/distribution/src/release/LICENSE b/distribution/src/release/LICENSE
index 896a00e..11b5034 100644
--- a/distribution/src/release/LICENSE
+++ b/distribution/src/release/LICENSE
@@ -277,7 +277,6 @@ For details, see their respective project links.
 * Apache Log4j API (org.apache.logging.log4j:log4j-api:2.7 - http://logging.apache.org/log4j/2.x/log4j-api/)
 * Apache Log4j to SLF4J Adapter (org.apache.logging.log4j:log4j-to-slf4j:2.11.1 - https://logging.apache.org/log4j/2.x/log4j-to-slf4j/)
 * com.google.api.grpc:proto-google-common-protos (com.google.api.grpc:proto-google-common-protos:1.0.0 - https://github.com/googleapis/googleapis)
-* core (io.kamon:kamon-core_2.12:0.6.7 - http://kamon.io)
 * dubbo-all (com.alibaba:dubbo:2.6.4 - https://github.com/apache/incubator-dubbo/dubbo)
 * error-prone annotations (com.google.errorprone:error_prone_annotations:2.1.2 - http://nexus.sonatype.org/oss-repository-hosting.html/error_prone_parent/error_prone_annotations)
 * Feign Core (io.github.openfeign:feign-core:9.5.1 - https://github.com/openfeign/feign/feign-core)
@@ -291,7 +290,6 @@ For details, see their respective project links.
 * io.grpc:grpc-protobuf-lite (io.grpc:grpc-protobuf-lite:1.14.0 - https://github.com/grpc/grpc-java)
 * io.grpc:grpc-stub (io.grpc:grpc-stub:1.14.0 - https://github.com/grpc/grpc-java)
 * Javassist (org.javassist:javassist:3.20.0-GA - http://www.javassist.org/)
-* kamon-annotation (io.kamon:kamon-annotation_2.12:0.6.7 - http://kamon.io)
 * Netty/Buffer (io.netty:netty-buffer:4.1.24.Final - http://netty.io/netty-buffer/)
 * Netty/Codec/HTTP (io.netty:netty-codec-http:4.1.24.Final - http://netty.io/netty-codec-http/)
 * Netty/Codec/HTTP2 (io.netty:netty-codec-http2:4.1.24.Final - http://netty.io/netty-codec-http2/)
@@ -495,7 +493,6 @@ For details, see their respective project links.
 * Commons Lang (commons-lang:commons-lang:2.6 - http://commons.apache.org/lang/)
 * compiler (com.github.spullara.mustache.java:compiler:0.9.3 - http://github.com/spullara/mustache.java)
 * config (com.typesafe:config:1.3.3 - https://github.com/lightbend/config)
-* core (io.kamon:kamon-core_2.12:0.6.7 - http://kamon.io)
 * core (org.elasticsearch:elasticsearch-core:6.4.3 - https://github.com/elastic/elasticsearch)
 * Curator Client (org.apache.curator:curator-client:4.0.1 - http://curator.apache.org/curator-client)
 * Curator Framework (org.apache.curator:curator-framework:4.0.1 - http://curator.apache.org/curator-framework)
@@ -536,7 +533,6 @@ For details, see their respective project links.
 * JSONassert (org.skyscreamer:jsonassert:1.5.0 - https://github.com/skyscreamer/JSONassert)
 * JSON library from Android SDK (com.vaadin.external.google:android-json:0.0.20131108.vaadin1 - http://developer.android.com/sdk)
 * JSON Small and Fast Parser (net.minidev:json-smart:2.3 - http://www.minidev.net/)
-* kamon-annotation (io.kamon:kamon-annotation_2.12:0.6.7 - http://kamon.io)
 * lang-mustache (org.elasticsearch.plugin:lang-mustache-client:6.4.3 - https://github.com/elastic/elasticsearch)
 * Lettuce (io.lettuce:lettuce-core:5.1.7.RELEASE - http://github.com/lettuce-io/lettuce-core)
 * Lucene Common Analyzers (org.apache.lucene:lucene-analyzers-common:7.4.0 - http://lucene.apache.org/lucene-parent/lucene-analyzers-common)
diff --git a/pom.xml b/pom.xml
index 461924d..68c1c03 100644
--- a/pom.xml
+++ b/pom.xml
@@ -421,81 +421,6 @@
         <version>${log4j.version}</version>
       </dependency>
       <dependency>
-        <groupId>io.kamon</groupId>
-        <artifactId>kamon-core_2.12</artifactId>
-        <version>${kamon.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.scala-lang</groupId>
-            <artifactId>scala-library</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>io.kamon</groupId>
-        <artifactId>kamon-annotation_2.12</artifactId>
-        <version>${kamon.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.scala-lang</groupId>
-            <artifactId>scala-library</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>io.kamon</groupId>
-        <artifactId>kamon-log-reporter_2.12</artifactId>
-        <version>${kamon.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.scala-lang</groupId>
-            <artifactId>scala-library</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>io.kamon</groupId>
-        <artifactId>kamon-statsd_2.12</artifactId>
-        <version>${kamon.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.scala-lang</groupId>
-            <artifactId>scala-library</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>io.kamon</groupId>
-        <artifactId>kamon-autoweave_2.12</artifactId>
-        <version>${kamon.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.scala-lang</groupId>
-            <artifactId>scala-library</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
         <groupId>org.aspectj</groupId>
         <artifactId>aspectjweaver</artifactId>
         <version>1.8.10</version>