实现prometheus#u client.multiprocess.MultiProcessCollector(Django+;芹菜)的正确方法

实现prometheus#u client.multiprocess.MultiProcessCollector(Django+;芹菜)的正确方法,prometheus,Prometheus,我有: django应用程序与python manage.py runserver一起运行 芹菜工人与芹菜一起运行-项目工人-l信息 芹菜节拍与芹菜一起跑步-项目节拍-l信息 他们将被部署在库伯内特斯自己的吊舱中 /metrics端点在Django应用程序中公开,但指标正在芹菜任务中收集。 因为这两个应用程序运行在两个不同的进程(POD)中,所以它们有两个不同的注册表 有没有办法处理这个问题 似乎,prometheus\u client.multiprocess.MultiProcessColl

我有:

  • django应用程序与python manage.py runserver一起运行

  • 芹菜工人与芹菜一起运行-项目工人-l信息

  • 芹菜节拍与芹菜一起跑步-项目节拍-l信息

  • 他们将被部署在库伯内特斯自己的吊舱中

    /metrics
    端点在Django应用程序中公开,但指标正在芹菜任务中收集。 因为这两个应用程序运行在两个不同的进程(POD)中,所以它们有两个不同的注册表

    有没有办法处理这个问题

    似乎,
    prometheus\u client.multiprocess.MultiProcessCollector
    可以提供帮助。 我试过了,但没用:

    设置.py

    registry = CollectorRegistry()
    multiprocess.MultiProcessCollector(registry, path='/home/aleksandrovalbert/Work/blackbox_exporter/exporter/multiproc-tmp')
    
    from project.settings import registry
    
    def export(request):
        metrics_page = prometheus_client.generate_latest(registry)
        return HttpResponse(metrics_page, content_type=prometheus_client.CONTENT_TYPE_LATEST)
    
    registry = CollectorRegistry()
    multiprocess.MultiProcessCollector(registry, path='/home/aleksandrovalbert/Work/blackbox_exporter/exporter/multiproc-tmp')
    
    
    class TestBeatPeriodicTask(PeriodicTask):
        run_every = timedelta(minutes=1)
    
        metric = Gauge(
           name='test_beat',
           documentation='Task Documentation.',
           registry=registry
        )
    
        def run(self):
            metric.set(888)
    
    视图.py

    registry = CollectorRegistry()
    multiprocess.MultiProcessCollector(registry, path='/home/aleksandrovalbert/Work/blackbox_exporter/exporter/multiproc-tmp')
    
    from project.settings import registry
    
    def export(request):
        metrics_page = prometheus_client.generate_latest(registry)
        return HttpResponse(metrics_page, content_type=prometheus_client.CONTENT_TYPE_LATEST)
    
    registry = CollectorRegistry()
    multiprocess.MultiProcessCollector(registry, path='/home/aleksandrovalbert/Work/blackbox_exporter/exporter/multiproc-tmp')
    
    
    class TestBeatPeriodicTask(PeriodicTask):
        run_every = timedelta(minutes=1)
    
        metric = Gauge(
           name='test_beat',
           documentation='Task Documentation.',
           registry=registry
        )
    
        def run(self):
            metric.set(888)
    
    任务。py

    registry = CollectorRegistry()
    multiprocess.MultiProcessCollector(registry, path='/home/aleksandrovalbert/Work/blackbox_exporter/exporter/multiproc-tmp')
    
    from project.settings import registry
    
    def export(request):
        metrics_page = prometheus_client.generate_latest(registry)
        return HttpResponse(metrics_page, content_type=prometheus_client.CONTENT_TYPE_LATEST)
    
    registry = CollectorRegistry()
    multiprocess.MultiProcessCollector(registry, path='/home/aleksandrovalbert/Work/blackbox_exporter/exporter/multiproc-tmp')
    
    
    class TestBeatPeriodicTask(PeriodicTask):
        run_every = timedelta(minutes=1)
    
        metric = Gauge(
           name='test_beat',
           documentation='Task Documentation.',
           registry=registry
        )
    
        def run(self):
            metric.set(888)
    

    或者这只能用pushgateway来处理?

    这方面有什么进展,我面临的问题完全相同吗?@klementomeri,我用作度量存储