c2cwsgiutils 6.2.0.dev210__tar.gz → 6.2.0.dev213__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.
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/PKG-INFO +1 -1
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/prometheus.py +5 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/pyproject.toml +1 -1
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/LICENSE +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/README.md +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/connection.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/image.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/package-lock.json +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/package.json +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/print.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/screenshot.js +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/auth.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/interface.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/local.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/redis.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/broadcast/utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/client_info.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/config_utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/coverage_setup.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/db.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/db_maintenance_view.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/debug/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/debug/_listeners.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/debug/_views.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/debug/utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/errors.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/health_check.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/index.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/loader.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/logging_view.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/models_graph.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/pretty_json.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/profiler.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/py.typed +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/pyramid.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/pyramid_logging.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/redis_stats.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/redis_utils.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/request_tracking/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/request_tracking/_sql.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/scripts/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/scripts/genversion.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/scripts/stats_db.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/scripts/test_print.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sentry.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/services.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/setup_process.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sql_profiler/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sql_profiler/_impl.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/README.md +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/_filters.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/_models.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/examples/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/examples/example.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/handlers.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/static/favicon-16x16.png +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/static/favicon-32x32.png +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/stats_pyramid/__init__.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/stats_pyramid/_db_spy.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/stats_pyramid/_pyramid_spy.py +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/templates/index.html.mako +0 -0
- {c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/version.py +0 -0
|
@@ -148,6 +148,7 @@ class MultiProcessCustomCollector(prometheus_client.registry.Collector):
|
|
|
148
148
|
def _deserialize_collected_data(
|
|
149
149
|
results: list[list[SerializedMetric]],
|
|
150
150
|
) -> Generator[prometheus_client.core.Metric, None, None]:
|
|
151
|
+
imported = set()
|
|
151
152
|
for serialized_collection in results:
|
|
152
153
|
if serialized_collection is None:
|
|
153
154
|
continue
|
|
@@ -165,6 +166,10 @@ def _deserialize_collected_data(
|
|
|
165
166
|
else:
|
|
166
167
|
raise NotImplementedError
|
|
167
168
|
for sample in serialized_metric["samples"]:
|
|
169
|
+
canonical = (sample["name"], frozenset(sample.get("labels", {}).items()))
|
|
170
|
+
if canonical in imported:
|
|
171
|
+
continue
|
|
172
|
+
imported.add(canonical)
|
|
168
173
|
metric.samples.append(
|
|
169
174
|
prometheus_client.metrics_core.Sample(**sample), # type: ignore[attr-defined]
|
|
170
175
|
)
|
|
@@ -225,7 +225,7 @@ include = [
|
|
|
225
225
|
]
|
|
226
226
|
requires-python = ">=3.11"
|
|
227
227
|
dependencies = ["requests", "pyyaml", "ujson", "cee_syslog_handler", "prometheus-client"]
|
|
228
|
-
version = "6.2.0.
|
|
228
|
+
version = "6.2.0.dev213"
|
|
229
229
|
|
|
230
230
|
[project.urls]
|
|
231
231
|
repository = "https://github.com/camptocamp/c2cwsgiutils"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/package-lock.json
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/package.json
RENAMED
|
File without changes
|
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/acceptance/screenshot.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/request_tracking/__init__.py
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/request_tracking/_sql.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sql_profiler/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/README.md
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/__init__.py
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/_filters.py
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/sqlalchemylogger/handlers.py
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/static/favicon-16x16.png
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/static/favicon-32x32.png
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/stats_pyramid/__init__.py
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/stats_pyramid/_db_spy.py
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/stats_pyramid/_pyramid_spy.py
RENAMED
|
File without changes
|
{c2cwsgiutils-6.2.0.dev210 → c2cwsgiutils-6.2.0.dev213}/c2cwsgiutils/templates/index.html.mako
RENAMED
|
File without changes
|
|
File without changes
|