Add endpoint id to trace query. (#1722)

This commit is contained in:
吴晟 Wu Sheng 2018-09-28 19:22:15 +08:00 committed by GitHub
parent 04d0f55475
commit 4cae884fc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 20 additions and 8 deletions

View File

@ -33,6 +33,7 @@ public class SegmentDispatcher implements SourceDispatcher<Segment> {
segment.setTraceId(source.getTraceId());
segment.setServiceId(source.getServiceId());
segment.setEndpointName(source.getEndpointName());
segment.setEndpointId(source.getEndpointId());
segment.setStartTime(source.getStartTime());
segment.setEndTime(source.getEndTime());
segment.setLatency(source.getLatency());

View File

@ -40,6 +40,7 @@ public class SegmentRecord extends Record {
public static final String TRACE_ID = "trace_id";
public static final String SERVICE_ID = "service_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";
public static final String END_TIME = "end_time";
public static final String LATENCY = "latency";
@ -50,6 +51,7 @@ public class SegmentRecord extends Record {
@Setter @Getter @Column(columnName = TRACE_ID) @IDColumn private String traceId;
@Setter @Getter @Column(columnName = SERVICE_ID) @IDColumn private int serviceId;
@Setter @Getter @Column(columnName = ENDPOINT_NAME) @IDColumn private String endpointName;
@Setter @Getter @Column(columnName = ENDPOINT_ID) @IDColumn private int endpointId;
@Setter @Getter @Column(columnName = START_TIME) @IDColumn private long startTime;
@Setter @Getter @Column(columnName = END_TIME) @IDColumn private long endTime;
@Setter @Getter @Column(columnName = LATENCY) @IDColumn private int latency;

View File

@ -87,12 +87,13 @@ public class TraceQueryService implements Service {
return componentLibraryCatalogService;
}
public TraceBrief queryBasicTraces(final int serviceId, final String traceId, final String endpointName,
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,
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, traceId, page.getLimit(), page.getFrom(), traceState, queryOrder);
return getTraceQueryDAO().queryBasicTraces(startTB, endTB, minTraceDuration, maxTraceDuration, endpointName,
serviceId, endpointId, traceId, page.getLimit(), page.getFrom(), traceState, queryOrder);
}
public Trace queryTrace(final String traceId) throws IOException {

View File

@ -39,6 +39,7 @@ public class Segment extends Source {
@Setter @Getter private String traceId;
@Setter @Getter private int serviceId;
@Setter @Getter private String endpointName;
@Setter @Getter private int endpointId;
@Setter @Getter private long startTime;
@Setter @Getter private long endTime;
@Setter @Getter private int latency;

View File

@ -30,7 +30,7 @@ import org.apache.skywalking.oap.server.library.module.Service;
public interface ITraceQueryDAO extends Service {
TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long minDuration,
long maxDuration, String endpointName, int serviceId, String traceId, int limit, int from,
long maxDuration, String endpointName, int serviceId, int endpointId, String traceId, int limit, int from,
TraceState traceState, QueryOrder queryOrder) throws IOException;
List<SegmentRecord> queryByTraceId(String traceId) throws IOException;

View File

@ -62,12 +62,13 @@ public class TraceQuery implements GraphQLQueryResolver {
int minDuration = condition.getMinTraceDuration();
int maxDuration = condition.getMaxTraceDuration();
String endpointName = condition.getEndpointName();
int serviceId = condition.getServiceId();
int serviceId = StringUtils.isEmpty(condition.getServiceId()) ? 0 : Integer.parseInt(condition.getServiceId());
int endpointId = StringUtils.isEmpty(condition.getEndpointId()) ? 0 : Integer.parseInt(condition.getEndpointId());
TraceState traceState = condition.getTraceState();
QueryOrder queryOrder = condition.getQueryOrder();
Pagination pagination = condition.getPaging();
return getQueryService().queryBasicTraces(serviceId, traceId, endpointName, minDuration, maxDuration, traceState, queryOrder, pagination, startSecondTB, endSecondTB);
return getQueryService().queryBasicTraces(serviceId, endpointId, traceId, endpointName, minDuration, maxDuration, traceState, queryOrder, pagination, startSecondTB, endSecondTB);
}
public Trace queryTrace(final String traceId) throws IOException {

View File

@ -24,9 +24,10 @@ import org.apache.skywalking.oap.server.core.query.entity.*;
@Getter
@Setter
public class TraceQueryCondition {
private int serviceId;
private String serviceId;
private String traceId;
private String endpointName;
private String endpointId;
private Duration queryDuration;
private int minTraceDuration;
private int maxTraceDuration;

@ -1 +1 @@
Subproject commit d71d3f183a1e498aafad8c59c8d3373408140ac9
Subproject commit 3a83be79a9c23aad6576ed2a4a04b82de6d7a829

View File

@ -89,8 +89,10 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
}
if (entryEndpointId == 0) {
segment.setEndpointId(firstEndpointId);
segment.setEndpointName(serviceNameCacheService.get(firstEndpointId).getName());
} else {
segment.setEndpointId(entryEndpointId);
segment.setEndpointName(serviceNameCacheService.get(entryEndpointId).getName());
}

View File

@ -43,7 +43,7 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
@Override
public TraceBrief queryBasicTraces(long startSecondTB, long endSecondTB, long minDuration,
long maxDuration, String endpointName, int serviceId, String traceId, int limit, int from,
long maxDuration, String endpointName, int serviceId, int endpointId, String traceId, int limit, int from,
TraceState traceState, QueryOrder queryOrder) throws IOException {
SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
@ -71,6 +71,9 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
if (serviceId != 0) {
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.SERVICE_ID, serviceId));
}
if (endpointId != 0) {
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.ENDPOINT_ID, endpointId));
}
if (StringUtils.isNotEmpty(traceId)) {
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.TRACE_ID, traceId));
}