如何在django rest框架和docker中设置prometheus

如何在django rest框架和docker中设置prometheus,django,docker,django-rest-framework,prometheus,grafana,Django,Docker,Django Rest Framework,Prometheus,Grafana,我想用prometheus、django rest框架和docker监控我的数据库 都是我的本地机器,错误如下: 错误是url,是我的API,我不知道是什么问题,我的配置如下 我的要求.txt 德扬戈普罗米修斯 我的文件docker:docker-compose-monitoring.yml version: '2' services: prometheus: image: prom/prometheus:v2.14.0 volumes:

我想用prometheus、django rest框架和docker监控我的数据库

都是我的本地机器,错误如下:

错误是url,是我的API,我不知道是什么问题,我的配置如下

我的要求.txt

  • 德扬戈普罗米修斯
我的文件docker:docker-compose-monitoring.yml

version: '2'
services:
    prometheus:
        image: prom/prometheus:v2.14.0
        volumes:
           - ./prometheus/:/etc/prometheus/
        command:
           - '--config.file=/etc/prometheus/prometheus.yml'
        ports:
           - 9090:9090
    grafana:
        image: grafana/grafana:6.5.2
        ports:
           - 3060:3060
我的文件夹和文件prometheus/prometheus.yml

global:
   scrape_interval: 15s
rule_files:
scrape_configs:
- job_name: prometheus
  static_configs:
      - targets:
          - 127.0.0.1:9090
- job_name: monitoring_api
  static_configs:
      - targets:
          - 127.0.0.1:9000
我的文件设置.py

INSTALLED_APPS=[
    ...........
    'django_prometheus',]

MIDDLEWARE:[
    'django_prometheus.middleware.PrometheusBeforeMiddleware',
    ......
    'django_prometheus.middleware.PrometheusAfterMiddleware']
我的模特

from django_promethues.models import ExportMOdelOperationMixin

class MyModel(ExportMOdelOperationMixin('mymodel'), models.Model):
     """all my fields in here"""
我的URL.py

url('', include('django_prometheus.urls')),
应用程序运行良好,在127.0.0.1:9090/metrics中,但只监视相同的url,我需要监视不同的url,我认为问题不在于配置,除了prometheus.yml文件,因为我不知道如何调用我的表或api,请帮助我


再见。

您需要更改普罗米修斯的配置,并在docker compose中添加python图像,如下所示:

  • 普罗米修斯的配置(prometheus.yaml):
  • docker为prometheus和django编写文件,您还可以包括grafana映像,我已在本地安装了grafana:

  • Dockerfile:
  • 对于django中的普罗米修斯设置:

  • 点击django应用程序api
  • 点击localhost:8000/metrics api
  • 点击localhost:9090/并从下拉列表中搜索所需的指标,然后单击“执行”,它将在控制台中生成结果并创建图表
  • 要在grafana中显示图形,请点击localhost:3000并创建新的仪表板

  • 您好@Nishant Agarwal欢迎来到SO,请您更新您的答案并与他人分享,这将使您的答案更具可读性,谢谢。@HamidAli我已删除带有代码片段的代码图像。请查看
    global:
      scrape_interval: 15s # when Prometheus is pulling data from exporters etc
      evaluation_interval: 30s # time between each evaluation of Prometheus' alerting rules
    
    scrape_configs:
      - job_name: django_project   # your project name
        metrics_path: /metrics
        static_configs:
          - targets:
            - web:8000
    
    
    
    version: '3.7'
    
    services:
    web:
      build:
      context: .  # context represent path of your dockerfile(dockerfile present in the root dir)
    command: sh -c "python3 manage.py migrate &&
            gunicorn webapp.route.wsgi:application --pythonpath webapp --bind 0.0.0.0:8000"
    volumes:
      - .:/app
    
    ports:
      - "8000:8000"
    
    prometheus:
      image: prom/prometheus
      ports:
        - "9090:9090"
      volumes:
        - ./prometheus.yml:/etc/prometheus/prometheus.yml #prometheus.yaml present in the root dir
    
    
    FROM python:3.8
    
    COPY ./webapp/django /app
    COPY ./requirements.txt /app/requirements.txt
    WORKDIR /app
    RUN pip3 install -r requirements.txt*strong text*