You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by pe...@apache.org on 2018/06/22 15:09:31 UTC

[incubator-skywalking] branch master updated: Support multiple service names in segment duration table (#1380)

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

pengys pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 48dacdb  Support multiple service names in segment duration table (#1380)
48dacdb is described below

commit 48dacdb3f8219dbc3751f2c24e7a45c412490fae
Author: 林嘉琦 Lin Jiaqi <li...@dangdang.com>
AuthorDate: Fri Jun 22 23:09:25 2018 +0800

    Support multiple service names in segment duration table (#1380)
    
    * support shardingjdbc database storage feature
    
    * dependency and version should be defined in collector root pom.xml
    
    * update the markdown file
    
    * fix errors
    
    * fix checkstyle errors
    
    * add the Logger modifier "static" in pr #1347
    
    * fix the issue #1376
---
 .../dao/SegmentDurationShardingjdbcPersistenceDAO.java        |  6 +++++-
 .../shardingjdbc/dao/ui/SegmentDurationShardingjdbcUIDAO.java | 11 +++++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/SegmentDurationShardingjdbcPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/SegmentDurationShardingjdbcPersistenceDAO.java
index e7a8956..b8d3362 100644
--- a/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/SegmentDurationShardingjdbcPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/SegmentDurationShardingjdbcPersistenceDAO.java
@@ -19,6 +19,8 @@
 package org.apache.skywalking.apm.collector.storage.shardingjdbc.dao;
 
 import java.util.*;
+
+import com.google.gson.Gson;
 import org.apache.skywalking.apm.collector.client.shardingjdbc.*;
 import org.apache.skywalking.apm.collector.storage.base.sql.SqlBuilder;
 import org.apache.skywalking.apm.collector.storage.dao.ISegmentDurationPersistenceDAO;
@@ -34,6 +36,8 @@ public class SegmentDurationShardingjdbcPersistenceDAO extends ShardingjdbcDAO i
 
     private static final Logger logger = LoggerFactory.getLogger(SegmentDurationShardingjdbcPersistenceDAO.class);
 
+    private final Gson gson = new Gson();
+
     public SegmentDurationShardingjdbcPersistenceDAO(ShardingjdbcClient client) {
         super(client);
     }
@@ -49,7 +53,7 @@ public class SegmentDurationShardingjdbcPersistenceDAO extends ShardingjdbcDAO i
         target.put(SegmentDurationTable.ID.getName(), data.getId());
         target.put(SegmentDurationTable.SEGMENT_ID.getName(), data.getSegmentId());
         target.put(SegmentDurationTable.APPLICATION_ID.getName(), data.getApplicationId());
-        target.put(SegmentDurationTable.SERVICE_NAME.getName(), data.getServiceName());
+        target.put(SegmentDurationTable.SERVICE_NAME.getName(), gson.toJson(data.getServiceName()));
         target.put(SegmentDurationTable.DURATION.getName(), data.getDuration());
         target.put(SegmentDurationTable.START_TIME.getName(), data.getStartTime());
         target.put(SegmentDurationTable.END_TIME.getName(), data.getEndTime());
diff --git a/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/ui/SegmentDurationShardingjdbcUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/ui/SegmentDurationShardingjdbcUIDAO.java
index eac02da..8277ff7 100644
--- a/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/ui/SegmentDurationShardingjdbcUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/src/main/java/org/apache/skywalking/apm/collector/storage/shardingjdbc/dao/ui/SegmentDurationShardingjdbcUIDAO.java
@@ -24,8 +24,10 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.LinkedList;
 import java.util.List;
 
+import com.google.gson.Gson;
 import org.apache.skywalking.apm.collector.client.shardingjdbc.ShardingjdbcClient;
 import org.apache.skywalking.apm.collector.client.shardingjdbc.ShardingjdbcClientException;
 import org.apache.skywalking.apm.collector.core.util.BooleanUtils;
@@ -48,6 +50,8 @@ public class SegmentDurationShardingjdbcUIDAO extends ShardingjdbcDAO implements
 
     private static final Logger logger = LoggerFactory.getLogger(SegmentDurationShardingjdbcUIDAO.class);
 
+    private final Gson gson = new Gson();
+
     public SegmentDurationShardingjdbcUIDAO(ShardingjdbcClient client) {
         super(client);
     }
@@ -141,8 +145,11 @@ public class SegmentDurationShardingjdbcUIDAO extends ShardingjdbcDAO implements
                 basicTrace.setSegmentId(rs.getString(SegmentDurationTable.SEGMENT_ID.getName()));
                 basicTrace.setDuration(rs.getInt(SegmentDurationTable.DURATION.getName()));
                 basicTrace.setStart(rs.getLong(SegmentDurationTable.START_TIME.getName()));
-                //TODO linjiaqi operation name was changed to contains multiple values
-                //basicTrace.setOperationName(rs.getString(SegmentDurationTable.SERVICE_NAME.getName()));
+                String serviceNameJsonStr = rs.getString(SegmentDurationTable.SERVICE_NAME.getName());
+                if (StringUtils.isNotEmpty(serviceNameJsonStr)) {
+                    List serviceNames = gson.fromJson(serviceNameJsonStr, LinkedList.class);
+                    basicTrace.getOperationName().addAll(serviceNames);
+                }
                 basicTrace.setError(BooleanUtils.valueToBoolean(rs.getInt(SegmentDurationTable.IS_ERROR.getName())));
                 traceBrief.getTraces().add(basicTrace);
                 cnt++;