flask-dashboard / Flask-MonitoringDashboard

Automatically monitor the evolving performance of Flask/Python web services.
http://flask-monitoringdashboard.readthedocs.io/
MIT License
759 stars 159 forks source link

[WSGI:ERROR] No commit has been made, due to the following error: "NAME-OF-ENDPOINT" #368

Open GabrieleCalarota opened 3 years ago

GabrieleCalarota commented 3 years ago

Describe the bug Since I've integrated the flask-monitoringdashboard into flask apps with just this 2 lines of code in every file with a flask app (in order to have a share dashboard for every app)

dashboard.config.init_from(file=os.path.join(os.path.dirname(__file__), fileName_dashboard_config))
dashboard.bind(app)

I've started noticing this error in apache2/error.log

[WSGI:ERROR] No commit has been made, due to the following error: "NAME-OF-ENDPOINT"

Where NAME-OF-ENDPOINT is every name of my endpoint on flask API that I've been calling on production server. Can't say if it's correlated but my API with a WSGIScriptAlias have been stuck in "pending requests" and made my system not working/working only in particular scenarios

Screenshots image

Desktop (please complete the following information):

Additional context Flask is running on virtualhost apache configuration like below port 443

<IfModule mod_ssl.c>
<VirtualHost 0.0.0.0:443>
....
LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

  WSGIDaemonProcess SquisEatDEV user=u group=squiseatdev threads=5
  WSGIScriptAlias /SquisEatDEV /home/u/SquisEatDEV/riCibiamo_bot/FlaskAPI/SquisEat.wsgi process-group=SquisEatDEV
  WSGIScriptAlias /SquisEatBotDEV /home/u/SquisEatDEV/riCibiamo_bot/FlaskAPI/UserBot.wsgi process-group=SquisEatDEV
  WSGIScriptAlias /SquisEatPerformanceDEV /home/u/SquisEatDEV/riCibiamo_bot/FlaskAPI/Performance.wsgi process-group=SquisEatDEV
  WSGIScriptAlias /SquisEatB2BDEV /home/u/SquisEatDEV/riCibiamo_bot/FlaskAPI/B2B.wsgi process-group=SquisEatDEV
  WSGIScriptAlias /SquisEatFBDEV /home/u/SquisEatDEV/riCibiamo_bot/FlaskAPI/FB.wsgi process-group=SquisEatDEV
  WSGIScriptAlias /SquisEatWebDEV /home/u/SquisEatDEV/riCibiamo_bot/FlaskAPI/WebApp.wsgi process-group=SquisEatDEV
  WSGIScriptAlias /SquisEatStripeDEV /home/u/SquisEatDEV/riCibiamo_bot/FlaskAPI/Stripe.wsgi process-group=SquisEatDEV

  <Directory /home/u/SquisEatDEV>
      WSGIProcessGroup SquisEatDEV
      WSGIScriptReloading On
      WSGIApplicationGroup %{GLOBAL}
      Require all granted
  </Directory>
....
</VirtualHost>
</IfModule>

I've tried to search on past issues but the only one with a not so similar error is #324

asaljalilvand commented 2 years ago

Hi, I got this error too using default database configs. Then I switched to using postgres, and I get a new error similar to previous one

| No commit has been made, due to the following error: (psycopg2.InternalError) current transaction is aborted, commands ignored until end of transaction block
asset-manager                    | 
asset-manager                    | [SQL: INSERT INTO "fmd_asset_managerRequest" (endpoint_id, duration, time_requested, version_requested, group_by, ip, status_code) VALUES (%(endpoint_id)s, %(duration)s, %(time_requested)s, %(version_requested)s, %(group_by)s, %(ip)s, %(status_code)s) RETURNING "fmd_asset_managerRequest".id]

here is how make the configurations:

dashboard.config.table_prefix = "fmd_asset_manager"
dashboard.config.database_name = "postgresql://{}:{}@{}:{}/{}".format(DB_CONF.get("user"), DB_CONF.get("password"),
                                                                      DB_CONF.get("host"), DB_CONF.get("port"),
                                                                      DB_CONF.get("db"))
dashboard.bind(app)