之前链路追踪的时候简单的有sleuth, 可以实现每个请求加一个traceId 和 spanId。其只是简单的对请求链路进行追踪,也基于slf4j的MDC 实现了日志增加输出链路信息,排错误的时候可以看到一些路由信息。
skywalking 比较全面,基于javaagent 探针技术,可以监测的信息比较多,比如链路信息、实例信息、数据库、vm、k8s 等都支持。并且也实现了日志采集以及日志分析。 简单研究下其使用。
参考: https://skywalking.apache.org/
1. 下载解压
我下载的版本是apache-skywalking-apm-bin-es7, 下载解压后目录如下:
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211209144747164-238883197.png)
2. 修改配置
修改存储采用mysql, 在自己的mysql 服务器上创建swtest 数据库。
修改%skywalking%/config/application.yml 配置文件。 修改数据源采用mysql: 大概112 行左右, 修改默认数据源采用mysql
storage:
selector: ${SW_STORAGE:mysql}
修改172 行左右mysql 相关配置(主要是账号密码相关)
mysql:
properties:
jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"}
dataSource.user: ${SW_DATA_SOURCE_USER:root}
dataSource.password: ${SW_DATA_SOURCE_PASSWORD:123456}
dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
maxSizeOfArrayColumn: ${SW_STORAGE_MAX_SIZE_OF_ARRAY_COLUMN:20}
numOfSearchableValuesPerTag: ${SW_STORAGE_NUM_OF_SEARCHABLE_VALUES_PER_TAG:2}
3. 启动应用
%skywalking%/bin/startup.bat 启动应用
点击后可以看到启动两个窗口,一个Collector, 一个Webapp
1. Collector
2. Webapp 相关jar 包以及配置在%skywalking%/webapp 目录下面, 其中的配置可以用于修改web 服务启动的端口相关信息
访问8080 端口测试如下:
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211209165016399-1465532291.png)
4. 应用程序接入sky
应用程序接入的时候是通过javaagent 代理的时候接入的。
(1) 网关服务接入
-javaagent:D:\study\skywalking\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=gateway -Dskywalking.collector.backend_service=127.0.0.1:11800
-javaagent:指定skywalking中的agent中的skywalking-agent.jar的路径
-Dskywalking.agent.service_name:指定在skywalking中的服务名称,一般是微服务的spring.application.name
-Dskywalking.collector.backend_service:指定oap服务绑定的地址,我这里是本地,并且oap服务默认的端口是11800,因此只需要配置为127.0.0.1:11800
(2) producer 服务接入
-javaagent:D:\study\skywalking\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=sky-producer -Dskywalking.collector.backend_service=127.0.0.1:11800
(3) consumer 接入
-javaagent:D:\study\skywalking\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=sky-producer -Dskywalking.collector.backend_service=127.0.0.1:11800
5. 启动后访问后端一些请求查看sky
(1) 查看拓扑图
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211209175640123-1361736897.png)
(2) 追踪: 可以看到一些请求的链路信息
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211209175824302-615918691.png)
(3) 另外sky 也能追踪一些Feign 接口以及一些mysql 查询相关,可以说非常的方便。 比如自己再加入两个服务,一个payment 服务是调用数据库查询,另一个通过OpenFeign 调用该接口,查看追踪信息如下
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211209181818619-763764444.png)
继续点击mysql那一条记录, 可以看到打出相关的mysql 执行的服务器以及语句如下
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211209181934966-1922127321.png)
(4) 查看仪表盘信息, 仪表盘有各个服务的信息,也有数据库相关信息
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211209182157751-1367635625.png)
数据库信息如下:
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211209182221697-2101455094.png)
6. 业务系统日志接入skywalking
业务系统接入日志有两种方式, 第一种是自己系统内部接入,只是给每个请求接入一个traceId, 想当于一个请求链有一个traceId, 但是日志不上报到skywalking 服务器; 第二种就是生成traceId 的同时将日志传输到skywalking。
第一种:控制台日志和文件日志加入tid, 便于链路追踪查看日志
1》 pom 文件加入
org.apache.skywalking
apm-toolkit-logback-1.x
8.5.0
2》 两个jvm 参数开启日志插件
producer:
-javaagent:D:\study\skywalking\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=sky-producer -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.plugin.toolkit.log.grpc.reporter.server_host=127.0.0.1 -Dskywalking.plugin.toolkit.log.grpc.reporter.server_port=11800
consumer:
-javaagent:D:\study\skywalking\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=sky-consumer -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.plugin.toolkit.log.grpc.reporter.server_host=127.0.0.1 -Dskywalking.plugin.toolkit.log.grpc.reporter.server_port=11800
3》 增加logback-spring.xml, 配置如下
producer:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
${LOG_PATTERN}
${LOG_HOME}${APP_NAME}.%d{yyyy-MM-dd}.log
${LOG_FILE_EXPIRE_TIME}
${LOG_PATTERN}
View Code
consumer:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
${LOG_PATTERN}
${LOG_HOME}${APP_NAME}.%d{yyyy-MM-dd}.log
${LOG_FILE_EXPIRE_TIME}
${LOG_PATTERN}
View Code
4》 测试代码:
sky-producer 服务接口:
package cn.qz.controller;
import cn.qz.cloud.utils.JSONResultUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
@RestController
@RequestMapping("/sky-producer")
@Slf4j
public class SkyProducerController {
@Value("${server.port}")
private String port;
@GetMapping("/port")
public JSONResultUtil port(ServletRequest servletRequest) {
HttpServletRequest request = (HttpServletRequest) servletRequest;
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String s = headerNames.nextElement();
log.info("header: {}, value: {}", s, request.getHeader(s));
}
log.info("port: {}", port);
return JSONResultUtil.successWithData(port);
}
}
sky-consumer 服务代码: 通过restTemplate 调用producer 服务
package cn.qz.cloud.controller;
import cn.qz.cloud.utils.JSONResultUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
@RequestMapping("/sky-consumer")
@Slf4j
public class SkyConsumerController {
@Autowired
private RestTemplate restTemplate;
@Value("${server.port}")
private String port;
@GetMapping("/port")
public JSONResultUtil port() {
log.info("port: {}", port);
return JSONResultUtil.successWithData(port);
}
@GetMapping("/producer-port")
public JSONResultUtil producerPort() {
JSONResultUtil result = restTemplate.getForObject("http://cloud-skywalking-producer/sky-producer/port", JSONResultUtil.class);
log.info("producer-port: {}", result.getData());
return result;
}
}
5》 测试: 访问两次
XXX@XXX-NC01 MINGW64 /e/ideaspace/imc (dev)
$ curl http://localhost:6062/sky-consumer/producer-port
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 52 0 52 0 0 1733 0 --:--:-- --:--:-- --:--:-- 1793{"success":true,"code":"200","msg":"","data":"6061"}
XXX@XXX-NC01 MINGW64 /e/ideaspace/imc (dev)
$ curl http://localhost:6062/sky-consumer/producer-port
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 52 0 52 0 0 1793 0 --:--:-- --:--:-- --:--:-- 1793{"success":true,"code":"200","msg":"","data":"6061"}
6》 查看日志: 可以看到两次请求生成的TID 不同
consumer:
2021-12-10 10:59:51 | INFO | TID:864ed656592848f8802017f8d40db60e.60.16391051914600001 | http-nio-6062-exec-5 | cn.qz.cloud.controller.SkyConsumerController | producer-port: 6061
2021-12-10 11:01:18 | INFO | TID:864ed656592848f8802017f8d40db60e.58.16391052783780001 | http-nio-6062-exec-3 | cn.qz.cloud.controller.SkyConsumerController | producer-port: 6061
producer:
2021-12-10 10:59:51 | INFO | TID:864ed656592848f8802017f8d40db60e.60.16391051914600001 | http-nio-6061-exec-2 | cn.qz.controller.SkyProducerController | header: sw8, value: 1-ODY0ZWQ2NTY1OTI4NDhmODgwMjAxN2Y4ZDQwZGI2MGUuNjAuMTYzOTEwNTE5MTQ2MDAwMDE=-ODY0ZWQ2NTY1OTI4NDhmODgwMjAxN2Y4ZDQwZGI2MGUuNjAuMTYzOTEwNTE5MTQ2MDAwMDA=-1-c2t5LWNvbnN1bWVy-NzVjYmIxZDZhYzFiNDIzNGIzNmFjNmMzMWIxN2E4MjlAMTkyLjE2OC45OS4x-e0dFVH0vc2t5LWNvbnN1bWVyL3Byb2R1Y2VyLXBvcnQ=-Y2xvdWQtc2t5d2Fsa2luZy1wcm9kdWNlcjo4MA==
2021-12-10 10:59:51 | INFO | TID:864ed656592848f8802017f8d40db60e.60.16391051914600001 | http-nio-6061-exec-2 | cn.qz.controller.SkyProducerController | header: sw8-correlation, value:
2021-12-10 10:59:51 | INFO | TID:864ed656592848f8802017f8d40db60e.60.16391051914600001 | http-nio-6061-exec-2 | cn.qz.controller.SkyProducerController | header: sw8-x, value: 0-
2021-12-10 10:59:51 | INFO | TID:864ed656592848f8802017f8d40db60e.60.16391051914600001 | http-nio-6061-exec-2 | cn.qz.controller.SkyProducerController | header: accept, value: application/json, application/*+json
2021-12-10 10:59:51 | INFO | TID:864ed656592848f8802017f8d40db60e.60.16391051914600001 | http-nio-6061-exec-2 | cn.qz.controller.SkyProducerController | header: user-agent, value: Java/1.8.0_291
2021-12-10 10:59:51 | INFO | TID:864ed656592848f8802017f8d40db60e.60.16391051914600001 | http-nio-6061-exec-2 | cn.qz.controller.SkyProducerController | header: host, value: localhost:6061
2021-12-10 10:59:51 | INFO | TID:864ed656592848f8802017f8d40db60e.60.16391051914600001 | http-nio-6061-exec-2 | cn.qz.controller.SkyProducerController | header: connection, value: keep-alive
2021-12-10 10:59:51 | INFO | TID:864ed656592848f8802017f8d40db60e.60.16391051914600001 | http-nio-6061-exec-2 | cn.qz.controller.SkyProducerController | port: 6061
2021-12-10 11:01:18 | INFO | TID:864ed656592848f8802017f8d40db60e.58.16391052783780001 | http-nio-6061-exec-4 | cn.qz.controller.SkyProducerController | header: sw8, value: 1-ODY0ZWQ2NTY1OTI4NDhmODgwMjAxN2Y4ZDQwZGI2MGUuNTguMTYzOTEwNTI3ODM3ODAwMDE=-ODY0ZWQ2NTY1OTI4NDhmODgwMjAxN2Y4ZDQwZGI2MGUuNTguMTYzOTEwNTI3ODM3ODAwMDA=-1-c2t5LWNvbnN1bWVy-NzVjYmIxZDZhYzFiNDIzNGIzNmFjNmMzMWIxN2E4MjlAMTkyLjE2OC45OS4x-e0dFVH0vc2t5LWNvbnN1bWVyL3Byb2R1Y2VyLXBvcnQ=-Y2xvdWQtc2t5d2Fsa2luZy1wcm9kdWNlcjo4MA==
2021-12-10 11:01:18 | INFO | TID:864ed656592848f8802017f8d40db60e.58.16391052783780001 | http-nio-6061-exec-4 | cn.qz.controller.SkyProducerController | header: sw8-correlation, value:
2021-12-10 11:01:18 | INFO | TID:864ed656592848f8802017f8d40db60e.58.16391052783780001 | http-nio-6061-exec-4 | cn.qz.controller.SkyProducerController | header: sw8-x, value: 0-
2021-12-10 11:01:18 | INFO | TID:864ed656592848f8802017f8d40db60e.58.16391052783780001 | http-nio-6061-exec-4 | cn.qz.controller.SkyProducerController | header: accept, value: application/json, application/*+json
2021-12-10 11:01:18 | INFO | TID:864ed656592848f8802017f8d40db60e.58.16391052783780001 | http-nio-6061-exec-4 | cn.qz.controller.SkyProducerController | header: user-agent, value: Java/1.8.0_291
2021-12-10 11:01:18 | INFO | TID:864ed656592848f8802017f8d40db60e.58.16391052783780001 | http-nio-6061-exec-4 | cn.qz.controller.SkyProducerController | header: host, value: localhost:6061
2021-12-10 11:01:18 | INFO | TID:864ed656592848f8802017f8d40db60e.58.16391052783780001 | http-nio-6061-exec-4 | cn.qz.controller.SkyProducerController | header: connection, value: keep-alive
2021-12-10 11:01:18 | INFO | TID:864ed656592848f8802017f8d40db60e.58.16391052783780001 | http-nio-6061-exec-4 | cn.qz.controller.SkyProducerController | port: 6061
7》 查看文件
查看本地日志文件可以看到和上面一样, 有TID相关信息
8》 小结
org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout 源码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package org.apache.skywalking.apm.toolkit.log.logback.v1.x;
import ch.qos.logback.classic.PatternLayout;
public class TraceIdPatternLogbackLayout extends PatternLayout {
public TraceIdPatternLogbackLayout() {
}
static {
defaultConverterMap.put("tid", LogbackPatternConverter.class.getName());
}
}
View Code
ch.qos.logback.classic.PatternLayout 源码 可以看到一些默认的配置信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/**
* Logback: the reliable, generic, fast and flexible logging framework.
* Copyright (C) 1999-2015, QOS.ch. All rights reserved.
*
* This program and the accompanying materials are dual-licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation
*
* or (per the licensee's choosing)
*
* under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation.
*/
package ch.qos.logback.classic;
import java.util.HashMap;
import java.util.Map;
import ch.qos.logback.classic.pattern.*;
import ch.qos.logback.classic.pattern.color.HighlightingCompositeConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.CoreConstants;
import ch.qos.logback.core.pattern.PatternLayoutBase;
import ch.qos.logback.core.pattern.color.*;
import ch.qos.logback.core.pattern.parser.Parser;
/**
*
* A flexible layout configurable with pattern string. The goal of this class is
* to {@link #format format} a {@link ILoggingEvent} and return the results in a
* {#link String}. The format of the result depends on the
* conversion pattern.
*
* For more information about this layout, please refer to the online manual at
* http://logback.qos.ch/manual/layouts.html#PatternLayout
*
*/
public class PatternLayout extends PatternLayoutBase {
public static final Map defaultConverterMap = new HashMap();
public static final String HEADER_PREFIX = "#logback.classic pattern: ";
static {
defaultConverterMap.putAll(Parser.DEFAULT_COMPOSITE_CONVERTER_MAP);
defaultConverterMap.put("d", DateConverter.class.getName());
defaultConverterMap.put("date", DateConverter.class.getName());
defaultConverterMap.put("r", RelativeTimeConverter.class.getName());
defaultConverterMap.put("relative", RelativeTimeConverter.class.getName());
defaultConverterMap.put("level", LevelConverter.class.getName());
defaultConverterMap.put("le", LevelConverter.class.getName());
defaultConverterMap.put("p", LevelConverter.class.getName());
defaultConverterMap.put("t", ThreadConverter.class.getName());
defaultConverterMap.put("thread", ThreadConverter.class.getName());
defaultConverterMap.put("lo", LoggerConverter.class.getName());
defaultConverterMap.put("logger", LoggerConverter.class.getName());
defaultConverterMap.put("c", LoggerConverter.class.getName());
defaultConverterMap.put("m", MessageConverter.class.getName());
defaultConverterMap.put("msg", MessageConverter.class.getName());
defaultConverterMap.put("message", MessageConverter.class.getName());
defaultConverterMap.put("C", ClassOfCallerConverter.class.getName());
defaultConverterMap.put("class", ClassOfCallerConverter.class.getName());
defaultConverterMap.put("M", MethodOfCallerConverter.class.getName());
defaultConverterMap.put("method", MethodOfCallerConverter.class.getName());
defaultConverterMap.put("L", LineOfCallerConverter.class.getName());
defaultConverterMap.put("line", LineOfCallerConverter.class.getName());
defaultConverterMap.put("F", FileOfCallerConverter.class.getName());
defaultConverterMap.put("file", FileOfCallerConverter.class.getName());
defaultConverterMap.put("X", MDCConverter.class.getName());
defaultConverterMap.put("mdc", MDCConverter.class.getName());
defaultConverterMap.put("ex", ThrowableProxyConverter.class.getName());
defaultConverterMap.put("exception", ThrowableProxyConverter.class.getName());
defaultConverterMap.put("rEx", RootCauseFirstThrowableProxyConverter.class.getName());
defaultConverterMap.put("rootException", RootCauseFirstThrowableProxyConverter.class.getName());
defaultConverterMap.put("throwable", ThrowableProxyConverter.class.getName());
defaultConverterMap.put("xEx", ExtendedThrowableProxyConverter.class.getName());
defaultConverterMap.put("xException", ExtendedThrowableProxyConverter.class.getName());
defaultConverterMap.put("xThrowable", ExtendedThrowableProxyConverter.class.getName());
defaultConverterMap.put("nopex", NopThrowableInformationConverter.class.getName());
defaultConverterMap.put("nopexception", NopThrowableInformationConverter.class.getName());
defaultConverterMap.put("cn", ContextNameConverter.class.getName());
defaultConverterMap.put("contextName", ContextNameConverter.class.getName());
defaultConverterMap.put("caller", CallerDataConverter.class.getName());
defaultConverterMap.put("marker", MarkerConverter.class.getName());
defaultConverterMap.put("property", PropertyConverter.class.getName());
defaultConverterMap.put("n", LineSeparatorConverter.class.getName());
defaultConverterMap.put("black", BlackCompositeConverter.class.getName());
defaultConverterMap.put("red", RedCompositeConverter.class.getName());
defaultConverterMap.put("green", GreenCompositeConverter.class.getName());
defaultConverterMap.put("yellow", YellowCompositeConverter.class.getName());
defaultConverterMap.put("blue", BlueCompositeConverter.class.getName());
defaultConverterMap.put("magenta", MagentaCompositeConverter.class.getName());
defaultConverterMap.put("cyan", CyanCompositeConverter.class.getName());
defaultConverterMap.put("white", WhiteCompositeConverter.class.getName());
defaultConverterMap.put("gray", GrayCompositeConverter.class.getName());
defaultConverterMap.put("boldRed", BoldRedCompositeConverter.class.getName());
defaultConverterMap.put("boldGreen", BoldGreenCompositeConverter.class.getName());
defaultConverterMap.put("boldYellow", BoldYellowCompositeConverter.class.getName());
defaultConverterMap.put("boldBlue", BoldBlueCompositeConverter.class.getName());
defaultConverterMap.put("boldMagenta", BoldMagentaCompositeConverter.class.getName());
defaultConverterMap.put("boldCyan", BoldCyanCompositeConverter.class.getName());
defaultConverterMap.put("boldWhite", BoldWhiteCompositeConverter.class.getName());
defaultConverterMap.put("highlight", HighlightingCompositeConverter.class.getName());
defaultConverterMap.put("lsn", LocalSequenceNumberConverter.class.getName());
}
public PatternLayout() {
this.postCompileProcessor = new EnsureExceptionHandling();
}
public Map getDefaultConverterMap() {
return defaultConverterMap;
}
public String doLayout(ILoggingEvent event) {
if (!isStarted()) {
return CoreConstants.EMPTY_STRING;
}
return writeLoopOnConverters(event);
}
@Override
protected String getPresentationHeaderPrefix() {
return HEADER_PREFIX;
}
}
View Code
第二种:增加配置, 日志传输到skywalking
1》两个服务 logback-spring.xml 增加配置
%date{yyyy-MM-dd HH:mm:ss} | %-5level | %tid | %thread | %logger | %msg%n
2》 测试后查看skywalking
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211210111713573-90294560.png)
3》 点击查看日志: 可以看到把本次链路的所有日志都搜集到一起了
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211210111735510-89148655.png)
4》 查看第一行详细日志
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211210111833851-715970624.png)
5》 到日志页面根据追踪ID 进行搜索 (相当于从所有日志中根据TRACEID 进行全局搜索)
6》 mysql 数据表查看
查看mysql 的数据表发现, 日志存在log 表。 比如我们根据traceId 去查询数据
select * from log where trace_id = 'cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001'
结果如下:
![](https://img2020.cnblogs.com/blog/1196212/202112/1196212-20211210124252351-1748506594.png)
可以看到里面用的uuid 作为id 和unique_id, 并且有trace_id 和 span_id, 类似于zipkin 的TraceId 和 SpanId。 查看skywalking的依赖包里面也有zipkin 相关的包。
为了验证数据,我们界面根据traceId 进行搜索,
请求地址为:
http://localhost:8080/graphql
请求参数:
{
"query": "query queryLogs($condition: LogQueryCondition) {\n queryLogs(condition: $condition) {\n logs {\n serviceName\n serviceId\n serviceInstanceName\n serviceInstanceId\n endpointName\n endpointId\n traceId\n timestamp\n contentType\n content\n tags {\n key\n value\n }\n }\n total\n }}",
"variables": {
"condition": {
"relatedTrace": {
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001"
},
"tags": [],
"paging": {
"pageNum": 1,
"pageSize": 22,
"needTotal": true
}
}
}
}
其返回值如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
{
"data": {
"queryLogs": {
"logs": [
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105963125,
"contentType": "TEXT",
"content": "2021-12-10 11:12:43 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | cn.qz.cloud.controller.SkyConsumerController | producer-port: 6061\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "cn.qz.cloud.controller.SkyConsumerController"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962968,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | cn.qz.controller.SkyProducerController | port: 6061\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "cn.qz.controller.SkyProducerController"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962966,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | cn.qz.controller.SkyProducerController | header: connection, value: keep-alive\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "cn.qz.controller.SkyProducerController"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962965,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | cn.qz.controller.SkyProducerController | header: accept, value: application/json, application/*+json\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "cn.qz.controller.SkyProducerController"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962965,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | cn.qz.controller.SkyProducerController | header: host, value: localhost:6061\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "cn.qz.controller.SkyProducerController"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962965,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | cn.qz.controller.SkyProducerController | header: user-agent, value: Java/1.8.0_291\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "cn.qz.controller.SkyProducerController"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962964,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | cn.qz.controller.SkyProducerController | header: sw8-x, value: 0-\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "cn.qz.controller.SkyProducerController"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962963,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | cn.qz.controller.SkyProducerController | header: sw8, value: 1-Y2I4NmE5ZTRkOGUxNDRiNmJmMDA1ZTMxMGUwYjJhZjQuNTYuMTYzOTEwNTk2MTYwODAwMDE=-Y2I4NmE5ZTRkOGUxNDRiNmJmMDA1ZTMxMGUwYjJhZjQuNTYuMTYzOTEwNTk2MTYwODAwMDA=-1-c2t5LWNvbnN1bWVy-Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x-e0dFVH0vc2t5LWNvbnN1bWVyL3Byb2R1Y2VyLXBvcnQ=-Y2xvdWQtc2t5d2Fsa2luZy1wcm9kdWNlcjo4MA==\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "cn.qz.controller.SkyProducerController"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962963,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | cn.qz.controller.SkyProducerController | header: sw8-correlation, value: \r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "cn.qz.controller.SkyProducerController"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962757,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | org.springframework.web.servlet.DispatcherServlet | Completed initialization in 28 ms\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "org.springframework.web.servlet.DispatcherServlet"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962729,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | org.springframework.web.servlet.DispatcherServlet | Initializing Servlet 'dispatcherServlet'\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "org.springframework.web.servlet.DispatcherServlet"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-producer",
"serviceId": "c2t5LXByb2R1Y2Vy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LXByb2R1Y2Vy.1_YTFiMWQyNDhjODM3NDZkOTgzZTkwYmU1MDUzNTBhOTZAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962725,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6061-exec-6 | org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] | Initializing Spring DispatcherServlet 'dispatcherServlet'\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]"
},
{
"key": "thread",
"value": "http-nio-6061-exec-6"
}
]
},
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962466,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | com.netflix.loadbalancer.DynamicServerListLoadBalancer | DynamicServerListLoadBalancer for client cloud-skywalking-producer initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=cloud-skywalking-producer,current list of Servers=[localhost:6061],Load balancer stats=Zone stats: {defaultzone=[Zone:defaultzone;\tInstance count:1;\tActive connections count: 0;\tCircuit breaker tripped count: 0;\tActive connections per server: 0.0;]\n},Server stats: [[Server:localhost:6061;\tZone:defaultZone;\tTotal Requests:0;\tSuccessive connection failure:0;\tTotal blackout seconds:0;\tLast connection made:Thu Jan 01 08:00:00 CST 1970;\tFirst connection made: Thu Jan 01 08:00:00 CST 1970;\tActive Connections:0;\ttotal failure count in last (1000) msecs:0;\taverage resp time:0.0;\t90 percentile resp time:0.0;\t95 percentile resp time:0.0;\tmin resp time:0.0;\tmax resp time:0.0;\tstddev resp time:0.0]\n]}ServerList:org.springframework.cloud.netflix.ribbon.eureka.DomainExtractingServerList@59d1ae\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "com.netflix.loadbalancer.DynamicServerListLoadBalancer"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
},
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962463,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | com.netflix.config.ChainedDynamicProperty | Flipping property: cloud-skywalking-producer.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "com.netflix.config.ChainedDynamicProperty"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
},
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962404,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | com.netflix.loadbalancer.DynamicServerListLoadBalancer | Using serverListUpdater PollingServerListUpdater\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "com.netflix.loadbalancer.DynamicServerListLoadBalancer"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
},
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962386,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | com.netflix.util.concurrent.ShutdownEnabledTimer | Shutdown hook installed for: NFLoadBalancer-PingTimer-cloud-skywalking-producer\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "com.netflix.util.concurrent.ShutdownEnabledTimer"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
},
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962386,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | com.netflix.loadbalancer.BaseLoadBalancer | Client: cloud-skywalking-producer instantiated a LoadBalancer: DynamicServerListLoadBalancer:{NFLoadBalancer:name=cloud-skywalking-producer,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:null\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "com.netflix.loadbalancer.BaseLoadBalancer"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
},
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105962283,
"contentType": "TEXT",
"content": "2021-12-10 11:12:42 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | com.netflix.config.ChainedDynamicProperty | Flipping property: cloud-skywalking-producer.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "com.netflix.config.ChainedDynamicProperty"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
},
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105961657,
"contentType": "TEXT",
"content": "2021-12-10 11:12:41 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | org.springframework.web.servlet.DispatcherServlet | Completed initialization in 21 ms\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "org.springframework.web.servlet.DispatcherServlet"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
},
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105961635,
"contentType": "TEXT",
"content": "2021-12-10 11:12:41 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | org.springframework.web.servlet.DispatcherServlet | Initializing Servlet 'dispatcherServlet'\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "org.springframework.web.servlet.DispatcherServlet"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
},
{
"serviceName": "sky-consumer",
"serviceId": "c2t5LWNvbnN1bWVy.1",
"serviceInstanceName": "[email protected]",
"serviceInstanceId": "c2t5LWNvbnN1bWVy.1_Y2RhMDE4N2FiZTAxNDIxNTlhYjY1Mjg3NDFhZjdiODBAMTkyLjE2OC45OS4x",
"traceId": "cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001",
"timestamp": 1639105961632,
"contentType": "TEXT",
"content": "2021-12-10 11:12:41 | INFO | TID:cb86a9e4d8e144b6bf005e310e0b2af4.56.16391059616080001 | http-nio-6062-exec-1 | org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] | Initializing Spring DispatcherServlet 'dispatcherServlet'\r\n",
"tags": [
{
"key": "level",
"value": "INFO"
},
{
"key": "logger",
"value": "org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]"
},
{
"key": "thread",
"value": "http-nio-6062-exec-1"
}
]
}
],
"total": 21
}
}
}
View Code
至此完成了skywalking的简单使用,个人理解如果是日志什么的,还是用ES 做存储引擎比较好。上面只是学习所以用mysql做的存储。
|