Add endpoint id to trace query. (#1722)
This commit is contained in:
parent
04d0f55475
commit
4cae884fc0
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
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));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue