部署SkyWalking-agent

下载SkyWalking-agent并解压至/目录:

wget https://dlcdn.apache.org/skywalking/java-agent/9.0.0/apache-skywalking-java-agent-9.0.0.tgz
tar xvf apache-skywalking-java-agent-9.0.0.tgz -C /

修改agent配置文件指向SkyWalking Collector IP:

vim /skywalking-agent/config/agent.config
agent.service_name=${SW_AGENT_NAME:halo}
agent.namespace=${SW_AGENT_NAMESPACE:test-java}
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:10.2.0.15:11800}

参数解释:

  • agent.service_name:指定 SkyWalking Agent 采集的服务名称。
  • agent.namespace:指定 SkyWalking Agent 采集的服务所属的命名空间。如果未指定,则默认为 default。
  • collector.backend_service:指定 SkyWalking Collector 的地址。如果未指定,则默认为 127.0.0.1:11800。

初始化运行Halo环境并下载Halo

Halo 是一款现代化的个人独立博客系统,而且可能是最好的Java博客系统,从 1.4.3 起,版本要求为 JDK 11 以上的版本,1.4.3 以下需要 JDK 1.8 以上的版本。

安装要求:

https://docs.halo.run/getting-started/prepare

安装JDK11

yum install java-11-openjdk -y
java -version
openjdk version "11.0.20" 2023-07-18 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.20.0.8-1.el7_9) (build 11.0.20+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.20.0.8-1.el7_9) (build 11.0.20+8-LTS, mixed mode, sharing)

下载

wget https://dl.halo.run/release/halo-1.6.1.jar

启动Halo

java -javaagent:/skywalking-agent/skywalking-agent.jar -jar /apps/halo-1.6.1.jar

验证Halo能否正常工作:

[root@skywalking-agent ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name            
tcp6       0      0 :::8090                 :::*                    LISTEN      2725/java 

halo登录界面初始化并登录:

http://skywalking-agentIP:8090

按照相关要求填入administrator信息和站点信息,完成后多次访问http://skywalking-agentIP:8090
skywalking 验证数据:

skywalking-Halo

skywalking web界面介绍:

skywalking仪表盘简介:

1、常规服务-->服务

  • Service:服务列表,服务(Service)-表示对请求提供相同行为的一系列或一组工作负载(服务名称),在使用Agent或SDK的时候,可以自定义服务的名字,如果不定义的话,SkyWalking将会使用你在平台(比如 Istio)上定义的名字。
  • service names:服务名称
  • Load (calls / min):每分钟访问次数
  • Success Rate (%):成功率
  • Latency (ms):验延迟时间
  • Apdex :应用性能指数
  • Topology:架构图
  • Trace:跟踪信息
  • Log:日志

常规服务-->服务

Apdex简介:

  • Apdex全称是(Application Performance Index,应用性能指数),是由Apdex联盟开放的用于评估应用性能的标准,Apdex 联盟起源于2004年,Apdex标准从用户的角度出发,提供了一个统一的测量和报告用户体验的方法,将其量化为范围为0-1的满意度评价,把最终用户的体验和应用性能作为一个完整的指标进行统一度量.
  • 在网络中运行的任何一个应用(Web服务),它的响应时间决定了用户的满意程度,用户等待所有交互完成时间的长短直接影响了用户对应用的满意程度,这才是对用户有真正意义的“响应时间”,Apdex把完成这样一个任务所用的时间长短称为应用的“响应性”。

Apdex 定义了应用响应时间的最优门槛为T,另外根据应用响应时间结合T定义了三种不同的性能表现:

  • Satisfied(满意)-应用响应时间小于或等于Apdex阈值,比如Apdex阈值为1s,则一个耗时0.6s或者1s的响应结果则可以认为是满意的。
  • Tolerating(可容忍)-应用响应时间大于Apdex阈值,但同时小于或等于4倍的Apdex阈值,假设应用设定的Apdex阈值为1s,则4*1=4s为应用响应时间的容忍上限。
  • Frustrated(烦躁期)-应用响应时间大于4倍的Apdex阈值。

2、常规服务-->服务--> halo|test-java|-->Overview(服务概览)

  • Service Apdex(数字):当前服务的评分
  • Successful Rate(数字):请求成功率
  • Service Load (calls / min) 数字:分钟请求数
  • Service Avg Response Times(ms):平均响应延时,单位ms
  • Service Apdex(折线图):一段时间内Apdex评分
  • Service Response Time Percentile (ms)折线图:服务响应时间百分比
  • Service Load (calls / min) 折线图:分钟请求数
  • Success Rate (%)折线图:分钟请求成功百分比
  • Message Queue Consuming Count(折线图):消息队列消耗计数
  • Message Queue Avg Consuming Latency (ms)折线图:消息队列平均消耗延迟(毫秒)
  • Service Instances Load (calls / min):节点请求次数
  • Slow Service Instance (ms):每个服务实例(物理机、云主机、pod)的最大延时
  • Service Instance Success Rate (%):每个服务实例的请求成功率
  • Endpoint Load in Current Service (calls / min):每个端点(URL)的请求次数
  • Slow Endpoints in Current Service (ms):当前端点(URL)的最慢响应时间
  • Success Rate in Current Service (%):当前服务成功率(%):

常规服务-->服务--> halo|test-java|-->Overview

3、常规服务-->服务--> halo|test-java|-->Instance-->选择实例-->Overview(实例概览信息)

  • Service Instance Load (calls / min) : 当前实例的每分钟请求数。
  • Service Instance Success Rate (%): 当前实例的请求成功率。
  • Service Instance Latency (ms): 当前实例的响应延时。
  • Database Connection Pool: 数据库连接池信息
  • Thread Pool: 线程池信息

4、常规服务--->服务--> halo|test-java|-->Endpoint(端点信息)

  • Endpoints: URL
  • Load (calls / min):平均请求次数(默认时间范围半小时),比如半小时内总请求次数6次,6%30=0.20
  • Success Rate (%):平均成功率(默认时间范围半小时)
  • Latency (ms):平均延迟时间(默认时间范围半小时)

常规服务--->服务--> halo|test-java|-->Endpoint

5、常规服务-->服务-->halo|test-java|-->Topology(拓扑图)

常规服务-->服务-->halo|test-java|-->Topology

6、常规服务-->服务-->halo|test-java|-->Instance-->示例-->Trace(请求跟踪信息)

常规服务-->服务-->halo|test-java|-->Instance-->示例-->Trace

7、常规服务-->服务--> halo|test-java|-->Instance-->示例-->JVM(实例JVM信息):

  • JVM CPU (%):jvm占用CPU的百分比。
  • JVM Memory (MB):JVM内存占用大小,单位m,包括堆内存,与堆外内存(直接内存)。
  • JVM GC Time (ms):JVM垃圾回收时间,包含YGC和OGC。
  • JVM GC Count:JVM垃圾回收次数,包含YGC和OGC
  • JVM Thread Count:JVM线程计数统计
  • JVM Thread State Count:JVM线程状态计
  • JVM Class Count:JVM类计数

常规服务-->服务--> halo|test-java|-->Instance-->示例-->JVM

常规服务-->服务--> halo|magedu|-->Instance-->示例-->.NET(.NET信息):
常规服务-->服务--> halo|magedu|-->Instance-->示例-->Spring Sleuth(Spring信息):
常规服务-->服务--> halo|magedu|-->Instance-->示例-->Golang(Golang信息):
常规服务-->服务--> halo|magedu|-->Instance-->示例-->PVM( Python Virtual Machine (PVM) metrics信息):

最后修改:2023 年 10 月 30 日
如果觉得我的文章对你有用,请随意赞赏