zoukankan      html  css  js  c++  java
  • 性能监控-skywalking的了解和使用

    简单操作就可以使用,方便监控服务运行情况

     

    一. 概述

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

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

    二. 架构

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

    image

    • 探针 基于不同的来源可能是不一样的, 但作用都是收集数据, 将数据格式化为 SkyWalking 适用的格式.

    • 平台后端, 支持数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。分析包括 Skywalking 原生追踪和性能指标以及第三方来源,包括 Istio 及 Envoy telemetry , Zipkin 追踪格式化等。

    • 存储 通过开放的插件化的接口存放 SkyWalking 数据. 你可以选择一个既有的存储系统, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也可以选择自己实现一个存储系统. 当然, 我们非常欢迎你贡献新的存储系统实现。

    • UI 一个基于接口高度定制化的Web系统,用户可以可视化查看和管理 SkyWalking 数据。

    三. 安装-java

    1. 基本环境

    jdk和elasticsearch的下载安装自行百度

    jdk1.8
    elasticsearch-7.8.1
    apache-skywalking-apm-es7-8.3.0

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

     

    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 -jar yourApp.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

    如图:

     

    五,功能介绍

    • 仪表盘

    1. 吞吐量CPM,表示每分钟的调用.

    1. Apdex分数:衡量服务器性能的标准

    1. 响应时间百分比,包括 p99, p95, p90, p75, p50.

    1. SLA表示成功率。对于HTTP,表示响应为200的请求.

    监控数据汇总:

    服务维度的数据:

     

    • 拓扑图

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

    1. 拓扑显示包含所有服务的默认全局拓扑.

    2. 服务选择器 支持显示直接关系,包括上游和下游.

    3. 自定义组 提供服务组的任意子拓扑功能.

    4. 服务下钻 当单击任何服务时打开。该图形可以对所选择的服务进行度量、跟踪和告警查询.

    5. 服务指标的关系 提供服务RPC交互的度量以及这两个服务的实例.

     

    • 跟踪查询

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

     

    1. 跟踪部分列表 不是跟踪列表。每个跟踪都有几个属于不同服务的段。 如果通过所有服务或通过跟踪id进行查询,可以在其中列出具有相同跟踪id的不同段.

    1. 跨度 是否可单击,每个跨度的细节将在左侧弹出.

    1. 跟踪视图 提供3个典型的和不同的使用视图来可视化跟踪.

    2. 关联的服务 显示接口调用中经过的所有服务

     

    • 性能剖析

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

    1. 选择特定的服务。

    2. 设置端点名称。这个端点名通常是第一个span的操作名。在追踪查询上找到这个 段列表视图。

    3. 监控时间可以从现在开始,也可以从未来的任何时间开始。

    4. 监视持续时间定义了观察时间窗口,以查找合适的请求进行性能分析。 即使概要文件对目标系统的性能影响非常有限,但它仍然是一个额外的负载。这个时间 使冲击可控。

    5. 最小持续时间阈值提供了一个过滤器机制,如果给定端点响应的请求很快,它就不会异形。这可以确保配置的数据是预期的数据。

    6. 最大抽样计数表示agent将收集的最大数据集。它有助于减少内存和网络负载。

    7. 一个隐式条件,在任何时候,skywalk只接受一个配置文件任务的每个服务

    8. 代理可以有不同的设置来控制或限制此特性,请阅读文档设置以了解更多细节。

    9. 并不是所有的SkyWalking生态系统代理都支持此特性,7.0.0中的java代理默认支持此特性。

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

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

    参考:
    官网:https://skywalking.apache.org/docs/

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

  • 相关阅读:
    整体的一个学习线路图
    PyCharm快捷键
    iOS从初级至高级开发工程师面试知识点
    第1章 iOS逆向工程简介
    iOS逆向工程分析与实战-开篇
    《牧羊少年奇幻之旅》读书笔记
    《如何高效学习》读书笔记
    函数式编程-RAC学习笔记
    iOS 能实现一键分享多图到朋友圈吗
    VC/MFC动态画线,画圆,画椭圆,画矩形 .
  • 原文地址:https://www.cnblogs.com/sunjiguang/p/14841368.html
Copyright © 2011-2022 走看看