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

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

推荐PyPI第三方库


热门话题
java连接在一个屏幕上成功下载,在第二个屏幕上用几乎相同的代码获得错误   java调用super。超级的方法,跳过超级。方法   使用Web服务连接到sharepoint 2013的Java应用程序   java我无法正确呈现editText   httpurlconnection如何在java中检查url连接状态   java Spring Security可以为同一用户接受多个密码吗?   java如何在PreparedStatement中使用自动生成的@Id?   java每个数组表示一个位模式   java我不确定如何记录鼠标在某个区域被点击的次数   spring如何解决:java。lang.NoSuchMethodError:javax。坚持不懈实体管理器。createStoredProcedureQuery(Ljava/lang/String;)   java如何为blackberry中listfield项内的不同字段触发事件   安卓使用Proguard混淆java代码   java在grails 2中与多个数据源有一个和一个域关联。十、   java在尝试在单击按钮时返回combobox值时一直出错   java我可以在setter中使用@Resource注释而不是字段吗?   java Eclipse调试步进不工作   java比较相同对象的两个表并选择不同的表