Django应用程序可以轻松跟踪和存储视图请求和响应
rest-tracker的Python项目详细描述
休憩追踪器
Django app to easily track and store views request and responses
要求
^{pr2}$如何
步骤1:Pip安装rest tracker库(这将安装django、django rest framework、celery、redis和psycopg2)
pip3 install rest-tracker
步骤2:将rest tracker django应用程序添加到中已安装的应用程序设置.py在
INSTALLED_APPS=['django.contrib.admin',...'rest_framework','rest_tracker']
步骤3:将tracker decorator添加到任何Django视图中。在
在这个例子中,rest tracker将跟踪/testing路径
fromrest_frameworkimportviewsetsfromrest_framework.responseimportResponsefromrest_framework.decoratorsimportactionfromrest_tracker.decoratorsimporttracker# Create your views here.classTestView(viewsets.GenericViewSet):@tracker@action(detail=False,methods=['get'])deftesting(self,request):returnResponse({'testing':'ok'},status=200)
步骤4:添加rest tracker url以开始查看跟踪的数据
fromdjango.contribimportadminfromdjango.urlsimportpath,includeurlpatterns=[path('admin/',admin.site.urls),...path('',include('rest_tracker.urls'))]
捕获的数据
rest跟踪当前为每个请求/响应收集以下数据
Request: Method, Scheme, Host, Path, Raw URI, and User Agent
Response: Status Code, Content Size
以下是从测试路由收集的数据的示例
路线/休息路线跟踪程序,方法获取
[{"id":1,"created":"2020-08-17T00:44:02.050329Z","method":"GET","scheme":"http","url":{"host":"127.0.0.1:8000","path":"/test/testing","raw":"http://127.0.0.1:8000/test/testing"},"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36","responses":[{"created":"2020-08-17T00:51:23.059319Z","status_code":200,"content_size":5952},{"created":"2020-08-17T00:51:35.809836Z","status_code":200,"content_size":5956},{"created":"2020-08-17T01:15:36.772500Z","status_code":200,"content_size":5956}]},{"id":2,"created":"2020-08-17T01:16:19.968399Z","method":"POST","scheme":"http","url":{"host":"127.0.0.1:8000","path":"/test/testing_post","raw":"http://127.0.0.1:8000/test/testing_post"},"user_agent":"curl/7.54.0","responses":[{"created":"2020-08-17T01:16:19.993153Z","status_code":200,"content_size":16}]}]
下一个例子是基于这些数据点收集计数的rest tracker路由。在
路线/休息路线跟踪/计数,方法获取
{"methods":{"GET":1,"POST":1},"schemes":{"http":2},"user_agents":{"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36":1,"curl/7.54.0":1},"hosts":{"127.0.0.1:8000":2},"requests":4}
Elasticsearch(可选)
如果您的集群中有Elasticsearch和Kibana,那么您可以轻松地使用rest_tracker写入索引,以方便仪表板和报告。 要创建索引:
POST /rest_tracker/init_es This will create the Elasticsearch index
然后,所有被跟踪的请求/响应都将被发送到ES索引并存储在数据库中。在
休息跟踪路线
GET /rest_tracker Raw data from collected request and responses
GET /rest_tracker/counts Counts based on collected request and responses
GET /rest_tracker/methods Counts for methods collected from request
GET /rest_tracker/schemes Counts for schemes collected from request
GET /rest_tracker/hosts Counts for hosts collected from request
GET /rest_tracker/user_agents Counts for user agents collected from request
GET /rest_tracker/requests Overall count of requests that have been collected
POST /rest_tracker/init_es Create Elasticsearch index and also write to ES cluster
- 项目
标签: