[Break Change] Remove endpoint name in the trace query condition. (#7438)
* [Break Change] Remove endpoint name in the trace query condition. * Fix a local UT error(MacOS only)
This commit is contained in:
parent
139bb56ac9
commit
de6cae3429
|
|
@ -22,9 +22,12 @@ Release Notes.
|
|||
* Fix openapi-definitions folder not being read correctly.
|
||||
* Trace segment wouldn't be recognized as a TopN sample service. Add through #4694 experimentally, but it caused
|
||||
performance impact.
|
||||
* Remove `version` and `endTime` in the segment entity. Reduce indexing payload.
|
||||
* Remove `version` and `endTime` in the segment entity. Reduce indexing payload.
|
||||
* Fix `mapper_parsing_exception` in ElasticSearch 7.14.
|
||||
* Support component IDs for Go-Kratos framework.
|
||||
* [Break Change] Remove endpoint name in the trace query condition. Only support `query by endpoint id`.
|
||||
* Fix `ProfileSnapshotExporterTest` case on `OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)`,
|
||||
MacOS.
|
||||
|
||||
#### UI
|
||||
|
||||
|
|
|
|||
|
|
@ -143,6 +143,8 @@ have been highlighted.
|
|||
## Log
|
||||
Since 8.3.0, SkyWalking provides log query for the browser monitoring. Use [Apache SkyWalking Client JS](https://github.com/apache/skywalking-client-js)
|
||||
agent would collect metrics and error logs.
|
||||
Since 8.5.0, SkyWalking supports collecting logs through our native agents and 3rd party agents(such as Fluentd, Filebeat).
|
||||
Read [Log Analyzer Document](../setup/backend/log-analyzer.md) for more details.
|
||||
|
||||
<img src="https://skywalking.apache.org/ui-doc/8.3.0/log.png"/>
|
||||
|
||||
|
|
|
|||
|
|
@ -180,7 +180,6 @@ public class SegmentAnalysisListener implements FirstAnalysisListener, EntryAnal
|
|||
}
|
||||
|
||||
segment.setEndpointId(endpointId);
|
||||
segment.setEndpointName(endpointName);
|
||||
|
||||
sourceReceiver.receive(segment);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ public class SegmentDispatcher implements SourceDispatcher<Segment> {
|
|||
segment.setTraceId(source.getTraceId());
|
||||
segment.setServiceId(source.getServiceId());
|
||||
segment.setServiceInstanceId(source.getServiceInstanceId());
|
||||
segment.setEndpointName(source.getEndpointName());
|
||||
segment.setEndpointId(source.getEndpointId());
|
||||
segment.setStartTime(source.getStartTime());
|
||||
segment.setLatency(source.getLatency());
|
||||
|
|
|
|||
|
|
@ -71,10 +71,6 @@ public class SegmentRecord extends Record {
|
|||
private String serviceInstanceId;
|
||||
@Setter
|
||||
@Getter
|
||||
@Column(columnName = ENDPOINT_NAME, matchQuery = true)
|
||||
private String endpointName;
|
||||
@Setter
|
||||
@Getter
|
||||
@Column(columnName = ENDPOINT_ID)
|
||||
private String endpointId;
|
||||
@Setter
|
||||
|
|
@ -119,7 +115,6 @@ public class SegmentRecord extends Record {
|
|||
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());
|
||||
map.put(LATENCY, storageData.getLatency());
|
||||
|
|
@ -141,7 +136,6 @@ public class SegmentRecord extends Record {
|
|||
record.setTraceId((String) dbMap.get(TRACE_ID));
|
||||
record.setServiceId((String) dbMap.get(SERVICE_ID));
|
||||
record.setServiceInstanceId((String) dbMap.get(SERVICE_INSTANCE_ID));
|
||||
record.setEndpointName((String) dbMap.get(ENDPOINT_NAME));
|
||||
record.setEndpointId((String) dbMap.get(ENDPOINT_ID));
|
||||
record.setStartTime(((Number) dbMap.get(START_TIME)).longValue());
|
||||
record.setLatency(((Number) dbMap.get(LATENCY)).intValue());
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@ public class TraceQueryService implements Service {
|
|||
final String serviceInstanceId,
|
||||
final String endpointId,
|
||||
final String traceId,
|
||||
final String endpointName,
|
||||
final int minTraceDuration,
|
||||
int maxTraceDuration,
|
||||
final TraceState traceState,
|
||||
|
|
@ -89,7 +88,7 @@ public class TraceQueryService implements Service {
|
|||
PaginationUtils.Page page = PaginationUtils.INSTANCE.exchange(paging);
|
||||
|
||||
return getTraceQueryDAO().queryBasicTraces(
|
||||
startTB, endTB, minTraceDuration, maxTraceDuration, endpointName, serviceId, serviceInstanceId, endpointId,
|
||||
startTB, endTB, minTraceDuration, maxTraceDuration, serviceId, serviceInstanceId, endpointId,
|
||||
traceId, page.getLimit(), page.getFrom(), traceState, queryOrder, tags
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ public class TraceQueryCondition {
|
|||
private String serviceId;
|
||||
private String serviceInstanceId;
|
||||
private String traceId;
|
||||
private String endpointName;
|
||||
private String endpointId;
|
||||
private Duration queryDuration;
|
||||
private int minTraceDuration;
|
||||
|
|
|
|||
|
|
@ -53,9 +53,6 @@ public class Segment extends Source {
|
|||
private String serviceInstanceId;
|
||||
@Setter
|
||||
@Getter
|
||||
private String endpointName;
|
||||
@Setter
|
||||
@Getter
|
||||
private String endpointId;
|
||||
@Setter
|
||||
@Getter
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ public interface ITraceQueryDAO extends Service {
|
|||
long endSecondTB,
|
||||
long minDuration,
|
||||
long maxDuration,
|
||||
String endpointName,
|
||||
String serviceId,
|
||||
String serviceInstanceId,
|
||||
String endpointId,
|
||||
|
|
|
|||
|
|
@ -67,14 +67,13 @@ public class TraceQuery implements GraphQLQueryResolver {
|
|||
|
||||
int minDuration = condition.getMinTraceDuration();
|
||||
int maxDuration = condition.getMaxTraceDuration();
|
||||
String endpointName = condition.getEndpointName();
|
||||
String endpointId = condition.getEndpointId();
|
||||
TraceState traceState = condition.getTraceState();
|
||||
QueryOrder queryOrder = condition.getQueryOrder();
|
||||
Pagination pagination = condition.getPaging();
|
||||
|
||||
return getQueryService().queryBasicTraces(
|
||||
condition.getServiceId(), condition.getServiceInstanceId(), endpointId, traceId, endpointName, minDuration,
|
||||
condition.getServiceId(), condition.getServiceInstanceId(), endpointId, traceId, minDuration,
|
||||
maxDuration, traceState, queryOrder, pagination, startSecondTB, endSecondTB, condition.getTags()
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit b827d0d7d95396b9ae87a10eef80a67af843cf3f
|
||||
Subproject commit 17e1aea1ea1818de4b96e06a6dc41e9a78eb7105
|
||||
|
|
@ -25,6 +25,7 @@ import java.util.Base64;
|
|||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import org.apache.skywalking.oap.server.core.analysis.IDManager;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
|
||||
import org.apache.skywalking.oap.server.core.profile.ProfileThreadSnapshotRecord;
|
||||
import org.apache.skywalking.oap.server.core.query.type.BasicTrace;
|
||||
|
|
@ -105,7 +106,10 @@ public class ProfileThreadSnapshotQueryEsDAO extends EsDAO implements IProfileTh
|
|||
|
||||
basicTrace.setSegmentId((String) searchHit.getSourceAsMap().get(SegmentRecord.SEGMENT_ID));
|
||||
basicTrace.setStart(String.valueOf(searchHit.getSourceAsMap().get(SegmentRecord.START_TIME)));
|
||||
basicTrace.getEndpointNames().add((String) searchHit.getSourceAsMap().get(SegmentRecord.ENDPOINT_NAME));
|
||||
basicTrace.getEndpointNames().add(
|
||||
IDManager.EndpointID.analysisId(
|
||||
(String) searchHit.getSourceAsMap().get(SegmentRecord.ENDPOINT_ID)
|
||||
).getEndpointName());
|
||||
basicTrace.setDuration(((Number) searchHit.getSourceAsMap().get(SegmentRecord.LATENCY)).intValue());
|
||||
basicTrace.setError(BooleanUtils.valueToBoolean(((Number) searchHit.getSourceAsMap()
|
||||
.get(
|
||||
|
|
@ -181,7 +185,6 @@ public class ProfileThreadSnapshotQueryEsDAO extends EsDAO implements IProfileTh
|
|||
segmentRecord.setSegmentId((String) searchHit.getSourceAsMap().get(SegmentRecord.SEGMENT_ID));
|
||||
segmentRecord.setTraceId((String) searchHit.getSourceAsMap().get(SegmentRecord.TRACE_ID));
|
||||
segmentRecord.setServiceId((String) searchHit.getSourceAsMap().get(SegmentRecord.SERVICE_ID));
|
||||
segmentRecord.setEndpointName((String) searchHit.getSourceAsMap().get(SegmentRecord.ENDPOINT_NAME));
|
||||
segmentRecord.setStartTime(((Number) searchHit.getSourceAsMap().get(SegmentRecord.START_TIME)).longValue());
|
||||
segmentRecord.setLatency(((Number) searchHit.getSourceAsMap().get(SegmentRecord.LATENCY)).intValue());
|
||||
segmentRecord.setIsError(((Number) searchHit.getSourceAsMap().get(SegmentRecord.IS_ERROR)).intValue());
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import java.util.Base64;
|
|||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import org.apache.skywalking.apm.util.StringUtil;
|
||||
import org.apache.skywalking.oap.server.core.analysis.IDManager;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.searchtag.Tag;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
|
||||
import org.apache.skywalking.oap.server.core.query.type.BasicTrace;
|
||||
|
|
@ -38,7 +39,6 @@ import org.apache.skywalking.oap.server.library.util.BooleanUtils;
|
|||
import org.apache.skywalking.oap.server.library.util.CollectionUtils;
|
||||
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base.EsDAO;
|
||||
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base.IndexController;
|
||||
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base.MatchCNameBuilder;
|
||||
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base.TimeRangeIndexNameMaker;
|
||||
import org.elasticsearch.action.search.SearchResponse;
|
||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||
|
|
@ -63,7 +63,6 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
|
|||
long endSecondTB,
|
||||
long minDuration,
|
||||
long maxDuration,
|
||||
String endpointName,
|
||||
String serviceId,
|
||||
String serviceInstanceId,
|
||||
String endpointId,
|
||||
|
|
@ -93,10 +92,6 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
|
|||
}
|
||||
boolQueryBuilder.must().add(rangeQueryBuilder);
|
||||
}
|
||||
if (!Strings.isNullOrEmpty(endpointName)) {
|
||||
String matchCName = MatchCNameBuilder.INSTANCE.build(SegmentRecord.ENDPOINT_NAME);
|
||||
mustQueryList.add(QueryBuilders.matchPhraseQuery(matchCName, endpointName));
|
||||
}
|
||||
if (StringUtil.isNotEmpty(serviceId)) {
|
||||
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.SERVICE_ID, serviceId));
|
||||
}
|
||||
|
|
@ -145,7 +140,10 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
|
|||
|
||||
basicTrace.setSegmentId((String) searchHit.getSourceAsMap().get(SegmentRecord.SEGMENT_ID));
|
||||
basicTrace.setStart(String.valueOf(searchHit.getSourceAsMap().get(SegmentRecord.START_TIME)));
|
||||
basicTrace.getEndpointNames().add((String) searchHit.getSourceAsMap().get(SegmentRecord.ENDPOINT_NAME));
|
||||
basicTrace.getEndpointNames().add(
|
||||
IDManager.EndpointID.analysisId(
|
||||
(String) searchHit.getSourceAsMap().get(SegmentRecord.ENDPOINT_ID)
|
||||
).getEndpointName());
|
||||
basicTrace.setDuration(((Number) searchHit.getSourceAsMap().get(SegmentRecord.LATENCY)).intValue());
|
||||
basicTrace.setError(
|
||||
BooleanUtils.valueToBoolean(
|
||||
|
|
@ -174,7 +172,6 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
|
|||
segmentRecord.setSegmentId((String) searchHit.getSourceAsMap().get(SegmentRecord.SEGMENT_ID));
|
||||
segmentRecord.setTraceId((String) searchHit.getSourceAsMap().get(SegmentRecord.TRACE_ID));
|
||||
segmentRecord.setServiceId((String) searchHit.getSourceAsMap().get(SegmentRecord.SERVICE_ID));
|
||||
segmentRecord.setEndpointName((String) searchHit.getSourceAsMap().get(SegmentRecord.ENDPOINT_NAME));
|
||||
segmentRecord.setStartTime(((Number) searchHit.getSourceAsMap().get(SegmentRecord.START_TIME)).longValue());
|
||||
segmentRecord.setLatency(((Number) searchHit.getSourceAsMap().get(SegmentRecord.LATENCY)).intValue());
|
||||
segmentRecord.setIsError(((Number) searchHit.getSourceAsMap().get(SegmentRecord.IS_ERROR)).intValue());
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import com.google.common.base.Strings;
|
|||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import org.apache.skywalking.apm.util.StringUtil;
|
||||
import org.apache.skywalking.oap.server.core.analysis.IDManager;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.searchtag.Tag;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
|
||||
import org.apache.skywalking.oap.server.core.query.type.BasicTrace;
|
||||
|
|
@ -32,7 +33,6 @@ import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSear
|
|||
import org.apache.skywalking.oap.server.library.util.BooleanUtils;
|
||||
import org.apache.skywalking.oap.server.library.util.CollectionUtils;
|
||||
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base.IndexController;
|
||||
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base.MatchCNameBuilder;
|
||||
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base.TimeRangeIndexNameMaker;
|
||||
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.query.TraceQueryEsDAO;
|
||||
import org.elasticsearch.action.search.SearchResponse;
|
||||
|
|
@ -55,7 +55,6 @@ public class TraceQueryEs7DAO extends TraceQueryEsDAO {
|
|||
long endSecondTB,
|
||||
long minDuration,
|
||||
long maxDuration,
|
||||
String endpointName,
|
||||
String serviceId,
|
||||
String serviceInstanceId,
|
||||
String endpointId,
|
||||
|
|
@ -85,10 +84,6 @@ public class TraceQueryEs7DAO extends TraceQueryEsDAO {
|
|||
}
|
||||
boolQueryBuilder.must().add(rangeQueryBuilder);
|
||||
}
|
||||
if (!Strings.isNullOrEmpty(endpointName)) {
|
||||
String matchCName = MatchCNameBuilder.INSTANCE.build(SegmentRecord.ENDPOINT_NAME);
|
||||
mustQueryList.add(QueryBuilders.matchPhraseQuery(matchCName, endpointName));
|
||||
}
|
||||
if (StringUtil.isNotEmpty(serviceId)) {
|
||||
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.SERVICE_ID, serviceId));
|
||||
}
|
||||
|
|
@ -126,7 +121,9 @@ public class TraceQueryEs7DAO extends TraceQueryEsDAO {
|
|||
sourceBuilder.from(from);
|
||||
SearchResponse response = getClient().search(
|
||||
new TimeRangeIndexNameMaker(
|
||||
IndexController.LogicIndicesRegister.getPhysicalTableName(SegmentRecord.INDEX_NAME), startSecondTB, endSecondTB), sourceBuilder);
|
||||
IndexController.LogicIndicesRegister.getPhysicalTableName(SegmentRecord.INDEX_NAME), startSecondTB,
|
||||
endSecondTB
|
||||
), sourceBuilder);
|
||||
TraceBrief traceBrief = new TraceBrief();
|
||||
traceBrief.setTotal((int) response.getHits().getTotalHits().value);
|
||||
|
||||
|
|
@ -135,7 +132,10 @@ public class TraceQueryEs7DAO extends TraceQueryEsDAO {
|
|||
|
||||
basicTrace.setSegmentId((String) searchHit.getSourceAsMap().get(SegmentRecord.SEGMENT_ID));
|
||||
basicTrace.setStart(String.valueOf(searchHit.getSourceAsMap().get(SegmentRecord.START_TIME)));
|
||||
basicTrace.getEndpointNames().add((String) searchHit.getSourceAsMap().get(SegmentRecord.ENDPOINT_NAME));
|
||||
basicTrace.getEndpointNames().add(
|
||||
IDManager.EndpointID.analysisId(
|
||||
(String) searchHit.getSourceAsMap().get(SegmentRecord.ENDPOINT_ID)
|
||||
).getEndpointName());
|
||||
basicTrace.setDuration(((Number) searchHit.getSourceAsMap().get(SegmentRecord.LATENCY)).intValue());
|
||||
basicTrace.setError(
|
||||
BooleanUtils.valueToBoolean(
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import java.util.List;
|
|||
import java.util.Objects;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.skywalking.apm.util.StringUtil;
|
||||
import org.apache.skywalking.oap.server.core.analysis.IDManager;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
|
||||
import org.apache.skywalking.oap.server.core.profile.ProfileThreadSnapshotRecord;
|
||||
import org.apache.skywalking.oap.server.core.query.type.BasicTrace;
|
||||
|
|
@ -79,7 +80,7 @@ public class ProfileThreadSnapshotQuery implements IProfileThreadSnapshotQueryDA
|
|||
.function(InfluxConstants.SORT_ASC, SegmentRecord.START_TIME, segments.size())
|
||||
.column(SegmentRecord.SEGMENT_ID)
|
||||
.column(SegmentRecord.START_TIME)
|
||||
.column(SegmentRecord.ENDPOINT_NAME)
|
||||
.column(SegmentRecord.ENDPOINT_ID)
|
||||
.column(SegmentRecord.LATENCY)
|
||||
.column(SegmentRecord.IS_ERROR)
|
||||
.column(SegmentRecord.TRACE_ID)
|
||||
|
|
@ -97,7 +98,8 @@ public class ProfileThreadSnapshotQuery implements IProfileThreadSnapshotQueryDA
|
|||
|
||||
basicTrace.setSegmentId((String) values.get(2));
|
||||
basicTrace.setStart(String.valueOf(((Number) values.get(3)).longValue()));
|
||||
basicTrace.getEndpointNames().add((String) values.get(4));
|
||||
basicTrace.getEndpointNames().add(
|
||||
IDManager.EndpointID.analysisId((String) values.get(4)).getEndpointName());
|
||||
basicTrace.setDuration(((Number) values.get(5)).intValue());
|
||||
basicTrace.setError(BooleanUtils.valueToBoolean(((Number) values.get(6)).intValue()));
|
||||
String traceIds = (String) values.get(7);
|
||||
|
|
@ -167,7 +169,6 @@ public class ProfileThreadSnapshotQuery implements IProfileThreadSnapshotQueryDA
|
|||
.column(SegmentRecord.SEGMENT_ID)
|
||||
.column(SegmentRecord.TRACE_ID)
|
||||
.column(SegmentRecord.SERVICE_ID)
|
||||
.column(SegmentRecord.ENDPOINT_NAME)
|
||||
.column(SegmentRecord.START_TIME)
|
||||
.column(SegmentRecord.LATENCY)
|
||||
.column(SegmentRecord.IS_ERROR)
|
||||
|
|
@ -190,12 +191,11 @@ public class ProfileThreadSnapshotQuery implements IProfileThreadSnapshotQueryDA
|
|||
segmentRecord.setSegmentId((String) values.get(1));
|
||||
segmentRecord.setTraceId((String) values.get(2));
|
||||
segmentRecord.setServiceId((String) values.get(3));
|
||||
segmentRecord.setEndpointName((String) values.get(4));
|
||||
segmentRecord.setStartTime(((Number) values.get(5)).longValue());
|
||||
segmentRecord.setLatency(((Number) values.get(6)).intValue());
|
||||
segmentRecord.setIsError(((Number) values.get(7)).intValue());
|
||||
segmentRecord.setStartTime(((Number) values.get(4)).longValue());
|
||||
segmentRecord.setLatency(((Number) values.get(5)).intValue());
|
||||
segmentRecord.setIsError(((Number) values.get(6)).intValue());
|
||||
|
||||
final String base64 = (String) values.get(8);
|
||||
final String base64 = (String) values.get(7);
|
||||
if (!Strings.isNullOrEmpty(base64)) {
|
||||
segmentRecord.setDataBinary(Base64.getDecoder().decode(base64));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.skywalking.apm.util.StringUtil;
|
||||
import org.apache.skywalking.oap.server.core.analysis.IDManager;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.searchtag.Tag;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
|
||||
import org.apache.skywalking.oap.server.core.query.type.BasicTrace;
|
||||
|
|
@ -64,7 +65,6 @@ public class TraceQuery implements ITraceQueryDAO {
|
|||
long endSecondTB,
|
||||
long minDuration,
|
||||
long maxDuration,
|
||||
String endpointName,
|
||||
String serviceId,
|
||||
String serviceInstanceId,
|
||||
String endpointId,
|
||||
|
|
@ -85,7 +85,7 @@ public class TraceQuery implements ITraceQueryDAO {
|
|||
.function(InfluxConstants.SORT_DES, orderBy, limit + from)
|
||||
.column(SegmentRecord.SEGMENT_ID)
|
||||
.column(SegmentRecord.START_TIME)
|
||||
.column(SegmentRecord.ENDPOINT_NAME)
|
||||
.column(SegmentRecord.ENDPOINT_ID)
|
||||
.column(SegmentRecord.LATENCY)
|
||||
.column(SegmentRecord.IS_ERROR)
|
||||
.column(SegmentRecord.TRACE_ID)
|
||||
|
|
@ -102,9 +102,6 @@ public class TraceQuery implements ITraceQueryDAO {
|
|||
if (maxDuration != 0) {
|
||||
recallQuery.and(lte(SegmentRecord.LATENCY, maxDuration));
|
||||
}
|
||||
if (!Strings.isNullOrEmpty(endpointName)) {
|
||||
recallQuery.and(contains(SegmentRecord.ENDPOINT_NAME, endpointName.replaceAll("/", "\\\\/")));
|
||||
}
|
||||
if (StringUtil.isNotEmpty(serviceId)) {
|
||||
recallQuery.and(eq(InfluxConstants.TagName.SERVICE_ID, serviceId));
|
||||
}
|
||||
|
|
@ -166,7 +163,8 @@ public class TraceQuery implements ITraceQueryDAO {
|
|||
|
||||
basicTrace.setSegmentId((String) values.get(2));
|
||||
basicTrace.setStart(String.valueOf(((Number) values.get(3)).longValue()));
|
||||
basicTrace.getEndpointNames().add((String) values.get(4));
|
||||
basicTrace.getEndpointNames()
|
||||
.add(IDManager.EndpointID.analysisId((String) values.get(4)).getEndpointName());
|
||||
basicTrace.setDuration(((Number) values.get(5)).intValue());
|
||||
basicTrace.setError(BooleanUtils.valueToBoolean(((Number) values.get(6)).intValue()));
|
||||
basicTrace.getTraceIds().add((String) values.get(7));
|
||||
|
|
@ -182,7 +180,6 @@ public class TraceQuery implements ITraceQueryDAO {
|
|||
.column(SegmentRecord.TRACE_ID)
|
||||
.column(SegmentRecord.SERVICE_ID)
|
||||
.column(SegmentRecord.SERVICE_INSTANCE_ID)
|
||||
.column(SegmentRecord.ENDPOINT_NAME)
|
||||
.column(SegmentRecord.START_TIME)
|
||||
.column(SegmentRecord.LATENCY)
|
||||
.column(SegmentRecord.IS_ERROR)
|
||||
|
|
@ -206,12 +203,11 @@ public class TraceQuery implements ITraceQueryDAO {
|
|||
segmentRecord.setTraceId((String) values.get(2));
|
||||
segmentRecord.setServiceId((String) values.get(3));
|
||||
segmentRecord.setServiceInstanceId((String) values.get(4));
|
||||
segmentRecord.setEndpointName((String) values.get(5));
|
||||
segmentRecord.setStartTime(((Number) values.get(6)).longValue());
|
||||
segmentRecord.setLatency(((Number) values.get(7)).intValue());
|
||||
segmentRecord.setIsError(((Number) values.get(8)).intValue());
|
||||
segmentRecord.setStartTime(((Number) values.get(5)).longValue());
|
||||
segmentRecord.setLatency(((Number) values.get(6)).intValue());
|
||||
segmentRecord.setIsError(((Number) values.get(7)).intValue());
|
||||
|
||||
String base64 = (String) values.get(9);
|
||||
String base64 = (String) values.get(8);
|
||||
if (!Strings.isNullOrEmpty(base64)) {
|
||||
segmentRecord.setDataBinary(Base64.getDecoder().decode(base64));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import java.util.Collections;
|
|||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import org.apache.skywalking.apm.util.StringUtil;
|
||||
import org.apache.skywalking.oap.server.core.analysis.IDManager;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
|
||||
import org.apache.skywalking.oap.server.core.profile.ProfileThreadSnapshotRecord;
|
||||
import org.apache.skywalking.oap.server.core.query.type.BasicTrace;
|
||||
|
|
@ -94,7 +95,10 @@ public class H2ProfileThreadSnapshotQueryDAO implements IProfileThreadSnapshotQu
|
|||
|
||||
basicTrace.setSegmentId(resultSet.getString(SegmentRecord.SEGMENT_ID));
|
||||
basicTrace.setStart(resultSet.getString(SegmentRecord.START_TIME));
|
||||
basicTrace.getEndpointNames().add(resultSet.getString(SegmentRecord.ENDPOINT_NAME));
|
||||
basicTrace.getEndpointNames().add(
|
||||
IDManager.EndpointID.analysisId(
|
||||
resultSet.getString(SegmentRecord.ENDPOINT_ID)).getEndpointName()
|
||||
);
|
||||
basicTrace.setDuration(resultSet.getInt(SegmentRecord.LATENCY));
|
||||
basicTrace.setError(BooleanUtils.valueToBoolean(resultSet.getInt(SegmentRecord.IS_ERROR)));
|
||||
String traceIds = resultSet.getString(SegmentRecord.TRACE_ID);
|
||||
|
|
@ -176,7 +180,6 @@ public class H2ProfileThreadSnapshotQueryDAO implements IProfileThreadSnapshotQu
|
|||
segmentRecord.setTraceId(resultSet.getString(SegmentRecord.TRACE_ID));
|
||||
segmentRecord.setServiceId(resultSet.getString(SegmentRecord.SERVICE_ID));
|
||||
segmentRecord.setServiceInstanceId(resultSet.getString(SegmentRecord.SERVICE_INSTANCE_ID));
|
||||
segmentRecord.setEndpointName(resultSet.getString(SegmentRecord.ENDPOINT_NAME));
|
||||
segmentRecord.setStartTime(resultSet.getLong(SegmentRecord.START_TIME));
|
||||
segmentRecord.setLatency(resultSet.getInt(SegmentRecord.LATENCY));
|
||||
segmentRecord.setIsError(resultSet.getInt(SegmentRecord.IS_ERROR));
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ import org.apache.skywalking.oap.server.library.util.CollectionUtils;
|
|||
|
||||
import static org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord.DATA_BINARY;
|
||||
import static org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord.ENDPOINT_ID;
|
||||
import static org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord.ENDPOINT_NAME;
|
||||
import static org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord.IS_ERROR;
|
||||
import static org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord.LATENCY;
|
||||
import static org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord.SEGMENT_ID;
|
||||
|
|
@ -61,7 +60,6 @@ public class H2SegmentRecordBuilder extends AbstractSearchTagBuilder<Record> {
|
|||
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());
|
||||
map.put(LATENCY, storageData.getLatency());
|
||||
|
|
@ -83,7 +81,6 @@ public class H2SegmentRecordBuilder extends AbstractSearchTagBuilder<Record> {
|
|||
record.setTraceId((String) dbMap.get(TRACE_ID));
|
||||
record.setServiceId((String) dbMap.get(SERVICE_ID));
|
||||
record.setServiceInstanceId((String) dbMap.get(SERVICE_INSTANCE_ID));
|
||||
record.setEndpointName((String) dbMap.get(ENDPOINT_NAME));
|
||||
record.setEndpointId((String) dbMap.get(ENDPOINT_ID));
|
||||
record.setStartTime(((Number) dbMap.get(START_TIME)).longValue());
|
||||
record.setLatency(((Number) dbMap.get(LATENCY)).intValue());
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import java.util.List;
|
|||
import org.apache.skywalking.apm.util.StringUtil;
|
||||
import org.apache.skywalking.oap.server.core.Const;
|
||||
import org.apache.skywalking.oap.server.core.CoreModule;
|
||||
import org.apache.skywalking.oap.server.core.analysis.IDManager;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.searchtag.Tag;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
|
||||
import org.apache.skywalking.oap.server.core.config.ConfigService;
|
||||
|
|
@ -68,7 +69,6 @@ public class H2TraceQueryDAO implements ITraceQueryDAO {
|
|||
long endSecondTB,
|
||||
long minDuration,
|
||||
long maxDuration,
|
||||
String endpointName,
|
||||
String serviceId,
|
||||
String serviceInstanceId,
|
||||
String endpointId,
|
||||
|
|
@ -107,10 +107,6 @@ public class H2TraceQueryDAO implements ITraceQueryDAO {
|
|||
sql.append(" and ").append(SegmentRecord.LATENCY).append(" <= ?");
|
||||
parameters.add(maxDuration);
|
||||
}
|
||||
if (!Strings.isNullOrEmpty(endpointName)) {
|
||||
sql.append(" and ").append(SegmentRecord.ENDPOINT_NAME).append(" like concat('%',?,'%')");
|
||||
parameters.add(endpointName);
|
||||
}
|
||||
if (StringUtil.isNotEmpty(serviceId)) {
|
||||
sql.append(" and ").append(SegmentRecord.SERVICE_ID).append(" = ?");
|
||||
parameters.add(serviceId);
|
||||
|
|
@ -178,18 +174,21 @@ public class H2TraceQueryDAO implements ITraceQueryDAO {
|
|||
|
||||
try (ResultSet resultSet = h2Client.executeQuery(
|
||||
connection, "select " +
|
||||
SegmentRecord.SEGMENT_ID + ", " +
|
||||
SegmentRecord.START_TIME + ", " +
|
||||
SegmentRecord.ENDPOINT_NAME + ", " +
|
||||
SegmentRecord.LATENCY + ", " +
|
||||
SegmentRecord.IS_ERROR + ", " +
|
||||
SegmentRecord.TRACE_ID + " " + sql, parameters.toArray(new Object[0]))) {
|
||||
SegmentRecord.SEGMENT_ID + ", " +
|
||||
SegmentRecord.START_TIME + ", " +
|
||||
SegmentRecord.ENDPOINT_ID + ", " +
|
||||
SegmentRecord.LATENCY + ", " +
|
||||
SegmentRecord.IS_ERROR + ", " +
|
||||
SegmentRecord.TRACE_ID + " " + sql, parameters.toArray(new Object[0]))) {
|
||||
while (resultSet.next()) {
|
||||
BasicTrace basicTrace = new BasicTrace();
|
||||
|
||||
basicTrace.setSegmentId(resultSet.getString(SegmentRecord.SEGMENT_ID));
|
||||
basicTrace.setStart(resultSet.getString(SegmentRecord.START_TIME));
|
||||
basicTrace.getEndpointNames().add(resultSet.getString(SegmentRecord.ENDPOINT_NAME));
|
||||
basicTrace.getEndpointNames().add(
|
||||
IDManager.EndpointID.analysisId(resultSet.getString(SegmentRecord.ENDPOINT_ID))
|
||||
.getEndpointName()
|
||||
);
|
||||
basicTrace.setDuration(resultSet.getInt(SegmentRecord.LATENCY));
|
||||
basicTrace.setError(BooleanUtils.valueToBoolean(resultSet.getInt(SegmentRecord.IS_ERROR)));
|
||||
String traceIds = resultSet.getString(SegmentRecord.TRACE_ID);
|
||||
|
|
@ -220,15 +219,14 @@ public class H2TraceQueryDAO implements ITraceQueryDAO {
|
|||
|
||||
try (ResultSet resultSet = h2Client.executeQuery(
|
||||
connection, "select " + SegmentRecord.SEGMENT_ID + ", " +
|
||||
SegmentRecord.TRACE_ID + ", " +
|
||||
SegmentRecord.SERVICE_ID + ", " +
|
||||
SegmentRecord.SERVICE_INSTANCE_ID + ", " +
|
||||
SegmentRecord.ENDPOINT_NAME + ", " +
|
||||
SegmentRecord.START_TIME + ", " +
|
||||
SegmentRecord.LATENCY + ", " +
|
||||
SegmentRecord.IS_ERROR + ", " +
|
||||
SegmentRecord.DATA_BINARY + " from " +
|
||||
SegmentRecord.INDEX_NAME + " where " + SegmentRecord.TRACE_ID + " = ?", traceId
|
||||
SegmentRecord.TRACE_ID + ", " +
|
||||
SegmentRecord.SERVICE_ID + ", " +
|
||||
SegmentRecord.SERVICE_INSTANCE_ID + ", " +
|
||||
SegmentRecord.START_TIME + ", " +
|
||||
SegmentRecord.LATENCY + ", " +
|
||||
SegmentRecord.IS_ERROR + ", " +
|
||||
SegmentRecord.DATA_BINARY + " from " +
|
||||
SegmentRecord.INDEX_NAME + " where " + SegmentRecord.TRACE_ID + " = ?", traceId
|
||||
)) {
|
||||
while (resultSet.next()) {
|
||||
SegmentRecord segmentRecord = new SegmentRecord();
|
||||
|
|
@ -236,7 +234,6 @@ public class H2TraceQueryDAO implements ITraceQueryDAO {
|
|||
segmentRecord.setTraceId(resultSet.getString(SegmentRecord.TRACE_ID));
|
||||
segmentRecord.setServiceId(resultSet.getString(SegmentRecord.SERVICE_ID));
|
||||
segmentRecord.setServiceInstanceId(resultSet.getString(SegmentRecord.SERVICE_INSTANCE_ID));
|
||||
segmentRecord.setEndpointName(resultSet.getString(SegmentRecord.ENDPOINT_NAME));
|
||||
segmentRecord.setStartTime(resultSet.getLong(SegmentRecord.START_TIME));
|
||||
segmentRecord.setLatency(resultSet.getInt(SegmentRecord.LATENCY));
|
||||
segmentRecord.setIsError(resultSet.getInt(SegmentRecord.IS_ERROR));
|
||||
|
|
|
|||
|
|
@ -19,13 +19,11 @@
|
|||
package org.apache.skywalking.oap.server.storage.plugin.zipkin.elasticsearch;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Base64;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.skywalking.apm.util.StringUtil;
|
||||
import org.apache.skywalking.oap.server.core.analysis.IDManager;
|
||||
import org.apache.skywalking.oap.server.core.analysis.manual.searchtag.Tag;
|
||||
|
|
@ -56,7 +54,6 @@ import zipkin2.Span;
|
|||
import zipkin2.codec.SpanBytesDecoder;
|
||||
|
||||
import static org.apache.skywalking.oap.server.storage.plugin.zipkin.ZipkinSpanRecord.ENDPOINT_ID;
|
||||
import static org.apache.skywalking.oap.server.storage.plugin.zipkin.ZipkinSpanRecord.ENDPOINT_NAME;
|
||||
import static org.apache.skywalking.oap.server.storage.plugin.zipkin.ZipkinSpanRecord.IS_ERROR;
|
||||
import static org.apache.skywalking.oap.server.storage.plugin.zipkin.ZipkinSpanRecord.LATENCY;
|
||||
import static org.apache.skywalking.oap.server.storage.plugin.zipkin.ZipkinSpanRecord.SERVICE_ID;
|
||||
|
|
@ -77,7 +74,6 @@ public class ZipkinTraceQueryEs7DAO extends EsDAO implements ITraceQueryDAO {
|
|||
long endSecondTB,
|
||||
long minDuration,
|
||||
long maxDuration,
|
||||
String endpointName,
|
||||
String serviceId,
|
||||
String serviceInstanceId,
|
||||
String endpointId,
|
||||
|
|
@ -108,9 +104,6 @@ public class ZipkinTraceQueryEs7DAO extends EsDAO implements ITraceQueryDAO {
|
|||
}
|
||||
mustQueryList.add(rangeQueryBuilder);
|
||||
}
|
||||
if (!Strings.isNullOrEmpty(endpointName)) {
|
||||
mustQueryList.add(QueryBuilders.matchPhraseQuery(ENDPOINT_NAME, endpointName));
|
||||
}
|
||||
if (StringUtil.isNotEmpty(serviceId)) {
|
||||
mustQueryList.add(QueryBuilders.termQuery(SERVICE_ID, serviceId));
|
||||
}
|
||||
|
|
@ -159,7 +152,7 @@ public class ZipkinTraceQueryEs7DAO extends EsDAO implements ITraceQueryDAO {
|
|||
BasicTrace basicTrace = new BasicTrace();
|
||||
|
||||
final ZipkinSpanRecord zipkinSpanRecord = new ZipkinSpanRecord.Builder().storage2Entity(
|
||||
searchHit.getSourceAsMap());
|
||||
searchHit.getSourceAsMap());
|
||||
|
||||
basicTrace.setSegmentId(zipkinSpanRecord.getSpanId());
|
||||
basicTrace.setStart(String.valueOf((long) zipkinSpanRecord.getStartTime()));
|
||||
|
|
@ -181,7 +174,7 @@ public class ZipkinTraceQueryEs7DAO extends EsDAO implements ITraceQueryDAO {
|
|||
|
||||
@Override
|
||||
public List<org.apache.skywalking.oap.server.core.query.type.Span> doFlexibleTraceQuery(
|
||||
String traceId) throws IOException {
|
||||
String traceId) throws IOException {
|
||||
SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
|
||||
sourceBuilder.query(QueryBuilders.termQuery(TRACE_ID, traceId));
|
||||
sourceBuilder.sort(START_TIME, SortOrder.ASC);
|
||||
|
|
@ -214,12 +207,12 @@ public class ZipkinTraceQueryEs7DAO extends EsDAO implements ITraceQueryDAO {
|
|||
});
|
||||
if (StringUtil.isNotEmpty(serviceId)) {
|
||||
final IDManager.ServiceID.ServiceIDDefinition serviceIDDefinition = IDManager.ServiceID.analysisId(
|
||||
serviceId);
|
||||
serviceId);
|
||||
swSpan.setServiceCode(serviceIDDefinition.getName());
|
||||
}
|
||||
if (StringUtil.isNotEmpty(serviceInstanceId)) {
|
||||
final IDManager.ServiceInstanceID.InstanceIDDefinition instanceIDDefinition = IDManager.ServiceInstanceID.analysisId(
|
||||
serviceInstanceId);
|
||||
serviceInstanceId);
|
||||
swSpan.setServiceInstanceName(instanceIDDefinition.getName());
|
||||
}
|
||||
swSpan.setSpanId(0);
|
||||
|
|
|
|||
|
|
@ -46,11 +46,13 @@ import org.junit.Test;
|
|||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.powermock.core.classloader.annotations.PowerMockIgnore;
|
||||
import org.powermock.modules.junit4.PowerMockRunner;
|
||||
import org.powermock.reflect.Whitebox;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
@RunWith(PowerMockRunner.class)
|
||||
@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*", "org.w3c.*"})
|
||||
public class ProfileSnapshotExporterTest {
|
||||
|
||||
@Mock
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@ public class ProfileTraceDAO implements ITraceQueryDAO {
|
|||
long endSecondTB,
|
||||
long minDuration,
|
||||
long maxDuration,
|
||||
String endpointName,
|
||||
String serviceId,
|
||||
String serviceInstanceId,
|
||||
String endpointId,
|
||||
|
|
|
|||
Loading…
Reference in New Issue