add serviceInstanceId in Segment storage. (#2146)
* add serviceInstanceId in Segment storage. * add serviceInstanceId in query condition.
This commit is contained in:
parent
a95e15fb8d
commit
c596d0ac82
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
@ -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;
|
||||
|
|
@ -72,6 +74,7 @@ public class SegmentRecord extends Record {
|
|||
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());
|
||||
|
|
@ -93,6 +96,7 @@ public class SegmentRecord extends Record {
|
|||
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());
|
||||
|
|
|
|||
|
|
@ -89,14 +89,14 @@ public class TraceQueryService implements Service {
|
|||
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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ 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, 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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,11 +68,12 @@ public class TraceQuery implements GraphQLQueryResolver {
|
|||
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 {
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import org.apache.skywalking.oap.server.core.query.entity.*;
|
|||
@Setter
|
||||
public class TraceQueryCondition {
|
||||
private String serviceId;
|
||||
private String serviceInstanceId;
|
||||
private String traceId;
|
||||
private String endpointName;
|
||||
private String endpointId;
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
|
|||
|
||||
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());
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
|
|||
|
||||
@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();
|
||||
|
|
@ -72,6 +72,9 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
|
|||
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));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ public class H2TraceQueryDAO implements ITraceQueryDAO {
|
|||
|
||||
@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);
|
||||
|
||||
|
|
@ -71,6 +71,10 @@ public class H2TraceQueryDAO implements ITraceQueryDAO {
|
|||
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);
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ public class MySQLTraceQueryDAO extends H2TraceQueryDAO {
|
|||
|
||||
@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);
|
||||
|
||||
|
|
@ -69,6 +69,10 @@ public class MySQLTraceQueryDAO extends H2TraceQueryDAO {
|
|||
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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue