SkyWalking分布式链路追踪工具的基本使用

发布时间 2023-06-10 10:22:20作者: zhangyukun

下载

我们需要一个监控中心,还有一个 java agents工具

apache-skywalking-apm(显示/存储多个程序的指标数据),APM 是 Application Performance Management 的缩写

skywalking-agent(收集单个程序的指标数据)

image-20230608165120234

启动Skywalking和 java程序

  1. apache-skywalking-apm\bin\startup.bat可以直接启动 Skywalking APM

  2. 修改skywalking-agent里面的config\agent.config 约20行,写入你服务的名字

# The service name in UI
# ${service name} = [${group name}::]${logic name}
# The group name is optional only.
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
agent.service_name=你的服务名字,多个逗号分割

  1. 在java程序启动参数中指定 java agent.jar的位置
    image-20230608165757199

备注:skywalking-agent.jar 在 skywalking-agent 包的 根目录下面。

备注:如果是jar包启动

java -javaagent:xxx路径\skywalking-agent.jar=agent.service_name=服务名字 -jar xxx.jar

查看监控数据

访问:http://127.0.0.1:8080/,就可以查看通过 agent 推送到 Sykwalking 里面的数据。

服务
image-20230608170533699

拓扑

image-20230608170553152

调用链路追踪
image-20230608170606302

redis的调用情况image-20230608170748571

数据库的访问情况
image-20230608170948154

指标数据的存储

修改:apache-skywalking-apm\config\application.yml 里面 storage 标签下面的存储方式就行

storage:
  selector: ${SW_STORAGE:mysql}  #修改成mysql或者elasticsearch,默认是h2
  elasticsearch:
    namespace: ${SW_NAMESPACE:""}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}
    socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
    responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}
    numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
    user: ${SW_ES_USER:""}
    password: ${SW_ES_PASSWORD:""}
    trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
    trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
	.....
  mysql:
    properties:
      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest?rewriteBatchedStatements=true"}
      dataSource.user: ${SW_DATA_SOURCE_USER:root}
      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root@1234}
	  .....