我有 main() 函数,它产生两个单独的子进程。这两个子流程共享指标。如何共享两个流程的指标并保持更新?这是我的片段,以供更多理解。
from multiprocessing import Process
import prometheus_client as prom
from prometheus_client import Counter
# Metrics
c1 = prom.gauge('Counter1', 'Number of Request')
c2 = prom.gauge('Gauge1', 'Processing time in Seconds')
def process_abc():
while True:
#Some operations
c1.set(some_value)
c2.set(some_value)
time.sleep(10)
def process_xyz():
while True:
#Some operations
c1.set(some_value)
c2.set(some_value)
time.sleep(10)
def main():
prom.start_http_server(8080)
Process(target=process_abc).start()
Process(target=process_xyz).start()
if __name__ == "__main__":
main()
我能够在端点看到指标名称,但计数始终为零意味着它永远不会被子流程更新。