From ef63f09c2147b82e15d127751ddb7b768bf61500 Mon Sep 17 00:00:00 2001 From: Mike Kingsbury Date: Fri, 23 Sep 2022 17:23:52 -0400 Subject: [PATCH] OpenTelemetry tracing, with jaeger in development environment. For developers - includes an instance of Jaeger in the docker-compose development environment, available at port 16686. For production - supports OTLP/http exported traces to a specified endpoint in the configuration files. Please see docs/tracing.md for more details. Signed-off-by: Mike Kingsbury --- README.md | 5 + cachito/web/api_v1.py | 23 +- cachito/web/app.py | 65 ++- cachito/web/config.py | 2 + cachito/web/content_manifest.py | 2 - cachito/workers/__init__.py | 30 +- cachito/workers/config.py | 21 +- cachito/workers/pkg_managers/general.py | 8 + cachito/workers/pkg_managers/general_js.py | 11 + cachito/workers/pkg_managers/gomod.py | 18 +- cachito/workers/pkg_managers/npm.py | 5 + cachito/workers/pkg_managers/pip.py | 16 +- cachito/workers/pkg_managers/rubygems.py | 11 + cachito/workers/pkg_managers/yarn.py | 8 + cachito/workers/tasks/celery.py | 36 +- docker-compose.yml | 10 + docs/tracing.md | 22 + requirements-test.in | 7 + requirements-test.txt | 390 +++++++++++++++- requirements-web.in | 8 + requirements-web.txt | 511 ++++++++++++++++----- requirements.in | 6 + requirements.txt | 325 +++++++++++-- setup.py | 6 + tox.ini | 8 +- 25 files changed, 1384 insertions(+), 170 deletions(-) create mode 100644 docs/tracing.md diff --git a/README.md b/README.md index bfd8d908c..7f1081baf 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ Documents that outgrew this README can be found in the `docs/` drectory. * [pip.md](./docs/pip.md) is a guide for using pip with Cachito * [using_requests_locally.md](./docs/using_requests_locally.md) explains how to use Cachito requests to run builds on your PC + * [tracing.md](./docs/tracing.md) documents Cachito's support for OpenTelemetry tracing ## Coding Standards @@ -548,6 +549,8 @@ Custom configuration for the Celery workers are listed below: * `cachito_subprocess_timeout` - a number (in seconds) to set a timeout for commands executed by the `subprocess` module. Default is 3600 seconds. A timeout is always required, and there is no way provided by Cachito to disable it. Set a larger number to give the subprocess execution more time. +* `cachito_otlp_exporter_endpoint` - A valid URL with a port number as necessary to a OTLP/http-compatible + endpoint to receive OpenTelemetry trace data. To configure the workers to use a Kerberos keytab for authentication, set the `KRB5_CLIENT_KTNAME` environment variable to the path of the keytab. Additional Kerberos configuration can be made in @@ -574,6 +577,8 @@ Custom configuration for the API: * `CACHITO_WORKER_USERNAMES` - the list of usernames that are allowed to use the `/requests/` PATCH endpoint. * `LOGIN_DISABLED` - disables authentication requirements. +* `CACHITO_OTLP_EXPORTER_ENDPOINT` - A valid URL with a port number as necessary to a OTLP/http-compatible + endpoint to receive OpenTelemetry trace data. Additionally, to configure the communication with the Cachito Celery workers, create a Python file at `/etc/cachito/celery.py`, and set the diff --git a/cachito/web/api_v1.py b/cachito/web/api_v1.py index 49ef2aaa0..ad0a01eb1 100644 --- a/cachito/web/api_v1.py +++ b/cachito/web/api_v1.py @@ -14,6 +14,7 @@ from celery import chain from flask import stream_with_context from flask_login import current_user, login_required +from opentelemetry import trace from sqlalchemy import and_, func from sqlalchemy.orm import joinedload, load_only from werkzeug.exceptions import BadRequest, Forbidden, Gone, InternalServerError, NotFound @@ -43,6 +44,8 @@ api_v1 = flask.Blueprint("api_v1", __name__) +tracer = trace.get_tracer(__name__) + class RequestsArgs(pydantic.BaseModel): """Query parameters for /request endpoint.""" @@ -153,6 +156,7 @@ def get_requests(): return flask.jsonify(response) +@tracer.start_as_current_span("get_request") def get_request(request_id): """ Retrieve details for the given request. @@ -231,6 +235,7 @@ def get_request_environment_variables(request_id): return flask.jsonify(env_vars_json) +@tracer.start_as_current_span("download_archive") def download_archive(request_id): """ Download archive of source code. @@ -311,6 +316,7 @@ def list_packages_and_dependencies(request_id): @login_required +@tracer.start_as_current_span("create_request") def create_request(): """ Submit a request to resolve and cache the given source code and its dependencies. @@ -342,12 +348,25 @@ def create_request(): cachito_metrics["gauge_state"].labels(state="total").inc() cachito_metrics["gauge_state"].labels(state=request.state.state_name).inc() + ctx = trace.get_current_span().get_span_context() + # Format the trace_id to a conventional 32 digit hexadecimal number that can be used + # by jaeger or other endpoints for tracing. + trace_id = "{trace:032x}".format(trace=ctx.trace_id) + + current_span = trace.get_current_span() + current_span.set_attribute("cachito.request.id", request.id) + if current_user.is_authenticated: flask.current_app.logger.info( - "The user %s submitted request %d", current_user.username, request.id + "The user %s submitted request %d; trace_id: %s", + current_user.username, + request.id, + trace_id, ) else: - flask.current_app.logger.info("An anonymous user submitted request %d", request.id) + flask.current_app.logger.info( + "An anonymous user submitted request %d; trace_id: %s", request.id, trace_id + ) # Chain tasks error_callback = tasks.failed_request_callback.s(request.id) diff --git a/cachito/web/app.py b/cachito/web/app.py index d86e0c6d0..34eca6dea 100644 --- a/cachito/web/app.py +++ b/cachito/web/app.py @@ -10,6 +10,17 @@ from flask.logging import default_handler from flask_login import LoginManager from flask_migrate import Migrate +from opentelemetry import trace +from opentelemetry.exporter.jaeger.thrift import JaegerExporter +from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.instrumentation.celery import CeleryInstrumentor +from opentelemetry.instrumentation.flask import FlaskInstrumentor +from opentelemetry.instrumentation.psycopg2 import Psycopg2Instrumentor +from opentelemetry.instrumentation.requests import RequestsInstrumentor +from opentelemetry.instrumentation.sqlalchemy import SQLAlchemyInstrumentor +from opentelemetry.sdk.resources import SERVICE_NAME, Resource +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter from sqlalchemy.exc import SQLAlchemyError from werkzeug.exceptions import InternalServerError, default_exceptions @@ -133,10 +144,62 @@ def create_app(config_obj=None): app.register_error_handler(pydantic.ValidationError, validation_error) init_metrics(app) - + _instrument_app(app) return app +def _instrument_app(app): + """ + Instrument the Flask app. + + Sets up the OpenTelemetry tracing exporter, configures the endpoint + to send trace data to. + """ + # Some of the following has already been executed due to the manner in which + # the tasks config is included.... + + service_name = "cachito-api" + resource = Resource(attributes={SERVICE_NAME: service_name}) + provider = TracerProvider(resource=resource) + + # Used for local development environment aka docker-compose up. + if "CACHITO_JAEGER_EXPORTER_ENDPOINT" in app.config.keys(): + app.logger.info("Configuring Jaeger Exporter") + jaeger_exporter = JaegerExporter( + agent_host_name=app.config["CACHITO_JAEGER_EXPORTER_ENDPOINT"], + agent_port=int(app.config["CACHITO_JAEGER_EXPORTER_PORT"]), + ) + processor = BatchSpanProcessor(jaeger_exporter) + # test/stage/prod environments.... + elif "CACHITO_OTLP_EXPORTER_ENDPOINT" in app.config.keys(): + app.logger.info( + "Configuring OTLP Exporter: " + str(app.config["CACHITO_OTLP_EXPORTER_ENDPOINT"]) + ) + otlp_exporter = OTLPSpanExporter(endpoint=app.config["CACHITO_OTLP_EXPORTER_ENDPOINT"]) + processor = BatchSpanProcessor(otlp_exporter) + # Undefined; send data to the console. + else: + app.logger.info("Configuring ConsoleSpanExporter") + processor = BatchSpanProcessor(ConsoleSpanExporter()) + + # Toggle between sending to jaeger and displaying span info on console + provider.add_span_processor(processor) + trace.set_tracer_provider(provider) + + FlaskInstrumentor().instrument_app( + app, excluded_urls="/static/*,/favicon.ico,/metrics,/healthcheck" + ) + RequestsInstrumentor().instrument() + CeleryInstrumentor().instrument() + SQLAlchemyInstrumentor().instrument( + enable_commenter=True, + commenter_options={ + "db_driver": True, + }, + ) + Psycopg2Instrumentor().instrument(enable_commenter=True, commenter_options={}) + + def create_cli_app(): """ Create a Flask application instance and validate the configuration for the Flask CLI. diff --git a/cachito/web/config.py b/cachito/web/config.py index b82f4520d..8c98e059f 100644 --- a/cachito/web/config.py +++ b/cachito/web/config.py @@ -56,6 +56,8 @@ class DevelopmentConfig(Config): SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://cachito:cachito@db:5432/cachito" SQLALCHEMY_TRACK_MODIFICATIONS = True LOGIN_DISABLED = True + CACHITO_JAEGER_EXPORTER_ENDPOINT = "jaeger" + CACHITO_JAEGER_EXPORTER_PORT = 6831 class TestingConfig(DevelopmentConfig): diff --git a/cachito/web/content_manifest.py b/cachito/web/content_manifest.py index 60ee370a5..e73ff2577 100644 --- a/cachito/web/content_manifest.py +++ b/cachito/web/content_manifest.py @@ -91,7 +91,6 @@ def process_gomod(self, package, dependency, type="icm"): :param type: icm or sbom component """ if dependency.type == "gomod": - parent_module_name = package.name relpath_from_parent_module_to_dep = None @@ -339,7 +338,6 @@ def to_json(self): self._gitsubmodule_data = {} for package in self.packages: - if package.type == "go-package": purl = to_top_level_purl(package, self.request, subpath=package.path) self._gopkg_data.setdefault( diff --git a/cachito/workers/__init__.py b/cachito/workers/__init__.py index d635f1ca5..5d543a675 100644 --- a/cachito/workers/__init__.py +++ b/cachito/workers/__init__.py @@ -8,11 +8,14 @@ from tarfile import ExtractError, TarFile from typing import Iterator +from opentelemetry import trace + from cachito.errors import SubprocessCallError from cachito.workers.config import get_worker_config from cachito.workers.errors import CachitoCalledProcessError log = logging.getLogger(__name__) +tracer = trace.get_tracer(__name__) def run_cmd(cmd, params, exc_msg=None): @@ -29,22 +32,22 @@ def run_cmd(cmd, params, exc_msg=None): params.setdefault("capture_output", True) params.setdefault("universal_newlines", True) params.setdefault("encoding", "utf-8") + with tracer.start_as_current_span("running cmd " + " ".join(cmd)): + conf = get_worker_config() + params.setdefault("timeout", conf.cachito_subprocess_timeout) - conf = get_worker_config() - params.setdefault("timeout", conf.cachito_subprocess_timeout) - - try: - response = subprocess.run(cmd, **params) # nosec - except subprocess.TimeoutExpired as e: - raise SubprocessCallError(str(e)) + try: + response = subprocess.run(cmd, **params) # nosec + except subprocess.TimeoutExpired as e: + raise SubprocessCallError(str(e)) - if response.returncode != 0: - log.error('The command "%s" failed with: %s', " ".join(cmd), response.stderr) - raise CachitoCalledProcessError( - exc_msg or "An unexpected error occurred", response.returncode - ) + if response.returncode != 0: + log.error('The command "%s" failed with: %s', " ".join(cmd), response.stderr) + raise CachitoCalledProcessError( + exc_msg or "An unexpected error occurred", response.returncode + ) - return response.stdout + return response.stdout def load_json_stream(s: str) -> Iterator: @@ -79,7 +82,6 @@ def safe_extract(tar: TarFile, path: str = ".", *, numeric_owner: bool = False): """ abs_path = Path(path).resolve() for member in tar.getmembers(): - member_path = Path(path).joinpath(member.name) abs_member_path = member_path.resolve() diff --git a/cachito/workers/config.py b/cachito/workers/config.py index 845483d63..3f0dc7d2c 100644 --- a/cachito/workers/config.py +++ b/cachito/workers/config.py @@ -6,11 +6,15 @@ import celery import kombu +from opentelemetry.instrumentation.requests import RequestsInstrumentor from cachito.errors import ConfigError ARCHIVES_VOLUME = os.path.join(tempfile.gettempdir(), "cachito-archives") +RequestsInstrumentor().instrument() + + app = celery.Celery() @@ -68,6 +72,9 @@ class Config(object): cachito_task_log_format = ( "[%(asctime)s #%(request_id)s %(name)s %(levelname)s %(module)s.%(funcName)s] %(message)s" ) + cachito_jaeger_exporter_endpoint: Optional[str] = "" + cachito_jaeger_exporter_port: Optional[int] + cachito_otlp_exporter_endpoint: Optional[str] = "" include = [ "cachito.workers.tasks.general", "cachito.workers.tasks.gomod", @@ -140,6 +147,8 @@ class DevelopmentConfig(Config): } cachito_request_file_logs_dir: Optional[str] = "/var/log/cachito/requests" cachito_sources_dir = os.path.join(ARCHIVES_VOLUME, "sources") + cachito_jaeger_exporter_endpoint = "jaeger" + cachito_jaeger_exporter_port = 6831 class TestingConfig(DevelopmentConfig): @@ -166,6 +175,14 @@ def configure_celery(celery_app): :param celery.Celery celery: the Celery application instance to configure """ + config = get_config() + + celery_app.config_from_object(config, force=True) + logging.getLogger("cachito.workers").setLevel(celery_app.conf.cachito_log_level) + + +def get_config(): + """Read in the config based on the environment.""" config = ProductionConfig prod_config_file_path = "/etc/cachito/celery.py" if os.getenv("CACHITO_DEV", "").lower() == "true": @@ -190,9 +207,7 @@ def configure_celery(celery_app): # The _user_config dictionary will contain the __builtins__ key, which we need to skip if not key.startswith("__"): setattr(config, key, value) - - celery_app.config_from_object(config, force=True) - logging.getLogger("cachito.workers").setLevel(celery_app.conf.cachito_log_level) + return config def validate_celery_config(conf, **kwargs): diff --git a/cachito/workers/pkg_managers/general.py b/cachito/workers/pkg_managers/general.py index 927cf3729..9268f8362 100644 --- a/cachito/workers/pkg_managers/general.py +++ b/cachito/workers/pkg_managers/general.py @@ -9,6 +9,7 @@ import aiohttp import aiohttp_retry import requests +from opentelemetry import trace from cachito.common.checksum import hash_file from cachito.errors import InvalidChecksum, InvalidRequestData, NetworkError, UnknownHashAlgorithm @@ -27,6 +28,7 @@ ] log = logging.getLogger(__name__) +tracer = trace.get_tracer(__name__) ChecksumInfo = collections.namedtuple("ChecksumInfo", "algorithm hexdigest") @@ -45,6 +47,7 @@ def _get_request_url(request_id): return f'{config.cachito_api_url.rstrip("/")}/requests/{request_id}' +@tracer.start_as_current_span("update_request_with_config_files") def update_request_with_config_files(request_id, config_files): """ Update the Cachito request with the input configuration files. @@ -77,6 +80,7 @@ def update_request_with_config_files(request_id, config_files): raise InvalidRequestData(f"Adding configuration files on request {request_id} failed") +@tracer.start_as_current_span("update_request_env_vars") def update_request_env_vars(request_id: int, env_vars: Dict[str, Dict[str, str]]) -> None: """Update environment variables of a request. @@ -111,6 +115,7 @@ def update_request_env_vars(request_id: int, env_vars: Dict[str, Dict[str, str]] raise InvalidRequestData(f"Updating environment variables on request {request_id} failed") +@tracer.start_as_current_span("verify_checksum") def verify_checksum(file_path: str, checksum_info: ChecksumInfo, chunk_size: int = 10240): """ Verify the checksum of the file at the given path matches the expected checksum info. @@ -138,6 +143,7 @@ def verify_checksum(file_path: str, checksum_info: ChecksumInfo, chunk_size: int raise InvalidChecksum(msg) +@tracer.start_as_current_span("download_binary_file") def download_binary_file(url, download_path, auth=None, insecure=False, chunk_size=8192): """ Download a binary file (such as a TAR archive) from a URL. @@ -205,6 +211,7 @@ async def async_download_binary_file( log.debug(f"Download completed - {tarball_name}") +@tracer.start_as_current_span("download_raw_component") def download_raw_component(raw_component_name, raw_repo_name, download_path, nexus_auth): """ Download raw component if present in raw repo. @@ -222,6 +229,7 @@ def download_raw_component(raw_component_name, raw_repo_name, download_path, nex return False +@tracer.start_as_current_span("upload_raw_package") def upload_raw_package(repo_name, artifact_path, dest_dir, filename, is_request_repository): """ Upload a raw package to a Nexus repository. diff --git a/cachito/workers/pkg_managers/general_js.py b/cachito/workers/pkg_managers/general_js.py index 30234836c..63c47b062 100644 --- a/cachito/workers/pkg_managers/general_js.py +++ b/cachito/workers/pkg_managers/general_js.py @@ -20,6 +20,7 @@ import aiohttp from aiohttp_retry import JitterRetry, RetryClient +from opentelemetry import trace from cachito.errors import ( FileAccessError, @@ -57,6 +58,7 @@ ] log = logging.getLogger(__name__) +tracer = trace.get_tracer(__name__) NPM_REGISTRY_CNAMES = ("registry.npmjs.org", "registry.yarnpkg.com") @@ -98,6 +100,7 @@ def parse_dependency( return (proxied_url, tarball_name) +@tracer.start_as_current_span("get_dependencies") async def get_dependencies( proxy_repo_url: str, download_dir: Path, @@ -179,6 +182,7 @@ async def on_request_start( return results +@tracer.start_as_current_span("download_dependencies") def download_dependencies( download_dir: Path, deps: List[Dict[str, Any]], @@ -297,6 +301,7 @@ def download_dependencies( return downloaded_deps +@tracer.start_as_current_span("finalize_nexus_for_js_request") def finalize_nexus_for_js_request(repo_name, username): """ Finalize the Nexus configuration so that the request's npm repository is ready for consumption. @@ -446,6 +451,7 @@ def get_js_hosted_repo_name(): return config.cachito_nexus_js_hosted_repo_name +@tracer.start_as_current_span("_get_js_component_info_from_nexus") def _get_js_component_info_from_nexus( name: str, version: str, repository: str, is_hosted: bool, max_attempts: int = 1 ) -> Optional[dict]: @@ -481,6 +487,7 @@ def _get_js_component_info_from_nexus( ) +@tracer.start_as_current_span("get_npm_component_info_from_nexus") def get_npm_component_info_from_nexus( name: str, version: str, max_attempts: int = 1 ) -> Optional[dict]: @@ -520,6 +527,7 @@ def get_yarn_component_info_from_non_hosted_nexus( ) +@tracer.start_as_current_span("prepare_nexus_for_js_request") def prepare_nexus_for_js_request(repo_name): """ Prepare Nexus so that Cachito can stage JavaScript content. @@ -545,6 +553,7 @@ def prepare_nexus_for_js_request(repo_name): raise NexusError("Failed to prepare Nexus for Cachito to stage JavaScript content") +@tracer.start_as_current_span("upload_non_registry_dependency") def upload_non_registry_dependency( dep_identifier: str, version_suffix: str, @@ -605,6 +614,7 @@ def upload_non_registry_dependency( nexus.upload_asset_only_component(repo_name, "npm", modified_dep_archive) +@tracer.start_as_current_span("_fetch_external_dep") def _fetch_external_dep(dep_identifier: str, is_git: bool, temp_dir: str) -> str: """Fetch an external (git or https) JS dependency. @@ -660,6 +670,7 @@ def _fetch_external_dep(dep_identifier: str, is_git: bool, temp_dir: str) -> str return dep_archive +@tracer.start_as_current_span("_clone_git_dep") def _clone_git_dep(dep_identifier: str) -> Path: """Clone a git dependency, create a tar archive from it and return the archive's path. diff --git a/cachito/workers/pkg_managers/gomod.py b/cachito/workers/pkg_managers/gomod.py index 7ac794b4a..3b17492b9 100644 --- a/cachito/workers/pkg_managers/gomod.py +++ b/cachito/workers/pkg_managers/gomod.py @@ -16,6 +16,7 @@ import git import pydantic import semver +from opentelemetry import trace from cachito.errors import ( GoModError, @@ -38,6 +39,7 @@ ] log = logging.getLogger(__name__) +tracer = trace.get_tracer(__name__) run_gomod_cmd = functools.partial(run_cmd, exc_msg="Processing gomod dependencies failed") MODULE_VERSION_RE = re.compile(r"/v\d+$") @@ -89,6 +91,7 @@ class GoPackage(_GolangModel): deps: list[str] = [] +@tracer.start_as_current_span("run_download_cmd") def run_download_cmd(cmd: Iterable[str], params: Dict[str, str]) -> str: """Run gomod command that downloads dependencies. @@ -193,6 +196,7 @@ def match_parent_module(package_name: str, module_names: Iterable[str]) -> Optio ) +@tracer.start_as_current_span("resolve_gomod") def resolve_gomod(app_source_path, request, dep_replacements=None, git_dir_path=None): """ Resolve and fetch gomod dependencies for given app source archive. @@ -240,7 +244,8 @@ def resolve_gomod(app_source_path, request, dep_replacements=None, git_dir_path= version = dep_replacement["version"] log.info("Applying the gomod replacement %s => %s@%s", name, new_name, version) run_gomod_cmd( - ("go", "mod", "edit", "-replace", f"{name}={new_name}@{version}"), run_params + ("go", "mod", "edit", "-replace", f"{name}={new_name}@{version}"), + run_params, ) # Vendor dependencies if the gomod-vendor flag is set @@ -298,7 +303,11 @@ def resolve_gomod(app_source_path, request, dep_replacements=None, git_dir_path= else app_source_path.replace(f"{git_dir_path}/", "") ), ) - main_module = {"type": "gomod", "name": main_module_name, "version": main_module_version} + main_module = { + "type": "gomod", + "name": main_module_name, + "version": main_module_version, + } def go_list_deps(pattern: Literal["./...", "all"]) -> Iterator[GoPackage]: """Run go list -deps -json and return the parsed list of packages. @@ -446,6 +455,7 @@ def _should_vendor_deps(flags: List[str], app_dir: str, strict: bool) -> Tuple[b return False, False +@tracer.start_as_current_span("_vendor_deps") def _vendor_deps(run_params: dict, can_make_changes: bool, git_dir: str) -> list[GoModule]: """ Vendor golang dependencies. @@ -520,6 +530,7 @@ def parse_module_line(line: str) -> GoModule: return [module for module, has_packages in zip(modules, module_has_packages) if has_packages] +@tracer.start_as_current_span("_vendor_changed") def _vendor_changed(git_dir: str, app_dir: str) -> bool: """Check for changes in the vendor directory.""" vendor = Path(app_dir).relative_to(git_dir).joinpath("vendor") @@ -663,6 +674,7 @@ def _set_full_local_dep_relpaths(pkg_deps: List[dict], main_module_deps: List[di dep["version"] = os.path.join(dep_path, path_from_module_to_pkg) +@tracer.start_as_current_span("_merge_bundle_dirs") def _merge_bundle_dirs(root_src_dir, root_dst_dir): """ Merge two bundle directories together. @@ -768,6 +780,7 @@ def _get_golang_pseudo_version(commit, tag=None, module_major_version=None, subp return f"v{pseudo_semantic_version}{version_seperator}0.{commit_timestamp}-{commit_hash}" +@tracer.start_as_current_span("_get_highest_semver_tag") def _get_highest_semver_tag(repo, target_commit, major_version, all_reachable=False, subpath=None): """ Get the highest semantic version tag related to the input commit. @@ -855,6 +868,7 @@ def _get_semantic_version_from_tag(tag_name, subpath=None): return semver.VersionInfo.parse(semantic_version) +@tracer.start_as_current_span("get_golang_version") def get_golang_version(module_name, git_path, commit_sha, update_tags=False, subpath=None): """ Get the version of the Go module in the input Git repository in the same format as `go list`. diff --git a/cachito/workers/pkg_managers/npm.py b/cachito/workers/pkg_managers/npm.py index ef4d45d25..12914a3f1 100644 --- a/cachito/workers/pkg_managers/npm.py +++ b/cachito/workers/pkg_managers/npm.py @@ -7,6 +7,8 @@ from pathlib import Path from typing import Any, Iterator, Optional, Self +from opentelemetry import trace + from cachito.errors import CachitoError, FileAccessError, ValidationError from cachito.workers.config import get_worker_config from cachito.workers.paths import RequestBundleDir @@ -27,6 +29,7 @@ ] log = logging.getLogger(__name__) +tracer = trace.get_tracer(__name__) @dataclass @@ -642,6 +645,7 @@ def get_npm_proxy_username(request_id): return f"cachito-npm-{request_id}" +@tracer.start_as_current_span("get_package_and_deps") def get_package_and_deps(package_json_path, package_lock_path): """ Get the main package and dependencies based on the lock file. @@ -703,6 +707,7 @@ def get_package_and_deps(package_json_path, package_lock_path): return rv +@tracer.start_as_current_span("resolve_npm") def resolve_npm(app_source_path, request, skip_deps=None): """ Resolve and fetch npm dependencies for the given app source archive. diff --git a/cachito/workers/pkg_managers/pip.py b/cachito/workers/pkg_managers/pip.py index 779a99869..8e4e74762 100644 --- a/cachito/workers/pkg_managers/pip.py +++ b/cachito/workers/pkg_managers/pip.py @@ -18,6 +18,7 @@ import defusedxml.ElementTree import pkg_resources import requests +from opentelemetry import trace from packaging.utils import canonicalize_name, canonicalize_version from cachito.errors import ( @@ -44,6 +45,7 @@ from cachito.workers.scm import Git log = logging.getLogger(__name__) +tracer = trace.get_tracer(__name__) DEFAULT_BUILD_REQUIREMENTS_FILE = "requirements-build.txt" DEFAULT_REQUIREMENTS_FILE = "requirements.txt" @@ -60,6 +62,7 @@ SDIST_EXT_PATTERN = r"|".join(map(re.escape, SDIST_FILE_EXTENSIONS)) +@tracer.start_as_current_span("get_pip_metadata") def get_pip_metadata(package_dir): """ Attempt to get the name and version of a Pip package. @@ -87,7 +90,8 @@ def get_pip_metadata(package_dir): version = setup_py.get_version() else: log.warning( - "No setup.py found in directory %s, package is likely not pip compatible", package_dir + "No setup.py found in directory %s, package is likely not pip compatible", + package_dir, ) if not (name and version) and setup_cfg.exists(): @@ -1216,6 +1220,7 @@ def _split_hashes_from_options(cls, options): return hashes, reduced_options +@tracer.start_as_current_span("prepare_nexus_for_pip_request") def prepare_nexus_for_pip_request(pip_repo_name, raw_repo_name): """ Prepare Nexus so that Cachito can stage Python content. @@ -1236,6 +1241,7 @@ def prepare_nexus_for_pip_request(pip_repo_name, raw_repo_name): raise NexusError("Failed to prepare Nexus for Cachito to stage Python content") +@tracer.start_as_current_span("finalize_nexus_for_pip_request") def finalize_nexus_for_pip_request(pip_repo_name, raw_repo_name, username): """ Configure Nexus so that the request's Pyhton repositories are ready for consumption. @@ -1264,6 +1270,7 @@ def finalize_nexus_for_pip_request(pip_repo_name, raw_repo_name, username): return password +@tracer.start_as_current_span("download_dependencies") def download_dependencies(request_id, requirements_file): """ Download sdists (source distributions) of all dependencies in a requirements.txt file. @@ -1519,6 +1526,7 @@ def _validate_provided_hashes(requirements, require_hashes): raise ValidationError(msg) +@tracer.start_as_current_span("_download_pypi_package") def _download_pypi_package(requirement, pip_deps_dir, pypi_proxy_url, pypi_proxy_auth): """ Download the sdist (source distribution) of a PyPI package. @@ -1654,6 +1662,7 @@ def _sdist_preference(sdist_pkg): return yanked_pref, filetype_pref +@tracer.start_as_current_span("_download_vcs_package") def _download_vcs_package(requirement, pip_deps_dir, pip_raw_repo_name, nexus_auth): """ Fetch the source for a Python package from VCS (only git is supported). @@ -1704,6 +1713,7 @@ def _download_vcs_package(requirement, pip_deps_dir, pip_raw_repo_name, nexus_au } +@tracer.start_as_current_span("_download_url_package") def _download_url_package(requirement, pip_deps_dir, pip_raw_repo_name, nexus_auth, trusted_hosts): """ Download a Python package from a URL. @@ -1809,6 +1819,7 @@ def _verify_hash(download_path, hashes): raise InvalidChecksum(msg) +@tracer.start_as_current_span("upload_pypi_package") def upload_pypi_package(repo_name, artifact_path): """ Upload a PyPI Python package to a Nexus repository. @@ -1916,6 +1927,7 @@ def get_index_url(nexus_pypi_hosted_repo_url, username, password): return simple_api_url +@tracer.start_as_current_span("_download_from_requirement_files") def _download_from_requirement_files(request_id, files): """ Download dependencies listed in the requirement files. @@ -1949,6 +1961,7 @@ def _default_requirement_file_list(path, devel=False): return [str(req)] if req.is_file() else [] +@tracer.start_as_current_span("_push_downloaded_requirement") def _push_downloaded_requirement(requirement, pip_repo_name, raw_repo_name): """ Upload a dependency to the proper Request temporary Nexus repository. @@ -2020,6 +2033,7 @@ def _push_downloaded_requirement(requirement, pip_repo_name, raw_repo_name): return dep +@tracer.start_as_current_span("resolve_pip") def resolve_pip(path, request, requirement_files=None, build_requirement_files=None): """ Resolve and fetch pip dependencies for the given app source archive. diff --git a/cachito/workers/pkg_managers/rubygems.py b/cachito/workers/pkg_managers/rubygems.py index d761208f4..80da71b40 100644 --- a/cachito/workers/pkg_managers/rubygems.py +++ b/cachito/workers/pkg_managers/rubygems.py @@ -14,6 +14,7 @@ from gemlock_parser.gemfile_lock import GemfileLockParser from git import Repo from git.exc import CheckoutError +from opentelemetry import trace from cachito.common.utils import get_repo_name from cachito.errors import GitError, NexusError, UnsupportedFeature, ValidationError @@ -34,6 +35,7 @@ PLATFORMS_RUBY = re.compile(r"^PLATFORMS\n {2}ruby\n\n", re.MULTILINE) log = logging.getLogger(__name__) +tracer = trace.get_tracer(__name__) @dataclass @@ -47,6 +49,7 @@ class GemMetadata: branch: Optional[str] = None +@tracer.start_as_current_span("prepare_nexus_for_rubygems_request") def prepare_nexus_for_rubygems_request(rubygems_repo_name): """ Prepare Nexus so that Cachito can stage Rubygems content. @@ -160,6 +163,7 @@ def _validate_path_dependency_dir(gem, project_root, gemlock_dir): raise ValidationError(f"{str(dependency_dir)} is not a subpath of {str(project_root)}") +@tracer.start_as_current_span("finalize_nexus_for_rubygems_request") def finalize_nexus_for_rubygems_request(rubygems_repo_name, username): """ Configure Nexus so that the request's Rubygems repositories are ready for consumption. @@ -186,6 +190,7 @@ def finalize_nexus_for_rubygems_request(rubygems_repo_name, username): return password +@tracer.start_as_current_span("download_dependencies") def download_dependencies(request_id, dependencies, package_root, allowed_path_deps: set[str]): """ Download all dependencies from Gemfile.lock with its sources. @@ -281,6 +286,7 @@ def verify_path_dep_is_allowed(dep: GemMetadata, allowed_path_deps: set[str]): ) +@tracer.start_as_current_span("_download_rubygems_package") def _download_rubygems_package(gem, deps_dir, proxy_url, proxy_auth): """Download platform independent RubyGem. @@ -306,6 +312,7 @@ def _download_rubygems_package(gem, deps_dir, proxy_url, proxy_auth): } +@tracer.start_as_current_span("_download_git_package") def _download_git_package(gem, rubygems_deps_dir, rubygems_raw_repo_name, nexus_auth): """ Fetch the source for a Ruby package from Git. @@ -374,6 +381,7 @@ def _get_path_package_info(dep, package_root): } +@tracer.start_as_current_span("resolve_rubygems") def resolve_rubygems(package_root, request): """ Resolve and fetch RubyGems dependencies for the given app source archive. @@ -425,6 +433,7 @@ def resolve_rubygems(package_root, request): } +@tracer.start_as_current_span("prepare_git_dependency") def prepare_git_dependency(dep): """ Unpack the archive with the downloaded dependency and checkout a specified Git branch. @@ -465,6 +474,7 @@ def checkout_branch(dep: dict): ) +@tracer.start_as_current_span("_upload_rubygems_package") def _upload_rubygems_package(repo_name, artifact_path): """ Upload a RubyGems package to a Nexus repository. @@ -478,6 +488,7 @@ def _upload_rubygems_package(repo_name, artifact_path): nexus.upload_asset_only_component(repo_name, "rubygems", artifact_path, to_nexus_hoster=False) +@tracer.start_as_current_span("_push_downloaded_gem") def _push_downloaded_gem(dependency, rubygems_repo_name): """ Upload a GEM dependency to the request temporary Nexus repository. diff --git a/cachito/workers/pkg_managers/yarn.py b/cachito/workers/pkg_managers/yarn.py index 61ae48ffc..61dbddb5b 100644 --- a/cachito/workers/pkg_managers/yarn.py +++ b/cachito/workers/pkg_managers/yarn.py @@ -7,6 +7,7 @@ from urllib.parse import urlparse import pyarn.lockfile +from opentelemetry import trace from cachito.errors import InvalidRepoStructure, InvalidRequestData, NexusError from cachito.workers.config import get_worker_config @@ -29,6 +30,7 @@ ] log = logging.getLogger(__name__) +tracer = trace.get_tracer(__name__) def get_yarn_proxy_repo_name(request_id): @@ -89,6 +91,7 @@ def file_version(self) -> str: return f"file:{self.path.as_posix()}" +@tracer.start_as_current_span("_get_yarn_workspaces") def _get_yarn_workspaces(package_path: Path, package_json: dict[str, Any]) -> list[Workspace]: workspaces_attr = package_json.get("workspaces", []) if isinstance(workspaces_attr, list): @@ -133,6 +136,7 @@ def relpath(abspath: Path) -> Path: return workspaces +@tracer.start_as_current_span("_find_non_dev_deps") def _find_non_dev_deps( main_package_json: dict[str, Any], yarn_lock: dict[str, Any], workspaces: list[Workspace] ) -> set[str]: @@ -162,6 +166,7 @@ def _find_non_dev_deps( return non_dev_deps +@tracer.start_as_current_span("_add_reachable_deps") def _add_reachable_deps( dep_id: str, expanded_yarn_lock: dict[str, Any], visited_deps: set[str] ) -> None: @@ -202,6 +207,7 @@ def _split_yarn_lock_key(dep_identifer): return dep_identifer.replace('"', "").split(", ") +@tracer.start_as_current_span("_get_deps") def _get_deps( package_json: dict[str, Any], yarn_lock: dict[str, Any], @@ -344,6 +350,7 @@ def _convert_to_nexus_hosted(dep_name, dep_source, dep_info): } +@tracer.start_as_current_span("_get_package_and_deps") def _get_package_and_deps(package_path: Path) -> dict[str, Any]: """ Get the main package and dependencies based on the lock file. @@ -540,6 +547,7 @@ def _replace_deps_in_yarn_lock(yarn_lock, nexus_replacements): return yarn_lock_new +@tracer.start_as_current_span("resolve_yarn") def resolve_yarn(app_source_path, request, skip_deps=None): """ Resolve and fetch npm dependencies for the given app source archive. diff --git a/cachito/workers/tasks/celery.py b/cachito/workers/tasks/celery.py index 8a5aa42fc..b0c497522 100644 --- a/cachito/workers/tasks/celery.py +++ b/cachito/workers/tasks/celery.py @@ -2,7 +2,14 @@ import sys import celery -from celery.signals import celeryd_init, task_postrun, task_prerun +from celery.signals import celeryd_init, task_postrun, task_prerun, worker_process_init +from opentelemetry import trace +from opentelemetry.exporter.jaeger.thrift import JaegerExporter +from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.instrumentation.celery import CeleryInstrumentor +from opentelemetry.sdk.resources import SERVICE_NAME, Resource +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import BatchSpanProcessor from cachito.workers.celery_logging import ( cleanup_task_logging, @@ -10,7 +17,30 @@ setup_task_logging, setup_task_logging_customization, ) -from cachito.workers.config import app, validate_celery_config # noqa: F401 +from cachito.workers.config import app, get_worker_config, validate_celery_config # noqa: F401 + + +def _init_celery_tracing(*args, **kwargs): # pragma: no cover + """Initialize OTLP tracing, set the processor & endpoint.""" + CeleryInstrumentor().instrument() + config = get_worker_config() + if config.cachito_jaeger_exporter_endpoint: + jaeger_exporter = JaegerExporter( + agent_host_name=config.cachito_jaeger_exporter_endpoint, + agent_port=int(config.cachito_jaeger_exporter_port), + ) + processor = BatchSpanProcessor(jaeger_exporter) + elif config.cachito_otlp_exporter_endpoint: + otlp_exporter = OTLPSpanExporter(endpoint=config.cachito_otlp_exporter_endpoint) + processor = BatchSpanProcessor(otlp_exporter) + if config.cachito_otlp_exporter_endpoint or config.cachito_jaeger_exporter_endpoint: + resource = Resource(attributes={SERVICE_NAME: "cachito-worker"}) + provider = TracerProvider(resource=resource) + # Useful for debugging trace issues... + # processor = BatchSpanProcessor(ConsoleSpanExporter()) + provider.add_span_processor(processor) + trace.set_tracer_provider(provider) + # Workaround https://github.com/celery/celery/issues/5416 if celery.version_info < (4, 3) and sys.version_info >= (3, 7): # pragma: no cover @@ -20,9 +50,9 @@ routes_re._pattern_type = Pattern - celeryd_init.connect(validate_celery_config) task_prerun.connect(setup_task_logging_customization) task_prerun.connect(setup_task_logging) task_postrun.connect(cleanup_task_logging_customization) task_postrun.connect(cleanup_task_logging) +worker_process_init.connect(_init_celery_tracing) diff --git a/docker-compose.yml b/docker-compose.yml index 77c69fa89..05d4259a8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -114,6 +114,16 @@ services: - nexus - rabbitmq + jaeger: + image: docker.io/jaegertracing/all-in-one:latest + ports: + # OTLP/gprc - used by pytest to forward integration test traces to jaeger. + - "4317:4317" + # Development environment is hard-coded to send to port 6831. + - "6831:6831/udp" + # Web UI is available at port 16686 + - "16686:16686" + volumes: cachito-archives: athens-storage: diff --git a/docs/tracing.md b/docs/tracing.md new file mode 100644 index 000000000..fbebef2d9 --- /dev/null +++ b/docs/tracing.md @@ -0,0 +1,22 @@ +# Tracing + +Cachito supports [OpenTelemetry tracing][1]. Internally, various python libraries used have automated tracing available, including [Requests][2], [Flask][3], [SQLAlchemy][4], and [Celery][5]. Spans are created automatically in each component, and the overall trace ID is passed appropriately. + +### Development + +The docker-compose.yml file includes the configuration of a jaeger container to collect traces in the development environment. The local instance of Jaeger is available at [http://localhost:16686][6] + +### Deployment configuration + +Cachito's tracing is configured via configuration variables in the /etc/cachito/settings.py (CACHITO_OTLP_EXPORTER_ENDPOINT) and /etc/cachito/celery.py (cachito_otlp_exporter_endpoint). +This should be set to a valid URL that includes the URL and port of a listening OTLP-compatible service. +If the configuration variable is not defined, trace information will be printed in the log. + + + +[1]: https://opentelemetry.io/docs/concepts/signals/traces/ +[2]: https://pypi.org/project/opentelemetry-instrumentation-requests/ +[3]: https://pypi.org/project/opentelemetry-instrumentation-flask/ +[4]: https://pypi.org/project/opentelemetry-instrumentation-sqlalchemy/ +[5]: https://pypi.org/project/opentelemetry-instrumentation-celery/ +[6]: https://localhost:16686/ diff --git a/requirements-test.in b/requirements-test.in index 5a2da2ee3..f8b9348a1 100644 --- a/requirements-test.in +++ b/requirements-test.in @@ -2,4 +2,11 @@ jsonschema pytest pytest-asyncio pytest-cov +pytest-opentelemetry pyyaml +opentelemetry-sdk +opentelemetry-instrumentation-celery +opentelemetry-instrumentation-requests +opentelemetry-instrumentation-sqlalchemy +opentelemetry-exporter-jaeger +opentelemetry-exporter-otlp-proto-http diff --git a/requirements-test.txt b/requirements-test.txt index e6394f861..15499fb8c 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -9,7 +9,23 @@ attrs==23.1.0 \ --hash=sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015 # via # jsonschema + # pytest # referencing +backoff==2.2.1 \ + --hash=sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba \ + --hash=sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http +certifi==2023.7.22 \ + --hash=sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082 \ + --hash=sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9 + # via requests +charset-normalizer==2.1.1 \ + --hash=sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845 \ + --hash=sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f + # via requests coverage[toml]==5.5 \ --hash=sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c \ --hash=sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6 \ @@ -64,6 +80,77 @@ coverage[toml]==5.5 \ --hash=sha256:f0b278ce10936db1a37e6954e15a3730bea96a0997c26d7fee88e6c396c2086d \ --hash=sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6 # via pytest-cov +deprecated==1.2.13 \ + --hash=sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d \ + --hash=sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http +googleapis-common-protos==1.56.2 \ + --hash=sha256:023eaea9d8c1cceccd9587c6af6c20f33eeeb05d4148670f2b0322dc1511700c \ + --hash=sha256:b09b56f5463070c2153753ef123f07d2e49235e89148e9b2459ec8ed2f68d7d3 + # via + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http +grpcio==1.50.0 \ + --hash=sha256:05f7c248e440f538aaad13eee78ef35f0541e73498dd6f832fe284542ac4b298 \ + --hash=sha256:080b66253f29e1646ac53ef288c12944b131a2829488ac3bac8f52abb4413c0d \ + --hash=sha256:12b479839a5e753580b5e6053571de14006157f2ef9b71f38c56dc9b23b95ad6 \ + --hash=sha256:156f8009e36780fab48c979c5605eda646065d4695deea4cfcbcfdd06627ddb6 \ + --hash=sha256:15f9e6d7f564e8f0776770e6ef32dac172c6f9960c478616c366862933fa08b4 \ + --hash=sha256:177afaa7dba3ab5bfc211a71b90da1b887d441df33732e94e26860b3321434d9 \ + --hash=sha256:1a4cd8cb09d1bc70b3ea37802be484c5ae5a576108bad14728f2516279165dd7 \ + --hash=sha256:1d8d02dbb616c0a9260ce587eb751c9c7dc689bc39efa6a88cc4fa3e9c138a7b \ + --hash=sha256:2b71916fa8f9eb2abd93151fafe12e18cebb302686b924bd4ec39266211da525 \ + --hash=sha256:2d9fd6e38b16c4d286a01e1776fdf6c7a4123d99ae8d6b3f0b4a03a34bf6ce45 \ + --hash=sha256:3b611b3de3dfd2c47549ca01abfa9bbb95937eb0ea546ea1d762a335739887be \ + --hash=sha256:3e4244c09cc1b65c286d709658c061f12c61c814be0b7030a2d9966ff02611e0 \ + --hash=sha256:40838061e24f960b853d7bce85086c8e1b81c6342b1f4c47ff0edd44bbae2722 \ + --hash=sha256:4b123fbb7a777a2fedec684ca0b723d85e1d2379b6032a9a9b7851829ed3ca9a \ + --hash=sha256:531f8b46f3d3db91d9ef285191825d108090856b3bc86a75b7c3930f16ce432f \ + --hash=sha256:67dd41a31f6fc5c7db097a5c14a3fa588af54736ffc174af4411d34c4f306f68 \ + --hash=sha256:7489dbb901f4fdf7aec8d3753eadd40839c9085967737606d2c35b43074eea24 \ + --hash=sha256:8d4c8e73bf20fb53fe5a7318e768b9734cf122fe671fcce75654b98ba12dfb75 \ + --hash=sha256:8e69aa4e9b7f065f01d3fdcecbe0397895a772d99954bb82eefbb1682d274518 \ + --hash=sha256:8e8999a097ad89b30d584c034929f7c0be280cd7851ac23e9067111167dcbf55 \ + --hash=sha256:906f4d1beb83b3496be91684c47a5d870ee628715227d5d7c54b04a8de802974 \ + --hash=sha256:92d7635d1059d40d2ec29c8bf5ec58900120b3ce5150ef7414119430a4b2dd5c \ + --hash=sha256:931e746d0f75b2a5cff0a1197d21827a3a2f400c06bace036762110f19d3d507 \ + --hash=sha256:95ce51f7a09491fb3da8cf3935005bff19983b77c4e9437ef77235d787b06842 \ + --hash=sha256:9eea18a878cffc804506d39c6682d71f6b42ec1c151d21865a95fae743fda500 \ + --hash=sha256:a23d47f2fc7111869f0ff547f771733661ff2818562b04b9ed674fa208e261f4 \ + --hash=sha256:a4c23e54f58e016761b576976da6a34d876420b993f45f66a2bfb00363ecc1f9 \ + --hash=sha256:a50a1be449b9e238b9bd43d3857d40edf65df9416dea988929891d92a9f8a778 \ + --hash=sha256:ab5d0e3590f0a16cb88de4a3fa78d10eb66a84ca80901eb2c17c1d2c308c230f \ + --hash=sha256:ae23daa7eda93c1c49a9ecc316e027ceb99adbad750fbd3a56fa9e4a2ffd5ae0 \ + --hash=sha256:af98d49e56605a2912cf330b4627e5286243242706c3a9fa0bcec6e6f68646fc \ + --hash=sha256:b2f77a90ba7b85bfb31329f8eab9d9540da2cf8a302128fb1241d7ea239a5469 \ + --hash=sha256:baab51dcc4f2aecabf4ed1e2f57bceab240987c8b03533f1cef90890e6502067 \ + --hash=sha256:ca8a2254ab88482936ce941485c1c20cdeaef0efa71a61dbad171ab6758ec998 \ + --hash=sha256:cb11464f480e6103c59d558a3875bd84eed6723f0921290325ebe97262ae1347 \ + --hash=sha256:ce8513aee0af9c159319692bfbf488b718d1793d764798c3d5cff827a09e25ef \ + --hash=sha256:cf151f97f5f381163912e8952eb5b3afe89dec9ed723d1561d59cabf1e219a35 \ + --hash=sha256:d144ad10eeca4c1d1ce930faa105899f86f5d99cecfe0d7224f3c4c76265c15e \ + --hash=sha256:d534d169673dd5e6e12fb57cc67664c2641361e1a0885545495e65a7b761b0f4 \ + --hash=sha256:d75061367a69808ab2e84c960e9dce54749bcc1e44ad3f85deee3a6c75b4ede9 \ + --hash=sha256:d84d04dec64cc4ed726d07c5d17b73c343c8ddcd6b59c7199c801d6bbb9d9ed1 \ + --hash=sha256:de411d2b030134b642c092e986d21aefb9d26a28bf5a18c47dd08ded411a3bc5 \ + --hash=sha256:e07fe0d7ae395897981d16be61f0db9791f482f03fee7d1851fe20ddb4f69c03 \ + --hash=sha256:ea8ccf95e4c7e20419b7827aa5b6da6f02720270686ac63bd3493a651830235c \ + --hash=sha256:f7025930039a011ed7d7e7ef95a1cb5f516e23c5a6ecc7947259b67bea8e06ca + # via + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-otlp-proto-grpc +idna==3.4 \ + --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ + --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 + # via requests +importlib-metadata==6.8.0 \ + --hash=sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb \ + --hash=sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743 + # via opentelemetry-api iniconfig==1.1.1 \ --hash=sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3 \ --hash=sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32 @@ -76,31 +163,202 @@ jsonschema-specifications==2023.6.1 \ --hash=sha256:3d2b82663aff01815f744bb5c7887e2121a63399b49b104a3c96145474d091d7 \ --hash=sha256:ca1c4dd059a9e7b34101cf5b3ab7ff1d18b139f35950d598d629837ef66e8f28 # via jsonschema +opentelemetry-api==1.20.0 \ + --hash=sha256:06abe351db7572f8afdd0fb889ce53f3c992dbf6f6262507b385cc1963e06983 \ + --hash=sha256:982b76036fec0fdaf490ae3dfd9f28c81442a33414f737abc687a32758cdcba5 + # via + # opentelemetry-container-distro + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-jaeger-thrift + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-instrumentation + # opentelemetry-instrumentation-celery + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-sqlalchemy + # opentelemetry-sdk + # pytest-opentelemetry +opentelemetry-container-distro==0.2.0 \ + --hash=sha256:09db86b66cb1a5d9a20ee9e2fb8d265c9a72321f3f09651a77c071cc79d5a9e4 \ + --hash=sha256:61817f99edb46fed168c0eec784b45986b702d95a24fda475a9bb10a652e56b7 + # via pytest-opentelemetry +opentelemetry-exporter-jaeger==1.20.0 \ + --hash=sha256:1cad383034e3f8fb7d2bf8e01c033c9594023d76658127417be84baa0817f106 \ + --hash=sha256:1ebd756063f8ee72f8d8ecad427f7ec53ed59aee50c69baef58a8e6aa55d59a2 + # via -r requirements-test.in +opentelemetry-exporter-jaeger-proto-grpc==1.20.0 \ + --hash=sha256:3e0c7a511d267e4f9efffe07893365f26ad6568617b036f6462882051014d4af \ + --hash=sha256:98f7973edc0edd6c44d34338e93d7329776a4a2de8b9e8b5038dc11dd2dd4299 + # via opentelemetry-exporter-jaeger +opentelemetry-exporter-jaeger-thrift==1.20.0 \ + --hash=sha256:781045dbbce3094772426259fac4602269ddd7934f7767145997ea13f82d67e2 \ + --hash=sha256:ab8416584535f93e3a087eecd6edec534361748763a9f8b609bbd0b44f3d73f9 + # via opentelemetry-exporter-jaeger +opentelemetry-exporter-otlp==1.20.0 \ + --hash=sha256:3b4d47726da83fef84467bdf96da4f8f3d1a61b35db3c16354c391ce8e9decf6 \ + --hash=sha256:f8cb69f80c333166e5cfaa030f9e28f7faaf343aff24caaa2cb4202ea4849b6b + # via opentelemetry-container-distro +opentelemetry-exporter-otlp-proto-common==1.20.0 \ + --hash=sha256:dd63209b40702636ab6ae76a06b401b646ad7b008a906ecb41222d4af24fbdef \ + --hash=sha256:df60c681bd61812e50b3a39a7a1afeeb6d4066117583249fcc262269374e7a49 + # via + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-grpc==1.20.0 \ + --hash=sha256:6c06d43c3771bda1795226e327722b4b980fa1ca1ec9e985f2ef3e29795bdd52 \ + --hash=sha256:7c3f066065891b56348ba2c7f9df6ec635a712841cae0a36f2f6a81642ae7dec + # via opentelemetry-exporter-otlp +opentelemetry-exporter-otlp-proto-http==1.20.0 \ + --hash=sha256:03f6e768ad25f1c3a9586e8c695db4a4adf978f8546a1285fa962e16bfbb0bd6 \ + --hash=sha256:500f42821420fdf0759193d6438edc0f4e984a83e14c08a23023c06a188861b4 + # via + # -r requirements-test.in + # opentelemetry-exporter-otlp +opentelemetry-instrumentation==0.41b0 \ + --hash=sha256:0ef9e5705ceca0205992a4a845ae4251ce6ec15a1206ca07c2b00afb0c5bd386 \ + --hash=sha256:214382ba10dfd29d4e24898a4c7ef18b7368178a6277a1aec95cdb75cabf4612 + # via + # opentelemetry-container-distro + # opentelemetry-instrumentation-celery + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-sqlalchemy +opentelemetry-instrumentation-celery==0.41b0 \ + --hash=sha256:403d48c17478f5a8d42522211c66c0af16a5a7339d5a2b00c27c1b84c963617b \ + --hash=sha256:b3e2ee1b0e2acb13716f5318f406e8a8eb57aac6eb6118266694037ac6d8a7e6 + # via -r requirements-test.in +opentelemetry-instrumentation-requests==0.41b0 \ + --hash=sha256:687fde31111669e729054e64d246c96b0b9d4d8702bd0e3569b7660bdb528d71 \ + --hash=sha256:bdc5515ae7533e620b312fd989941b7c2c92d492a2d4418f6ef8db5d7422fa64 + # via -r requirements-test.in +opentelemetry-instrumentation-sqlalchemy==0.41b0 \ + --hash=sha256:67f113b995e9a5b031268559e57a5f81d4619868ba82cd1ca2a76a82f42b1fb9 \ + --hash=sha256:b98b6dbf629faabaa8c0a7a33c202754384b960c9c8d2b5fe248f11857eabc89 + # via -r requirements-test.in +opentelemetry-proto==1.20.0 \ + --hash=sha256:512c3d2c6864fb7547a69577c3907348e6c985b7a204533563cb4c4c5046203b \ + --hash=sha256:cf01f49b3072ee57468bccb1a4f93bdb55411f4512d0ac3f97c5c04c0040b5a2 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http +opentelemetry-resourcedetector-docker==0.4.0 \ + --hash=sha256:0313ef1678f8af895b4da00b1643567fd50238ffbf2480ce56a6e73d9c7ff32c \ + --hash=sha256:2723c8c7e63d78eabd9c6ebf7cca7570f4b73d3db18687544073f3c8f280c0bb + # via opentelemetry-container-distro +opentelemetry-resourcedetector-kubernetes==0.3.0 \ + --hash=sha256:0abb30217cd71112a48076f86e648de2438003276548e78bf48e4f7a6f4ea219 \ + --hash=sha256:854472ff856c305dc29f033a8f784f9a7f513cb60eb690d2af4a4a572b165019 + # via opentelemetry-container-distro +opentelemetry-resourcedetector-process==0.3.0 \ + --hash=sha256:59d770d89c93e873e87ac925b86cfde8a53a0ec04b5418be8d6293f94f42de0f \ + --hash=sha256:74f51704e40ec73bda088f710f69029802a8c96a06fb0b12e597cdd03fdfe0e9 + # via opentelemetry-container-distro +opentelemetry-sdk==1.20.0 \ + --hash=sha256:702e432a457fa717fd2ddfd30640180e69938f85bb7fec3e479f85f61c1843f8 \ + --hash=sha256:f2230c276ff4c63ea09b3cb2e2ac6b1265f90af64e8d16bbf275c81a9ce8e804 + # via + # -r requirements-test.in + # opentelemetry-container-distro + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-jaeger-thrift + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-resourcedetector-docker + # opentelemetry-resourcedetector-kubernetes + # opentelemetry-resourcedetector-process + # pytest-opentelemetry +opentelemetry-semantic-conventions==0.41b0 \ + --hash=sha256:0ce5b040b8a3fc816ea5879a743b3d6fe5db61f6485e4def94c6ee4d402e1eb7 \ + --hash=sha256:45404391ed9e50998183a4925ad1b497c01c143f06500c3b9c3d0013492bb0f2 + # via + # opentelemetry-instrumentation-celery + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-sqlalchemy + # opentelemetry-resourcedetector-docker + # opentelemetry-resourcedetector-kubernetes + # opentelemetry-resourcedetector-process + # opentelemetry-sdk + # pytest-opentelemetry +opentelemetry-util-http==0.41b0 \ + --hash=sha256:16d5bd04a380dc1079e766562d1e1626cbb47720f197f67010c45f090fffdfb3 \ + --hash=sha256:6a167fd1e0e8b0f629530d971165b5d82ed0be2154b7f29498499c3a517edee5 + # via opentelemetry-instrumentation-requests packaging==23.2 \ --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - # via pytest + # via + # opentelemetry-instrumentation-sqlalchemy + # pytest pluggy==0.13.1 \ --hash=sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0 \ --hash=sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d # via pytest -pytest==7.4.2 \ - --hash=sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002 \ - --hash=sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069 +protobuf==3.20.3 \ + --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ + --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ + --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ + --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ + --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ + --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ + --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ + --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ + --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ + --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ + --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ + --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ + --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ + --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ + --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ + --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ + --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ + --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ + --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ + --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ + --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ + --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee + # via + # googleapis-common-protos + # opentelemetry-proto +psutil==5.9.4 \ + --hash=sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff \ + --hash=sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1 \ + --hash=sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62 \ + --hash=sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549 \ + --hash=sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08 \ + --hash=sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7 \ + --hash=sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e \ + --hash=sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe \ + --hash=sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24 \ + --hash=sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad \ + --hash=sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94 \ + --hash=sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8 \ + --hash=sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7 \ + --hash=sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4 + # via opentelemetry-resourcedetector-process +pytest==7.2.0 \ + --hash=sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71 \ + --hash=sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59 # via # -r requirements-test.in # pytest-asyncio # pytest-cov -pytest-asyncio==0.21.1 \ - --hash=sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d \ - --hash=sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b + # pytest-opentelemetry +pytest-asyncio==0.20.1 \ + --hash=sha256:2c85a835df33fda40fe3973b451e0c194ca11bc2c007eabff90bb3d156fc172b \ + --hash=sha256:626699de2a747611f3eeb64168b3575f70439b06c3d0206e6ceaeeb956e65519 # via -r requirements-test.in pytest-cov==4.1.0 \ --hash=sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6 \ --hash=sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a # via -r requirements-test.in +pytest-opentelemetry==0.6.0 \ + --hash=sha256:4732eb7d0999672bf0cbd5361ddc5fa6bd00649352fd8b65173923ad09c3b726 \ + --hash=sha256:644e174bde4fdca64267eb047af2ccaf698b5324d161ba1b2a122eeb17a0bbe9 + # via -r requirements-test.in pyyaml==6.0.1 \ + --hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \ --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ + --hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \ --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ --hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \ --hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \ @@ -108,7 +366,10 @@ pyyaml==6.0.1 \ --hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \ --hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \ --hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \ + --hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \ + --hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \ --hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \ + --hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \ --hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \ --hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \ --hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \ @@ -116,9 +377,12 @@ pyyaml==6.0.1 \ --hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \ --hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \ --hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \ + --hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \ --hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \ --hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \ --hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \ + --hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \ + --hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \ --hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \ --hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \ --hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \ @@ -133,7 +397,9 @@ pyyaml==6.0.1 \ --hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \ --hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \ --hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \ + --hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \ --hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \ + --hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \ --hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \ --hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \ --hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \ @@ -147,6 +413,10 @@ referencing==0.29.1 \ # via # jsonschema # jsonschema-specifications +requests==2.31.0 \ + --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ + --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 + # via opentelemetry-exporter-otlp-proto-http rpds-py==0.8.8 \ --hash=sha256:0c62fdb01111da948e8446caaefebf2ca4307a58fcbc10039b48d0db7205397c \ --hash=sha256:0df2ae878fd99342415a42659f3bcee34b12441a509033e0ab04c6e301895607 \ @@ -226,7 +496,113 @@ rpds-py==0.8.8 \ # via # jsonschema # referencing +six==1.16.0 \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + # via + # grpcio + # thrift +thrift==0.16.0 \ + --hash=sha256:2b5b6488fcded21f9d312aa23c9ff6a0195d0f6ae26ddbd5ad9e3e25dfc14408 + # via opentelemetry-exporter-jaeger-thrift toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via coverage +typing-extensions==4.4.0 \ + --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \ + --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e + # via opentelemetry-sdk +urllib3==1.26.17 \ + --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \ + --hash=sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997 + # via requests +wrapt==1.15.0 \ + --hash=sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0 \ + --hash=sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420 \ + --hash=sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a \ + --hash=sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c \ + --hash=sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079 \ + --hash=sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923 \ + --hash=sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f \ + --hash=sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1 \ + --hash=sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8 \ + --hash=sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86 \ + --hash=sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0 \ + --hash=sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364 \ + --hash=sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e \ + --hash=sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c \ + --hash=sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e \ + --hash=sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c \ + --hash=sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727 \ + --hash=sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff \ + --hash=sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e \ + --hash=sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29 \ + --hash=sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7 \ + --hash=sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72 \ + --hash=sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475 \ + --hash=sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a \ + --hash=sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317 \ + --hash=sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2 \ + --hash=sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd \ + --hash=sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640 \ + --hash=sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98 \ + --hash=sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248 \ + --hash=sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e \ + --hash=sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d \ + --hash=sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec \ + --hash=sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1 \ + --hash=sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e \ + --hash=sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9 \ + --hash=sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92 \ + --hash=sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb \ + --hash=sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094 \ + --hash=sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46 \ + --hash=sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29 \ + --hash=sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd \ + --hash=sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705 \ + --hash=sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8 \ + --hash=sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975 \ + --hash=sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb \ + --hash=sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e \ + --hash=sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b \ + --hash=sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418 \ + --hash=sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019 \ + --hash=sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1 \ + --hash=sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba \ + --hash=sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6 \ + --hash=sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2 \ + --hash=sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3 \ + --hash=sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7 \ + --hash=sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752 \ + --hash=sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416 \ + --hash=sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f \ + --hash=sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1 \ + --hash=sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc \ + --hash=sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145 \ + --hash=sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee \ + --hash=sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a \ + --hash=sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7 \ + --hash=sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b \ + --hash=sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653 \ + --hash=sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0 \ + --hash=sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90 \ + --hash=sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29 \ + --hash=sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6 \ + --hash=sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034 \ + --hash=sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09 \ + --hash=sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559 \ + --hash=sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639 + # via + # deprecated + # opentelemetry-instrumentation + # opentelemetry-instrumentation-sqlalchemy +zipp==3.17.0 \ + --hash=sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31 \ + --hash=sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0 + # via importlib-metadata + +# WARNING: The following packages were not pinned, but pip requires them to be +# pinned when the requirements file includes hashes and the requirement is not +# satisfied by a package already installed. Consider using the --allow-unsafe flag. +# setuptools diff --git a/requirements-web.in b/requirements-web.in index 547f2db77..f5f6938d2 100644 --- a/requirements-web.in +++ b/requirements-web.in @@ -7,3 +7,11 @@ greenlet>=1.1.0 psycopg2-binary SQLAlchemy<1.5 prometheus-flask-exporter +opentelemetry-instrumentation-flask +opentelemetry-instrumentation-requests +opentelemetry-instrumentation-psycopg2 +opentelemetry-instrumentation-sqlalchemy +opentelemetry-exporter-jaeger +opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk +opentelemetry-api diff --git a/requirements-web.txt b/requirements-web.txt index 9943ca816..959bab10b 100644 --- a/requirements-web.txt +++ b/requirements-web.txt @@ -14,6 +14,12 @@ attrs==23.1.0 \ # via # jsonschema # referencing +backoff==2.2.1 \ + --hash=sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba \ + --hash=sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http certifi==2023.7.22 \ --hash=sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082 \ --hash=sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9 @@ -36,6 +42,12 @@ connexion==2.14.2 \ --hash=sha256:a73b96a0e07b16979a42cde7c7e26afe8548099e352cf350f80c57185e0e0b36 \ --hash=sha256:dbc06f52ebeebcf045c9904d570f24377e8bbd5a6521caef15a06f634cf85646 # via -r requirements-web.in +deprecated==1.2.13 \ + --hash=sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d \ + --hash=sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http flask==2.2.5 \ --hash=sha256:58107ed83443e86067e41eff4631b058178191a355886f8e479e347fa1285fdf \ --hash=sha256:edee9b0a7ff26621bd5a8c10ff484ae28737a2410d99b0bb9a6850c7fb977aa0 @@ -60,74 +72,128 @@ flask-sqlalchemy==3.0.5 \ # via # -r requirements-web.in # flask-migrate -greenlet==2.0.2 \ - --hash=sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a \ - --hash=sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a \ - --hash=sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43 \ - --hash=sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33 \ - --hash=sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8 \ - --hash=sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088 \ - --hash=sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca \ - --hash=sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343 \ - --hash=sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645 \ - --hash=sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db \ - --hash=sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df \ - --hash=sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3 \ - --hash=sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86 \ - --hash=sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2 \ - --hash=sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a \ - --hash=sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf \ - --hash=sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7 \ - --hash=sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394 \ - --hash=sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40 \ - --hash=sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3 \ - --hash=sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6 \ - --hash=sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74 \ - --hash=sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0 \ - --hash=sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3 \ - --hash=sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91 \ - --hash=sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5 \ - --hash=sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9 \ - --hash=sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8 \ - --hash=sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b \ - --hash=sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6 \ - --hash=sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb \ - --hash=sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73 \ - --hash=sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b \ - --hash=sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df \ - --hash=sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9 \ - --hash=sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f \ - --hash=sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0 \ - --hash=sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857 \ - --hash=sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a \ - --hash=sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249 \ - --hash=sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30 \ - --hash=sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292 \ - --hash=sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b \ - --hash=sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d \ - --hash=sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b \ - --hash=sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c \ - --hash=sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca \ - --hash=sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7 \ - --hash=sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75 \ - --hash=sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae \ - --hash=sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b \ - --hash=sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470 \ - --hash=sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564 \ - --hash=sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9 \ - --hash=sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099 \ - --hash=sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0 \ - --hash=sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5 \ - --hash=sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19 \ - --hash=sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1 \ - --hash=sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526 +googleapis-common-protos==1.56.2 \ + --hash=sha256:023eaea9d8c1cceccd9587c6af6c20f33eeeb05d4148670f2b0322dc1511700c \ + --hash=sha256:b09b56f5463070c2153753ef123f07d2e49235e89148e9b2459ec8ed2f68d7d3 + # via + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-otlp-proto-http +greenlet==2.0.1 \ + --hash=sha256:0109af1138afbfb8ae647e31a2b1ab030f58b21dd8528c27beaeb0093b7938a9 \ + --hash=sha256:04957dc96669be041e0c260964cfef4c77287f07c40452e61abe19d647505581 \ + --hash=sha256:0722c9be0797f544a3ed212569ca3fe3d9d1a1b13942d10dd6f0e8601e484d26 \ + --hash=sha256:097e3dae69321e9100202fc62977f687454cd0ea147d0fd5a766e57450c569fd \ + --hash=sha256:0b493db84d124805865adc587532ebad30efa68f79ad68f11b336e0a51ec86c2 \ + --hash=sha256:13ba6e8e326e2116c954074c994da14954982ba2795aebb881c07ac5d093a58a \ + --hash=sha256:13ebf93c343dd8bd010cd98e617cb4c1c1f352a0cf2524c82d3814154116aa82 \ + --hash=sha256:1407fe45246632d0ffb7a3f4a520ba4e6051fc2cbd61ba1f806900c27f47706a \ + --hash=sha256:1bf633a50cc93ed17e494015897361010fc08700d92676c87931d3ea464123ce \ + --hash=sha256:2d0bac0385d2b43a7bd1d651621a4e0f1380abc63d6fb1012213a401cbd5bf8f \ + --hash=sha256:3001d00eba6bbf084ae60ec7f4bb8ed375748f53aeaefaf2a37d9f0370558524 \ + --hash=sha256:356e4519d4dfa766d50ecc498544b44c0249b6de66426041d7f8b751de4d6b48 \ + --hash=sha256:38255a3f1e8942573b067510f9611fc9e38196077b0c8eb7a8c795e105f9ce77 \ + --hash=sha256:3d75b8d013086b08e801fbbb896f7d5c9e6ccd44f13a9241d2bf7c0df9eda928 \ + --hash=sha256:41b825d65f31e394b523c84db84f9383a2f7eefc13d987f308f4663794d2687e \ + --hash=sha256:42e602564460da0e8ee67cb6d7236363ee5e131aa15943b6670e44e5c2ed0f67 \ + --hash=sha256:4aeaebcd91d9fee9aa768c1b39cb12214b30bf36d2b7370505a9f2165fedd8d9 \ + --hash=sha256:4c8b1c43e75c42a6cafcc71defa9e01ead39ae80bd733a2608b297412beede68 \ + --hash=sha256:4d37990425b4687ade27810e3b1a1c37825d242ebc275066cfee8cb6b8829ccd \ + --hash=sha256:4f09b0010e55bec3239278f642a8a506b91034f03a4fb28289a7d448a67f1515 \ + --hash=sha256:505138d4fa69462447a562a7c2ef723c6025ba12ac04478bc1ce2fcc279a2db5 \ + --hash=sha256:5067920de254f1a2dee8d3d9d7e4e03718e8fd2d2d9db962c8c9fa781ae82a39 \ + --hash=sha256:56961cfca7da2fdd178f95ca407fa330c64f33289e1804b592a77d5593d9bd94 \ + --hash=sha256:5a8e05057fab2a365c81abc696cb753da7549d20266e8511eb6c9d9f72fe3e92 \ + --hash=sha256:659f167f419a4609bc0516fb18ea69ed39dbb25594934bd2dd4d0401660e8a1e \ + --hash=sha256:6f61d71bbc9b4a3de768371b210d906726535d6ca43506737682caa754b956cd \ + --hash=sha256:72b00a8e7c25dcea5946692a2485b1a0c0661ed93ecfedfa9b6687bd89a24ef5 \ + --hash=sha256:811e1d37d60b47cb8126e0a929b58c046251f28117cb16fcd371eed61f66b764 \ + --hash=sha256:81b0ea3715bf6a848d6f7149d25bf018fd24554a4be01fcbbe3fdc78e890b955 \ + --hash=sha256:88c8d517e78acdf7df8a2134a3c4b964415b575d2840a2746ddb1cc6175f8608 \ + --hash=sha256:8dca09dedf1bd8684767bc736cc20c97c29bc0c04c413e3276e0962cd7aeb148 \ + --hash=sha256:974a39bdb8c90a85982cdb78a103a32e0b1be986d411303064b28a80611f6e51 \ + --hash=sha256:9e112e03d37987d7b90c1e98ba5e1b59e1645226d78d73282f45b326f7bddcb9 \ + --hash=sha256:9e9744c657d896c7b580455e739899e492a4a452e2dd4d2b3e459f6b244a638d \ + --hash=sha256:9ed358312e63bf683b9ef22c8e442ef6c5c02973f0c2a939ec1d7b50c974015c \ + --hash=sha256:9f2c221eecb7ead00b8e3ddb913c67f75cba078fd1d326053225a3f59d850d72 \ + --hash=sha256:a20d33124935d27b80e6fdacbd34205732660e0a1d35d8b10b3328179a2b51a1 \ + --hash=sha256:a4c0757db9bd08470ff8277791795e70d0bf035a011a528ee9a5ce9454b6cba2 \ + --hash=sha256:afe07421c969e259e9403c3bb658968702bc3b78ec0b6fde3ae1e73440529c23 \ + --hash=sha256:b1992ba9d4780d9af9726bbcef6a1db12d9ab1ccc35e5773685a24b7fb2758eb \ + --hash=sha256:b23d2a46d53210b498e5b701a1913697671988f4bf8e10f935433f6e7c332fb6 \ + --hash=sha256:b5e83e4de81dcc9425598d9469a624826a0b1211380ac444c7c791d4a2137c19 \ + --hash=sha256:be35822f35f99dcc48152c9839d0171a06186f2d71ef76dc57fa556cc9bf6b45 \ + --hash=sha256:be9e0fb2ada7e5124f5282d6381903183ecc73ea019568d6d63d33f25b2a9000 \ + --hash=sha256:c140e7eb5ce47249668056edf3b7e9900c6a2e22fb0eaf0513f18a1b2c14e1da \ + --hash=sha256:c6a08799e9e88052221adca55741bf106ec7ea0710bca635c208b751f0d5b617 \ + --hash=sha256:cb242fc2cda5a307a7698c93173d3627a2a90d00507bccf5bc228851e8304963 \ + --hash=sha256:cce1e90dd302f45716a7715517c6aa0468af0bf38e814ad4eab58e88fc09f7f7 \ + --hash=sha256:cd4ccc364cf75d1422e66e247e52a93da6a9b73cefa8cad696f3cbbb75af179d \ + --hash=sha256:d21681f09e297a5adaa73060737e3aa1279a13ecdcfcc6ef66c292cb25125b2d \ + --hash=sha256:d566b82e92ff2e09dd6342df7e0eb4ff6275a3f08db284888dcd98134dbd4243 \ + --hash=sha256:d5b0ff9878333823226d270417f24f4d06f235cb3e54d1103b71ea537a6a86ce \ + --hash=sha256:d6ee1aa7ab36475035eb48c01efae87d37936a8173fc4d7b10bb02c2d75dd8f6 \ + --hash=sha256:db38f80540083ea33bdab614a9d28bcec4b54daa5aff1668d7827a9fc769ae0a \ + --hash=sha256:ea688d11707d30e212e0110a1aac7f7f3f542a259235d396f88be68b649e47d1 \ + --hash=sha256:f6327b6907b4cb72f650a5b7b1be23a2aab395017aa6f1adb13069d66360eb3f \ + --hash=sha256:fb412b7db83fe56847df9c47b6fe3f13911b06339c2aa02dcc09dce8bbf582cd # via # -r requirements-web.in # sqlalchemy +grpcio==1.50.0 \ + --hash=sha256:05f7c248e440f538aaad13eee78ef35f0541e73498dd6f832fe284542ac4b298 \ + --hash=sha256:080b66253f29e1646ac53ef288c12944b131a2829488ac3bac8f52abb4413c0d \ + --hash=sha256:12b479839a5e753580b5e6053571de14006157f2ef9b71f38c56dc9b23b95ad6 \ + --hash=sha256:156f8009e36780fab48c979c5605eda646065d4695deea4cfcbcfdd06627ddb6 \ + --hash=sha256:15f9e6d7f564e8f0776770e6ef32dac172c6f9960c478616c366862933fa08b4 \ + --hash=sha256:177afaa7dba3ab5bfc211a71b90da1b887d441df33732e94e26860b3321434d9 \ + --hash=sha256:1a4cd8cb09d1bc70b3ea37802be484c5ae5a576108bad14728f2516279165dd7 \ + --hash=sha256:1d8d02dbb616c0a9260ce587eb751c9c7dc689bc39efa6a88cc4fa3e9c138a7b \ + --hash=sha256:2b71916fa8f9eb2abd93151fafe12e18cebb302686b924bd4ec39266211da525 \ + --hash=sha256:2d9fd6e38b16c4d286a01e1776fdf6c7a4123d99ae8d6b3f0b4a03a34bf6ce45 \ + --hash=sha256:3b611b3de3dfd2c47549ca01abfa9bbb95937eb0ea546ea1d762a335739887be \ + --hash=sha256:3e4244c09cc1b65c286d709658c061f12c61c814be0b7030a2d9966ff02611e0 \ + --hash=sha256:40838061e24f960b853d7bce85086c8e1b81c6342b1f4c47ff0edd44bbae2722 \ + --hash=sha256:4b123fbb7a777a2fedec684ca0b723d85e1d2379b6032a9a9b7851829ed3ca9a \ + --hash=sha256:531f8b46f3d3db91d9ef285191825d108090856b3bc86a75b7c3930f16ce432f \ + --hash=sha256:67dd41a31f6fc5c7db097a5c14a3fa588af54736ffc174af4411d34c4f306f68 \ + --hash=sha256:7489dbb901f4fdf7aec8d3753eadd40839c9085967737606d2c35b43074eea24 \ + --hash=sha256:8d4c8e73bf20fb53fe5a7318e768b9734cf122fe671fcce75654b98ba12dfb75 \ + --hash=sha256:8e69aa4e9b7f065f01d3fdcecbe0397895a772d99954bb82eefbb1682d274518 \ + --hash=sha256:8e8999a097ad89b30d584c034929f7c0be280cd7851ac23e9067111167dcbf55 \ + --hash=sha256:906f4d1beb83b3496be91684c47a5d870ee628715227d5d7c54b04a8de802974 \ + --hash=sha256:92d7635d1059d40d2ec29c8bf5ec58900120b3ce5150ef7414119430a4b2dd5c \ + --hash=sha256:931e746d0f75b2a5cff0a1197d21827a3a2f400c06bace036762110f19d3d507 \ + --hash=sha256:95ce51f7a09491fb3da8cf3935005bff19983b77c4e9437ef77235d787b06842 \ + --hash=sha256:9eea18a878cffc804506d39c6682d71f6b42ec1c151d21865a95fae743fda500 \ + --hash=sha256:a23d47f2fc7111869f0ff547f771733661ff2818562b04b9ed674fa208e261f4 \ + --hash=sha256:a4c23e54f58e016761b576976da6a34d876420b993f45f66a2bfb00363ecc1f9 \ + --hash=sha256:a50a1be449b9e238b9bd43d3857d40edf65df9416dea988929891d92a9f8a778 \ + --hash=sha256:ab5d0e3590f0a16cb88de4a3fa78d10eb66a84ca80901eb2c17c1d2c308c230f \ + --hash=sha256:ae23daa7eda93c1c49a9ecc316e027ceb99adbad750fbd3a56fa9e4a2ffd5ae0 \ + --hash=sha256:af98d49e56605a2912cf330b4627e5286243242706c3a9fa0bcec6e6f68646fc \ + --hash=sha256:b2f77a90ba7b85bfb31329f8eab9d9540da2cf8a302128fb1241d7ea239a5469 \ + --hash=sha256:baab51dcc4f2aecabf4ed1e2f57bceab240987c8b03533f1cef90890e6502067 \ + --hash=sha256:ca8a2254ab88482936ce941485c1c20cdeaef0efa71a61dbad171ab6758ec998 \ + --hash=sha256:cb11464f480e6103c59d558a3875bd84eed6723f0921290325ebe97262ae1347 \ + --hash=sha256:ce8513aee0af9c159319692bfbf488b718d1793d764798c3d5cff827a09e25ef \ + --hash=sha256:cf151f97f5f381163912e8952eb5b3afe89dec9ed723d1561d59cabf1e219a35 \ + --hash=sha256:d144ad10eeca4c1d1ce930faa105899f86f5d99cecfe0d7224f3c4c76265c15e \ + --hash=sha256:d534d169673dd5e6e12fb57cc67664c2641361e1a0885545495e65a7b761b0f4 \ + --hash=sha256:d75061367a69808ab2e84c960e9dce54749bcc1e44ad3f85deee3a6c75b4ede9 \ + --hash=sha256:d84d04dec64cc4ed726d07c5d17b73c343c8ddcd6b59c7199c801d6bbb9d9ed1 \ + --hash=sha256:de411d2b030134b642c092e986d21aefb9d26a28bf5a18c47dd08ded411a3bc5 \ + --hash=sha256:e07fe0d7ae395897981d16be61f0db9791f482f03fee7d1851fe20ddb4f69c03 \ + --hash=sha256:ea8ccf95e4c7e20419b7827aa5b6da6f02720270686ac63bd3493a651830235c \ + --hash=sha256:f7025930039a011ed7d7e7ef95a1cb5f516e23c5a6ecc7947259b67bea8e06ca + # via opentelemetry-exporter-jaeger-proto-grpc idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 # via requests +importlib-metadata==6.8.0 \ + --hash=sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb \ + --hash=sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743 + # via opentelemetry-api inflection==0.5.1 \ --hash=sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417 \ --hash=sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2 @@ -199,10 +265,114 @@ markupsafe==2.1.1 \ # jinja2 # mako # werkzeug +opentelemetry-api==1.20.0 \ + --hash=sha256:06abe351db7572f8afdd0fb889ce53f3c992dbf6f6262507b385cc1963e06983 \ + --hash=sha256:982b76036fec0fdaf490ae3dfd9f28c81442a33414f737abc687a32758cdcba5 + # via + # -r requirements-web.in + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-jaeger-thrift + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-instrumentation + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-flask + # opentelemetry-instrumentation-psycopg2 + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-sqlalchemy + # opentelemetry-instrumentation-wsgi + # opentelemetry-sdk +opentelemetry-exporter-jaeger==1.20.0 \ + --hash=sha256:1cad383034e3f8fb7d2bf8e01c033c9594023d76658127417be84baa0817f106 \ + --hash=sha256:1ebd756063f8ee72f8d8ecad427f7ec53ed59aee50c69baef58a8e6aa55d59a2 + # via -r requirements-web.in +opentelemetry-exporter-jaeger-proto-grpc==1.20.0 \ + --hash=sha256:3e0c7a511d267e4f9efffe07893365f26ad6568617b036f6462882051014d4af \ + --hash=sha256:98f7973edc0edd6c44d34338e93d7329776a4a2de8b9e8b5038dc11dd2dd4299 + # via opentelemetry-exporter-jaeger +opentelemetry-exporter-jaeger-thrift==1.20.0 \ + --hash=sha256:781045dbbce3094772426259fac4602269ddd7934f7767145997ea13f82d67e2 \ + --hash=sha256:ab8416584535f93e3a087eecd6edec534361748763a9f8b609bbd0b44f3d73f9 + # via opentelemetry-exporter-jaeger +opentelemetry-exporter-otlp-proto-common==1.20.0 \ + --hash=sha256:dd63209b40702636ab6ae76a06b401b646ad7b008a906ecb41222d4af24fbdef \ + --hash=sha256:df60c681bd61812e50b3a39a7a1afeeb6d4066117583249fcc262269374e7a49 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.20.0 \ + --hash=sha256:03f6e768ad25f1c3a9586e8c695db4a4adf978f8546a1285fa962e16bfbb0bd6 \ + --hash=sha256:500f42821420fdf0759193d6438edc0f4e984a83e14c08a23023c06a188861b4 + # via -r requirements-web.in +opentelemetry-instrumentation==0.41b0 \ + --hash=sha256:0ef9e5705ceca0205992a4a845ae4251ce6ec15a1206ca07c2b00afb0c5bd386 \ + --hash=sha256:214382ba10dfd29d4e24898a4c7ef18b7368178a6277a1aec95cdb75cabf4612 + # via + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-flask + # opentelemetry-instrumentation-psycopg2 + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-sqlalchemy + # opentelemetry-instrumentation-wsgi +opentelemetry-instrumentation-dbapi==0.41b0 \ + --hash=sha256:53a3925eb7e8e89cff45fb90a15c5fb520fc75f934dee36f315af24f1bf25701 \ + --hash=sha256:b34cf3d9c3e7dd0a4ca6a75913a8cebe54b5b977464db4371ed00da48f9040e6 + # via opentelemetry-instrumentation-psycopg2 +opentelemetry-instrumentation-flask==0.41b0 \ + --hash=sha256:74b3c33ee76a6c104c190325c5e083549afa28f19603aa3dc346783cbbc3325c \ + --hash=sha256:f3a98f026e566420974bf1b8fa10c915f9bef5d851faecace12fc1e893639194 + # via -r requirements-web.in +opentelemetry-instrumentation-psycopg2==0.41b0 \ + --hash=sha256:0d6852e568f7e8750abf4cf49f1cab09dcf6f49ef9b2ab820a091c679d710c2a \ + --hash=sha256:94b511b752fc4d12d4c473cda2218a42248ac3a5a9b3d4ac2d5e247537fa7785 + # via -r requirements-web.in +opentelemetry-instrumentation-requests==0.41b0 \ + --hash=sha256:687fde31111669e729054e64d246c96b0b9d4d8702bd0e3569b7660bdb528d71 \ + --hash=sha256:bdc5515ae7533e620b312fd989941b7c2c92d492a2d4418f6ef8db5d7422fa64 + # via -r requirements-web.in +opentelemetry-instrumentation-sqlalchemy==0.41b0 \ + --hash=sha256:67f113b995e9a5b031268559e57a5f81d4619868ba82cd1ca2a76a82f42b1fb9 \ + --hash=sha256:b98b6dbf629faabaa8c0a7a33c202754384b960c9c8d2b5fe248f11857eabc89 + # via -r requirements-web.in +opentelemetry-instrumentation-wsgi==0.41b0 \ + --hash=sha256:0095834dda60f876c7ed00bc16292b40db86f8cfebdf251417adbd9810993644 \ + --hash=sha256:4c689d59f8e33d2c7a990e475b7934baca554f35684adc346f0882d974c7dc2d + # via opentelemetry-instrumentation-flask +opentelemetry-proto==1.20.0 \ + --hash=sha256:512c3d2c6864fb7547a69577c3907348e6c985b7a204533563cb4c4c5046203b \ + --hash=sha256:cf01f49b3072ee57468bccb1a4f93bdb55411f4512d0ac3f97c5c04c0040b5a2 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.20.0 \ + --hash=sha256:702e432a457fa717fd2ddfd30640180e69938f85bb7fec3e479f85f61c1843f8 \ + --hash=sha256:f2230c276ff4c63ea09b3cb2e2ac6b1265f90af64e8d16bbf275c81a9ce8e804 + # via + # -r requirements-web.in + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-jaeger-thrift + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.41b0 \ + --hash=sha256:0ce5b040b8a3fc816ea5879a743b3d6fe5db61f6485e4def94c6ee4d402e1eb7 \ + --hash=sha256:45404391ed9e50998183a4925ad1b497c01c143f06500c3b9c3d0013492bb0f2 + # via + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-flask + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-sqlalchemy + # opentelemetry-instrumentation-wsgi + # opentelemetry-sdk +opentelemetry-util-http==0.41b0 \ + --hash=sha256:16d5bd04a380dc1079e766562d1e1626cbb47720f197f67010c45f090fffdfb3 \ + --hash=sha256:6a167fd1e0e8b0f629530d971165b5d82ed0be2154b7f29498499c3a517edee5 + # via + # opentelemetry-instrumentation-flask + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-wsgi packaging==23.2 \ --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - # via connexion + # via + # connexion + # opentelemetry-instrumentation-flask + # opentelemetry-instrumentation-sqlalchemy prometheus-client==0.14.1 \ --hash=sha256:522fded625282822a89e2773452f42df14b5a8e84a86433e3f8a189c1d54dc01 \ --hash=sha256:5459c427624961076277fdc6dc50540e2bacb98eebde99886e59ec55ed92093a @@ -211,6 +381,32 @@ prometheus-flask-exporter==0.22.4 \ --hash=sha256:959b69f1e740b6736ea53fe5f28dc2ab6229b2ebeade6582b3dbb5d74c7d58e4 \ --hash=sha256:e130179c26d5a9b903c12c0d8826127ae491b04b298cae0b92b98677dcf2c06f # via -r requirements-web.in +protobuf==3.20.3 \ + --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ + --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ + --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ + --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ + --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ + --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ + --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ + --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ + --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ + --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ + --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ + --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ + --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ + --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ + --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ + --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ + --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ + --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ + --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ + --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ + --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ + --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee + # via + # googleapis-common-protos + # opentelemetry-proto psycopg2-binary==2.9.9 \ --hash=sha256:03ef7df18daf2c4c07e2695e8cfd5ee7f748a1d54d802330985a78d2a5a6dca9 \ --hash=sha256:0a602ea5aff39bb9fac6308e9c9d82b9a35c2bf288e184a816002c9fae930b77 \ @@ -335,7 +531,9 @@ referencing==0.29.1 \ requests==2.31.0 \ --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 - # via connexion + # via + # connexion + # opentelemetry-exporter-otlp-proto-http rpds-py==0.8.8 \ --hash=sha256:0c62fdb01111da948e8446caaefebf2ca4307a58fcbc10039b48d0db7205397c \ --hash=sha256:0df2ae878fd99342415a42659f3bcee34b12441a509033e0ab04c6e301895607 \ @@ -415,52 +613,65 @@ rpds-py==0.8.8 \ # via # jsonschema # referencing -sqlalchemy==1.4.46 \ - --hash=sha256:07e48cbcdda6b8bc7a59d6728bd3f5f574ffe03f2c9fb384239f3789c2d95c2e \ - --hash=sha256:18cafdb27834fa03569d29f571df7115812a0e59fd6a3a03ccb0d33678ec8420 \ - --hash=sha256:1b1e5e96e2789d89f023d080bee432e2fef64d95857969e70d3cadec80bd26f0 \ - --hash=sha256:315676344e3558f1f80d02535f410e80ea4e8fddba31ec78fe390eff5fb8f466 \ - --hash=sha256:31de1e2c45e67a5ec1ecca6ec26aefc299dd5151e355eb5199cd9516b57340be \ - --hash=sha256:3d94682732d1a0def5672471ba42a29ff5e21bb0aae0afa00bb10796fc1e28dd \ - --hash=sha256:3ec187acf85984263299a3f15c34a6c0671f83565d86d10f43ace49881a82718 \ - --hash=sha256:4847f4b1d822754e35707db913396a29d874ee77b9c3c3ef3f04d5a9a6209618 \ - --hash=sha256:4d112b0f3c1bc5ff70554a97344625ef621c1bfe02a73c5d97cac91f8cd7a41e \ - --hash=sha256:51e1ba2884c6a2b8e19109dc08c71c49530006c1084156ecadfaadf5f9b8b053 \ - --hash=sha256:535377e9b10aff5a045e3d9ada8a62d02058b422c0504ebdcf07930599890eb0 \ - --hash=sha256:5dbf17ac9a61e7a3f1c7ca47237aac93cabd7f08ad92ac5b96d6f8dea4287fc1 \ - --hash=sha256:5f752676fc126edc1c4af0ec2e4d2adca48ddfae5de46bb40adbd3f903eb2120 \ - --hash=sha256:64cb0ad8a190bc22d2112001cfecdec45baffdf41871de777239da6a28ed74b6 \ - --hash=sha256:6913b8247d8a292ef8315162a51931e2b40ce91681f1b6f18f697045200c4a30 \ - --hash=sha256:69fac0a7054d86b997af12dc23f581cf0b25fb1c7d1fed43257dee3af32d3d6d \ - --hash=sha256:7001f16a9a8e06488c3c7154827c48455d1c1507d7228d43e781afbc8ceccf6d \ - --hash=sha256:7b81b1030c42b003fc10ddd17825571603117f848814a344d305262d370e7c34 \ - --hash=sha256:7f8267682eb41a0584cf66d8a697fef64b53281d01c93a503e1344197f2e01fe \ - --hash=sha256:887865924c3d6e9a473dc82b70977395301533b3030d0f020c38fd9eba5419f2 \ - --hash=sha256:9167d4227b56591a4cc5524f1b79ccd7ea994f36e4c648ab42ca995d28ebbb96 \ - --hash=sha256:939f9a018d2ad04036746e15d119c0428b1e557470361aa798e6e7d7f5875be0 \ - --hash=sha256:955162ad1a931fe416eded6bb144ba891ccbf9b2e49dc7ded39274dd9c5affc5 \ - --hash=sha256:984ee13543a346324319a1fb72b698e521506f6f22dc37d7752a329e9cd00a32 \ - --hash=sha256:9883f5fae4fd8e3f875adc2add69f8b945625811689a6c65866a35ee9c0aea23 \ - --hash=sha256:a1ad90c97029cc3ab4ffd57443a20fac21d2ec3c89532b084b073b3feb5abff3 \ - --hash=sha256:a3714e5b33226131ac0da60d18995a102a17dddd42368b7bdd206737297823ad \ - --hash=sha256:ae067ab639fa499f67ded52f5bc8e084f045d10b5ac7bb928ae4ca2b6c0429a5 \ - --hash=sha256:b33ffbdbbf5446cf36cd4cc530c9d9905d3c2fe56ed09e25c22c850cdb9fac92 \ - --hash=sha256:b6e4cb5c63f705c9d546a054c60d326cbde7421421e2d2565ce3e2eee4e1a01f \ - --hash=sha256:b7f4b6aa6e87991ec7ce0e769689a977776db6704947e562102431474799a857 \ - --hash=sha256:c04144a24103135ea0315d459431ac196fe96f55d3213bfd6d39d0247775c854 \ - --hash=sha256:c522e496f9b9b70296a7675272ec21937ccfc15da664b74b9f58d98a641ce1b6 \ - --hash=sha256:c5a99282848b6cae0056b85da17392a26b2d39178394fc25700bcf967e06e97a \ - --hash=sha256:c7a46639ba058d320c9f53a81db38119a74b8a7a1884df44d09fbe807d028aaf \ - --hash=sha256:d4b1cc7835b39835c75cf7c20c926b42e97d074147c902a9ebb7cf2c840dc4e2 \ - --hash=sha256:d4d164df3d83d204c69f840da30b292ac7dc54285096c6171245b8d7807185aa \ - --hash=sha256:d61e9ecc849d8d44d7f80894ecff4abe347136e9d926560b818f6243409f3c86 \ - --hash=sha256:d68e1762997bfebf9e5cf2a9fd0bcf9ca2fdd8136ce7b24bbd3bbfa4328f3e4a \ - --hash=sha256:e3c1808008124850115a3f7e793a975cfa5c8a26ceeeb9ff9cbb4485cac556df \ - --hash=sha256:f8cb80fe8d14307e4124f6fad64dfd87ab749c9d275f82b8b4ec84c84ecebdbe +six==1.16.0 \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + # via + # grpcio + # thrift +sqlalchemy==1.4.44 \ + --hash=sha256:0be9b479c5806cece01f1581726573a8d6515f8404e082c375b922c45cfc2a7b \ + --hash=sha256:17aee7bfcef7bf0dea92f10e5dfdd67418dcf6fe0759f520e168b605855c003e \ + --hash=sha256:21f3df74a0ab39e1255e94613556e33c1dc3b454059fe0b365ec3bbb9ed82e4a \ + --hash=sha256:237067ba0ef45a518b64606e1807f7229969ad568288b110ed5f0ca714a3ed3a \ + --hash=sha256:2dda5f96719ae89b3ec0f1b79698d86eb9aecb1d54e990abb3fdd92c04b46a90 \ + --hash=sha256:393f51a09778e8984d735b59a810731394308b4038acdb1635397c2865dae2b6 \ + --hash=sha256:3ca21b35b714ce36f4b8d1ee8d15f149db8eb43a472cf71600bf18dae32286e7 \ + --hash=sha256:3cbdbed8cdcae0f83640a9c44fa02b45a6c61e149c58d45a63c9581aba62850f \ + --hash=sha256:3eba07f740488c3a125f17c092a81eeae24a6c7ec32ac9dbc52bf7afaf0c4f16 \ + --hash=sha256:3f68eab46649504eb95be36ca529aea16cd199f080726c28cbdbcbf23d20b2a2 \ + --hash=sha256:4c56e6899fa6e767e4be5d106941804a4201c5cb9620a409c0b80448ec70b656 \ + --hash=sha256:53f90a2374f60e703c94118d21533765412da8225ba98659de7dd7998641ab17 \ + --hash=sha256:595b185041a4dc5c685283ea98c2f67bbfa47bb28e4a4f5b27ebf40684e7a9f8 \ + --hash=sha256:65a0ad931944fcb0be12a8e0ac322dbd3ecf17c53f088bc10b6da8f0caac287b \ + --hash=sha256:68e0cd5d32a32c4395168d42f2fefbb03b817ead3a8f3704b8bd5697c0b26c24 \ + --hash=sha256:6a06c2506c41926d2769f7968759995f2505e31c5b5a0821e43ca5a3ddb0e8ae \ + --hash=sha256:6d7e1b28342b45f19e3dea7873a9479e4a57e15095a575afca902e517fb89652 \ + --hash=sha256:6f0ea4d7348feb5e5d0bf317aace92e28398fa9a6e38b7be9ec1f31aad4a8039 \ + --hash=sha256:7313e4acebb9ae88dbde14a8a177467a7625b7449306c03a3f9f309b30e163d0 \ + --hash=sha256:7cf7c7adbf4417e3f46fc5a2dbf8395a5a69698217337086888f79700a12e93a \ + --hash=sha256:80ead36fb1d676cc019586ffdc21c7e906ce4bf243fe4021e4973dae332b6038 \ + --hash=sha256:9470633395e5f24d6741b4c8a6e905bce405a28cf417bba4ccbaadf3dab0111d \ + --hash=sha256:94c0093678001f5d79f2dcbf3104c54d6c89e41ab50d619494c503a4d3f1aef2 \ + --hash=sha256:95f4f8d62589755b507218f2e3189475a4c1f5cc9db2aec772071a7dc6cd5726 \ + --hash=sha256:9c857676d810ca196be73c98eb839125d6fa849bfa3589be06201a6517f9961c \ + --hash=sha256:a22208c1982f1fe2ae82e5e4c3d4a6f2445a7a0d65fb7983a3d7cbbe3983f5a4 \ + --hash=sha256:ad5f966623905ee33694680dda1b735544c99c7638f216045d21546d3d8c6f5b \ + --hash=sha256:ae1ed1ebc407d2f66c6f0ec44ef7d56e3f455859df5494680e2cf89dad8e3ae0 \ + --hash=sha256:afd1ac99179d1864a68c06b31263a08ea25a49df94e272712eb2824ef151e294 \ + --hash=sha256:b6a337a2643a41476fb6262059b8740f4b9a2ec29bf00ffb18c18c080f6e0aed \ + --hash=sha256:b737fbeb2f78926d1f59964feb287bbbd050e7904766f87c8ce5cfb86e6d840c \ + --hash=sha256:c46322354c58d4dc039a2c982d28284330f8919f31206894281f4b595b9d8dbe \ + --hash=sha256:c7e3b9e01fdbe1ce3a165cc7e1ff52b24813ee79c6df6dee0d1e13888a97817e \ + --hash=sha256:c9aa372b295a36771cffc226b6517df3011a7d146ac22d19fa6a75f1cdf9d7e6 \ + --hash=sha256:d3b6d4588994da73567bb00af9d7224a16c8027865a8aab53ae9be83f9b7cbd1 \ + --hash=sha256:d3b9ac11f36ab9a726097fba7c7f6384f0129aedb017f1d4d1d4fce9052a1320 \ + --hash=sha256:d654870a66027af3a26df1372cf7f002e161c6768ebe4c9c6fdc0da331cb5173 \ + --hash=sha256:d8080bc51a775627865e0f1dbfc0040ff4ace685f187f6036837e1727ba2ed10 \ + --hash=sha256:da60b98b0f6f0df9fbf8b72d67d13b73aa8091923a48af79a951d4088530a239 \ + --hash=sha256:f5e8ed9cde48b76318ab989deeddc48f833d2a6a7b7c393c49b704f67dedf01d \ + --hash=sha256:f8e5443295b218b08bef8eb85d31b214d184b3690d99a33b7bd8e5591e2b0aa1 # via # -r requirements-web.in # alembic # flask-sqlalchemy +thrift==0.16.0 \ + --hash=sha256:2b5b6488fcded21f9d312aa23c9ff6a0195d0f6ae26ddbd5ad9e3e25dfc14408 + # via opentelemetry-exporter-jaeger-thrift +typing-extensions==4.4.0 \ + --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \ + --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e + # via opentelemetry-sdk urllib3==1.26.17 \ --hash=sha256:24d6a242c28d29af46c3fae832c36db3bbebcc533dd1bb549172cd739c82df21 \ --hash=sha256:94a757d178c9be92ef5539b8840d48dc9cf1b2709c9d6b588232a055c524458b @@ -472,3 +683,93 @@ werkzeug==2.2.3 \ # connexion # flask # flask-login +wrapt==1.15.0 \ + --hash=sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0 \ + --hash=sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420 \ + --hash=sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a \ + --hash=sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c \ + --hash=sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079 \ + --hash=sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923 \ + --hash=sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f \ + --hash=sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1 \ + --hash=sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8 \ + --hash=sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86 \ + --hash=sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0 \ + --hash=sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364 \ + --hash=sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e \ + --hash=sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c \ + --hash=sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e \ + --hash=sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c \ + --hash=sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727 \ + --hash=sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff \ + --hash=sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e \ + --hash=sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29 \ + --hash=sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7 \ + --hash=sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72 \ + --hash=sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475 \ + --hash=sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a \ + --hash=sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317 \ + --hash=sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2 \ + --hash=sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd \ + --hash=sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640 \ + --hash=sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98 \ + --hash=sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248 \ + --hash=sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e \ + --hash=sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d \ + --hash=sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec \ + --hash=sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1 \ + --hash=sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e \ + --hash=sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9 \ + --hash=sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92 \ + --hash=sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb \ + --hash=sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094 \ + --hash=sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46 \ + --hash=sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29 \ + --hash=sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd \ + --hash=sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705 \ + --hash=sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8 \ + --hash=sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975 \ + --hash=sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb \ + --hash=sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e \ + --hash=sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b \ + --hash=sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418 \ + --hash=sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019 \ + --hash=sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1 \ + --hash=sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba \ + --hash=sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6 \ + --hash=sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2 \ + --hash=sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3 \ + --hash=sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7 \ + --hash=sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752 \ + --hash=sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416 \ + --hash=sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f \ + --hash=sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1 \ + --hash=sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc \ + --hash=sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145 \ + --hash=sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee \ + --hash=sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a \ + --hash=sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7 \ + --hash=sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b \ + --hash=sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653 \ + --hash=sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0 \ + --hash=sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90 \ + --hash=sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29 \ + --hash=sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6 \ + --hash=sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034 \ + --hash=sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09 \ + --hash=sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559 \ + --hash=sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639 + # via + # deprecated + # opentelemetry-instrumentation + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-sqlalchemy +zipp==3.17.0 \ + --hash=sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31 \ + --hash=sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0 + # via importlib-metadata + +# WARNING: The following packages were not pinned, but pip requires them to be +# pinned when the requirements file includes hashes and the requirement is not +# satisfied by a package already installed. Consider using the --allow-unsafe flag. +# setuptools diff --git a/requirements.in b/requirements.in index deb8a4c08..e76b11957 100644 --- a/requirements.in +++ b/requirements.in @@ -18,3 +18,9 @@ requests_kerberos>=0.13.0 requests semver setuptools +opentelemetry-sdk +opentelemetry-instrumentation-celery +opentelemetry-instrumentation-requests +opentelemetry-instrumentation-sqlalchemy +opentelemetry-exporter-jaeger +opentelemetry-exporter-otlp-proto-http diff --git a/requirements.txt b/requirements.txt index 4c83b9216..647a4b79d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -122,7 +122,10 @@ attrs==23.1.0 \ backoff==2.2.1 \ --hash=sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba \ --hash=sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8 - # via -r requirements.in + # via + # -r requirements.in + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http beautifulsoup4==4.11.1 \ --hash=sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30 \ --hash=sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693 @@ -275,6 +278,12 @@ defusedxml==0.7.1 \ --hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \ --hash=sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61 # via -r requirements.in +deprecated==1.2.13 \ + --hash=sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d \ + --hash=sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http frozenlist==1.3.1 \ --hash=sha256:022178b277cb9277d7d3b3f2762d294f15e85cd2534047e68a118c2bb0058f3e \ --hash=sha256:086ca1ac0a40e722d6833d4ce74f5bf1aba2c77cbfdc0cd83722ffea6da52a04 \ @@ -349,27 +358,84 @@ gitpython==3.1.37 \ --hash=sha256:5f4c4187de49616d710a77e98ddf17b4782060a1788df441846bddefbb89ab33 \ --hash=sha256:f9b9ddc0761c125d5780eab2d64be4873fc6817c2899cbcb34b02344bdc7bc54 # via -r requirements.in -gssapi==1.8.2 \ - --hash=sha256:02e0a8f35e1f5b1c0eada646e3da1af3022c25e8df26ded3fd18ee78abb155ea \ - --hash=sha256:13aba9a947994f5f5f1fb6f425b397a359b191cee2983fa33911cf5e212d6cfb \ - --hash=sha256:43c8b1acb8efa1f881ff7f7e912ccdc611689484190b7cc83f538b44f8992cbd \ - --hash=sha256:47d69b1fd3bd0764d7a14500c6cbd8fd08198ee6e1737048a01ad7024d57f67d \ - --hash=sha256:4aaed04439aed8eba525ea44dd7219ecd97d520254320e66ac53d9ae4acb8fe5 \ - --hash=sha256:512a2bd98e8003f48d98908bf54d1ed94c5388764e0a09fdc24cc691422a4162 \ - --hash=sha256:67c85758a6b40042509c96bb00d0873a501491453ad5b0da88dbfa9343c8ffea \ - --hash=sha256:75763c49b3e18da60e160d76e8ac9a27b0bbd637c6e88513150fbb7158ae15d7 \ - --hash=sha256:787262e0db124d302c972d30e6f4b7c81423e696d08ee6e07047194a9bce2664 \ - --hash=sha256:7c14cf97d61073d8211abfded77066af791356868022acda10224a8212639cf5 \ - --hash=sha256:84bfd1b3954a5a608302884a36586eed6f623f6f38fcd331ad55937eca1ea89f \ - --hash=sha256:85e7e623dfe51fef3f613acb965c4fa1866e7a7ee2c2558cbe2f203798171510 \ - --hash=sha256:8b4c1c664635153b0055a08bf30ec1552c8aa064a76f565d7905057500f334b3 \ - --hash=sha256:a36bc089036196aa03c3c312ea1639677065b3d7e8f37edbba731f61f5e56dd6 \ - --hash=sha256:b78e0a021cc91158660e4c5cc9263e07c719346c35a9c0f66725e914b235c89a \ - --hash=sha256:cdd6bff2cf7f3a5a5a24cddde137b6e117fe53aad81f240dee2e8e383c0b289b \ - --hash=sha256:d6be1d8e07cc151e217f8a0ccf7c28ca5a1bb0ae00c8512586642c9f876a7298 \ - --hash=sha256:dcd2be270bf490b6007eb3734795aaeddf92848f79b69d6a23f6204ccaa9b6c7 \ - --hash=sha256:f75b094913a1757e5e634b70b03e808cab0eb02c802ec50b760636b23b0aa50c \ - --hash=sha256:fac7d1f4b14383bd29d3996cf5f6f23d0dc50ffd7965d2bc35bcc0849da24152 +googleapis-common-protos==1.56.2 \ + --hash=sha256:023eaea9d8c1cceccd9587c6af6c20f33eeeb05d4148670f2b0322dc1511700c \ + --hash=sha256:b09b56f5463070c2153753ef123f07d2e49235e89148e9b2459ec8ed2f68d7d3 + # via + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-otlp-proto-http +grpcio==1.50.0 \ + --hash=sha256:05f7c248e440f538aaad13eee78ef35f0541e73498dd6f832fe284542ac4b298 \ + --hash=sha256:080b66253f29e1646ac53ef288c12944b131a2829488ac3bac8f52abb4413c0d \ + --hash=sha256:12b479839a5e753580b5e6053571de14006157f2ef9b71f38c56dc9b23b95ad6 \ + --hash=sha256:156f8009e36780fab48c979c5605eda646065d4695deea4cfcbcfdd06627ddb6 \ + --hash=sha256:15f9e6d7f564e8f0776770e6ef32dac172c6f9960c478616c366862933fa08b4 \ + --hash=sha256:177afaa7dba3ab5bfc211a71b90da1b887d441df33732e94e26860b3321434d9 \ + --hash=sha256:1a4cd8cb09d1bc70b3ea37802be484c5ae5a576108bad14728f2516279165dd7 \ + --hash=sha256:1d8d02dbb616c0a9260ce587eb751c9c7dc689bc39efa6a88cc4fa3e9c138a7b \ + --hash=sha256:2b71916fa8f9eb2abd93151fafe12e18cebb302686b924bd4ec39266211da525 \ + --hash=sha256:2d9fd6e38b16c4d286a01e1776fdf6c7a4123d99ae8d6b3f0b4a03a34bf6ce45 \ + --hash=sha256:3b611b3de3dfd2c47549ca01abfa9bbb95937eb0ea546ea1d762a335739887be \ + --hash=sha256:3e4244c09cc1b65c286d709658c061f12c61c814be0b7030a2d9966ff02611e0 \ + --hash=sha256:40838061e24f960b853d7bce85086c8e1b81c6342b1f4c47ff0edd44bbae2722 \ + --hash=sha256:4b123fbb7a777a2fedec684ca0b723d85e1d2379b6032a9a9b7851829ed3ca9a \ + --hash=sha256:531f8b46f3d3db91d9ef285191825d108090856b3bc86a75b7c3930f16ce432f \ + --hash=sha256:67dd41a31f6fc5c7db097a5c14a3fa588af54736ffc174af4411d34c4f306f68 \ + --hash=sha256:7489dbb901f4fdf7aec8d3753eadd40839c9085967737606d2c35b43074eea24 \ + --hash=sha256:8d4c8e73bf20fb53fe5a7318e768b9734cf122fe671fcce75654b98ba12dfb75 \ + --hash=sha256:8e69aa4e9b7f065f01d3fdcecbe0397895a772d99954bb82eefbb1682d274518 \ + --hash=sha256:8e8999a097ad89b30d584c034929f7c0be280cd7851ac23e9067111167dcbf55 \ + --hash=sha256:906f4d1beb83b3496be91684c47a5d870ee628715227d5d7c54b04a8de802974 \ + --hash=sha256:92d7635d1059d40d2ec29c8bf5ec58900120b3ce5150ef7414119430a4b2dd5c \ + --hash=sha256:931e746d0f75b2a5cff0a1197d21827a3a2f400c06bace036762110f19d3d507 \ + --hash=sha256:95ce51f7a09491fb3da8cf3935005bff19983b77c4e9437ef77235d787b06842 \ + --hash=sha256:9eea18a878cffc804506d39c6682d71f6b42ec1c151d21865a95fae743fda500 \ + --hash=sha256:a23d47f2fc7111869f0ff547f771733661ff2818562b04b9ed674fa208e261f4 \ + --hash=sha256:a4c23e54f58e016761b576976da6a34d876420b993f45f66a2bfb00363ecc1f9 \ + --hash=sha256:a50a1be449b9e238b9bd43d3857d40edf65df9416dea988929891d92a9f8a778 \ + --hash=sha256:ab5d0e3590f0a16cb88de4a3fa78d10eb66a84ca80901eb2c17c1d2c308c230f \ + --hash=sha256:ae23daa7eda93c1c49a9ecc316e027ceb99adbad750fbd3a56fa9e4a2ffd5ae0 \ + --hash=sha256:af98d49e56605a2912cf330b4627e5286243242706c3a9fa0bcec6e6f68646fc \ + --hash=sha256:b2f77a90ba7b85bfb31329f8eab9d9540da2cf8a302128fb1241d7ea239a5469 \ + --hash=sha256:baab51dcc4f2aecabf4ed1e2f57bceab240987c8b03533f1cef90890e6502067 \ + --hash=sha256:ca8a2254ab88482936ce941485c1c20cdeaef0efa71a61dbad171ab6758ec998 \ + --hash=sha256:cb11464f480e6103c59d558a3875bd84eed6723f0921290325ebe97262ae1347 \ + --hash=sha256:ce8513aee0af9c159319692bfbf488b718d1793d764798c3d5cff827a09e25ef \ + --hash=sha256:cf151f97f5f381163912e8952eb5b3afe89dec9ed723d1561d59cabf1e219a35 \ + --hash=sha256:d144ad10eeca4c1d1ce930faa105899f86f5d99cecfe0d7224f3c4c76265c15e \ + --hash=sha256:d534d169673dd5e6e12fb57cc67664c2641361e1a0885545495e65a7b761b0f4 \ + --hash=sha256:d75061367a69808ab2e84c960e9dce54749bcc1e44ad3f85deee3a6c75b4ede9 \ + --hash=sha256:d84d04dec64cc4ed726d07c5d17b73c343c8ddcd6b59c7199c801d6bbb9d9ed1 \ + --hash=sha256:de411d2b030134b642c092e986d21aefb9d26a28bf5a18c47dd08ded411a3bc5 \ + --hash=sha256:e07fe0d7ae395897981d16be61f0db9791f482f03fee7d1851fe20ddb4f69c03 \ + --hash=sha256:ea8ccf95e4c7e20419b7827aa5b6da6f02720270686ac63bd3493a651830235c \ + --hash=sha256:f7025930039a011ed7d7e7ef95a1cb5f516e23c5a6ecc7947259b67bea8e06ca + # via opentelemetry-exporter-jaeger-proto-grpc +gssapi==1.8.3 \ + --hash=sha256:19c373b3ba63ce19cd3163aa1495635e3d01b0de6cc4ff1126095eded1df6e01 \ + --hash=sha256:338db18612e3e6ed64e92b6d849242a535fdc98b365f21122992fb8cae737617 \ + --hash=sha256:37f1a8046d695f2c9b8d640a6e385780d3945c0741571ed6fee6f94c31e431dc \ + --hash=sha256:3a3f63105f39c4af29ffc8f7b6542053d87fe9d63010c689dd9a9f5571facb8e \ + --hash=sha256:465c6788f2ac6ef7c738394ba8fde1ede6004e5721766f386add63891d8c90af \ + --hash=sha256:4d9ed83f2064cda60aad90e6840ae282096801b2c814b8cbd390bf0df4635aab \ + --hash=sha256:4e4a83e9b275fe69b5d40be6d5479889866b80333a12c51a9243f2712d4f0554 \ + --hash=sha256:5731c5b40ecc3116cfe7fb7e1d1e128583ec8b3df1e68bf8cd12073160793acd \ + --hash=sha256:5b4bf84d0a6d7779a4bf11dacfd3db57ae02dd53562e2aeadac4219a68eaee07 \ + --hash=sha256:791e44f7bea602b8e3da1ec56fbdb383b8ee3326fdeb736f904c2aa9af13a67d \ + --hash=sha256:7d91fe6e2a5c89b32102ea8e374b8ae13b9031d43d7b55f3abc1f194ddce820d \ + --hash=sha256:8d57d67547e18f4e44a688bfb20abbf176d1b8df547da2b31c3f2df03cfdc269 \ + --hash=sha256:8fb8ee70458f47b51ed881a6881f30b187c987c02af16cc0fff0079255d4d465 \ + --hash=sha256:8fdb1ff130cee49bc865ec1624dee8cf445cd6c6e93b04bffef2c6f363a60cb9 \ + --hash=sha256:aa3c8d0b1526f52559552bb2c9d2d6be013d76a8e5db00b39a1db5727e93b0b0 \ + --hash=sha256:b031c0f186ab4275186da385b2c7470dd47c9b27522cb3b753757c9ac4bebf11 \ + --hash=sha256:b03d6b30f1fcd66d9a688b45a97e302e4dd3f1386d5c333442731aec73cdb409 \ + --hash=sha256:ca6ceb17fc15eda2a69f2e8c6cf10d11e2edb32832255e5d4c65b21b6db4680a \ + --hash=sha256:d5b28237afc0668046934792756dd4b6b7e957b0d95a608d02f296734a2819ad \ + --hash=sha256:e2bb081f2db2111377effe7d40ba23f9a87359b9d2f4881552b731e9da88b36b \ + --hash=sha256:e40efc88ccefefd6142f8c47b8af498731938958b808bad49990442a91f45160 \ + --hash=sha256:e556878da197ad115a566d36e46a8082d0079731d9c24d1ace795132d725ff2a \ + --hash=sha256:edc8ef3a9e397dbe18bb6016f8e2209969677b534316d20bb139da2865a38efe \ + --hash=sha256:ee74b9211c977b9181ff4652d886d7712c9a221560752a35393b58e5ea07887a # via pyspnego idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ @@ -377,6 +443,10 @@ idna==3.4 \ # via # requests # yarl +importlib-metadata==6.8.0 \ + --hash=sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb \ + --hash=sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743 + # via opentelemetry-api intbitset==3.0.2 \ --hash=sha256:012cf6209431e0bce3dd7579fa62cff07e7b225c65bc17b5d03852c7d57c1e86 \ --hash=sha256:0b33d76a5fbb9880187ab6d7ebe2399ee723dd7535f1526095bc4d2b7af9d255 \ @@ -485,10 +555,89 @@ multidict==6.0.2 \ # via # aiohttp # yarl +opentelemetry-api==1.20.0 \ + --hash=sha256:06abe351db7572f8afdd0fb889ce53f3c992dbf6f6262507b385cc1963e06983 \ + --hash=sha256:982b76036fec0fdaf490ae3dfd9f28c81442a33414f737abc687a32758cdcba5 + # via + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-jaeger-thrift + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-instrumentation + # opentelemetry-instrumentation-celery + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-sqlalchemy + # opentelemetry-sdk +opentelemetry-exporter-jaeger==1.20.0 \ + --hash=sha256:1cad383034e3f8fb7d2bf8e01c033c9594023d76658127417be84baa0817f106 \ + --hash=sha256:1ebd756063f8ee72f8d8ecad427f7ec53ed59aee50c69baef58a8e6aa55d59a2 + # via -r requirements.in +opentelemetry-exporter-jaeger-proto-grpc==1.20.0 \ + --hash=sha256:3e0c7a511d267e4f9efffe07893365f26ad6568617b036f6462882051014d4af \ + --hash=sha256:98f7973edc0edd6c44d34338e93d7329776a4a2de8b9e8b5038dc11dd2dd4299 + # via opentelemetry-exporter-jaeger +opentelemetry-exporter-jaeger-thrift==1.20.0 \ + --hash=sha256:781045dbbce3094772426259fac4602269ddd7934f7767145997ea13f82d67e2 \ + --hash=sha256:ab8416584535f93e3a087eecd6edec534361748763a9f8b609bbd0b44f3d73f9 + # via opentelemetry-exporter-jaeger +opentelemetry-exporter-otlp-proto-common==1.20.0 \ + --hash=sha256:dd63209b40702636ab6ae76a06b401b646ad7b008a906ecb41222d4af24fbdef \ + --hash=sha256:df60c681bd61812e50b3a39a7a1afeeb6d4066117583249fcc262269374e7a49 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.20.0 \ + --hash=sha256:03f6e768ad25f1c3a9586e8c695db4a4adf978f8546a1285fa962e16bfbb0bd6 \ + --hash=sha256:500f42821420fdf0759193d6438edc0f4e984a83e14c08a23023c06a188861b4 + # via -r requirements.in +opentelemetry-instrumentation==0.41b0 \ + --hash=sha256:0ef9e5705ceca0205992a4a845ae4251ce6ec15a1206ca07c2b00afb0c5bd386 \ + --hash=sha256:214382ba10dfd29d4e24898a4c7ef18b7368178a6277a1aec95cdb75cabf4612 + # via + # opentelemetry-instrumentation-celery + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-sqlalchemy +opentelemetry-instrumentation-celery==0.41b0 \ + --hash=sha256:403d48c17478f5a8d42522211c66c0af16a5a7339d5a2b00c27c1b84c963617b \ + --hash=sha256:b3e2ee1b0e2acb13716f5318f406e8a8eb57aac6eb6118266694037ac6d8a7e6 + # via -r requirements.in +opentelemetry-instrumentation-requests==0.41b0 \ + --hash=sha256:687fde31111669e729054e64d246c96b0b9d4d8702bd0e3569b7660bdb528d71 \ + --hash=sha256:bdc5515ae7533e620b312fd989941b7c2c92d492a2d4418f6ef8db5d7422fa64 + # via -r requirements.in +opentelemetry-instrumentation-sqlalchemy==0.41b0 \ + --hash=sha256:67f113b995e9a5b031268559e57a5f81d4619868ba82cd1ca2a76a82f42b1fb9 \ + --hash=sha256:b98b6dbf629faabaa8c0a7a33c202754384b960c9c8d2b5fe248f11857eabc89 + # via -r requirements.in +opentelemetry-proto==1.20.0 \ + --hash=sha256:512c3d2c6864fb7547a69577c3907348e6c985b7a204533563cb4c4c5046203b \ + --hash=sha256:cf01f49b3072ee57468bccb1a4f93bdb55411f4512d0ac3f97c5c04c0040b5a2 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.20.0 \ + --hash=sha256:702e432a457fa717fd2ddfd30640180e69938f85bb7fec3e479f85f61c1843f8 \ + --hash=sha256:f2230c276ff4c63ea09b3cb2e2ac6b1265f90af64e8d16bbf275c81a9ce8e804 + # via + # -r requirements.in + # opentelemetry-exporter-jaeger-proto-grpc + # opentelemetry-exporter-jaeger-thrift + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.41b0 \ + --hash=sha256:0ce5b040b8a3fc816ea5879a743b3d6fe5db61f6485e4def94c6ee4d402e1eb7 \ + --hash=sha256:45404391ed9e50998183a4925ad1b497c01c143f06500c3b9c3d0013492bb0f2 + # via + # opentelemetry-instrumentation-celery + # opentelemetry-instrumentation-requests + # opentelemetry-instrumentation-sqlalchemy + # opentelemetry-sdk +opentelemetry-util-http==0.41b0 \ + --hash=sha256:16d5bd04a380dc1079e766562d1e1626cbb47720f197f67010c45f090fffdfb3 \ + --hash=sha256:6a167fd1e0e8b0f629530d971165b5d82ed0be2154b7f29498499c3a517edee5 + # via opentelemetry-instrumentation-requests packaging==23.2 \ --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - # via -r requirements.in + # via + # -r requirements.in + # opentelemetry-instrumentation-sqlalchemy ply==3.11 \ --hash=sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3 \ --hash=sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce @@ -497,6 +646,32 @@ prompt-toolkit==3.0.30 \ --hash=sha256:859b283c50bde45f5f97829f77a4674d1c1fcd88539364f1b28a37805cfd89c0 \ --hash=sha256:d8916d3f62a7b67ab353a952ce4ced6a1d2587dfe9ef8ebc30dd7c386751f289 # via click-repl +protobuf==3.20.3 \ + --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ + --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ + --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ + --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ + --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ + --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ + --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ + --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ + --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ + --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ + --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ + --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ + --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ + --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ + --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ + --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ + --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ + --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ + --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ + --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ + --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ + --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee + # via + # googleapis-common-protos + # opentelemetry-proto pyarn==0.2.0 \ --hash=sha256:542ff739af2b81a1200776eff2b4d2566a330846decbd0f815999b196d7b067d \ --hash=sha256:d06e8b79bb830f142187b57ee664dc0104f658efdb2b2bae7ed99eaf7746eb1a @@ -611,6 +786,7 @@ requests==2.31.0 \ # via # -r requirements.in # commoncode + # opentelemetry-exporter-otlp-proto-http # requests-kerberos requests-kerberos==0.14.0 \ --hash=sha256:cda9d1240ae5392e081869881c8742d0e171fd6a893a7ac0875db2748e966fd1 \ @@ -629,7 +805,9 @@ six==1.16.0 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 # via # click-repl + # grpcio # python-dateutil + # thrift smmap==5.0.0 \ --hash=sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94 \ --hash=sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936 @@ -642,10 +820,15 @@ text-unidecode==1.3 \ --hash=sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8 \ --hash=sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93 # via commoncode -typing-extensions==4.3.0 \ - --hash=sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02 \ - --hash=sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6 - # via pydantic +thrift==0.16.0 \ + --hash=sha256:2b5b6488fcded21f9d312aa23c9ff6a0195d0f6ae26ddbd5ad9e3e25dfc14408 + # via opentelemetry-exporter-jaeger-thrift +typing-extensions==4.4.0 \ + --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \ + --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e + # via + # opentelemetry-sdk + # pydantic tzdata==2023.3 \ --hash=sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a \ --hash=sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda @@ -665,6 +848,86 @@ wcwidth==0.2.5 \ --hash=sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784 \ --hash=sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83 # via prompt-toolkit +wrapt==1.15.0 \ + --hash=sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0 \ + --hash=sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420 \ + --hash=sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a \ + --hash=sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c \ + --hash=sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079 \ + --hash=sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923 \ + --hash=sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f \ + --hash=sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1 \ + --hash=sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8 \ + --hash=sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86 \ + --hash=sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0 \ + --hash=sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364 \ + --hash=sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e \ + --hash=sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c \ + --hash=sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e \ + --hash=sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c \ + --hash=sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727 \ + --hash=sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff \ + --hash=sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e \ + --hash=sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29 \ + --hash=sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7 \ + --hash=sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72 \ + --hash=sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475 \ + --hash=sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a \ + --hash=sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317 \ + --hash=sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2 \ + --hash=sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd \ + --hash=sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640 \ + --hash=sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98 \ + --hash=sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248 \ + --hash=sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e \ + --hash=sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d \ + --hash=sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec \ + --hash=sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1 \ + --hash=sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e \ + --hash=sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9 \ + --hash=sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92 \ + --hash=sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb \ + --hash=sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094 \ + --hash=sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46 \ + --hash=sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29 \ + --hash=sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd \ + --hash=sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705 \ + --hash=sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8 \ + --hash=sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975 \ + --hash=sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb \ + --hash=sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e \ + --hash=sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b \ + --hash=sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418 \ + --hash=sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019 \ + --hash=sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1 \ + --hash=sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba \ + --hash=sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6 \ + --hash=sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2 \ + --hash=sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3 \ + --hash=sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7 \ + --hash=sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752 \ + --hash=sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416 \ + --hash=sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f \ + --hash=sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1 \ + --hash=sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc \ + --hash=sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145 \ + --hash=sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee \ + --hash=sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a \ + --hash=sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7 \ + --hash=sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b \ + --hash=sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653 \ + --hash=sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0 \ + --hash=sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90 \ + --hash=sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29 \ + --hash=sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6 \ + --hash=sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034 \ + --hash=sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09 \ + --hash=sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559 \ + --hash=sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639 + # via + # deprecated + # opentelemetry-instrumentation + # opentelemetry-instrumentation-sqlalchemy yarl==1.8.1 \ --hash=sha256:076eede537ab978b605f41db79a56cad2e7efeea2aa6e0fa8f05a26c24a034fb \ --hash=sha256:07b21e274de4c637f3e3b7104694e53260b5fc10d51fb3ec5fed1da8e0f754e3 \ @@ -726,9 +989,15 @@ yarl==1.8.1 \ --hash=sha256:f5af52738e225fcc526ae64071b7e5342abe03f42e0e8918227b38c9aa711e28 \ --hash=sha256:fae37373155f5ef9b403ab48af5136ae9851151f7aacd9926251ab26b953118b # via aiohttp +zipp==3.17.0 \ + --hash=sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31 \ + --hash=sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0 + # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: setuptools==68.2.2 \ --hash=sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87 \ --hash=sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a - # via -r requirements.in + # via + # -r requirements.in + # opentelemetry-instrumentation diff --git a/setup.py b/setup.py index e1dd231ac..d29857d2c 100644 --- a/setup.py +++ b/setup.py @@ -23,6 +23,11 @@ "requests", "semver", "setuptools", + "opentelemetry-sdk", + "opentelemetry-instrumentation-celery", + "opentelemetry-instrumentation-requests", + "opentelemetry-exporter-jaeger", + "opentelemetry-exporter-otlp-proto-http", ], extras_require={ "web": [ @@ -32,6 +37,7 @@ "Flask-SQLAlchemy", "psycopg2-binary", "prometheus-flask-exporter", + "opentelemetry-instrumentation-sqlalchemy", ], }, entry_points={ diff --git a/tox.ini b/tox.ini index 9b21e2d99..5f457c243 100644 --- a/tox.ini +++ b/tox.ini @@ -86,7 +86,11 @@ basepython = python3 skipsdist = true skip_install = true commands = - pytest -rA -vvvv \ + pytest -rA -vvvv --export-traces \ --confcutdir=tests/integration \ {posargs:tests/integration} -passenv = KRB5CCNAME, REQUESTS_CA_BUNDLE, KRB5_CLIENT_KTNAME, CACHITO_TEST_CERT, CACHITO_TEST_KEY, JOB_NAME +passenv = KRB5CCNAME,REQUESTS_CA_BUNDLE,KRB5_CLIENT_KTNAME,CACHITO_TEST_CERT\ + CACHITO_TEST_KEY,JOB_NAME +setenv = + OTEL_RESOURCE_ATTRIBUTES=service.name=cachito-integration-tests + OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317