kinto 19.3.2__tar.gz → 19.4.0__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.
Potentially problematic release.
This version of kinto might be problematic. Click here for more details.
- {kinto-19.3.2/kinto.egg-info → kinto-19.4.0}/PKG-INFO +1 -1
- {kinto-19.3.2 → kinto-19.4.0}/docs/configuration/settings.rst +2 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/prometheus.py +19 -2
- {kinto-19.3.2 → kinto-19.4.0/kinto.egg-info}/PKG-INFO +1 -1
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/test_prometheus.py +29 -12
- {kinto-19.3.2 → kinto-19.4.0}/.dockerignore +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/.github/CONTRIBUTING.md +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/.github/dependabot.yml +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/.github/release.yml +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/.github/workflows/labels.yaml +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/.github/workflows/publish.yml +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/.github/workflows/test.yml +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/.gitignore +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/CHANGELOG.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/CONTRIBUTORS.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/Dockerfile +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/LICENSE +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/Makefile +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/README.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/SECURITY.md +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/SUPPORT.md +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/app.wsgi +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/constraints.in +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/constraints.txt +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/contribute.json +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docker-compose.yml +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/_static/piwik.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/_static/theme_overrides.css +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/_templates/footer.html +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/_templates/indexcontent.html +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/_templates/layout.html +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_details-delete-list.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_details-delete-object.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_details-get-list.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_details-get-object.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_details-head-list.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_details-patch-object.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_details-post-list.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_details-put-object.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_status-delete-list.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_status-delete-object.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_status-get-list.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_status-get-object.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_status-patch-object.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_status-post-list.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/_status-put-object.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/accounts.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/admin.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/authentication.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/backoff.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/batch.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/buckets.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/collections.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/deprecation.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/errors.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/filtering.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/flush.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/groups.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/history.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/index.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/openapi.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/openid.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/pagination.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/permissions.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/quotas.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/records.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/selecting_fields.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/sorting.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/timestamps.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/1.x/utilities.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/index.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/api/versioning.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/changelog.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/commandline.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/community.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/concepts.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/conf.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/configuration/good-practices.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/configuration/index.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/configuration/production.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/_static/theme_overrides.css +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/api.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/cache.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/decorators.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/errors.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/glossary.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/images/cliquet-base.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/images/cliquet-mozilla.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/index.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/notifications.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/permission.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/quickstart.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/rationale.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/resource.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/storage.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/testing.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/utils.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/core/viewsets.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/faq.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/alwaysdata-button.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/architecture.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/color-formatter.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/concepts-general.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/concepts-permissions.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/heroku-button.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/kinto-logo.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/kinto-logo.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-admin.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-attachment.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-community.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-demos.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-history.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-indexing.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-javascript.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-jsonschema.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-livesync.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-multiapps.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-offline.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-permissions.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-python.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-quotas.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-selfhostable.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-signature.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/logo-synchronisation.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/overview-deployonce-selfhost.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/overview-features.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/overview-synchronisation.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/overview-use-cases.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/scalingo-button.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/screenshot-kinto-admin-1.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/screenshot-kinto-admin-2.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/screenshot-kinto-admin-3.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/screenshot-kinto-admin-4.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/sequence-storage.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/sync-both.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/sync-newest.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/images/sync-oldest.svg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/index.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/kinto-admin.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/overview.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/requirements.txt +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/troubleshooting.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/app-examples.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/authentication-github.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/client-side-encryption.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/custom-id-generator.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/first-steps.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/index.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/install.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/notifications-custom.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/notifications-websockets.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/permission-setups.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/permissions.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/synchronisation.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/docs/tutorials/write-plugin.rst +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/__main__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/authorization.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/config/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/config/kinto.tpl +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/authentication.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/authorization.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/cache/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/cache/memcached.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/cache/memory.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/cache/postgresql/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/cache/postgresql/schema.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/cache/testing.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/decorators.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/errors.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/events.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/initialization.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/listeners/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/metrics.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/openapi.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/permission/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/permission/memory.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/permission/postgresql/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/permission/postgresql/migrations/migration_001_002.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/permission/postgresql/schema.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/permission/testing.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/resource/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/resource/model.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/resource/schema.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/resource/viewset.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/schema.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/scripts.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/statsd.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/exceptions.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/generators.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/memory.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/client.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_001_002.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_002_003.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_003_004.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_004_005.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_005_006.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_006_007.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_007_008.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_008_009.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_009_010.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_010_011.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_011_012.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_012_013.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_013_014.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_014_015.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_015_016.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_016_017.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_017_018.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_018_019.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_019_020.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_020_021.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_021_022.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/migrator.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/pool.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/postgresql/schema.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/testing.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/storage/utils.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/testing.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/utils.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/views/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/views/batch.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/views/errors.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/views/heartbeat.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/views/hello.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/views/openapi.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/core/views/version.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/events.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/accounts/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/accounts/authentication.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/accounts/mails.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/accounts/scripts.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/accounts/utils.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/accounts/views/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/accounts/views/validation.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/README.md +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/VERSION +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/VERSION +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/asn1-CGOzndHr.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/clojure-BMjYHr_A.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/css-BnMrqG3P.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/index-BKIg2XW8.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/index-D8oiN37x.css +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/javascript-iSgyE4tI.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/logo-VBRiKSPX.png +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/mllike-C_8OmSiT.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/python-BuPzkPfP.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/rpm-CTu-6PCP.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/sql-C4g8LzGK.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/assets/ttcn-cfg-BIkV9KBc.js +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/build/index.html +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/public/help.html +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/admin/views.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/default_bucket/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/flush.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/history/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/history/listener.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/history/views.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/openid/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/openid/utils.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/openid/views.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/quotas/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/quotas/listener.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/quotas/scripts.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/quotas/utils.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/plugins/statsd.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/schema_validation.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/scripts.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/views/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/views/admin.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/views/buckets.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/views/collections.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/views/contribute.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/views/groups.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/views/permissions.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto/views/records.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto.egg-info/SOURCES.txt +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto.egg-info/dependency_links.txt +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto.egg-info/entry_points.txt +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto.egg-info/requires.txt +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/kinto.egg-info/top_level.txt +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/pyproject.toml +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/scripts/pull-kinto-admin.sh +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/setup.cfg +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/browser.ini +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/browser.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/listeners.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_base.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_cache_expires.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_events.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_filter.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_model.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_object.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_object_permissions.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_pagination.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_partial_response.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_preconditions.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_schema.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_sort.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_sync.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_views.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_views_cors.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/resource/test_viewset.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/schema/postgresql-permission-1.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/schema/postgresql-storage-1.6.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/schema/postgresql-storage-11.sql +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/support.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_authentication.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_authorization.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_cache.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_decorators.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_deprecation.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_errors.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_initialization.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_listeners.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_logging.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_metrics.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_openapi.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_permission.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_schema.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_scripts.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_storage.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_storage_migrations.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_storage_pool.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_utils.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_views_batch.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_views_errors.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_views_heartbeat.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_views_hello.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_views_openapi.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_views_postgresql.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/test_views_transaction.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/testapp/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/testapp/static/index.html +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/testapp/views.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/core/testplugin/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/functional.ini +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/functional.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/support.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/test_plugins.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/test_resources.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/test_responses_buckets.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/test_responses_collections.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/test_responses_errors.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/test_responses_groups.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/test_responses_records.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/openapi/test_validation.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/__init__.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/test_accounts.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/test_admin.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/test_default_bucket.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/test_flush.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/test_history.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/test_openid.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/test_quotas.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/plugins/test_statsd.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/support.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_authorization.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_config.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_configuration/test.ini +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_init.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_main.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_scripts.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_admin.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_buckets.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_collections.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_collections_cache.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_contribute.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_disable_default.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_groups.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_hello.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_metrics.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_objects_permissions.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_permissions.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_records.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_schema_collection.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_schema_group.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_schema_record.py +0 -0
- {kinto-19.3.2 → kinto-19.4.0}/tests/test_views_version.py +0 -0
|
@@ -28,7 +28,7 @@ def get_registry():
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
def _fix_metric_name(s):
|
|
31
|
-
return s.replace("-", "_").replace(".", "_")
|
|
31
|
+
return s.replace("-", "_").replace(".", "_").replace(" ", "_")
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
class Timer:
|
|
@@ -68,8 +68,20 @@ class Timer:
|
|
|
68
68
|
|
|
69
69
|
@implementer(metrics.IMetricsService)
|
|
70
70
|
class PrometheusService:
|
|
71
|
+
def __init__(self, prefix=""):
|
|
72
|
+
prefix_clean = ""
|
|
73
|
+
if prefix:
|
|
74
|
+
# In GCP Console, the metrics are grouped by the first
|
|
75
|
+
# word before the first underscore. Here we make sure the specified
|
|
76
|
+
# prefix is not mixed up with metrics names.
|
|
77
|
+
# (eg. `remote-settings` -> `remotesettings_`, `kinto_` -> `kinto_`)
|
|
78
|
+
prefix_clean = _fix_metric_name(prefix).replace("_", "") + "_"
|
|
79
|
+
self.prefix = prefix_clean.lower()
|
|
80
|
+
|
|
71
81
|
def timer(self, key):
|
|
72
82
|
global _METRICS
|
|
83
|
+
key = self.prefix + key
|
|
84
|
+
|
|
73
85
|
if key not in _METRICS:
|
|
74
86
|
_METRICS[key] = prometheus_module.Summary(
|
|
75
87
|
_fix_metric_name(key), f"Summary of {key}", registry=get_registry()
|
|
@@ -84,6 +96,7 @@ class PrometheusService:
|
|
|
84
96
|
|
|
85
97
|
def observe(self, key, value, labels=[]):
|
|
86
98
|
global _METRICS
|
|
99
|
+
key = self.prefix + key
|
|
87
100
|
|
|
88
101
|
if key not in _METRICS:
|
|
89
102
|
_METRICS[key] = prometheus_module.Summary(
|
|
@@ -106,6 +119,7 @@ class PrometheusService:
|
|
|
106
119
|
|
|
107
120
|
def count(self, key, count=1, unique=None):
|
|
108
121
|
global _METRICS
|
|
122
|
+
key = self.prefix + key
|
|
109
123
|
|
|
110
124
|
labels = []
|
|
111
125
|
|
|
@@ -183,4 +197,7 @@ def includeme(config):
|
|
|
183
197
|
pass
|
|
184
198
|
_METRICS.clear()
|
|
185
199
|
|
|
186
|
-
config.
|
|
200
|
+
settings = config.get_settings()
|
|
201
|
+
prefix = settings.get("prometheus_prefix", settings["project_name"])
|
|
202
|
+
|
|
203
|
+
config.registry.registerUtility(PrometheusService(prefix=prefix), metrics.IMetricsService)
|
|
@@ -31,6 +31,7 @@ class PrometheusWebTest(support.BaseWebTest, unittest.TestCase):
|
|
|
31
31
|
def get_app_settings(cls, extras=None):
|
|
32
32
|
settings = super().get_app_settings(extras)
|
|
33
33
|
settings["includes"] = "kinto.plugins.prometheus"
|
|
34
|
+
settings["project_name"] = "kinto PROD"
|
|
34
35
|
return settings
|
|
35
36
|
|
|
36
37
|
|
|
@@ -59,7 +60,7 @@ class ServiceTest(PrometheusWebTest):
|
|
|
59
60
|
self.assertEqual(my_func(1, 1), 2)
|
|
60
61
|
|
|
61
62
|
resp = self.app.get("/__metrics__")
|
|
62
|
-
self.assertIn("TYPE
|
|
63
|
+
self.assertIn("TYPE kintoprod_func_latency_context summary", resp.text)
|
|
63
64
|
|
|
64
65
|
def test_timer_can_be_used_as_decorator(self):
|
|
65
66
|
decorated = self.app.app.registry.metrics.timer("func.latency.decorator")(my_func)
|
|
@@ -67,7 +68,7 @@ class ServiceTest(PrometheusWebTest):
|
|
|
67
68
|
self.assertEqual(decorated(1, 1), 2)
|
|
68
69
|
|
|
69
70
|
resp = self.app.get("/__metrics__")
|
|
70
|
-
self.assertIn("TYPE
|
|
71
|
+
self.assertIn("TYPE kintoprod_func_latency_decorator summary", resp.text)
|
|
71
72
|
|
|
72
73
|
def test_timer_can_be_used_as_decorator_on_partial_function(self):
|
|
73
74
|
partial = functools.partial(my_func, 3)
|
|
@@ -76,39 +77,39 @@ class ServiceTest(PrometheusWebTest):
|
|
|
76
77
|
self.assertEqual(decorated(3), 6)
|
|
77
78
|
|
|
78
79
|
resp = self.app.get("/__metrics__")
|
|
79
|
-
self.assertIn("TYPE
|
|
80
|
+
self.assertIn("TYPE kintoprod_func_latency_partial summary", resp.text)
|
|
80
81
|
|
|
81
82
|
def test_observe_a_single_value(self):
|
|
82
83
|
self.app.app.registry.metrics.observe("price", 111)
|
|
83
84
|
|
|
84
85
|
resp = self.app.get("/__metrics__")
|
|
85
|
-
self.assertIn("
|
|
86
|
+
self.assertIn("kintoprod_price_sum 111", resp.text)
|
|
86
87
|
|
|
87
88
|
def test_observe_a_single_value_with_labels(self):
|
|
88
89
|
self.app.app.registry.metrics.observe("size", 3.14, labels=[("endpoint", "/buckets")])
|
|
89
90
|
|
|
90
91
|
resp = self.app.get("/__metrics__")
|
|
91
|
-
self.assertIn('
|
|
92
|
+
self.assertIn('kintoprod_size_sum{endpoint="/buckets"} 3.14', resp.text)
|
|
92
93
|
|
|
93
94
|
def test_count_by_key(self):
|
|
94
95
|
self.app.app.registry.metrics.count("key")
|
|
95
96
|
|
|
96
97
|
resp = self.app.get("/__metrics__")
|
|
97
|
-
self.assertIn("
|
|
98
|
+
self.assertIn("kintoprod_key_total 1.0", resp.text)
|
|
98
99
|
|
|
99
100
|
def test_count_by_key_value(self):
|
|
100
101
|
self.app.app.registry.metrics.count("bigstep", count=2)
|
|
101
102
|
|
|
102
103
|
resp = self.app.get("/__metrics__")
|
|
103
|
-
self.assertIn("
|
|
104
|
+
self.assertIn("kintoprod_bigstep_total 2.0", resp.text)
|
|
104
105
|
|
|
105
106
|
def test_count_by_key_grouped(self):
|
|
106
107
|
self.app.app.registry.metrics.count("http", unique=[("status", "500")])
|
|
107
108
|
self.app.app.registry.metrics.count("http", unique=[("status", "200")])
|
|
108
109
|
|
|
109
110
|
resp = self.app.get("/__metrics__")
|
|
110
|
-
self.assertIn('
|
|
111
|
-
self.assertIn('
|
|
111
|
+
self.assertIn('kintoprod_http_total{status="500"} 1.0', resp.text)
|
|
112
|
+
self.assertIn('kintoprod_http_total{status="200"} 1.0', resp.text)
|
|
112
113
|
|
|
113
114
|
def test_metrics_cant_be_mixed(self):
|
|
114
115
|
self.app.app.registry.metrics.count("counter")
|
|
@@ -127,16 +128,32 @@ class ServiceTest(PrometheusWebTest):
|
|
|
127
128
|
self.app.app.registry.metrics.count("http.home.status", unique=[("code.get", "200")])
|
|
128
129
|
|
|
129
130
|
resp = self.app.get("/__metrics__")
|
|
130
|
-
self.assertIn('
|
|
131
|
+
self.assertIn('kintoprod_http_home_status_total{code_get="200"} 1.0', resp.text)
|
|
131
132
|
|
|
132
133
|
def test_count_with_legacy_string_generic_group(self):
|
|
133
134
|
self.app.app.registry.metrics.count("champignons", unique="boletus")
|
|
134
135
|
|
|
135
136
|
resp = self.app.get("/__metrics__")
|
|
136
|
-
self.assertIn('
|
|
137
|
+
self.assertIn('kintoprod_champignons_total{group="boletus"} 1.0', resp.text)
|
|
137
138
|
|
|
138
139
|
def test_count_with_legacy_string_basic_group(self):
|
|
139
140
|
self.app.app.registry.metrics.count("mushrooms", unique="species.boletus")
|
|
140
141
|
|
|
141
142
|
resp = self.app.get("/__metrics__")
|
|
142
|
-
self.assertIn('
|
|
143
|
+
self.assertIn('kintoprod_mushrooms_total{species="boletus"} 1.0', resp.text)
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
@skip_if_no_prometheus
|
|
147
|
+
class PrometheusNoPrefixTest(PrometheusWebTest):
|
|
148
|
+
@classmethod
|
|
149
|
+
def get_app_settings(cls, extras=None):
|
|
150
|
+
settings = super().get_app_settings(extras)
|
|
151
|
+
settings["project_name"] = "Some Project"
|
|
152
|
+
settings["prometheus_prefix"] = ""
|
|
153
|
+
return settings
|
|
154
|
+
|
|
155
|
+
def test_metrics_have_no_prefix(self):
|
|
156
|
+
self.app.app.registry.metrics.observe("price", 111)
|
|
157
|
+
|
|
158
|
+
resp = self.app.get("/__metrics__")
|
|
159
|
+
self.assertIn("TYPE price summary", resp.text)
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|