1. 程式人生 > 程式設計 >APM工具尋找了一圈,發現SkyWalking才是我的真愛

APM工具尋找了一圈,發現SkyWalking才是我的真愛

▶ 概述

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 釋出!