可视化监控应用性能-skywalking

这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战java

微服务体系下须要对各个服务进行监控,或者在对服务进行压测的时候都须要观察服务性能,咱们选择使用skywalking来完成这个功能,skywalking简单操做就可使用,也方便监控服务运行状况。mysql

官网:skywalking.apache.org/docs/git

中文文档:skyapm.github.io/github

一. 概述

基于Skywalking,提供分布式服务链路追踪,服务依赖拓扑绘制,慢端点、慢SQL等面板展现能力,以及服务告警能力,同时自带显示面板,能够提供先后端调用链整合能力。支持多种语言:如 Java, C# , Node.js , Go , PHP 以及 Nginx LUA。sql

SkyWalking 为 服务(service) , 服务实例(service instance) , 以及 端点(endpoint) 提供了可观测能力。apache

二. 架构

SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面.后端

image.png

  • 探针 基于不一样的来源多是不同的, 但做用都是收集数据, 将数据格式化为 SkyWalking 适用的格式.
  • 平台后端, 支持数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。分析包括 Skywalking 原生追踪和性能指标以及第三方来源,包括 Istio 及 Envoy telemetry , Zipkin 追踪格式化等。
  • 存储 经过开放的插件化的接口存放 SkyWalking 数据. 你能够选择一个既有的存储系统, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也能够选择本身实现一个存储系统. 固然, 咱们很是欢迎你贡献新的存储系统实现。
  • UI 一个基于接口高度定制化的Web系统,用户能够可视化查看和管理 SkyWalking 数据。

三. 安装-java版

1. 基本环境

须要的jdk和elasticsearch的下载安装自行百度服务器

下载对应的apm包,skywalking下载地址:skywalking.apache.org/downloads/ 安装:markdown

jdk1.8
elasticsearch-7.8.1
apache-skywalking-apm-es7-8.3.0
复制代码

image.png

2. 解压apache-skywalking-apm-es7-8.3.0.tar.gz并配置
  • 解压后的内容
  • 修改config/application.yml中配置存储(本次测试使用elasticsearch7)

存储有多种方式:elasticsearch6,7/h2/mysql/tidb/influxdb网络

配置以下

storage:
selector: ${SW_STORAGE:elasticsearch7}
elasticsearch7:
  nameSpace: ${SW_NAMESPACE:""}
  clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
  user: ${SW_ES_USER:""}
  password: ${SW_ES_PASSWORD:""}
复制代码
3. 启动skywalking

启动以前确认elasticsearch已经启动且正常运行

在bin目录下执行 startup.sh脚本启动

访问localhost:8080便可打开UI界面

四,启动应用程序

  • -Dskywalking.agent.namespace 命名空间---能够区分不一样的环境
  • -Dskywalking.agent.service_name 服务的名字
  • -Dskywalking.collector.backend_service skywalking的接口地址(启动默认端口11800)

jar启动:(包含skywalking-agent.jar完整路径,并且不能移动jar)

java -javaagent:/developSoftware/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.agent.namespace=ajisun-dev -Dskywalking.agent.service_name=ajisun-dev:ajisun-platform -Dskywalking.collector.backend_service=localhost:11800 -jaryourApp.jar
复制代码

idea中启动:(在VM options中写入)

-javaagent:/developSoftware/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.agent.namespace=ajisun-dev -Dskywalking.agent.service_name=ajisun-dev:ajisun-platform -Dskywalking.collector.backend_service=localhost:11800
复制代码

如图:

image.png

启动后效果:

五,功能介绍

1. 仪表盘
  1. 吞吐量CPM,表示每分钟的调用.
  2. Apdex分数:衡量服务器性能的标准
  3. 响应时间百分比,包括 p99, p95, p90, p75, p50.
  4. SLA表示成功率。对于HTTP,表示响应为200的请求.

监控数据汇总:

image.png

服务维度的数据:

image.png

2. 拓扑图

拓扑图用指标显示服务和实例之间的关系.,点击服务显示监控数据

image.png

  1. 拓扑显示包含全部服务的默认全局拓扑.
  2. 服务选择器 支持显示直接关系,包括上游和下游.
  3. 自定义组 提供服务组的任意子拓扑功能.
  4. 服务下钻 当单击任何服务时打开。该图形能够对所选择的服务进行度量、跟踪和告警查询.
  5. 服务指标的关系 提供服务RPC交互的度量以及这两个服务的实例.
3. 跟踪查询

跟踪查询是与skywalk提供的分布式代理同样的典型特性.

image.png

  1. 跟踪部分列表 不是跟踪列表。每一个跟踪都有几个属于不一样服务的段。 若是经过全部服务或经过跟踪id进行查询,能够在其中列出具备相同跟踪id的不一样段.
  2. 跨度 是否可单击,每一个跨度的细节将在左侧弹出.
  3. 跟踪视图 提供3个典型的和不一样的使用视图来可视化跟踪.
  4. 关联的服务 显示接口调用中通过的全部服务
4. 性能剖析

一个交互特性。提供了方法级的性能诊断.

  1. 选择特定的服务。
  2. 设置端点名称。这个端点名一般是第一个span的操做名。在追踪查询上找到这个 段列表视图。
  3. 监控时间能够从如今开始,也能够从将来的任什么时候间开始。
  4. 监视持续时间定义了观察时间窗口,以查找合适的请求进行性能分析。 即便概要文件对目标系统的性能影响很是有限,但它仍然是一个额外的负载。这个时间 使冲击可控。
  5. 最小持续时间阈值提供了一个过滤器机制,若是给定端点响应的请求很快,它就不会异形。这能够确保配置的数据是预期的数据。
  6. 最大抽样计数表示agent将收集的最大数据集。它有助于减小内存和网络负载。
  7. 一个隐式条件,在任什么时候候,skywalk只接受一个配置文件任务的每一个服务
  8. 代理能够有不一样的设置来控制或限制此特性,请阅读文档设置以了解更多细节。
  9. 并非全部的SkyWalking生态系统代理都支持此特性,7.0.0中的java代理默认支持此特性。

一旦配置文件完成,配置的跟踪段就会显示出来。你能够要求分析任意张成的空间。 一般,咱们分析跨度具备较长的自持续时间,若是跨度及其子跨度都具备较长的持续时间,则能够进行选择 “包括子跨度”或“排除子跨度”来设定分析界限。

选择正确的跨度后,单击“analysis”按钮,您将看到基于堆栈的分析结果。最慢的方法 已被高亮显示

参考:skyapm.github.io/

相关文章
相关标签/搜索