Prometheus python客户端错误地址已在美国

2024-04-24 06:30:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行一个地址为127.0.0.1:5000的web应用程序,并且正在使用Prometheus的python客户机库。我在他们的docs中使用示例中的start_http_server(8000)来公开该端口上的度量。应用程序运行,但我得到[Errno 48] Address already in use和本地主机:8000当我试着去打它的时候,我什么都不能连接。在

如果我不能从一个web应用程序启动两个服务器,那么我应该将哪个端口传递到start_http_server()以公开度量标准?在

在我启动应用程序之前,两个端口上都没有运行任何内容。在


Tags: 端口程序运行web应用程序http示例docs客户
3条回答

端口8000不需要运行web服务器就可以使用它。使用您的操作系统命令行查找正在使用端口的进程,然后终止它。如果一个服务正在运行,导致它再次生成,请禁用该进程。在

更简单的解决方案是使用另一个端口而不是8000。在

编辑:看起来像是普罗米修斯的一个bug。Github Issue

这主要是因为您正在端口8000上重新启动服务器。在

为了解决这个问题,我创建了一个函数,该函数将在确保前一个服务器或端口可以使用后创建服务器。在

你可以看一下https://github.com/prometheus/client_python/issues/155,这里处理的是相同的情况

其他一些进程正在利用端口(8000)。要终止在端口(8000)上运行的进程,只需找到进程的进程_id[pid]。在

lsof -i :8000

这将显示在端口8000上运行的进程,如下所示:

^{pr2}$

可以使用kill命令终止进程,如下所示:

sudo kill -9 21271

重新检查是否使用相同的命令终止进程

lsof -i :8000

stdout上应该什么都没有。在

相关问题 更多 >