Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 普罗米修斯端点组织与管理_Python_Nginx_Tornado_Uwsgi_Prometheus - Fatal编程技术网

Python 普罗米修斯端点组织与管理

Python 普罗米修斯端点组织与管理,python,nginx,tornado,uwsgi,prometheus,Python,Nginx,Tornado,Uwsgi,Prometheus,我的任务是用普罗米修斯建立监控系统。接下来是整个想法:每次Prometheus从端点进行scrap(即发出GET请求),web服务器(现在只是)启动适当的处理程序(Python脚本),执行作业并返回Prometheus收集的度量 一切似乎都还可以,但问题是我使用Tornado是因为它是异步的,它会导致问题(bug、难以处理的异常等),加上没有太多的库可以很好地使用异步IO,所以我的handles通常不异步工作,它们只是在线程中运行代码 所以,我想要什么。我想将我的web服务器设置为不异步地管理P

我的任务是用普罗米修斯建立监控系统。接下来是整个想法:每次Prometheus从端点进行scrap(即发出GET请求),web服务器(现在只是)启动适当的处理程序(Python脚本),执行作业并返回Prometheus收集的度量

一切似乎都还可以,但问题是我使用Tornado是因为它是异步的,它会导致问题(bug、难以处理的异常等),加上没有太多的库可以很好地使用异步IO,所以我的handles通常不异步工作,它们只是在线程中运行代码

所以,我想要什么。我想将我的web服务器设置为不异步地管理Prometheus请求,而是使用类似于多处理的方法。我想象来自普罗米修斯的每一个请求都像是来自用户的独立连接,我想在处理其他连接的同时处理它(理想情况下——在独立的解释器过程中)。我假设这可以通过使用一组web服务器(nginx)、Python应用程序服务器(uWSGI)和web框架(Flask或其他)来实现。它看起来是什么样子:

  • 普罗米修斯提出请求,比如说
  • nginx将其路由到适当的端点
  • 应用服务器和web框架执行任务并返回指标
  • 优点:每个请求都是单独处理的(它独立于Python解释器进程),我们有很多扩展的可能性,快速查询不必等待慢速查询,Python代码是同步的

    这对我来说是个好主意,还是可以更好?也许我错过了什么?如果他在的话,很抱歉弄糟了,谢谢你的建议