未验证 提交 4cae884f 编写于 作者: wu-sheng's avatar wu-sheng 提交者: GitHub

Add endpoint id to trace query. (#1722)

上级 04d0f554
......@@ -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());
......
......@@ -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;
......
......@@ -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 {
......
......@@ -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;
......
......@@ -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;
......
......@@ -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 {
......
......@@ -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;
......
Subproject commit d71d3f183a1e498aafad8c59c8d3373408140ac9
Subproject commit 3a83be79a9c23aad6576ed2a4a04b82de6d7a829
......@@ -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());
}
......
......@@ -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));
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册