Skip to content

Commit

Permalink
add serviceInstanceId in Segment storage. (apache#2146)
Browse files Browse the repository at this point in the history
* add serviceInstanceId in Segment storage.

* add serviceInstanceId in query condition.
  • Loading branch information
JaredTan95 authored and wu-sheng committed Feb 22, 2019
1 parent a95e15f commit c596d0a
Show file tree
Hide file tree
Showing 11 changed files with 33 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class SegmentDispatcher implements SourceDispatcher<Segment> {
segment.setSegmentId(source.getSegmentId());
segment.setTraceId(source.getTraceId());
segment.setServiceId(source.getServiceId());
segment.setServiceInstanceId(source.getServiceInstanceId());
segment.setEndpointName(source.getEndpointName());
segment.setEndpointId(source.getEndpointId());
segment.setStartTime(source.getStartTime());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public class SegmentRecord extends Record {
public static final String SEGMENT_ID = "segment_id";
public static final String TRACE_ID = "trace_id";
public static final String SERVICE_ID = "service_id";
public static final String SERVICE_INSTANCE_ID = "service_instance_id";
public static final String ENDPOINT_NAME = "endpoint_name";
public static final String ENDPOINT_ID = "endpoint_id";
public static final String START_TIME = "start_time";
Expand All @@ -52,6 +53,7 @@ public class SegmentRecord extends Record {
@Setter @Getter @Column(columnName = SEGMENT_ID) @IDColumn private String segmentId;
@Setter @Getter @Column(columnName = TRACE_ID) @IDColumn private String traceId;
@Setter @Getter @Column(columnName = SERVICE_ID) @IDColumn private int serviceId;
@Setter @Getter @Column(columnName = SERVICE_INSTANCE_ID) @IDColumn private int serviceInstanceId;
@Setter @Getter @Column(columnName = ENDPOINT_NAME, matchQuery = true) @IDColumn private String endpointName;
@Setter @Getter @Column(columnName = ENDPOINT_ID) @IDColumn private int endpointId;
@Setter @Getter @Column(columnName = START_TIME) @IDColumn private long startTime;
Expand All @@ -72,6 +74,7 @@ public static class Builder implements StorageBuilder<SegmentRecord> {
map.put(SEGMENT_ID, storageData.getSegmentId());
map.put(TRACE_ID, storageData.getTraceId());
map.put(SERVICE_ID, storageData.getServiceId());
map.put(SERVICE_INSTANCE_ID, storageData.getServiceInstanceId());
map.put(ENDPOINT_NAME, storageData.getEndpointName());
map.put(ENDPOINT_ID, storageData.getEndpointId());
map.put(START_TIME, storageData.getStartTime());
Expand All @@ -93,6 +96,7 @@ public static class Builder implements StorageBuilder<SegmentRecord> {
record.setSegmentId((String)dbMap.get(SEGMENT_ID));
record.setTraceId((String)dbMap.get(TRACE_ID));
record.setServiceId(((Number)dbMap.get(SERVICE_ID)).intValue());
record.setServiceInstanceId(((Number)dbMap.get(SERVICE_INSTANCE_ID)).intValue());
record.setEndpointName((String)dbMap.get(ENDPOINT_NAME));
record.setEndpointId(((Number)dbMap.get(ENDPOINT_ID)).intValue());
record.setStartTime(((Number)dbMap.get(START_TIME)).longValue());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,14 @@ private IComponentLibraryCatalogService getComponentLibraryCatalogService() {
return componentLibraryCatalogService;
}

public TraceBrief queryBasicTraces(final int serviceId, final int endpointId, final String traceId,
final String endpointName,
final int minTraceDuration, int maxTraceDuration, final TraceState traceState, final QueryOrder queryOrder,
public TraceBrief queryBasicTraces(final int serviceId, final int serviceInstanceId, final int endpointId,
final String traceId, final String endpointName, final int minTraceDuration, int maxTraceDuration,
final TraceState traceState, final QueryOrder queryOrder,
final Pagination paging, final long startTB, final long endTB) throws IOException {
PaginationUtils.Page page = PaginationUtils.INSTANCE.exchange(paging);

return getTraceQueryDAO().queryBasicTraces(startTB, endTB, minTraceDuration, maxTraceDuration, endpointName,
serviceId, endpointId, traceId, page.getLimit(), page.getFrom(), traceState, queryOrder);
serviceId, serviceInstanceId, endpointId, traceId, page.getLimit(), page.getFrom(), traceState, queryOrder);
}

public Trace queryTrace(final String traceId) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public class Segment extends Source {
@Setter @Getter private String segmentId;
@Setter @Getter private String traceId;
@Setter @Getter private int serviceId;
@Setter @Getter private int serviceInstanceId;
@Setter @Getter private String endpointName;
@Setter @Getter private int endpointId;
@Setter @Getter private long startTime;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
public interface ITraceQueryDAO extends Service {

TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long minDuration,
long maxDuration, String endpointName, int serviceId, int endpointId, String traceId, int limit, int from,
TraceState traceState, QueryOrder queryOrder) throws IOException;
long maxDuration, String endpointName, int serviceId, int serviceInstanceId, int endpointId, String traceId,
int limit, int from, TraceState traceState, QueryOrder queryOrder) throws IOException;

List<SegmentRecord> queryByTraceId(String traceId) throws IOException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,12 @@ public TraceBrief queryBasicTraces(final TraceQueryCondition condition) throws I
String endpointName = condition.getEndpointName();
int serviceId = StringUtils.isEmpty(condition.getServiceId()) ? 0 : Integer.parseInt(condition.getServiceId());
int endpointId = StringUtils.isEmpty(condition.getEndpointId()) ? 0 : Integer.parseInt(condition.getEndpointId());
int serviceInstanceId = StringUtils.isEmpty(condition.getServiceInstanceId()) ? 0 : Integer.parseInt(condition.getServiceInstanceId());
TraceState traceState = condition.getTraceState();
QueryOrder queryOrder = condition.getQueryOrder();
Pagination pagination = condition.getPaging();

return getQueryService().queryBasicTraces(serviceId, endpointId, traceId, endpointName, minDuration, maxDuration, traceState, queryOrder, pagination, startSecondTB, endSecondTB);
return getQueryService().queryBasicTraces(serviceId, serviceInstanceId, endpointId, traceId, endpointName, minDuration, maxDuration, traceState, queryOrder, pagination, startSecondTB, endSecondTB);
}

public Trace queryTrace(final String traceId) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
@Setter
public class TraceQueryCondition {
private String serviceId;
private String serviceInstanceId;
private String traceId;
private String endpointName;
private String endpointId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ public void parseFirst(SpanDecorator spanDecorator, SegmentCoreInfo segmentCoreI

segment.setSegmentId(segmentCoreInfo.getSegmentId());
segment.setServiceId(segmentCoreInfo.getServiceId());
segment.setServiceInstanceId(segmentCoreInfo.getServiceInstanceId());
segment.setLatency((int)(segmentCoreInfo.getEndTime() - segmentCoreInfo.getStartTime()));
segment.setStartTime(segmentCoreInfo.getStartTime());
segment.setEndTime(segmentCoreInfo.getEndTime());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ public TraceQueryEsDAO(ElasticSearchClient client) {

@Override
public TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long minDuration,
long maxDuration, String endpointName, int serviceId, int endpointId, String traceId, int limit, int from,
TraceState traceState, QueryOrder queryOrder) throws IOException {
long maxDuration, String endpointName, int serviceId, int serviceInstanceId, int endpointId, String traceId,
int limit, int from, TraceState traceState, QueryOrder queryOrder) throws IOException {
SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
Expand All @@ -72,6 +72,9 @@ public TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long mi
if (serviceId != 0) {
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.SERVICE_ID, serviceId));
}
if (serviceInstanceId != 0) {
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.SERVICE_INSTANCE_ID, serviceInstanceId));
}
if (endpointId != 0) {
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.ENDPOINT_ID, endpointId));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ public H2TraceQueryDAO(JDBCHikariCPClient h2Client) {

@Override
public TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long minDuration, long maxDuration,
String endpointName, int serviceId, int endpointId, String traceId, int limit, int from, TraceState traceState,
QueryOrder queryOrder) throws IOException {
String endpointName, int serviceId, int serviceInstanceId, int endpointId, String traceId, int limit, int from,
TraceState traceState, QueryOrder queryOrder) throws IOException {
StringBuilder sql = new StringBuilder();
List<Object> parameters = new ArrayList<>(10);

Expand Down Expand Up @@ -71,6 +71,10 @@ public TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long mi
sql.append(" and ").append(SegmentRecord.SERVICE_ID).append(" = ?");
parameters.add(serviceId);
}
if (serviceInstanceId != 0) {
sql.append(" and ").append(SegmentRecord.SERVICE_INSTANCE_ID).append(" = ?");
parameters.add(serviceInstanceId);
}
if (endpointId != 0) {
sql.append(" and ").append(SegmentRecord.ENDPOINT_ID).append(" = ?");
parameters.add(endpointId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ public MySQLTraceQueryDAO(JDBCHikariCPClient mysqlClient) {

@Override
public TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long minDuration, long maxDuration,
String endpointName, int serviceId, int endpointId, String traceId, int limit, int from, TraceState traceState,
QueryOrder queryOrder) throws IOException {
String endpointName, int serviceId, int serviceInstanceId, int endpointId, String traceId, int limit, int from,
TraceState traceState, QueryOrder queryOrder) throws IOException {
StringBuilder sql = new StringBuilder();
List<Object> parameters = new ArrayList<>(10);

Expand Down Expand Up @@ -69,6 +69,10 @@ public TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long mi
sql.append(" and ").append(SegmentRecord.SERVICE_ID).append(" = ?");
parameters.add(serviceId);
}
if (serviceInstanceId != 0) {
sql.append(" and ").append(SegmentRecord.SERVICE_INSTANCE_ID).append(" = ?");
parameters.add(serviceInstanceId);
}
if (endpointId != 0) {
sql.append(" and ").append(SegmentRecord.ENDPOINT_ID).append(" = ?");
parameters.add(endpointId);
Expand Down

0 comments on commit c596d0a

Please sign in to comment.