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

refactor: update GraphQL query formatting and improve logging in HttpKit

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