如何 运行 多个 python 脚本到普罗米修斯
How to run multiple python scripts to prometheus
我一直在研究 prometheus,Python 我希望能够有多个脚本写入 Prometheus。
目前我已经完成了2个脚本:
sydsvenskan.py
import time
import requests
from prometheus_client import Counter
REQUEST_COUNT = Counter(
namespace="scraper",
name="request_count",
documentation="Count the total requests",
labelnames=['http_status']
)
def monitor_feed():
while True:
with requests.get("https://sydsvenskan.se") as rep:
print("Request made!")
REQUEST_COUNT.labels(http_status=rep.status_code).inc()
time.sleep(10)
if __name__ == '__main__':
monitor_feed()
BBC.py
import time
import requests
from prometheus_client import Counter
REQUEST_COUNT = Counter(
namespace="scraper",
name="request_count",
documentation="Count the total requests",
labelnames=['http_status']
)
def monitor_feed():
while True:
with requests.get("https://bbc.com") as rep:
print("Request made!")
REQUEST_COUNT.labels(http_status=rep.status_code).inc()
time.sleep(10)
if __name__ == '__main__':
monitor_feed()
然后我有另一个脚本可以启动 promethus http_server:
from prometheus_client import start_http_server
if __name__ == '__main__':
start_http_server(8000)
然而问题是 sydsvenskan.py 和 bbc.py 似乎没有任何东西通过普罗米修斯,我想知道我做错了什么?当 运行 sydsvenskan 和 bbc 同时
时,我没有看到任何统计数据在增长
您需要将 start_http_server
功能与您的 monitor_feed
功能相结合。
您可以将所有内容组合在一个 HTTP 服务器下。
或者,如我所想,您需要 运行 2 个 HTTP 服务器,每个服务器一个 monitor_feed
:
import time
import requests
from prometheus_client import Counter
from prometheus_client import start_http_server
REQUEST_COUNT = Counter(
namespace="scraper",
name="request_count",
documentation="Count the total requests",
labelnames=['http_status']
)
def monitor_feed():
while True:
with requests.get("https://bbc.com") as rep:
print("Request made!")
REQUEST_COUNT.labels(http_status=rep.status_code).inc()
time.sleep(10)
if __name__ == '__main__':
start_http_server(8000)
monitor_feed()
在后一种情况下,如果您 运行 两台服务器都在同一台主机上,则需要使用 2 个不同的端口(不能同时使用 8000
)。
我一直在研究 prometheus,Python 我希望能够有多个脚本写入 Prometheus。
目前我已经完成了2个脚本: sydsvenskan.py
import time
import requests
from prometheus_client import Counter
REQUEST_COUNT = Counter(
namespace="scraper",
name="request_count",
documentation="Count the total requests",
labelnames=['http_status']
)
def monitor_feed():
while True:
with requests.get("https://sydsvenskan.se") as rep:
print("Request made!")
REQUEST_COUNT.labels(http_status=rep.status_code).inc()
time.sleep(10)
if __name__ == '__main__':
monitor_feed()
BBC.py
import time
import requests
from prometheus_client import Counter
REQUEST_COUNT = Counter(
namespace="scraper",
name="request_count",
documentation="Count the total requests",
labelnames=['http_status']
)
def monitor_feed():
while True:
with requests.get("https://bbc.com") as rep:
print("Request made!")
REQUEST_COUNT.labels(http_status=rep.status_code).inc()
time.sleep(10)
if __name__ == '__main__':
monitor_feed()
然后我有另一个脚本可以启动 promethus http_server:
from prometheus_client import start_http_server
if __name__ == '__main__':
start_http_server(8000)
然而问题是 sydsvenskan.py 和 bbc.py 似乎没有任何东西通过普罗米修斯,我想知道我做错了什么?当 运行 sydsvenskan 和 bbc 同时
时,我没有看到任何统计数据在增长您需要将 start_http_server
功能与您的 monitor_feed
功能相结合。
您可以将所有内容组合在一个 HTTP 服务器下。
或者,如我所想,您需要 运行 2 个 HTTP 服务器,每个服务器一个 monitor_feed
:
import time
import requests
from prometheus_client import Counter
from prometheus_client import start_http_server
REQUEST_COUNT = Counter(
namespace="scraper",
name="request_count",
documentation="Count the total requests",
labelnames=['http_status']
)
def monitor_feed():
while True:
with requests.get("https://bbc.com") as rep:
print("Request made!")
REQUEST_COUNT.labels(http_status=rep.status_code).inc()
time.sleep(10)
if __name__ == '__main__':
start_http_server(8000)
monitor_feed()
在后一种情况下,如果您 运行 两台服务器都在同一台主机上,则需要使用 2 个不同的端口(不能同时使用 8000
)。