提交 4106125d authored 作者: Edwin's avatar Edwin

refactor: update GraphQL query formatting and improve logging in HttpKit

上级 d5c9ea29
...@@ -84,13 +84,13 @@ public class SkyWalkingQueryService { ...@@ -84,13 +84,13 @@ public class SkyWalkingQueryService {
String[] range = buildDurationRange(skyWalkingProperties.getLookbackMinutes()); String[] range = buildDurationRange(skyWalkingProperties.getLookbackMinutes());
String endpointField = StringUtil.isBlank(endpointId) String endpointField = StringUtil.isBlank(endpointId)
? "" ? ""
: String.format(", endpointId: \\\"%s\\\"", escapeGraphql(endpointId)); : String.format(", endpointId: \"%s\"", quoteGraphqlValue(endpointId));
String query = String.format( String query = String.format(
"{ queryBasicTraces(condition: {serviceId: \\\"%s\\\"%s, traceState: ERROR, " "{ queryBasicTraces(condition: {serviceId: \"%s\"%s, traceState: ERROR, "
+ "queryDuration: {start: \\\"%s\\\", end: \\\"%s\\\", step: MINUTE}, " + "queryDuration: {start: \"%s\", end: \"%s\", step: MINUTE}, "
+ "queryOrder: BY_START_TIME, paging: {pageNum: 1, pageSize: %d}}) " + "queryOrder: BY_START_TIME, paging: {pageNum: 1, pageSize: %d}}) "
+ "{ traces { traceIds endpointNames } } }", + "{ traces { traceIds endpointNames } } }",
escapeGraphql(serviceId), quoteGraphqlValue(serviceId),
endpointField, endpointField,
range[0], range[0],
range[1], range[1],
...@@ -118,8 +118,8 @@ public class SkyWalkingQueryService { ...@@ -118,8 +118,8 @@ public class SkyWalkingQueryService {
private TraceErrorDetail queryTraceError(String traceId) throws Exception { private TraceErrorDetail queryTraceError(String traceId) throws Exception {
String query = String.format( String query = String.format(
"{ queryTrace(traceId: \\\"%s\\\") { spans { endpointName serviceCode isError logs { data { key value } } } } }", "{ queryTrace(traceId: \"%s\") { spans { endpointName serviceCode isError logs { data { key value } } } } }",
escapeGraphql(traceId) quoteGraphqlValue(traceId)
); );
JsonObject data = executeGraphQL(query); JsonObject data = executeGraphQL(query);
JsonArray spans = data.getAsJsonObject("queryTrace").getAsJsonArray("spans"); JsonArray spans = data.getAsJsonObject("queryTrace").getAsJsonArray("spans");
...@@ -165,7 +165,7 @@ public class SkyWalkingQueryService { ...@@ -165,7 +165,7 @@ public class SkyWalkingQueryService {
private String findServiceId(String serviceName) throws Exception { private String findServiceId(String serviceName) throws Exception {
String[] range = buildDurationRange(skyWalkingProperties.getLookbackMinutes()); String[] range = buildDurationRange(skyWalkingProperties.getLookbackMinutes());
String query = String.format( String query = String.format(
"{ getAllServices(duration: {start: \\\"%s\\\", end: \\\"%s\\\", step: MINUTE}) { key: id label: name } }", "{ getAllServices(duration: {start: \"%s\", end: \"%s\", step: MINUTE}) { key: id label: name } }",
range[0], range[0],
range[1] range[1]
); );
...@@ -197,9 +197,9 @@ public class SkyWalkingQueryService { ...@@ -197,9 +197,9 @@ public class SkyWalkingQueryService {
keyword = keyword.substring(slashIndex + 1); keyword = keyword.substring(slashIndex + 1);
} }
String query = String.format( String query = String.format(
"{ searchEndpoint(serviceId: \\\"%s\\\", keyword: \\\"%s\\\", limit: 10) { key: id label: name } }", "{ searchEndpoint(serviceId: \"%s\", keyword: \"%s\", limit: 10) { key: id label: name } }",
escapeGraphql(serviceId), quoteGraphqlValue(serviceId),
escapeGraphql(keyword) quoteGraphqlValue(keyword)
); );
JsonObject data = executeGraphQL(query); JsonObject data = executeGraphQL(query);
JsonArray endpoints = data.getAsJsonArray("searchEndpoint"); JsonArray endpoints = data.getAsJsonArray("searchEndpoint");
...@@ -266,7 +266,10 @@ public class SkyWalkingQueryService { ...@@ -266,7 +266,10 @@ public class SkyWalkingQueryService {
return value.substring(0, maxLength) + "..."; return value.substring(0, maxLength) + "...";
} }
private String escapeGraphql(String value) { private String quoteGraphqlValue(String value) {
if (value == null) {
return "";
}
return value.replace("\\", "\\\\").replace("\"", "\\\""); return value.replace("\\", "\\\\").replace("\"", "\\\"");
} }
......
...@@ -145,7 +145,7 @@ public final class HttpKit { ...@@ -145,7 +145,7 @@ public final class HttpKit {
builder.setHeader("Content-Type", "application/json"); builder.setHeader("Content-Type", "application/json");
builder.setBodyEncoding(DEFAULT_CHARSET); builder.setBodyEncoding(DEFAULT_CHARSET);
builder.setBody(s); builder.setBody(s);
log.info("http请求 url->{}, param->:" + url, s); log.info("http请求 url->{}, param->{}", url, s);
Future<Response> f = builder.execute(); Future<Response> f = builder.execute();
String body = f.get().getResponseBody(DEFAULT_CHARSET); String body = f.get().getResponseBody(DEFAULT_CHARSET);
log.info("http响应:" + body); log.info("http响应:" + body);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论