[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:
吴晟 Wu Sheng 2021-08-11 16:27:10 +08:00 committed by GitHub
parent 139bb56ac9
commit de6cae3429
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 73 additions and 96 deletions

View File

@ -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

View File

@ -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"/>

View File

@ -180,7 +180,6 @@ public class SegmentAnalysisListener implements FirstAnalysisListener, EntryAnal
}
segment.setEndpointId(endpointId);
segment.setEndpointName(endpointName);
sourceReceiver.receive(segment);
}

View File

@ -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());

View File

@ -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());

View File

@ -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
);
}

View File

@ -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;

View File

@ -53,9 +53,6 @@ public class Segment extends Source {
private String serviceInstanceId;
@Setter
@Getter
private String endpointName;
@Setter
@Getter
private String endpointId;
@Setter
@Getter

View File

@ -34,7 +34,6 @@ public interface ITraceQueryDAO extends Service {
long endSecondTB,
long minDuration,
long maxDuration,
String endpointName,
String serviceId,
String serviceInstanceId,
String endpointId,

View File

@ -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

View File

@ -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());

View File

@ -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());

View File

@ -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(

View File

@ -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));
}

View File

@ -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));
}

View File

@ -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));

View File

@ -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());

View File

@ -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));

View File

@ -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);

View File

@ -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

View File

@ -43,7 +43,6 @@ public class ProfileTraceDAO implements ITraceQueryDAO {
long endSecondTB,
long minDuration,
long maxDuration,
String endpointName,
String serviceId,
String serviceInstanceId,
String endpointId,