grafana-sentry-datasource reports 0 projects

Hi I am trying to expose a /metrics endpoint for prometheus to scrape in glitchtip backend applications.

I am following this tutorial https://docs.timescale.com/timescaledb/latest/tutorials/monitor-django-with-prometheus/#prerequisites

What I have done so far.

  1. installed the python -m pip install django-prometheus package
  2. updated settings.py
  3. updated url.py
  4. add the package pyproject.toml to poetry add django-prometheus, should I removed the locked file?
  5. When I run docker-compose up I get the following. My plan is to expose some metrics and have a grafana dashboard to visualise.
 docker-compose up
[+] Running 4/0
 ⠿ Container glitchtip-backend-postgres-1  Created                                                                                                                                                  0.0s
 ⠿ Container glitchtip-backend-redis-1     Created                                                                                                                                                  0.0s
 ⠿ Container glitchtip-backend-worker-1    Created                                                                                                                                                  0.0s
 ⠿ Container glitchtip-backend-web-1       Created                                                                                                                                                  0.0s
Attaching to glitchtip-backend-postgres-1, glitchtip-backend-redis-1, glitchtip-backend-web-1, glitchtip-backend-worker-1
glitchtip-backend-postgres-1  |
glitchtip-backend-postgres-1  | PostgreSQL Database directory appears to contain a database; Skipping initialization
glitchtip-backend-postgres-1  |
glitchtip-backend-redis-1     | 1:C 04 Feb 2022 09:28:35.850 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
glitchtip-backend-redis-1     | 1:C 04 Feb 2022 09:28:35.850 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=1, just started
glitchtip-backend-redis-1     | 1:C 04 Feb 2022 09:28:35.851 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
glitchtip-backend-redis-1     | 1:M 04 Feb 2022 09:28:35.852 * monotonic clock: POSIX clock_gettime
glitchtip-backend-redis-1     | 1:M 04 Feb 2022 09:28:35.853 * Running mode=standalone, port=6379.
glitchtip-backend-redis-1     | 1:M 04 Feb 2022 09:28:35.853 # Server initialized
glitchtip-backend-redis-1     | 1:M 04 Feb 2022 09:28:35.854 * Ready to accept connections
glitchtip-backend-postgres-1  | 2022-02-04 09:28:35.979 UTC [1] LOG:  starting PostgreSQL 13.5 (Debian 13.5-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
glitchtip-backend-postgres-1  | 2022-02-04 09:28:35.980 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
glitchtip-backend-postgres-1  | 2022-02-04 09:28:35.980 UTC [1] LOG:  listening on IPv6 address "::", port 5432
glitchtip-backend-postgres-1  | 2022-02-04 09:28:36.054 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
glitchtip-backend-postgres-1  | 2022-02-04 09:28:36.121 UTC [27] LOG:  database system was interrupted; last known up at 2022-02-04 09:21:09 UTC
glitchtip-backend-postgres-1  | 2022-02-04 09:28:36.346 UTC [27] LOG:  database system was not properly shut down; automatic recovery in progress
glitchtip-backend-postgres-1  | 2022-02-04 09:28:36.381 UTC [27] LOG:  redo starts at 0/15CF7C8
glitchtip-backend-postgres-1  | 2022-02-04 09:28:36.381 UTC [27] LOG:  invalid record length at 0/15CF800: wanted 24, got 0
glitchtip-backend-postgres-1  | 2022-02-04 09:28:36.381 UTC [27] LOG:  redo done at 0/15CF7C8
glitchtip-backend-postgres-1  | 2022-02-04 09:28:36.647 UTC [1] LOG:  database system is ready to accept connections
glitchtip-backend-worker-1    | Traceback (most recent call last):
glitchtip-backend-worker-1    |   File "/usr/local/bin/celery", line 8, in <module>
glitchtip-backend-worker-1    |     sys.exit(main())
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/__main__.py", line 15, in main
glitchtip-backend-worker-1    |     sys.exit(_main())
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/bin/celery.py", line 213, in main
glitchtip-backend-worker-1    |     return celery(auto_envvar_prefix="CELERY")
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/click/core.py", line 829, in __call__
glitchtip-backend-worker-1    |     return self.main(*args, **kwargs)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/click/core.py", line 782, in main
glitchtip-backend-worker-1    |     rv = self.invoke(ctx)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1259, in invoke
glitchtip-backend-worker-1    |     return _process_result(sub_ctx.command.invoke(sub_ctx))
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1066, in invoke
glitchtip-backend-worker-1    |     return ctx.invoke(self.callback, **ctx.params)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/click/core.py", line 610, in invoke
glitchtip-backend-worker-1    |     return callback(*args, **kwargs)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/click/decorators.py", line 21, in new_func
glitchtip-backend-worker-1    |     return f(get_current_context(), *args, **kwargs)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/bin/base.py", line 133, in caller
glitchtip-backend-worker-1    |     return f(ctx, *args, **kwargs)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/bin/worker.py", line 338, in worker
glitchtip-backend-worker-1    |     worker = app.Worker(
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/worker/worker.py", line 94, in __init__
glitchtip-backend-worker-1    |     self.app.loader.init_worker()
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/loaders/base.py", line 111, in init_worker
glitchtip-backend-worker-1    |     self.import_default_modules()
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/loaders/base.py", line 105, in import_default_modules
glitchtip-backend-worker-1    |     raise response
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/utils/dispatch/signal.py", line 276, in send
glitchtip-backend-worker-1    |     response = receiver(signal=self, sender=sender, **named)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/fixups/django.py", line 82, in on_import_modules
glitchtip-backend-worker-1    |     self.worker_fixup.validate_models()
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/fixups/django.py", line 120, in validate_models
glitchtip-backend-worker-1    |     self.django_setup()
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/celery/fixups/django.py", line 116, in django_setup
glitchtip-backend-worker-1    |     django.setup()
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
glitchtip-backend-worker-1    |     apps.populate(settings.INSTALLED_APPS)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/django/apps/registry.py", line 91, in populate
glitchtip-backend-worker-1    |     app_config = AppConfig.create(entry)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/site-packages/django/apps/config.py", line 224, in create
glitchtip-backend-worker-1    |     import_module(entry)
glitchtip-backend-worker-1    |   File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
glitchtip-backend-worker-1    |     return _bootstrap._gcd_import(name[level:], package, level)
glitchtip-backend-worker-1    |   File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
glitchtip-backend-worker-1    |   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
glitchtip-backend-worker-1    |   File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
glitchtip-backend-worker-1    | ModuleNotFoundError: No module named 'django_prometheus'
glitchtip-backend-worker-1 exited with code 1
glitchtip-backend-web-1       | Watching for file changes with StatReloader
glitchtip-backend-web-1       | Exception in thread django-main-thread:
glitchtip-backend-web-1       | Traceback (most recent call last):
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/threading.py", line 973, in _bootstrap_inner
glitchtip-backend-web-1       |     self.run()
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/threading.py", line 910, in run
glitchtip-backend-web-1       |     self._target(*self._args, **self._kwargs)
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper
glitchtip-backend-web-1       |     fn(*args, **kwargs)
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 110, in inner_run
glitchtip-backend-web-1       |     autoreload.raise_last_exception()
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception
glitchtip-backend-web-1       |     raise _exception[1]
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 375, in execute
glitchtip-backend-web-1       |     autoreload.check_errors(django.setup)()
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper
glitchtip-backend-web-1       |     fn(*args, **kwargs)
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
glitchtip-backend-web-1       |     apps.populate(settings.INSTALLED_APPS)
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/site-packages/django/apps/registry.py", line 91, in populate
glitchtip-backend-web-1       |     app_config = AppConfig.create(entry)
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/site-packages/django/apps/config.py", line 224, in create
glitchtip-backend-web-1       |     import_module(entry)
glitchtip-backend-web-1       |   File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
glitchtip-backend-web-1       |     return _bootstrap._gcd_import(name[level:], package, level)
glitchtip-backend-web-1       |   File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
glitchtip-backend-web-1       |   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
glitchtip-backend-web-1       |   File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
glitchtip-backend-web-1       | ModuleNotFoundError: No module named 'django_prometheus'

and


glitchtip-backend git:(master) ✗ docker build .
[+] Building 528.0s (18/18) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                                      0.4s
 => => transferring dockerfile: 795B                                                                                                                                                      0.0s
 => [internal] load .dockerignore                                                                                                                                                         0.5s
 => => transferring context: 58B                                                                                                                                                          0.0s
 => [internal] load metadata for docker.io/library/python:3.9-slim                                                                                                                        3.0s
 => [internal] load metadata for docker.io/library/python:3.9                                                                                                                             3.0s
 => [auth] library/python:pull token for registry-1.docker.io                                                                                                                             0.0s
 => [build-python 1/5] FROM docker.io/library/python:3.9@sha256:b0ed7954a2114eb965e65cf72ebde4a703cbfe35e16cba81bb3ef8b3c9975784                                                          0.0s
 => [internal] load build context                                                                                                                                                         2.2s
 => => transferring context: 2.81MB                                                                                                                                                       1.9s
 => [stage-1 1/6] FROM docker.io/library/python:3.9-slim@sha256:86b3b6af2b6254fe44de9f5c8e6e08248cdef19f3060ee5cf131ef629c375830                                                          0.0s
 => CACHED [build-python 2/5] RUN pip install "poetry==1.1.7"                                                                                                                             0.0s
 => CACHED [build-python 3/5] WORKDIR /code                                                                                                                                               0.0s
 => [build-python 4/5] COPY poetry.lock pyproject.toml /code/                                                                                                                             1.1s
 => [build-python 5/5] RUN poetry install --no-interaction --no-ansi $(test "$IS_CI" = "True" && echo "--no-dev")                                                                       424.0s
 => CACHED [stage-1 2/6] RUN apt-get update && apt-get install -y libxml2 && apt-get clean && rm -rf /var/lib/apt/lists/*                                                                 0.0s
 => CACHED [stage-1 3/6] WORKDIR /code                                                                                                                                                    0.0s
 => [stage-1 4/6] COPY --from=build-python /usr/local/lib/python3.9/site-packages/ /usr/local/lib/python3.9/site-packages/                                                               19.3s
 => [stage-1 5/6] COPY --from=build-python /usr/local/bin/ /usr/local/bin/                                                                                                                0.9s
 => [stage-1 6/6] COPY . /code/                                                                                                                                                           1.4s
 => exporting to image                                                                                                                                                                   54.8s
 => => exporting layers                                                                                                                                                                  54.5s
 => => writing image sha256:374001d11747806d38c11b8e0512a3ce0d47d5ff3eb1cf118dbbd51c9289ff0f                                                                                              0.1s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

Edited by David Burke