c2cwsgiutils 6.2.0.dev20__tar.gz → 6.2.0.dev23__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/PKG-INFO +1 -1
  2. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/stats_pyramid/_pyramid_spy.py +12 -0
  3. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/pyproject.toml +1 -1
  4. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/LICENSE +0 -0
  5. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/README.md +0 -0
  6. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/__init__.py +0 -0
  7. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/acceptance/__init__.py +0 -0
  8. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/acceptance/connection.py +0 -0
  9. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/acceptance/image.py +0 -0
  10. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/acceptance/package-lock.json +0 -0
  11. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/acceptance/package.json +0 -0
  12. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/acceptance/print.py +0 -0
  13. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/acceptance/screenshot.js +0 -0
  14. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/acceptance/utils.py +0 -0
  15. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/auth.py +0 -0
  16. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/broadcast/__init__.py +0 -0
  17. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/broadcast/interface.py +0 -0
  18. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/broadcast/local.py +0 -0
  19. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/broadcast/redis.py +0 -0
  20. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/broadcast/utils.py +0 -0
  21. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/client_info.py +0 -0
  22. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/config_utils.py +0 -0
  23. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/coverage_setup.py +0 -0
  24. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/db.py +0 -0
  25. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/db_maintenance_view.py +0 -0
  26. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/debug/__init__.py +0 -0
  27. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/debug/_listeners.py +0 -0
  28. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/debug/_views.py +0 -0
  29. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/debug/utils.py +0 -0
  30. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/errors.py +0 -0
  31. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/health_check.py +0 -0
  32. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/index.py +0 -0
  33. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/loader.py +0 -0
  34. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/logging_view.py +0 -0
  35. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/models_graph.py +0 -0
  36. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/pretty_json.py +0 -0
  37. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/profiler.py +0 -0
  38. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/prometheus.py +0 -0
  39. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/py.typed +0 -0
  40. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/pyramid.py +0 -0
  41. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/pyramid_logging.py +0 -0
  42. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/redis_stats.py +0 -0
  43. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/redis_utils.py +0 -0
  44. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/request_tracking/__init__.py +0 -0
  45. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/request_tracking/_sql.py +0 -0
  46. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/scripts/__init__.py +0 -0
  47. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/scripts/genversion.py +0 -0
  48. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/scripts/stats_db.py +0 -0
  49. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/scripts/test_print.py +0 -0
  50. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/sentry.py +0 -0
  51. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/services.py +0 -0
  52. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/setup_process.py +0 -0
  53. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/sql_profiler/__init__.py +0 -0
  54. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/sql_profiler/_impl.py +0 -0
  55. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/sqlalchemylogger/README.md +0 -0
  56. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/sqlalchemylogger/__init__.py +0 -0
  57. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/sqlalchemylogger/_filters.py +0 -0
  58. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/sqlalchemylogger/_models.py +0 -0
  59. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/sqlalchemylogger/examples/example.py +0 -0
  60. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/sqlalchemylogger/handlers.py +0 -0
  61. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/static/favicon-16x16.png +0 -0
  62. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/static/favicon-32x32.png +0 -0
  63. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/stats_pyramid/__init__.py +0 -0
  64. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/stats_pyramid/_db_spy.py +0 -0
  65. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/templates/index.html.mako +0 -0
  66. {c2cwsgiutils-6.2.0.dev20 → c2cwsgiutils-6.2.0.dev23}/c2cwsgiutils/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: c2cwsgiutils
3
- Version: 6.2.0.dev20
3
+ Version: 6.2.0.dev23
4
4
  Summary: Common utilities for Camptocamp WSGI applications
5
5
  Home-page: https://github.com/camptocamp/c2cwsgiutils
6
6
  License: BSD-2-Clause
@@ -1,3 +1,4 @@
1
+ import logging
1
2
  import time
2
3
  from typing import Callable, Optional
3
4
 
@@ -9,6 +10,8 @@ from pyramid.httpexceptions import HTTPException
9
10
 
10
11
  from c2cwsgiutils import prometheus
11
12
 
13
+ _LOG = logging.getLogger(__name__)
14
+
12
15
  _PROMETHEUS_PYRAMID_ROUTES_SUMMARY = prometheus_client.Summary(
13
16
  prometheus.build_metric_name("pyramid_routes"),
14
17
  "Pyramid routes",
@@ -61,6 +64,15 @@ def _create_finished_cb(
61
64
  name = request.matched_route.name
62
65
  if kind == "route":
63
66
  _add_server_metric(request, "route", description=name)
67
+ if status >= 500:
68
+ _LOG.warning(
69
+ "Request %s %s %s route %s return status %s",
70
+ request.method,
71
+ request.path,
72
+ kind,
73
+ name,
74
+ status,
75
+ )
64
76
  measure.labels(
65
77
  method=request.method, route=name, status=status, group=str(status // 100 * 100)
66
78
  ).observe(time.process_time() - start)
@@ -16,7 +16,7 @@ strict = true
16
16
 
17
17
  [tool.poetry]
18
18
  name = "c2cwsgiutils"
19
- version = "6.2.0.dev20"
19
+ version = "6.2.0.dev23"
20
20
  description = "Common utilities for Camptocamp WSGI applications"
21
21
  readme = "README.md"
22
22
  authors = ["Camptocamp <info@camptocamp.com>"]