官方网址
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_connection
和django_migrations_unapplied_by_connection
。您可能想提醒是否有未应用的迁移。
如果要禁用Django迁移指标,请将PROMETHEUS_EXPORT_MIGRATIONS设置设置为False。
使用docker启动prometheus
使用docker启动grafana