Skywalking 应用性能监控和可观测性分析平台 简介

Skywalking 应用性能监控和可观测性分析平台 简介

  • 应用性能监控(Application Performance Monitor, APM)

一、系统观察性问题

  • 一次调用到底穿越了几个服务?
  • 在处理这次请求的时候,每个服务到底做了什么操作?
  • 如果请求变慢了,瓶颈在哪里?
  • 如果请求失败了,到底是哪个服务或服务中的哪个部分出了问题?

二、设计目标

  • 监控系统作为二线甚至三线系统,应该利用有限的环境资源,提供尽可能大的监控价值,同时尽可能降低对于运维的要求。
  • 利于二次开发和集成
  • 使用上是无代码侵入的,而这种无侵入的自动埋点基于 Java 的 JavaAgent 技术。
  • 为不同的技术栈提供统一的监控能力,更有利于公司在未来系统架构升级中保持监控系统的一致性。
  • 不是一个单纯的追踪系统,支持轻量级分析拓扑图、应用性能指标等功能。

三、技术要求

  • 命名空间,每个小组或公司掌管着不同的部分,他们不希望也不应该共享他们的度量值。
  • 支持部署在物理机、虚拟机或者Kubernetes集群中,支持ZooKeeper、Consul、Nacos和etcd中的一种集群管理工具。
  • JDK 需要 JDK 8 及以上版本
  • 不仅有 Java Agent 探针,还需要多种语言(PHP、C#、Node.js、Go等)的探针。
  • 支持的存储有Elasticsearch 6、MySQL。目前,Elasticsearch也是大多数场景所使用的的存储形式,Elasticsearch 集群可以方便地管理和水平扩展,能够适应不同条件下监控数据量不同的业务场景。
  • 对远程过程调用框架支持的范围,如Apache Dubbo、gRPC和Spring Cloud等。

四、监控指标

  • 服务数量、平均延迟、吞吐量、服务质量、延迟等高线和 TopN 指标等。

    • 各种维度的p99/p95/p90/p75/p50
      • 例如p99=200ms,代表99%的请求响应时间可以小于等于200ms。
    • 请求成功率、请求错误率。
  • 拓扑图

    • 服务依赖关系
  • Trace视图,Trace是分布式追踪的典型视图。

  • 数据库

    • 响应时间、成功率、慢SQL。
  • Kafka、RocketMQ这些常见的队列都是高性能数据处理的重要手段。

    • 可以追踪到数据是如何写入到队列中,又是如何被消费掉的。
  • 对内存型数据库Redis、文档型数据库MongoDB的支持。

    • 在数据库驱动内植入相关插件来检查客户端对数据库的访问,并没有侵入数据库服务端。

五、告警功能

  • 当告警规则达到触发条件后,需要将告警信息发送到用户指定的 Web 服务上。
    • 例如,我们可能决定采用这样的SLO:平均查询请求延迟时间应小于100ms。
    • 设置SLO时要充分与用户积极沟通,设置合理的目标。用户对性能往往存在过于理想化的需求,如果没有设置目标的过程,非常容易得到一个不切实际的性能目标,甚至性能目标会与系统的设计和维护目标背道而驰。
相关推荐
Databuff4 小时前
skywalking 快速使用入门
skywalking
摇滚侠2 天前
Apache Skywalking 实战 阅读笔记 第三章
笔记·apache·skywalking
摇滚侠3 天前
Apache Skywalking 实战 阅读笔记 第二章
笔记·apache·skywalking
Databuff3 天前
国产开源APM databuff 成为 CNCF 顶级项目opentelemetry 官宣Vendor
运维·开源·skywalking·apm·可观测性·opentelemetry
摇滚侠4 天前
Skywalking 全套教程 环境搭建 01-05
skywalking
摇滚侠4 天前
Apache Skywalking 实战 阅读笔记 第一章
笔记·apache·skywalking
就改了23 天前
Windows 环境 SkyWalking 完整实操教程
windows·微服务·skywalking
Jul1en_23 天前
【SpringCloud】SkyWalking 链路追踪知识详解及部署教程
java·后端·spring·spring cloud·skywalking
SRETalk1 个月前
SkyWalking / Jaeger / ARMS 已经有了,还需要统一可观测平台吗
skywalking·apm·jaeger·flashcat·arms