简介
Zipkin分布式跟踪系统;它可以帮助收集时间数据,解决在microservice
架构下的延迟问题;它管理这些数据的收集和查找;Zipkin
的设计是基于谷歌的Google Dapper
论文。
每个应用程序向Zipkin
报告定时数据,Zipkin UI
呈现了一个依赖图表来展示多少跟踪请求经过了每个应用程序;如果想解决延迟问题,可以过滤或者排序所有的跟踪请求,并且可以查看每个跟踪请求占总跟踪时间的百分比
安装zipkin
这里就不详细说明安装了,直接使用docker启动一个容器
1
| docker run -d -p 9411:9411 openzipkin/zipkin
|
使用浏览器访问:http://${IP}/zipkin即可看到Zipkin UI
Django-py-zipkin
django-py-zipkin
兼容python 2和3
安装
1
| pip install django-py-zipkin
|
⚠️注意 因为发送数据到zipkin服务端是celery异步消息队列,这里还需要安装配置celery
,相关文档见django-celery异步消息队列
项目配置
1 2 3 4
| INSTALLED_APPS = [ ... "django_py_zipkin" ]
|
1 2 3 4
| MIDDLEWARE = [ ... 'django_py_zipkin.middleware.ZipkinMiddleware', //添加至最后 ]
|
1 2 3 4 5 6 7 8
| 服务名称,必须配置 ZIPKIN_SERVICE_NAME = 'test-service' 是否启用跟踪,默认False ZIPKIN_TRACING_ENABLED = True zipkin地址 ZIPKIN_HTTP_ENDPOINT = 'http://127.0.0.1:9411/api/v1/spans'
|
分布式系统调用方法
1 2 3 4 5 6 7 8 9 10
| import requests from django_py_zipkin.transport import trace with trace('test-server', request.zipkin_tracer) as context: url = 'http://127.0.0.1:8000/test/' traced_value = requests.get(url=url) context.update({ // 传入需要记录的值 'response.data': traced_value.text, 'url': url, })
|
验证



上一篇:Etcd+Confd实现Nginx配置文件动态更新
下一篇:数据分析之DataFrame对象的创建