跳转到内容

SkyWalking

来自代码酷
SkyWalking
Developer(s)Apache软件基金会
Initial release2015; 10 years ago (2015)
模板:Infobox software/simple
Repository
  • {{URL|example.com|optional display text}}
Written inJava
Engine
    Operating system跨平台
    Type应用性能监控(APM)
    LicenseApache许可证2.0
    Websiteskywalking.apache.org

    SkyWalking 是一个开源的分布式系统应用性能监控(APM)工具,由Apache软件基金会孵化并毕业为顶级项目。它主要用于监控、追踪和诊断分布式系统中的性能问题,特别适合微服务架构云原生环境。

    概述[编辑 | 编辑源代码]

    SkyWalking 提供了从服务到服务、服务到基础设施的全栈监控能力,支持多种数据收集方式,包括:

    • 服务间调用链追踪
    • 服务指标监控
    • 拓扑图分析
    • 日志关联
    • 告警功能

    系统采用模块化架构设计,主要组件包括:

    • 探针(Agent):运行在应用进程中,负责数据收集
    • OAP(Observability Analysis Platform):数据处理和分析平台
    • UI:可视化展示界面
    • 存储:支持多种后端存储如ElasticsearchMySQL

    核心功能[编辑 | 编辑源代码]

    分布式追踪[编辑 | 编辑源代码]

    SkyWalking 通过分布式追踪技术,可以记录请求在分布式系统中的完整流转路径,帮助开发者理解系统行为并诊断性能瓶颈。

    服务拓扑图[编辑 | 编辑源代码]

    自动生成服务间调用关系的拓扑图,直观展示系统架构和依赖关系。

    性能指标监控[编辑 | 编辑源代码]

    收集并展示各种性能指标,包括:

    • 响应时间
    • 吞吐量
    • 错误率
    • JVM/CLR运行时指标
    • 数据库访问指标

    告警系统[编辑 | 编辑源代码]

    支持基于规则的告警配置,当系统出现异常或性能下降时自动触发告警。

    架构设计[编辑 | 编辑源代码]

    SkyWalking 采用分层架构设计:

    graph TD A[Agent/探针] -->|收集数据| B[OAP Server] B -->|存储数据| C[(Storage)] B -->|提供查询| D[UI] D -->|展示数据| E[用户]

    探针(Agent)[编辑 | 编辑源代码]

    探针以非侵入式方式嵌入到应用中,支持多种语言:

    • Java
    • .NET Core
    • Node.js
    • PHP
    • Python
    • Go
    • Lua

    OAP服务器[编辑 | 编辑源代码]

    OAP(Observability Analysis Platform)是SkyWalking的核心处理引擎,负责:

    • 接收探针上报的数据
    • 进行流式分析
    • 聚合计算
    • 持久化存储

    存储后端[编辑 | 编辑源代码]

    支持多种存储后端:

    安装与配置[编辑 | 编辑源代码]

    快速安装[编辑 | 编辑源代码]

    以下是在Linux系统上使用Docker快速部署SkyWalking的示例:

    # 拉取SkyWalking Docker镜像
    docker pull apache/skywalking-oap-server:9.4.0
    docker pull apache/skywalking-ui:9.4.0
    
    # 启动OAP服务器
    docker run --name oap -d \
        -e SW_STORAGE=elasticsearch \
        -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
        -p 12800:12800 \
        -p 11800:11800 \
        apache/skywalking-oap-server:9.4.0
    
    # 启动UI
    docker run --name ui -d \
        -e SW_OAP_ADDRESS=oap:12800 \
        -p 8080:8080 \
        apache/skywalking-ui:9.4.0
    

    Java Agent配置[编辑 | 编辑源代码]

    在Java应用中启用SkyWalking探针:

    # 启动Java应用时添加agent参数
    java -javaagent:/path/to/skywalking-agent.jar \
         -Dskywalking.agent.service_name=your-service-name \
         -Dskywalking.collector.backend_service=oap-server-ip:11800 \
         -jar your-application.jar
    

    使用案例[编辑 | 编辑源代码]

    微服务性能分析[编辑 | 编辑源代码]

    SkyWalking被广泛用于微服务架构的性能监控,可以:

    • 识别慢服务
    • 分析跨服务调用链
    • 定位性能瓶颈

    云原生环境监控[编辑 | 编辑源代码]

    Kubernetes环境中,SkyWalking可以与Service Mesh(如Istio)集成,提供更全面的可观测性。

    与其他工具对比[编辑 | 编辑源代码]

    特性 SkyWalking Zipkin Jaeger Prometheus
    分布式追踪
    指标监控
    拓扑分析
    告警功能
    多语言支持 广泛 有限 有限 有限

    社区与发展[编辑 | 编辑源代码]

    SkyWalking是Apache软件基金会的顶级项目,拥有活跃的开源社区。项目定期发布新版本,不断增加新功能和改进性能。

    参见[编辑 | 编辑源代码]

    参考资料[编辑 | 编辑源代码]