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++;