使用Prometheus与Grafana监控Django项目

官方网址

pip install django-prometheus

settings.py配置:

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

MIDDLEWARE = [
    'django_prometheus.middleware.PrometheusBeforeMiddleware',
    # All your other middlewares go here, including the default
    # middlewares like SessionMiddleware, CommonMiddleware,
    # CsrfViewmiddleware, SecurityMiddleware, etc.
    'django_prometheus.middleware.PrometheusAfterMiddleware',
]

In your urls.py:

urlpatterns = [
    ...
    url('', include('django_prometheus.urls')),
]

您可能要监视模型的创建/删除/更新速率。这可以通过向它们添加mixin来完成。在现有模型上可以安全地执行此操作(不需要迁移)。

如果您的模型是:

class Dog(models.Model):
    name = models.CharField(max_length=100, unique=True)
    breed = models.CharField(max_length=100, blank=True, null=True)
    age = models.PositiveIntegerField(blank=True, null=True)

像下面那样添加ExportModelOperationsMixin :

from django_prometheus.models import ExportModelOperationsMixin

class Dog(ExportModelOperationsMixin('dog'), models.Model):
    name = models.CharField(max_length=100, unique=True)
    breed = models.CharField(max_length=100, blank=True, null=True)
    age = models.PositiveIntegerField(blank=True, null=True)

这将导出3个指标django_model_inserts_total {model =“ dog”}django_model_updates_total {model =“ dog”}django_model_deletes_total {model =“ dog”}

请注意,导出的指标是在当前流程中完成的创建,修改和删除的计数器。它们不是模型中对象数量的度量。

从Django 1.7开始,还将监视迁移。导出了两个量规,django_migrations_applied_by_connectiondjango_migrations_unapplied_by_connection。您可能想提醒是否有未应用的迁移。

如果要禁用Django迁移指标,请将PROMETHEUS_EXPORT_MIGRATIONS设置设置为False。

使用docker启动prometheus

使用docker启动grafana

原文地址:https://www.cnblogs.com/liuhuan086/p/14716561.html