APM工具寻找了一圈,发现SkyWalking才是我的真爱

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/SpringForAll/article/details/102772102

▶ 概述

SkyWalking 是一个开源的 APM 系统,核心功能如下:

  • 服务、服务实例、端点指标分析
  • 根本原因分析
  • 服务拓扑图分析
  • 服务、服务实例和端点依赖性分析
  • 慢服务和端点检测
  • 性能优化
  • 分布式跟踪和上下文传播
  • 数据库访问指标,慢 SQL 检测(包括 SQL 语句)
  • 报警

▶ SkyWalking 架构图

SkyWalking 支持多种来源和多种格式的 traces / metrics 数据,包括:

  1. Java, .NET Core, NodeJS and PHP auto-instrument agents in SkyWalking format
  2. Istio telemetry format
  3. Zipkin v1/v2 format
  4. Jaeger gRPC format.
  5. Envoy metrics format (the metric entries itself is prometheus client metric family)

▶ 部署 SkyWalking OAP & SkyWalking UI

参考文档:Docker 部署 SkyWalking OAP & UI

▶ 示例:Spring Boot & SkyWalking Java Agent

1、获取 Java Agent 库

参考 Docker 镜像 - 构建 SkyWalking OAP & UI ,编译后,Java Agent 即为 skywalking-agent/skywalking-agent.jar, agent 配置文件为 skywalking-agent/config/agent.config

2、启动 Spring Boot 应用

以 spring-boot-demos/hello spring boot 项目作为示例,使用 maven 打包后,通过如下命令启动服务:

    java \
    -javaagent:/<skywalking-project-path>/skywalking-agent/skywalking-agent.jar \
    -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 \
    -DSW_AGENT_NAME=spring-boot \
    -jar hello-world-1.0-SNAPSHOT.jar

输出日志类似如下代表 Agent 启动成功:

    DEBUG 2019-05-08 11:58:52:399 main AgentPackagePath :  The beacon class location is jar:file:/Users/admin/docker/skywalking/apache-skywalking-apm-6.1.0/skywalking-agent/skywalking-agent.jar!/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.class.
    INFO 2019-05-08 11:58:52:401 main SnifferConfigInitializer :  Config file found in /Users/admin/docker/skywalking/apache-skywalking-apm-6.1.0/skywalking-agent/config/agent.config.
    .........

3、任意访问 Spring Boot 服务的地址,即可自动采集信息

  • http://localhost:8080/

SkyWalking UI Dashboard

仪表盘

拓扑图

往期推荐

Spring Boot 注入外部配置到应用内部的静态变量

将 HTML 转化为 PDF新姿势

Java 使用 UnixSocket 调用 Docker API

Fastjson致命缺陷

Service Mesh - gRPC 本地联调远程服务

使用 Thymeleaf 动态渲染 HTML

Fastjson致命缺陷

Spring Boot 2 集成log4j2日志框架

Java面试通关要点汇总集之核心篇参考答案

Java面试通关要点汇总集之框架篇参考答案

Spring Security 实战干货:如何保护用户密码

Spring Boot RabbitMQ - 优先级队列

本文由博客一文多发平台 OpenWrite 发布!

猜你喜欢

转载自blog.csdn.net/SpringForAll/article/details/102772102
今日推荐