Apache SkyWalking

分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。

SkyWalking 是观察性分析平台和应用性能管理系统。
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案.
支持Java, .Net Core, PHP, NodeJS, Golang, LUA语言探针
支持Envoy + Istio构建的Service Mesh

Application Performance Management 应用程序性能管理 工具

我们用 APM 工具要实现的就是以下四点:
1、查看微服务节点的健康状态。
2、判断响应时间的消耗点。
3、通过我们前文中提到的定向监控手段进行详细地问题定位,细化到组件的配置、代码行和 SQL 层级。
4、最后根据定位的根本原因,提出具体的性能瓶颈解决方案。

SkyWalking 简单使用_第1张图片

1、下载文件
http://skywalking.apache.org/zh/downloads/
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz

2、安装配置

[oracle@es01 config]$ cat elasticsearch.yml |grep -v '^#'|grep -v '^$'
[oracle@es01 config]$ cat elasticsearch.yml |grep -v '^#'|grep -v '^$'
node.name: node-1
path.data: /opt/data/elasticsearch/data
path.logs: /opt/data/elasticsearch/logs
network.host: 192.168.9.178
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
[oracle@es01 config]$

nohup /opt/oracle/elasticsearch/bin/elasticsearch &

首先将默认的H2数据库配置给注释掉:

然后将elasticsearch7配置的注释解开,并修改如下:
storage:
elasticsearch7:
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.9.178:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day
otherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day
monthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
resultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}
metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}

sh bin/startup.sh

3、agent配置
三种方式:
• 使用官方提供的基础镜像
• 将 agent 包构建到已经存在的基础镜像中
• sidecar 模式挂载 agent

sidecar 模式挂载 agent
每个pod挂载远程的agent, jvm添加参数
-javaagent:/nfs/sor/soft/skywalking6/agent/skywalking-agent.jar -Dskywalking.agent.service_name=${POD_NAME} -Dskywalking.collector.backend_service=192.168.9.178:11800 -Dskywalking.logging.dir=/opt/log/skywalking-agent

4、使用

es状态查看
http://192.168.9.178:9200/_cluster/health/?pretty

es索引
http://192.168.9.178:9200/_cat/indices

Skywalking
http://192.168.9.178:8080/

仪表盘
Global

Global Heatmap
可以查看请求调用时间占比

Global Response Time Percentile
P99 是99%请求平均时间
P75 是75%请求平均时间

Global Brief
全局简要

Global Top Thoughput
最耗cpu的

Global Top Slow Endpoint
最慢的接口

拓扑图
点击图标
有关键字搜索、追踪、服务性能、端点性能功能

追踪

找到端点名称搜索完整的调用链路
可以用列表、树结构、表格 展示
点击每个链路可以查看到跨度信息