提交 dd248447 编写于 作者: wu-sheng's avatar wu-sheng

Webui use register center to find routing server. and use searchClient to...

Webui use register center to find routing server. and use searchClient to search traceId. Waiting for integration test.
上级 96e01302
package com.a.eye.skywalking.web.client.routing;
import com.a.eye.skywalking.network.grpc.QueryTask;
import com.a.eye.skywalking.network.grpc.SearchResult;
import com.a.eye.skywalking.network.grpc.TraceId;
import com.a.eye.skywalking.network.grpc.client.TraceSearchClient;
import com.a.eye.skywalking.web.dto.TraceNodeInfo;
import com.a.eye.skywalking.web.dto.TraceNodesResult;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
/**
......@@ -13,15 +18,31 @@ public class SearchClient {
public SearchClient() {
TraceSearchClient[] allSearchClients = RoutingServerWatcher.getAllSearchClient();
if ((allSearchClients.length == 0)) {
throw new RuntimeException("no active routing servers");
}
client = allSearchClients[ThreadLocalRandom.current().nextInt(0, allSearchClients.length)];
}
public TraceNodesResult searchSpan(String traceId){
String[] traceIdSegments = traceId.split(".");
TraceNodesResult traceNodesResult = new TraceNodesResult();
if(traceIdSegments.length != 6){
return new TraceNodesResult();
return traceNodesResult;
}
TraceId.Builder builder = TraceId.newBuilder();
for (String traceIdSegment : traceIdSegments) {
builder.addSegments(Long.parseLong(traceIdSegment));
}
return new TraceNodesResult();
QueryTask.Builder queryTaskBuilder = QueryTask.newBuilder().setTraceId(builder.build());
SearchResult result = client.search(queryTaskBuilder.build());
List<TraceNodeInfo> traceNodes = traceNodesResult.getResult();
result.getSpansList().forEach((span -> {
traceNodes.add(new TraceNodeInfo((span)));
}));
return traceNodesResult;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册