SANIC插件,使用分布式跟踪工具对带有aiozipkin的异步应用程序进行跟踪
sanic-zipkin的Python项目详细描述
#sanic zipkin
sanic插件/扩展集成aiozipkin(opentracing reporting)
\SPAN将附加(插入/提取)到该端点
*使用“logger”decorator为“methods”调用创建SPAN
*使用“sz-rpc”方法为RPC调用创建子SPAN,附加到父SPAN
sz_rpc
sz=saniczipkin(app)
`````
示例
1。运行“examples/servic_a.py”和“examples/service_b.py”
2。使用Docker运行Zipkin或Jaeger:
` Docker运行-d-p9411:9411 openzipkin/Zipkin:latest`
或
` Docker运行-d-e collector_zipkin_http_port=9411-p5775:5775/udp-p6831:6831/udp-p6832:6832/udp-p5778:5778-p16686:16686-p14268:14268-p9411:9411 Jaegertracing/all-in-one`
3。访问端点:
-`curl localhost:8000/`查看插件的基本用法
````
默认参数:
Zipkin廑u address='http://127.0.0.1:9411/api/v2/spans'
service=廑u name廑br/>host='127.0.0.1'
port=8000
sz=saniczipkin(app,service='service-a')
@app.route(“/”)
async def index(request):
return response.json({“hello”:“from index”})
````
此“/”端点将自动向zipkin添加跟踪范围
-`curl localhost:8000/2`以查看如何修饰方法和链调用
````
@logger()
async def数据库访问(上下文,数据):
等待异步睡眠(0.1)
打印(完成数据库访问)。数据:{data}')
return
@sz.route(“/2”)
async def method_call(request,context):
await db_access(context,'this is method_call data')
return response.json({“hello”:“method_call})
```
使用“@logger”修饰符生成方法的范围。注意:在这种情况下,您需要使用“@sz.route”,并将“context”参数传递给方法调用。
-`curl localhost:8000/3`要查看rpc调用的工作方式,get/post都受支持
````
@logger()
async def deporate\u demo(context,data):
等待数据库访问(context,数据)
data={payload':'rpc-call-data-of-decorate-demo'}
rsp=await sz-rpc(context,backend-service2,data,method='get')
print(rsp.status,await rsp.text())
return
@sz.route(“/3”)
async def-rpc-call(request,context):
await decorate-demo(context,'这是index4 data')
data={payload':'rpc_call的rpc调用数据'}
rsp=await sz_rpc(context,backend_service1,data)};default method='post'
print(rsp.status,await rsp.text())
return response.json({“hello”:'rpc廑call})
````
method sz廑rpc只是包装rpc post/get调用的跨度注入。在对等服务器中,将自动提取SPAN上下文并在Zipkin中生成链视图。
4。检查Zipkin/Jaeger UI中的跟踪输出
更改
==
<0.1.2(2019-01-31)
----
基本功能:
*初始版本
*默认情况下添加“请求范围”
*如果请求来自另一个微服务终结点,SPAN将附加到该端点
*使用“logger”decorator为“methods”调用创建SPAN
*使用“sz-rpc”方法为RPC调用创建子SPAN,附加到父SPAN
sanic插件/扩展集成aiozipkin(opentracing reporting)
\SPAN将附加(插入/提取)到该端点
*使用“logger”decorator为“methods”调用创建SPAN
*使用“sz-rpc”方法为RPC调用创建子SPAN,附加到父SPAN
sz_rpc
sz=saniczipkin(app)
`````
示例
1。运行“examples/servic_a.py”和“examples/service_b.py”
2。使用Docker运行Zipkin或Jaeger:
` Docker运行-d-p9411:9411 openzipkin/Zipkin:latest`
或
` Docker运行-d-e collector_zipkin_http_port=9411-p5775:5775/udp-p6831:6831/udp-p6832:6832/udp-p5778:5778-p16686:16686-p14268:14268-p9411:9411 Jaegertracing/all-in-one`
3。访问端点:
-`curl localhost:8000/`查看插件的基本用法
````
默认参数:
Zipkin廑u address='http://127.0.0.1:9411/api/v2/spans'
service=廑u name廑br/>host='127.0.0.1'
port=8000
sz=saniczipkin(app,service='service-a')
@app.route(“/”)
async def index(request):
return response.json({“hello”:“from index”})
````
此“/”端点将自动向zipkin添加跟踪范围
-`curl localhost:8000/2`以查看如何修饰方法和链调用
````
@logger()
async def数据库访问(上下文,数据):
等待异步睡眠(0.1)
打印(完成数据库访问)。数据:{data}')
return
@sz.route(“/2”)
async def method_call(request,context):
await db_access(context,'this is method_call data')
return response.json({“hello”:“method_call})
```
使用“@logger”修饰符生成方法的范围。注意:在这种情况下,您需要使用“@sz.route”,并将“context”参数传递给方法调用。
-`curl localhost:8000/3`要查看rpc调用的工作方式,get/post都受支持
````
@logger()
async def deporate\u demo(context,data):
等待数据库访问(context,数据)
data={payload':'rpc-call-data-of-decorate-demo'}
rsp=await sz-rpc(context,backend-service2,data,method='get')
print(rsp.status,await rsp.text())
return
@sz.route(“/3”)
async def-rpc-call(request,context):
await decorate-demo(context,'这是index4 data')
data={payload':'rpc_call的rpc调用数据'}
rsp=await sz_rpc(context,backend_service1,data)};default method='post'
print(rsp.status,await rsp.text())
return response.json({“hello”:'rpc廑call})
````
method sz廑rpc只是包装rpc post/get调用的跨度注入。在对等服务器中,将自动提取SPAN上下文并在Zipkin中生成链视图。
4。检查Zipkin/Jaeger UI中的跟踪输出
更改
==
<0.1.2(2019-01-31)
----
基本功能:
*初始版本
*默认情况下添加“请求范围”
*如果请求来自另一个微服务终结点,SPAN将附加到该端点
*使用“logger”decorator为“methods”调用创建SPAN
*使用“sz-rpc”方法为RPC调用创建子SPAN,附加到父SPAN