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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在javaswing中使用进度条,同时函数在繁重的进程中工作   SWIG(Java):如何调用带有void*out参数的函数?   java帮助解决算法问题   java,但我不想用try/catch块来包围语句!   可以从java类调用安卓类吗?   java流拆分器实现细节   java组织。莫基托。例外情况。滥用。无效使用MatcherException   java如何显示接收到的字符串?   java为什么这段代码不像JSR133建议的那样进入无限循环?   java BufferedReader readLine()从socket获取数据时冻结   java如何使用html表单发送的XML?   java RxJava与观察者代码的并行执行   我想使用CoreJava基于文本输入动态创建一个jpg图像   java如何在Mockito中模拟注入的bean?   java我的程序突然停止工作,我没有改变我记得的任何东西,现在它给出了第二个错误:javafx。fxml。加载异常   java树集排序错误   java RSA加密解密AES密钥并存储在文件中   Java将变量字符串[]与字符串混合在一个字符串数组中   如何在鼠标移动时重新绘制Java SWT应用程序?