-
Notifications
You must be signed in to change notification settings - Fork 2
Request count data is not displayed for public endpoints #22
Copy link
Copy link
Open
Description
Bug report
Description
Request count data is not displayed for public endpoints.
Environment
Django-prometheus: 2.4.1
Grafana: grafana/grafana:12.3
Prometheus: prom/prometheus:v3.9.1
Steps to reproduce
- Create a View:
class ShiftDetailsForUnauthorizedUser(generics.ListAPIView):
permission_classes = []
serializer_class = ShiftSerializerForUnauthorizedUser
queryset = Shift.objects.all()- Configure django-prometheus
- Configure Prometheus:
- job_name: 'Django'
static_configs:
- targets: ['192.168.0.101:8888']
labels:
app: 'Web'- Configure Django/Requests/Overview
- Open dashboard with filter by
ShiftDetailsForUnauthorizedUserview:
https://grafana.example.com/d/django-requests-jkwq/django-requests-overview?orgId=1&from=now-2d&to=now&timezone=utc&var-datasource=PBFA97CFB590B2093&var-cluster=&var-namespace=&var-job=Django&var-view=shifts.views.ShiftDetailsForUnauthorizedUser&var-method=$__allFilter doesn't work. Grafana redirects to a version of the page where the filter is cleared.
https://grafana.example.com/d/django-requests-jkwq/django-requests-overview?orgId=1&from=now-2d&to=now&timezone=utc&var-datasource=PBFA97CFB590B2093&var-cluster=&var-namespace=&var-job=Django&var-view=&var-method=$__allExpected behavior
The filter by View doesn't work.
Actual behavior
The filter by View is working.
Relevant logs
➜ ~ curl http://127.0.0.1:8888/metrics
# HELP python_gc_objects_collected_total Objects collected during gc
# TYPE python_gc_objects_collected_total counter
python_gc_objects_collected_total{generation="0"} 7.64198e+06
python_gc_objects_collected_total{generation="1"} 2.442836e+06
python_gc_objects_collected_total{generation="2"} 171737.0
# HELP python_gc_objects_uncollectable_total Uncollectable objects found during GC
# TYPE python_gc_objects_uncollectable_total counter
python_gc_objects_uncollectable_total{generation="0"} 0.0
python_gc_objects_uncollectable_total{generation="1"} 0.0
python_gc_objects_uncollectable_total{generation="2"} 0.0
# HELP python_gc_collections_total Number of times this generation was collected
# TYPE python_gc_collections_total counter
python_gc_collections_total{generation="0"} 5976.0
python_gc_collections_total{generation="1"} 543.0
python_gc_collections_total{generation="2"} 9.0
# HELP python_info Python platform information
# TYPE python_info gauge
python_info{implementation="CPython",major="3",minor="13",patchlevel="1",version="3.13.1"} 1.0
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 9.74147584e+08
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 2.34205184e+08
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.77092365419e+09
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 2012.56
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 21.0
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1.073741816e+09
# HELP django_model_inserts_total Number of insert operations by model.
# TYPE django_model_inserts_total counter
# HELP django_model_updates_total Number of update operations by model.
# TYPE django_model_updates_total counter
# HELP django_model_deletes_total Number of delete operations by model.
# TYPE django_model_deletes_total counter
# HELP django_migrations_unapplied_total Count of unapplied migrations by database connection
# TYPE django_migrations_unapplied_total gauge
# HELP django_migrations_applied_total Count of applied migrations by database connection
# TYPE django_migrations_applied_total gauge
# HELP django_http_requests_before_middlewares_total Total count of requests before middlewares run.
# TYPE django_http_requests_before_middlewares_total counter
django_http_requests_before_middlewares_total 41661.0
# HELP django_http_requests_before_middlewares_created Total count of requests before middlewares run.
# TYPE django_http_requests_before_middlewares_created gauge
django_http_requests_before_middlewares_created 1.7709236585404081e+09
# HELP django_http_responses_before_middlewares_total Total count of responses before middlewares run.
# TYPE django_http_responses_before_middlewares_total counter
django_http_responses_before_middlewares_total 41659.0
# HELP django_http_responses_before_middlewares_created Total count of responses before middlewares run.
# TYPE django_http_responses_before_middlewares_created gauge
django_http_responses_before_middlewares_created 1.770923658540447e+09
# HELP django_http_requests_latency_including_middlewares_seconds Histogram of requests processing time (including middleware processing time).
# TYPE django_http_requests_latency_including_middlewares_seconds histogram
django_http_requests_latency_including_middlewares_seconds_bucket{le="0.01"} 7404.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="0.025"} 26183.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="0.05"} 30470.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="0.075"} 30750.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="0.1"} 30811.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="0.25"} 30912.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="0.5"} 37396.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="0.75"} 41531.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="1.0"} 41595.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="2.5"} 41640.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="5.0"} 41652.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="7.5"} 41656.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="10.0"} 41657.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="25.0"} 41659.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="50.0"} 41659.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="75.0"} 41659.0
django_http_requests_latency_including_middlewares_seconds_bucket{le="+Inf"} 41659.0
django_http_requests_latency_including_middlewares_seconds_count 41659.0
django_http_requests_latency_including_middlewares_seconds_sum 5958.694829088636
# HELP django_http_requests_latency_including_middlewares_seconds_created Histogram of requests processing time (including middleware processing time).
# TYPE django_http_requests_latency_including_middlewares_seconds_created gauge
django_http_requests_latency_including_middlewares_seconds_created 1.770923658540485e+09
# HELP django_http_requests_unknown_latency_including_middlewares_total Count of requests for which the latency was unknown (when computing django_http_requests_latency_including_middlewares_seconds).
# TYPE django_http_requests_unknown_latency_including_middlewares_total counter
django_http_requests_unknown_latency_including_middlewares_total 0.0
# HELP django_http_requests_unknown_latency_including_middlewares_created Count of requests for which the latency was unknown (when computing django_http_requests_latency_including_middlewares_seconds).
# TYPE django_http_requests_unknown_latency_including_middlewares_created gauge
django_http_requests_unknown_latency_including_middlewares_created 1.770923658540569e+09
# HELP django_http_requests_latency_seconds_by_view_method Histogram of request processing time labelled by view.
# TYPE django_http_requests_latency_seconds_by_view_method histogram
django_http_requests_latency_seconds_by_view_method_bucket{le="0.01",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 0.0
django_http_requests_latency_seconds_by_view_method_bucket{le="0.025",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 0.0
django_http_requests_latency_seconds_by_view_method_bucket{le="0.05",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 1989.0
django_http_requests_latency_seconds_by_view_method_bucket{le="0.075",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="0.1",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="0.25",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="0.5",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="0.75",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="1.0",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="2.5",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="5.0",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="7.5",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="10.0",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="25.0",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="50.0",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="75.0",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_bucket{le="+Inf",method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_count{method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
django_http_requests_latency_seconds_by_view_method_sum{method="GET",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 63.45181355345994
# HELP django_http_requests_unknown_latency_total Count of requests for which the latency was unknown.
# TYPE django_http_requests_unknown_latency_total counter
django_http_requests_unknown_latency_total 0.0
# HELP django_http_requests_unknown_latency_created Count of requests for which the latency was unknown.
# TYPE django_http_requests_unknown_latency_created gauge
django_http_requests_unknown_latency_created 1.770923658540625e+09
# HELP django_http_ajax_requests_total Count of AJAX requests.
# TYPE django_http_ajax_requests_total counter
django_http_ajax_requests_total 0.0
# HELP django_http_ajax_requests_created Count of AJAX requests.
# TYPE django_http_ajax_requests_created gauge
django_http_ajax_requests_created 1.7709236585406444e+09
# HELP django_http_requests_total_by_method_total Count of requests by method.
# TYPE django_http_requests_total_by_method_total counter
django_http_requests_total_by_method_total{method="GET"} 41592.0
django_http_requests_total_by_method_total{method="POST"} 55.0
django_http_requests_total_by_method_total{method="PATCH"} 14.0
# HELP django_http_requests_total_by_method_created Count of requests by method.
# TYPE django_http_requests_total_by_method_created gauge
django_http_requests_total_by_method_created{method="GET"} 1.7709236668061569e+09
django_http_requests_total_by_method_created{method="POST"} 1.770924146952278e+09
django_http_requests_total_by_method_created{method="PATCH"} 1.7709252875155165e+09
# HELP django_http_requests_total_by_transport_total Count of requests by transport.
# TYPE django_http_requests_total_by_transport_total counter
django_http_requests_total_by_transport_total{transport="http"} 41661.0
# HELP django_http_requests_total_by_transport_created Count of requests by transport.
# TYPE django_http_requests_total_by_transport_created gauge
django_http_requests_total_by_transport_created{transport="http"} 1.7709236668061798e+09
# HELP django_http_requests_total_by_view_transport_method_total Count of requests by view, transport, method.
# TYPE django_http_requests_total_by_view_transport_method_total counter
django_http_requests_total_by_view_transport_method_total{method="GET",transport="http",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
# HELP django_http_requests_total_by_view_transport_method_created Count of requests by view, transport, method.
# TYPE django_http_requests_total_by_view_transport_method_created gauge
django_http_requests_total_by_view_transport_method_created{method="GET",transport="http",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 1.7710586927615921e+09
# HELP django_http_requests_body_total_bytes Histogram of requests by body size.
# TYPE django_http_requests_body_total_bytes histogram
django_http_requests_body_total_bytes_bucket{le="0.0"} 41639.0
django_http_requests_body_total_bytes_bucket{le="1.0"} 41639.0
django_http_requests_body_total_bytes_bucket{le="2.0"} 41639.0
django_http_requests_body_total_bytes_bucket{le="4.0"} 41639.0
django_http_requests_body_total_bytes_bucket{le="8.0"} 41639.0
django_http_requests_body_total_bytes_bucket{le="16.0"} 41639.0
django_http_requests_body_total_bytes_bucket{le="32.0"} 41646.0
django_http_requests_body_total_bytes_bucket{le="64.0"} 41646.0
django_http_requests_body_total_bytes_bucket{le="128.0"} 41646.0
django_http_requests_body_total_bytes_bucket{le="256.0"} 41654.0
django_http_requests_body_total_bytes_bucket{le="512.0"} 41654.0
django_http_requests_body_total_bytes_bucket{le="1024.0"} 41659.0
django_http_requests_body_total_bytes_bucket{le="2048.0"} 41660.0
django_http_requests_body_total_bytes_bucket{le="4096.0"} 41660.0
django_http_requests_body_total_bytes_bucket{le="8192.0"} 41660.0
django_http_requests_body_total_bytes_bucket{le="16384.0"} 41660.0
django_http_requests_body_total_bytes_bucket{le="32768.0"} 41661.0
django_http_requests_body_total_bytes_bucket{le="65536.0"} 41661.0
django_http_requests_body_total_bytes_bucket{le="131072.0"} 41661.0
django_http_requests_body_total_bytes_bucket{le="262144.0"} 41661.0
django_http_requests_body_total_bytes_bucket{le="524288.0"} 41661.0
django_http_requests_body_total_bytes_bucket{le="1.048576e+06"} 41661.0
django_http_requests_body_total_bytes_bucket{le="2.097152e+06"} 41661.0
django_http_requests_body_total_bytes_bucket{le="4.194304e+06"} 41661.0
django_http_requests_body_total_bytes_bucket{le="8.388608e+06"} 41661.0
django_http_requests_body_total_bytes_bucket{le="1.6777216e+07"} 41661.0
django_http_requests_body_total_bytes_bucket{le="3.3554432e+07"} 41661.0
django_http_requests_body_total_bytes_bucket{le="6.7108864e+07"} 41661.0
django_http_requests_body_total_bytes_bucket{le="1.34217728e+08"} 41661.0
django_http_requests_body_total_bytes_bucket{le="2.68435456e+08"} 41661.0
django_http_requests_body_total_bytes_bucket{le="5.36870912e+08"} 41661.0
django_http_requests_body_total_bytes_bucket{le="+Inf"} 41661.0
django_http_requests_body_total_bytes_count 41661.0
django_http_requests_body_total_bytes_sum 32080.0
# HELP django_http_requests_body_total_bytes_created Histogram of requests by body size.
# TYPE django_http_requests_body_total_bytes_created gauge
django_http_requests_body_total_bytes_created 1.7709236585407503e+09
# HELP django_http_responses_total_by_status_total Count of responses by status.
# TYPE django_http_responses_total_by_status_total counter
django_http_responses_total_by_status_total{status="200"} 39318.0
django_http_responses_total_by_status_total{status="404"} 2154.0
django_http_responses_total_by_status_total{status="201"} 49.0
django_http_responses_total_by_status_total{status="302"} 13.0
django_http_responses_total_by_status_total{status="400"} 125.0
# HELP django_http_responses_total_by_status_created Count of responses by status.
# TYPE django_http_responses_total_by_status_created gauge
django_http_responses_total_by_status_created{status="200"} 1.770923667426836e+09
django_http_responses_total_by_status_created{status="404"} 1.7709241423720005e+09
django_http_responses_total_by_status_created{status="201"} 1.7709241478265815e+09
django_http_responses_total_by_status_created{status="302"} 1.7709243362584553e+09
django_http_responses_total_by_status_created{status="400"} 1.770924951767623e+09
# HELP django_http_responses_total_by_status_view_method_total Count of responses by status, view, method.
# TYPE django_http_responses_total_by_status_view_method_total counter
django_http_responses_total_by_status_view_method_total{method="GET",status="200",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 2000.0
# HELP django_http_responses_total_by_status_view_method_created Count of responses by status, view, method.
# TYPE django_http_responses_total_by_status_view_method_created gauge
django_http_responses_total_by_status_view_method_created{method="GET",status="200",view="shifts.views.ShiftDetailsForUnauthorizedUser"} 1.771058692808373e+09
# HELP django_http_responses_body_total_bytes Histogram of responses by body size.
# TYPE django_http_responses_body_total_bytes histogram
django_http_responses_body_total_bytes_bucket{le="0.0"} 13.0
django_http_responses_body_total_bytes_bucket{le="1.0"} 13.0
django_http_responses_body_total_bytes_bucket{le="2.0"} 18.0
django_http_responses_body_total_bytes_bucket{le="4.0"} 18.0
django_http_responses_body_total_bytes_bucket{le="8.0"} 18.0
django_http_responses_body_total_bytes_bucket{le="16.0"} 18.0
django_http_responses_body_total_bytes_bucket{le="32.0"} 10629.0
django_http_responses_body_total_bytes_bucket{le="64.0"} 10676.0
django_http_responses_body_total_bytes_bucket{le="128.0"} 12962.0
django_http_responses_body_total_bytes_bucket{le="256.0"} 13009.0
django_http_responses_body_total_bytes_bucket{le="512.0"} 13026.0
django_http_responses_body_total_bytes_bucket{le="1024.0"} 15108.0
django_http_responses_body_total_bytes_bucket{le="2048.0"} 15398.0
django_http_responses_body_total_bytes_bucket{le="4096.0"} 15472.0
django_http_responses_body_total_bytes_bucket{le="8192.0"} 41521.0
django_http_responses_body_total_bytes_bucket{le="16384.0"} 41570.0
django_http_responses_body_total_bytes_bucket{le="32768.0"} 41604.0
django_http_responses_body_total_bytes_bucket{le="65536.0"} 41621.0
django_http_responses_body_total_bytes_bucket{le="131072.0"} 41638.0
django_http_responses_body_total_bytes_bucket{le="262144.0"} 41659.0
django_http_responses_body_total_bytes_bucket{le="524288.0"} 41659.0
django_http_responses_body_total_bytes_bucket{le="1.048576e+06"} 41659.0
django_http_responses_body_total_bytes_bucket{le="2.097152e+06"} 41659.0
django_http_responses_body_total_bytes_bucket{le="4.194304e+06"} 41659.0
django_http_responses_body_total_bytes_bucket{le="8.388608e+06"} 41659.0
django_http_responses_body_total_bytes_bucket{le="1.6777216e+07"} 41659.0
django_http_responses_body_total_bytes_bucket{le="3.3554432e+07"} 41659.0
django_http_responses_body_total_bytes_bucket{le="6.7108864e+07"} 41659.0
django_http_responses_body_total_bytes_bucket{le="1.34217728e+08"} 41659.0
django_http_responses_body_total_bytes_bucket{le="2.68435456e+08"} 41659.0
django_http_responses_body_total_bytes_bucket{le="5.36870912e+08"} 41659.0
django_http_responses_body_total_bytes_bucket{le="+Inf"} 41659.0
django_http_responses_body_total_bytes_count 41659.0
django_http_responses_body_total_bytes_sum 1.18324416e+08
# HELP django_http_responses_body_total_bytes_created Histogram of responses by body size.
# TYPE django_http_responses_body_total_bytes_created gauge
django_http_responses_body_total_bytes_created 1.770923658540927e+09
# HELP django_http_responses_total_by_charset_total Count of responses by charset.
# TYPE django_http_responses_total_by_charset_total counter
django_http_responses_total_by_charset_total{charset="utf-8"} 41659.0
# HELP django_http_responses_total_by_charset_created Count of responses by charset.
# TYPE django_http_responses_total_by_charset_created gauge
django_http_responses_total_by_charset_created{charset="utf-8"} 1.770923667426895e+09
# HELP django_http_responses_streaming_total Count of streaming responses.
# TYPE django_http_responses_streaming_total counter
django_http_responses_streaming_total 0.0
# HELP django_http_responses_streaming_created Count of streaming responses.
# TYPE django_http_responses_streaming_created gauge
django_http_responses_streaming_created 1.7709236585410607e+09
# HELP django_http_exceptions_total_by_type_total Count of exceptions by object type.
# TYPE django_http_exceptions_total_by_type_total counter
# HELP django_http_exceptions_total_by_view_total Count of exceptions by view.
# TYPE django_http_exceptions_total_by_view_total counterReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels