skywalking
skywalking 插件支持与 Apache SkyWalking 集成,用于请求追踪。
SkyWalking 使用其原生的 NGINX Lua 追踪器来提供服务和 URI 视角的追踪、拓扑分析和指标。APISIX 支持使用 HTTP 协议与 SkyWalking 服务器进行交互。
示例
要按照示例操作,请按照 SkyWalking 文档 使用 Docker Compose 启动存储、OAP 和 Booster UI。设置完成后,OAP 服务器应监听 12800,你应该可以通过 http://localhost:8080 访问 UI。
更新 APISIX 配置文件 以启用 skywalking 插件(默认情况下处于禁用状态),并更新端点地址:
plugins:
- skywalking
- ...
plugin_attr:
skywalking:
report_interval: 3
service_name: APISIX
service_instance_name: APISIX Instance
endpoint_addr: http://192.168.2.103:12800
重新加载 APISIX 以使配置更改生效。
追踪所有请求
以下示例展示了如何追踪通过路由的所有请求。
创建一个启用 skywalking 的路由,并将采样率配置为 1 以追踪所有请求:
curl "http://127.0.0.1:9180/apisix/admin/routes" -X PUT \
-H "X-API-KEY: ${ADMIN_API_KEY}" \
-d '{
"id": "skywalking-route",
"uri": "/anything",
"plugins": {
"skywalking": {
"sample_ratio": 1
}
},
"upstream": {
"nodes": {
"httpbin.org:80": 1
},
"type": "roundrobin"
}
}'
向路由发送一些请求:
curl -i "http://127.0.0.1:9080/anything"
你应该会收到 HTTP/1.1 200 OK 响应。
在 SkyWalking UI 中,导航到 General Service > Services。你应该会看到一个名为 APISIX 的服务,其中包含与你的请求对应的追踪:

将追踪与日志关联
以下示例展示了如何在路由上配置 skywalking-logger 插件,以记录命中路由的请求信息。
创建一个启用 skywalking-logger 插件的路由,并使用你的 OAP 服务器 URI 配置插件:
curl "http://127.0.0.1:9180/apisix/admin/routes" -X PUT \
-H "X-API-KEY: ${ADMIN_API_KEY}" \
-d '{
"id": "skywalking-logger-route",
"uri": "/anything",
"plugins": {
"skywalking": {
"sample_ratio": 1
},
"skywalking-logger": {
"endpoint_addr": "http://192.168.2.103:12800"
}
},
"upstream": {
"nodes": {
"httpbin.org:80": 1
},
"type": "roundrobin"
}
}'
向路由生成一些请求:
curl -i "http://127.0.0.1:9080/anything"
你应该会收到 HTTP/1.1 200 OK 响应。
在 SkyWalking UI 中,导航到 General Service > Services。你应该会看到一个名为 APISIX 的服务,其中包含与你的请求对应的追踪,你可以在其中查看关联的日志:

