分布式链路追踪-SkyWalking
说明
技术 |
版本 |
ElasticSearch |
7.12.0 |
Skywalking |
8.7.0 |
配置 SkyWalking
- 下载
- 修改管理平台配置(webapp/webapp.yml)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| server: port: 8828 spring: cloud: gateway: routes: - id: oap-route uri: lb://oap-service predicates: - Path=/graphql/** discovery: client: simple: instances: oap-service: - uri: http://127.0.0.1:12800
|
- 修改收集器配置(config/application.yml)
1 2 3 4
| storage: selector: ${SW_STORAGE:elasticsearch7} elasticsearch7: nameSpace: ${SW_NAMESPACE:"elasticsearch"}
|
- 启动 es 和 skywalking,可以看到 Skywalking-Webapp 和 Skywalking-Collector 已经在运行了
- 打开 http://localhost:8828 看到如下界面即可,当然,你现在应该是没有数据显示的
配置服务
- 修改 JVM 启动参数(每个服务都需要进行这项配置)
1 2 3
| -javaagent:D:\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=systemService -Dskywalking.plugin.jdbc.trace_sql_parameters=true
|
javaagent:探针所在的位置
这里的配置是为了覆盖 agent/config/agent.config
service_name:管理平台页面中看到的服务名称
trace_sql_parameters:输出 sql 参数
backend_service:收集器服务的地址,默认 127.0.0.1:11800
- 启动服务,随意访问几个接口,打开管理平台界面,已经有数据显示了
插件
监控 SpringCloud Gateway
将 agent/optional-plugins 下的 apm-spring-cloud-gateway-3.x-plugin-8.7.0.jar 和 apm-spring-webflux-5.x-plugin-8.7.0.jar 放到 agent/plugins 后重启服务即可
监控 Spring Bean
将 agent/optional-plugins/apm-spring-annotation-plugin-8.7.0.jar 放到 agent/plugins 后重启服务即可
监控任意代码
- 将 agent/optional-plugins/apm-customize-enhance-plugin-8.7.0.jar 放到 agent/plugins 目录下
- 在 agent 目录下创建文件 enhance.xml
1 2 3 4 5 6 7 8 9 10 11
| <?xml version="1.0" encoding="UTF-8"?> <enhanced> <class class_name="com.github.pagehelper.page.pageMethod"> <method method="startPage(int.class,int.class)" operation_name="/pageHelper" static="true"> <operation_name_suffix>arg[0]</operation_name_suffix> <operation_name_suffix>arg[1]</operation_name_suffix> <tag key="tag_1">arg[0]</tag> <log key="log_1">arg[0]</log> </method> </class> </enhanced>
|
- 修改 agent\config\agent.config 文件,plugin.customize.enhance_file=D:\apache-skywalking-apm-bin-es7\agent\enhance.xml
告警
- 修改 D:\apache-skywalking-apm-bin-es7\config\alarm-settings.yml
1 2 3 4 5 6 7 8 9 10 11
| rules: service_response_time_rule: metrics-name: service_resp_time threshold: 1000 op: ">" period: 2 count: 1 message: 服务:{}最近2分钟以内,最近1分钟的响应超过了1s webhooks: - http://127.0.0.1/notify/
|
- 告警信息示例
1 2 3 4 5 6 7 8 9 10
| [{ "scopeId": 1, "scope": "SERVICE", "name": "serviceA", "id0": 12, "id1": 0, "ruleName": "service_response_time_rule", "alarmMessage": "服务:systemService最近2分钟以内,最近1分钟的响应超过了1s", "startTime": 1636808799000 }]
|
动态配置
- 修改 D:\apache-skywalking-apm-bin-es7\config\application.yml 后重启 Skywalking
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| configuration: selector: nacos nacos: serverAddr: 127.0.0.1 port: 8848 group: skywalking namespace: public period: 10 username: nacos password: nacos
|
- 在 nacos 中添加 Skywalking 相关配置