2626import com .google .common .reflect .TypeToken ;
2727import com .google .gson .Gson ;
2828import com .linecorp .armeria .common .AggregatedHttpResponse ;
29+ import com .linecorp .armeria .common .HttpHeaderNames ;
30+ import com .linecorp .armeria .common .HttpRequest ;
2931import com .linecorp .armeria .server .annotation .Default ;
3032import com .linecorp .armeria .server .annotation .ExceptionHandler ;
3133import com .linecorp .armeria .server .annotation .Get ;
3840import java .util .stream .Collectors ;
3941import lombok .SneakyThrows ;
4042import lombok .extern .slf4j .Slf4j ;
41- import org .apache .skywalking .oap .server .core .query .mqe .ExpressionResult ;
4243import org .apache .skywalking .oap .query .debug .log .DebuggingQueryLogsRsp ;
4344import org .apache .skywalking .oap .query .debug .mqe .DebuggingMQERsp ;
4445import org .apache .skywalking .oap .query .debug .topology .DebuggingQueryEndpointTopologyRsp ;
6768import org .apache .skywalking .oap .server .core .query .input .LogQueryCondition ;
6869import org .apache .skywalking .oap .server .core .query .input .TraceQueryCondition ;
6970import org .apache .skywalking .oap .server .core .query .input .TraceScopeCondition ;
71+ import org .apache .skywalking .oap .server .core .query .mqe .ExpressionResult ;
7072import org .apache .skywalking .oap .server .core .query .type .EndpointTopology ;
7173import org .apache .skywalking .oap .server .core .query .type .Logs ;
7274import org .apache .skywalking .oap .server .core .query .type .Pagination ;
7779import org .apache .skywalking .oap .server .core .query .type .Trace ;
7880import org .apache .skywalking .oap .server .core .query .type .TraceBrief ;
7981import org .apache .skywalking .oap .server .core .query .type .TraceState ;
80- import org .apache .skywalking .oap .server .core .query .type .debugging .DebuggingTrace ;
8182import org .apache .skywalking .oap .server .core .query .type .debugging .DebuggingSpan ;
83+ import org .apache .skywalking .oap .server .core .query .type .debugging .DebuggingTrace ;
8284import org .apache .skywalking .oap .server .core .query .type .debugging .DebuggingTraceContext ;
8385import org .apache .skywalking .oap .server .core .status .ServerStatusService ;
8486import org .apache .skywalking .oap .server .library .module .ModuleManager ;
@@ -109,8 +111,13 @@ public DebuggingHTTPHandler(final ModuleManager manager, final StatusQueryConfig
109111 }
110112
111113 @ Get ("/debugging/config/dump" )
112- public String dumpConfigurations () {
113- return serverStatusService .dumpBootingConfigurations (config .getKeywords4MaskingSecretsOfConfig ());
114+ public String dumpConfigurations (HttpRequest request ) {
115+ final String acceptHeader = request .headers ().get (HttpHeaderNames .ACCEPT );
116+ if (acceptHeader != null && acceptHeader .toLowerCase ().contains ("application/json" )) {
117+ return serverStatusService .dumpBootingConfigurations (config .getKeywords4MaskingSecretsOfConfig ())
118+ .toJsonString ();
119+ }
120+ return serverStatusService .dumpBootingConfigurations (config .getKeywords4MaskingSecretsOfConfig ()).toString ();
114121 }
115122
116123 @ SneakyThrows
@@ -150,7 +157,8 @@ public String execExpression(@Param("dumpDBRsp") boolean dumpStorageRsp,
150157 duration .setEnd (endTime );
151158 duration .setStep (Step .valueOf (step ));
152159 coldStage .ifPresent (duration ::setColdStage );
153- ExpressionResult expressionResult = mqeQuery .execExpression (expression , entity , duration , true , dumpStorageRsp ).join ();
160+ ExpressionResult expressionResult = mqeQuery .execExpression (expression , entity , duration , true , dumpStorageRsp )
161+ .join ();
154162 DebuggingTrace execTrace = expressionResult .getDebuggingTrace ();
155163 DebuggingMQERsp result = new DebuggingMQERsp (
156164 expressionResult .getType (), expressionResult .getResults (), expressionResult .getError (),
@@ -279,8 +287,10 @@ public String queryZipkinTraces(@Param("serviceName") Optional<String> serviceNa
279287 );
280288 List <List <Span >> traces = new ArrayList <>();
281289 if (response .status ().code () == 200 ) {
282- traces = new Gson ().fromJson (response .contentUtf8 (), new TypeToken <ArrayList <ArrayList <Span >>>() {
283- }.getType ());
290+ traces = new Gson ().fromJson (
291+ response .contentUtf8 (), new TypeToken <ArrayList <ArrayList <Span >>>() {
292+ }.getType ()
293+ );
284294 }
285295 DebuggingZipkinQueryTracesRsp result = new DebuggingZipkinQueryTracesRsp (
286296 traces , transformTrace (traceContext .getExecTrace ()));
@@ -300,11 +310,15 @@ public String getZipkinTraceById(@Param("traceId") String traceId) {
300310 AggregatedHttpResponse response = zipkinQueryHandler .getTraceById (traceId );
301311 List <Span > trace = new ArrayList <>();
302312 if (response .status ().code () == 200 ) {
303- trace = new Gson ().fromJson (response .contentUtf8 (), new TypeToken <ArrayList <Span >>() {
304- }.getType ());
313+ trace = new Gson ().fromJson (
314+ response .contentUtf8 (), new TypeToken <ArrayList <Span >>() {
315+ }.getType ()
316+ );
305317 }
306- DebuggingZipkinQueryTraceRsp result = new DebuggingZipkinQueryTraceRsp (trace , transformTrace (
307- traceContext .getExecTrace ()));
318+ DebuggingZipkinQueryTraceRsp result = new DebuggingZipkinQueryTraceRsp (
319+ trace , transformTrace (
320+ traceContext .getExecTrace ())
321+ );
308322 return transToYAMLStringZipkin (result );
309323 } finally {
310324 traceContext .stopTrace ();
@@ -315,10 +329,10 @@ public String getZipkinTraceById(@Param("traceId") String traceId) {
315329 @ SneakyThrows
316330 @ Get ("/debugging/query/topology/getGlobalTopology" )
317331 public String getGlobalTopology (@ Param ("startTime" ) String startTime ,
318- @ Param ("endTime" ) String endTime ,
319- @ Param ("step" ) String step ,
320- @ Param ("coldStage" ) Optional <Boolean > coldStage ,
321- @ Param ("serviceLayer" ) Optional <String > serviceLayer ) {
332+ @ Param ("endTime" ) String endTime ,
333+ @ Param ("step" ) String step ,
334+ @ Param ("coldStage" ) Optional <Boolean > coldStage ,
335+ @ Param ("serviceLayer" ) Optional <String > serviceLayer ) {
322336 Duration duration = new Duration ();
323337 duration .setStart (startTime );
324338 duration .setEnd (endTime );
@@ -333,11 +347,11 @@ public String getGlobalTopology(@Param("startTime") String startTime,
333347 @ SneakyThrows
334348 @ Get ("/debugging/query/topology/getServicesTopology" )
335349 public String getServicesTopology (@ Param ("startTime" ) String startTime ,
336- @ Param ("endTime" ) String endTime ,
337- @ Param ("step" ) String step ,
338- @ Param ("coldStage" ) Optional <Boolean > coldStage ,
339- @ Param ("serviceLayer" ) String serviceLayer ,
340- @ Param ("services" ) String services ) {
350+ @ Param ("endTime" ) String endTime ,
351+ @ Param ("step" ) String step ,
352+ @ Param ("coldStage" ) Optional <Boolean > coldStage ,
353+ @ Param ("serviceLayer" ) String serviceLayer ,
354+ @ Param ("services" ) String services ) {
341355 Duration duration = new Duration ();
342356 duration .setStart (startTime );
343357 duration .setEnd (endTime );
@@ -367,9 +381,12 @@ public String getServiceInstanceTopology(@Param("startTime") String startTime,
367381 duration .setEnd (endTime );
368382 duration .setStep (Step .valueOf (step ));
369383 coldStage .ifPresent (duration ::setColdStage );
370- String clientServiceId = IDManager .ServiceID .buildId (clientService , Layer .nameOf (clientServiceLayer ).isNormal ());
371- String serverServiceId = IDManager .ServiceID .buildId (serverService , Layer .nameOf (serverServiceLayer ).isNormal ());
372- ServiceInstanceTopology topology = topologyQuery .getServiceInstanceTopology (clientServiceId , serverServiceId , duration , true ).join ();
384+ String clientServiceId = IDManager .ServiceID .buildId (
385+ clientService , Layer .nameOf (clientServiceLayer ).isNormal ());
386+ String serverServiceId = IDManager .ServiceID .buildId (
387+ serverService , Layer .nameOf (serverServiceLayer ).isNormal ());
388+ ServiceInstanceTopology topology = topologyQuery .getServiceInstanceTopology (
389+ clientServiceId , serverServiceId , duration , true ).join ();
373390 DebuggingQueryInstanceTopologyRsp result = new DebuggingQueryInstanceTopologyRsp (
374391 topology .getNodes (), topology .getCalls (), transformTrace (topology .getDebuggingTrace ()));
375392 return transToYAMLString (result );
0 commit comments