SkyWalking一个开源可观测性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking提供了一种简单的方法,可让你清晰的查看分布式系统、甚至是跨云环境中。它更像是现代化APM(Application Performance Manager),专为云原生、基于容器和分布式系统而设计的。css
经过在应用程序中添加 SkyWalking Agent,就能够将接口、服务、数据库、MQ等进行追踪,将追踪结果经过 HTTP 或 gRPC 发送到 SkyWalking Collecter,SkyWalking Collecter 通过分析和聚合,将结果存储到 Elasticsearch 或 H2,SkyWalking 同时提供了一个 SkyWalking UI 的可视化界面,UI 以 GraphQL + HTTP 方式获取存储数据进行展现。html
只需在项目目录下增长skywalking目录,而后再启动参数中增长jvm参数便可:
-javaagent:/path/to/skywalking-agent/skywalking-agent.jar
同时,咱们也能够修改config文件夹中agent.config的相关配置java
# 当前的应用编码,最终会显示在webui上。 # 建议一个应用的多个实例,使用有相同的application_code。请使用英文 agent.application_code=Your_ApplicationName # 每三秒采样的Trace数量 # 默认为负数,表明在保证不超过内存Buffer区的前提下,采集全部的Trace # agent.sample_n_per_3_secs=-1 # 设置须要忽略的请求地址 # 默认配置以下 # agent.ignore_suffix=.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg # 探针调试开关,若是设置为true,探针会将全部操做字节码的类输出到/debugging目录下 # skywalking团队可能在调试,须要此文件 # agent.is_open_debugging_class = true # 对应Collector的config/application.yml配置文件中 agent_server/jetty/port 配置内容 # 例如: # 单节点配置:SERVERS="127.0.0.1:8080" # 集群配置:SERVERS="10.2.45.126:8080,10.2.45.127:7600" collector.servers=127.0.0.1:10800 # 日志文件名称前缀 logging.file_name=skywalking-agent.log # 日志文件最大大小 # 若是超过此大小,则会生成新文件。 # 默认为300M logging.max_file_size=314572800 # 日志级别,默认为DEBUG。 logging.level=DEBUG
对于skywalking暂时不支持的监控,能够本身编写插件,我在项目中就遇到了使用netty封装的http请求不能被监控的情形,因而在github上找到了相关的插件:https://github.com/otyyyywangwenbin/skywalking-plugin-netty-http 编译好之后将jar加入到plugins目录,从新启动项目便可。git