aws-samples / one-observability-demo

Sample microservice based application demonstrating observability capabilities on AWS
https://observability.workshop.aws/
MIT No Attribution
214 stars 117 forks source link

petfood-metric pod can't start #275

Open Anorlondo448 opened 5 months ago

Anorlondo448 commented 5 months ago

in CloudWatch Evidently step, petfood pod can't start

$ kubectl get pods | grep petfood

petfood-5f7758dfbb-p4pnn                0/1     InvalidImageName   0               23m
petfood-5f7758dfbb-tw82p                0/1     InvalidImageName   0               23m
petfood-metric-bdfb8d576-klxb7          0/1     CrashLoopBackOff   8 (4m18s ago)   20m
petfood-metric-bdfb8d576-vgqsn          0/1     CrashLoopBackOff   8 (4m43s ago)   20m
$ kubectl logs petfood-metric-bdfb8d576-klxb7
[2024-05-01 11:21:49 +0000] [1] [INFO] Starting gunicorn 20.1.0
[2024-05-01 11:21:49 +0000] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)
[2024-05-01 11:21:49 +0000] [1] [INFO] Using worker: sync
[2024-05-01 11:21:49 +0000] [8] [INFO] Booting worker with pid: 8
[2024-05-01 11:21:49 +0000] [9] [INFO] Booting worker with pid: 9
[2024-05-01 11:21:49 +0000] [10] [INFO] Booting worker with pid: 10
[2024-05-01 11:21:49 +0000] [11] [INFO] Booting worker with pid: 11
[2024-05-01 11:21:49 +0000] [8] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 134, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python3.8/site-packages/gunicorn/util.py", line 359, in import_app
    mod = importlib.import_module(module)
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/app/petfood-metric.py", line 10, in <module>
    from aws_xray_sdk.ext.flask.middleware import XRayMiddleware
  File "/usr/local/lib/python3.8/site-packages/aws_xray_sdk/ext/flask/middleware.py", line 1, in <module>
    import flask.templating
  File "/usr/local/lib/python3.8/site-packages/flask/__init__.py", line 7, in <module>
    from .app import Flask as Flask
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 28, in <module>
    from . import cli
  File "/usr/local/lib/python3.8/site-packages/flask/cli.py", line 18, in <module>
    from .helpers import get_debug_flag
  File "/usr/local/lib/python3.8/site-packages/flask/helpers.py", line 16, in <module>
    from werkzeug.urls import url_quote
ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.8/site-packages/werkzeug/urls.py)
oceannic commented 1 month ago

Found a workaround solution for this issue - https://stackoverflow.com/questions/77213053/why-did-flask-start-failing-with-importerror-cannot-import-name-url-quote-fr

It is because Werkzeug 3.0.0 was released and Flask doesn't specify the dependency correctly (requirements says Werkzeug>=2.2.0)

Updates the requirements.txt in both ~/environment/workshopfiles/one-observability-demo/PetAdoptions/petfood and ~/environment/workshopfiles/one-observability-demo/PetAdoptions/petfood-metric, re-run then solve.

However, still need maintainer to fix the problem here.