diff --git a/packages/aws-library/requirements/_base.in b/packages/aws-library/requirements/_base.in index 628cebcf110..2cde3a8eeff 100644 --- a/packages/aws-library/requirements/_base.in +++ b/packages/aws-library/requirements/_base.in @@ -11,4 +11,5 @@ aiocache arrow pydantic[email] types-aiobotocore[ec2,s3,ssm] +opentelemetry-instrumentation-botocore sh diff --git a/packages/aws-library/requirements/_base.txt b/packages/aws-library/requirements/_base.txt index 9f07cc7025c..63c88ba0037 100644 --- a/packages/aws-library/requirements/_base.txt +++ b/packages/aws-library/requirements/_base.txt @@ -44,6 +44,8 @@ arrow==1.3.0 # -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/_base.in +async-timeout==4.0.3 + # via redis attrs==24.2.0 # via # aiohttp @@ -127,7 +129,10 @@ opentelemetry-api==1.27.0 # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation + # opentelemetry-instrumentation-botocore + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests + # opentelemetry-propagator-aws-xray # opentelemetry-sdk # opentelemetry-semantic-conventions opentelemetry-exporter-otlp==1.27.0 @@ -141,9 +146,18 @@ opentelemetry-exporter-otlp-proto-grpc==1.27.0 opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp opentelemetry-instrumentation==0.48b0 - # via opentelemetry-instrumentation-requests + # via + # opentelemetry-instrumentation-botocore + # opentelemetry-instrumentation-redis + # opentelemetry-instrumentation-requests +opentelemetry-instrumentation-botocore==0.48b0 + # via -r requirements/_base.in +opentelemetry-instrumentation-redis==0.48b0 + # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-propagator-aws-xray==1.0.2 + # via opentelemetry-instrumentation-botocore opentelemetry-proto==1.27.0 # via # opentelemetry-exporter-otlp-proto-common @@ -156,6 +170,8 @@ opentelemetry-sdk==1.27.0 # opentelemetry-exporter-otlp-proto-http opentelemetry-semantic-conventions==0.48b0 # via + # opentelemetry-instrumentation-botocore + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.48b0 @@ -297,6 +313,7 @@ wrapt==1.16.0 # aiobotocore # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.12.1 # via # aio-pika diff --git a/packages/postgres-database/requirements/_base.in b/packages/postgres-database/requirements/_base.in index 48679f44663..7a1a874c194 100644 --- a/packages/postgres-database/requirements/_base.in +++ b/packages/postgres-database/requirements/_base.in @@ -7,4 +7,5 @@ alembic pydantic sqlalchemy[postgresql_psycopg2binary,postgresql_asyncpg] # SEE extras in https://github.com/sqlalchemy/sqlalchemy/blob/main/setup.cfg#L43 +opentelemetry-instrumentation-asyncpg yarl diff --git a/packages/postgres-database/requirements/_base.txt b/packages/postgres-database/requirements/_base.txt index bded83bb4f9..044a006295a 100644 --- a/packages/postgres-database/requirements/_base.txt +++ b/packages/postgres-database/requirements/_base.txt @@ -4,10 +4,16 @@ async-timeout==4.0.3 # via asyncpg asyncpg==0.29.0 # via sqlalchemy +deprecated==1.2.14 + # via + # opentelemetry-api + # opentelemetry-semantic-conventions greenlet==3.1.1 # via sqlalchemy idna==3.10 # via yarl +importlib-metadata==8.4.0 + # via opentelemetry-api mako==1.3.5 # via # -c requirements/../../../requirements/constraints.txt @@ -16,12 +22,25 @@ markupsafe==2.1.5 # via mako multidict==6.1.0 # via yarl +opentelemetry-api==1.27.0 + # via + # opentelemetry-instrumentation + # opentelemetry-instrumentation-asyncpg + # opentelemetry-semantic-conventions +opentelemetry-instrumentation==0.48b0 + # via opentelemetry-instrumentation-asyncpg +opentelemetry-instrumentation-asyncpg==0.48b0 + # via -r requirements/_base.in +opentelemetry-semantic-conventions==0.48b0 + # via opentelemetry-instrumentation-asyncpg psycopg2-binary==2.9.9 # via sqlalchemy pydantic==1.10.18 # via # -c requirements/../../../requirements/constraints.txt # -r requirements/_base.in +setuptools==75.2.0 + # via opentelemetry-instrumentation sqlalchemy==1.4.54 # via # -c requirements/../../../requirements/constraints.txt @@ -31,5 +50,11 @@ typing-extensions==4.12.2 # via # alembic # pydantic +wrapt==1.16.0 + # via + # deprecated + # opentelemetry-instrumentation yarl==1.12.1 # via -r requirements/_base.in +zipp==3.20.2 + # via importlib-metadata diff --git a/packages/postgres-database/requirements/_tools.txt b/packages/postgres-database/requirements/_tools.txt index d48ce38c32f..61c9a3ec7e1 100644 --- a/packages/postgres-database/requirements/_tools.txt +++ b/packages/postgres-database/requirements/_tools.txt @@ -68,8 +68,10 @@ pyyaml==6.0.2 # pre-commit ruff==0.6.7 # via -r requirements/../../../requirements/devenv.txt -setuptools==75.1.0 - # via pip-tools +setuptools==75.2.0 + # via + # -c requirements/_base.txt + # pip-tools tomlkit==0.13.2 # via pylint typing-extensions==4.12.2 diff --git a/packages/service-library/requirements/_base.in b/packages/service-library/requirements/_base.in index aa776fedb15..295a76b0db8 100644 --- a/packages/service-library/requirements/_base.in +++ b/packages/service-library/requirements/_base.in @@ -18,6 +18,7 @@ faststream opentelemetry-api opentelemetry-exporter-otlp opentelemetry-instrumentation-requests +opentelemetry-instrumentation-redis opentelemetry-sdk psutil pydantic diff --git a/packages/service-library/requirements/_base.txt b/packages/service-library/requirements/_base.txt index 2d0efb438c4..d53ce73a8c4 100644 --- a/packages/service-library/requirements/_base.txt +++ b/packages/service-library/requirements/_base.txt @@ -28,6 +28,8 @@ arrow==1.3.0 # via # -r requirements/../../../packages/models-library/requirements/_base.in # -r requirements/_base.in +async-timeout==4.0.3 + # via redis attrs==24.2.0 # via # aiohttp @@ -93,6 +95,7 @@ opentelemetry-api==1.27.0 # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions @@ -107,7 +110,11 @@ opentelemetry-exporter-otlp-proto-grpc==1.27.0 opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp opentelemetry-instrumentation==0.48b0 - # via opentelemetry-instrumentation-requests + # via + # opentelemetry-instrumentation-redis + # opentelemetry-instrumentation-requests +opentelemetry-instrumentation-redis==0.48b0 + # via -r requirements/_base.in opentelemetry-instrumentation-requests==0.48b0 # via -r requirements/_base.in opentelemetry-proto==1.27.0 @@ -122,6 +129,7 @@ opentelemetry-sdk==1.27.0 # opentelemetry-exporter-otlp-proto-http opentelemetry-semantic-conventions==0.48b0 # via + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.48b0 @@ -219,6 +227,7 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.12.1 # via # aio-pika diff --git a/packages/service-library/requirements/_test.in b/packages/service-library/requirements/_test.in index d3936487c75..239a389cbc0 100644 --- a/packages/service-library/requirements/_test.in +++ b/packages/service-library/requirements/_test.in @@ -13,6 +13,7 @@ # testing asgi_lifespan +botocore coverage docker faker @@ -20,6 +21,7 @@ flaky numpy openapi-spec-validator pillow +pip pytest pytest-aiohttp pytest-asyncio diff --git a/packages/service-library/requirements/_test.txt b/packages/service-library/requirements/_test.txt index f1679efbfdd..d622d382b4c 100644 --- a/packages/service-library/requirements/_test.txt +++ b/packages/service-library/requirements/_test.txt @@ -29,6 +29,8 @@ attrs==24.2.0 # jsonschema # pytest-docker # referencing +botocore==1.35.50 + # via -r requirements/_test.in certifi==2024.8.30 # via # -c requirements/../../../requirements/constraints.txt @@ -91,6 +93,8 @@ idna==3.10 # yarl iniconfig==2.0.0 # via pytest +jmespath==1.0.1 + # via botocore jsonschema==4.23.0 # via # -c requirements/_aiohttp.txt @@ -141,6 +145,8 @@ pathable==0.4.3 # jsonschema-path pillow==10.4.0 # via -r requirements/_test.in +pip==24.3.1 + # via -r requirements/_test.in pluggy==1.5.0 # via pytest pprintpp==0.4.0 @@ -188,6 +194,7 @@ pytest-xdist==3.6.1 python-dateutil==2.9.0.post0 # via # -c requirements/_base.txt + # botocore # faker python-dotenv==1.0.1 # via -r requirements/_test.in @@ -263,6 +270,7 @@ urllib3==2.2.3 # -c requirements/../../../requirements/constraints.txt # -c requirements/_aiohttp.txt # -c requirements/_base.txt + # botocore # docker # requests yarl==1.12.1 diff --git a/packages/service-library/requirements/_tools.txt b/packages/service-library/requirements/_tools.txt index c12d45d2703..f487b7983b8 100644 --- a/packages/service-library/requirements/_tools.txt +++ b/packages/service-library/requirements/_tools.txt @@ -45,8 +45,10 @@ packaging==24.1 # build pathspec==0.12.1 # via black -pip==24.2 - # via pip-tools +pip==24.3.1 + # via + # -c requirements/_test.txt + # pip-tools pip-tools==7.4.1 # via -r requirements/../../../requirements/devenv.txt platformdirs==4.3.6 diff --git a/packages/service-library/src/servicelib/aiohttp/tracing.py b/packages/service-library/src/servicelib/aiohttp/tracing.py index 9947c12be0b..3da3b28e3b3 100644 --- a/packages/service-library/src/servicelib/aiohttp/tracing.py +++ b/packages/service-library/src/servicelib/aiohttp/tracing.py @@ -15,23 +15,39 @@ from opentelemetry.instrumentation.aiohttp_server import ( middleware as aiohttp_server_opentelemetry_middleware, # pylint:disable=no-name-in-module ) -from opentelemetry.instrumentation.aiopg import ( # pylint:disable=no-name-in-module - AiopgInstrumentor, -) -from opentelemetry.instrumentation.requests import RequestsInstrumentor from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor +from servicelib.logging_utils import log_context from settings_library.tracing import TracingSettings _logger = logging.getLogger(__name__) +try: + from opentelemetry.instrumentation.botocore import ( # type: ignore[import-not-found] + BotocoreInstrumentor, + ) + + HAS_BOTOCORE = True +except ImportError: + HAS_BOTOCORE = False +try: + from opentelemetry.instrumentation.aiopg import AiopgInstrumentor + + HAS_AIOPG = True +except ImportError: + HAS_AIOPG = False +try: + from opentelemetry.instrumentation.requests import RequestsInstrumentor + + HAS_REQUESTS = True +except ImportError: + HAS_REQUESTS = False def setup_tracing( app: web.Application, tracing_settings: TracingSettings, service_name: str, - instrument_aiopg: bool = False, # noqa: FBT001, FBT002 ) -> None: """ Sets up this service for a distributed tracing system (opentelemetry) @@ -91,6 +107,24 @@ def setup_tracing( # Instrument aiohttp client AioHttpClientInstrumentor().instrument() - if instrument_aiopg: - AiopgInstrumentor().instrument() - RequestsInstrumentor().instrument() + if HAS_AIOPG: + with log_context( + _logger, + logging.INFO, + msg="Attempting to add aio-pg opentelemetry autoinstrumentation...", + ): + AiopgInstrumentor().instrument() + if HAS_BOTOCORE: + with log_context( + _logger, + logging.INFO, + msg="Attempting to add botocore opentelemetry autoinstrumentation...", + ): + BotocoreInstrumentor().instrument() + if HAS_REQUESTS: + with log_context( + _logger, + logging.INFO, + msg="Attempting to add requests opentelemetry autoinstrumentation...", + ): + RequestsInstrumentor().instrument() diff --git a/packages/service-library/src/servicelib/fastapi/tracing.py b/packages/service-library/src/servicelib/fastapi/tracing.py index e0f670686f5..b5179a8a5f6 100644 --- a/packages/service-library/src/servicelib/fastapi/tracing.py +++ b/packages/service-library/src/servicelib/fastapi/tracing.py @@ -13,9 +13,49 @@ from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor +from servicelib.logging_utils import log_context from settings_library.tracing import TracingSettings -log = logging.getLogger(__name__) +_logger = logging.getLogger(__name__) + +try: + from opentelemetry.instrumentation.asyncpg import ( # type: ignore[import-not-found] + AsyncPGInstrumentor, + ) + + HAS_ASYNCPG = True +except ImportError: + HAS_ASYNCPG = False + +try: + from opentelemetry.instrumentation.aiopg import AiopgInstrumentor + + HAS_AIOPG = True +except ImportError: + HAS_AIOPG = False + +try: + from opentelemetry.instrumentation.redis import RedisInstrumentor + + HAS_REDIS = True +except ImportError: + HAS_REDIS = False + +try: + from opentelemetry.instrumentation.botocore import ( # type: ignore[import-not-found] + BotocoreInstrumentor, + ) + + HAS_BOTOCORE = True +except ImportError: + HAS_BOTOCORE = False + +try: + from opentelemetry.instrumentation.requests import RequestsInstrumentor + + HAS_REQUESTS = True +except ImportError: + HAS_REQUESTS = False def setup_tracing( @@ -25,7 +65,7 @@ def setup_tracing( not tracing_settings.TRACING_OPENTELEMETRY_COLLECTOR_ENDPOINT and not tracing_settings.TRACING_OPENTELEMETRY_COLLECTOR_PORT ): - log.warning("Skipping opentelemetry tracing setup") + _logger.warning("Skipping opentelemetry tracing setup") return # Set up the tracer provider @@ -34,8 +74,8 @@ def setup_tracing( global_tracer_provider = trace.get_tracer_provider() assert isinstance(global_tracer_provider, TracerProvider) # nosec tracing_destination: str = f"{tracing_settings.TRACING_OPENTELEMETRY_COLLECTOR_ENDPOINT}:{tracing_settings.TRACING_OPENTELEMETRY_COLLECTOR_PORT}/v1/traces" - log.info( - "Trying to connect service %s to tracing collector at %s.", + _logger.info( + "Trying to connect service %s to opentelemetry tracing collector at %s.", service_name, tracing_destination, ) @@ -45,3 +85,39 @@ def setup_tracing( global_tracer_provider.add_span_processor(span_processor) # Instrument FastAPI FastAPIInstrumentor().instrument_app(app) + + if HAS_AIOPG: + with log_context( + _logger, + logging.INFO, + msg="Attempting to add asyncpg opentelemetry autoinstrumentation...", + ): + AiopgInstrumentor().instrument() + if HAS_ASYNCPG: + with log_context( + _logger, + logging.INFO, + msg="Attempting to add asyncpg opentelemetry autoinstrumentation...", + ): + AsyncPGInstrumentor().instrument() + if HAS_REDIS: + with log_context( + _logger, + logging.INFO, + msg="Attempting to add redis opentelemetry autoinstrumentation...", + ): + RedisInstrumentor().instrument() + if HAS_BOTOCORE: + with log_context( + _logger, + logging.INFO, + msg="Attempting to add botocore opentelemetry autoinstrumentation...", + ): + BotocoreInstrumentor().instrument() + if HAS_REQUESTS: + with log_context( + _logger, + logging.INFO, + msg="Attempting to add requests opentelemetry autoinstrumentation...", + ): + RequestsInstrumentor().instrument() diff --git a/packages/service-library/tests/aiohttp/test_tracing.py b/packages/service-library/tests/aiohttp/test_tracing.py index 2a1cc30eeac..389394f3d0d 100644 --- a/packages/service-library/tests/aiohttp/test_tracing.py +++ b/packages/service-library/tests/aiohttp/test_tracing.py @@ -2,8 +2,11 @@ # pylint: disable=unused-argument # pylint: disable=unused-variable +import importlib from collections.abc import Callable +from typing import Any, Iterator +import pip import pytest from aiohttp import web from aiohttp.test_utils import TestClient @@ -42,6 +45,7 @@ async def test_valid_tracing_settings( aiohttp_client: Callable, set_and_clean_settings_env_vars: Callable, tracing_settings_in, + uninstrument_opentelemetry: Iterator[None], ) -> TestClient: app = web.Application() service_name = "simcore_service_webserver" @@ -66,6 +70,69 @@ async def test_invalid_tracing_settings( aiohttp_client: Callable, set_and_clean_settings_env_vars: Callable, tracing_settings_in, + uninstrument_opentelemetry: Iterator[None], ) -> TestClient: with pytest.raises(ValidationError): TracingSettings() + + +def install_package(package): + pip.main(["install", package]) + + +def uninstall_package(package): + pip.main(["uninstall", "-y", package]) + + +@pytest.fixture(scope="function") +def manage_package(request): + package, importname = request.param + install_package(package) + yield importname + uninstall_package(package) + + +@pytest.mark.parametrize( + "tracing_settings_in, manage_package", + [ + ( + ("http://opentelemetry-collector", 4318), + ( + "opentelemetry-instrumentation-botocore", + "opentelemetry.instrumentation.botocore", + ), + ), + ( + ("http://opentelemetry-collector", "4318"), + ( + "opentelemetry-instrumentation-aiopg", + "opentelemetry.instrumentation.aiopg", + ), + ), + ], + indirect=True, +) +async def test_tracing_setup_package_detection( + aiohttp_client: Callable, + set_and_clean_settings_env_vars: Callable[[], None], + tracing_settings_in: Callable[[], dict[str, Any]], + manage_package, + uninstrument_opentelemetry: Iterator[None], +): + package_name = manage_package + importlib.import_module(package_name) + # + app = web.Application() + service_name = "simcore_service_webserver" + tracing_settings = TracingSettings() + setup_tracing( + app, + service_name=service_name, + tracing_settings=tracing_settings, + ) + # idempotency + setup_tracing( + app, + service_name=service_name, + tracing_settings=tracing_settings, + ) diff --git a/packages/service-library/tests/conftest.py b/packages/service-library/tests/conftest.py index 712746ccce9..927ff75477f 100644 --- a/packages/service-library/tests/conftest.py +++ b/packages/service-library/tests/conftest.py @@ -99,3 +99,60 @@ async def _cleanup_redis_data(clients_manager: RedisClientsManager) -> None: await _cleanup_redis_data(clients_manager) yield _ await _cleanup_redis_data(clients_manager) + + +@pytest.fixture() +def uninstrument_opentelemetry(): + yield + try: + from opentelemetry.instrumentation.redis import RedisInstrumentor + + RedisInstrumentor().uninstrument() + except ImportError: + pass + try: + from opentelemetry.instrumentation.botocore import BotocoreInstrumentor + + BotocoreInstrumentor().uninstrument() + except ImportError: + pass + try: + from opentelemetry.instrumentation.requests import RequestsInstrumentor + + RequestsInstrumentor().uninstrument() + except ImportError: + pass + try: + from opentelemetry.instrumentation.aiopg import AiopgInstrumentor + + AiopgInstrumentor().uninstrument() + except ImportError: + pass + try: + from opentelemetry.instrumentation.asyncpg import AsyncPGInstrumentor + + AsyncPGInstrumentor().uninstrument() + except ImportError: + pass + try: + from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor + + FastAPIInstrumentor().uninstrument() + except ImportError: + pass + try: + from opentelemetry.instrumentation.aiohttp_client import ( + AioHttpClientInstrumentor, + ) + + AioHttpClientInstrumentor().uninstrument() + except ImportError: + pass + try: + from opentelemetry.instrumentation.aiohttp_server import ( + AioHttpServerInstrumentor, + ) + + AioHttpServerInstrumentor().uninstrument() + except ImportError: + pass diff --git a/packages/service-library/tests/fastapi/test_tracing.py b/packages/service-library/tests/fastapi/test_tracing.py index 9364cb75a34..412b59b116d 100644 --- a/packages/service-library/tests/fastapi/test_tracing.py +++ b/packages/service-library/tests/fastapi/test_tracing.py @@ -1,11 +1,13 @@ # pylint: disable=all +import importlib import random import string from collections.abc import Callable -from typing import Any +from typing import Any, Iterator +import pip import pytest from fastapi import FastAPI from pydantic import ValidationError @@ -49,6 +51,7 @@ async def test_valid_tracing_settings( mocked_app: FastAPI, set_and_clean_settings_env_vars: Callable[[], None], tracing_settings_in: Callable[[], dict[str, Any]], + uninstrument_opentelemetry: Iterator[None], ): tracing_settings = TracingSettings() setup_tracing( @@ -84,6 +87,7 @@ async def test_invalid_tracing_settings( mocked_app: FastAPI, set_and_clean_settings_env_vars: Callable[[], None], tracing_settings_in: Callable[[], dict[str, Any]], + uninstrument_opentelemetry: Iterator[None], ): app = mocked_app with pytest.raises((BaseException, ValidationError, TypeError)): # noqa: PT012 @@ -93,3 +97,63 @@ async def test_invalid_tracing_settings( tracing_settings=tracing_settings, service_name="Mock-Openetlemetry-Pytest", ) + + +def install_package(package): + pip.main(["install", package]) + + +def uninstall_package(package): + pip.main(["uninstall", "-y", package]) + + +@pytest.fixture(scope="function") +def manage_package(request): + package, importname = request.param + install_package(package) + yield importname + uninstall_package(package) + + +@pytest.mark.parametrize( + "tracing_settings_in, manage_package", + [ + ( + ("http://opentelemetry-collector", 4318), + ( + "opentelemetry-instrumentation-botocore", + "opentelemetry.instrumentation.botocore", + ), + ), + ( + ("http://opentelemetry-collector", "4318"), + ( + "opentelemetry-instrumentation-aiopg", + "opentelemetry.instrumentation.aiopg", + ), + ), + ], + indirect=True, +) +async def test_tracing_setup_package_detection( + mocked_app: FastAPI, + set_and_clean_settings_env_vars: Callable[[], None], + tracing_settings_in: Callable[[], dict[str, Any]], + uninstrument_opentelemetry: Iterator[None], + manage_package, +): + package_name = manage_package + importlib.import_module(package_name) + # + tracing_settings = TracingSettings() + setup_tracing( + mocked_app, + tracing_settings=tracing_settings, + service_name="Mock-Openetlemetry-Pytest", + ) + # idempotency + setup_tracing( + mocked_app, + tracing_settings=tracing_settings, + service_name="Mock-Openetlemetry-Pytest", + ) diff --git a/packages/service-library/tests/rabbitmq/test_rabbitmq.py b/packages/service-library/tests/rabbitmq/test_rabbitmq.py index 56bcce4c026..5bc26c3be1e 100644 --- a/packages/service-library/tests/rabbitmq/test_rabbitmq.py +++ b/packages/service-library/tests/rabbitmq/test_rabbitmq.py @@ -266,7 +266,11 @@ async def _fail_once_then_succeed(message: Any) -> bool: message = entry.args[2] if message.headers == {}: original_message_count += 1 - if message.headers and message.headers["x-death"][0]["count"] == 1: + if ( + message.headers + and "x-death" in message.headers + and message.headers["x-death"][0]["count"] == 1 + ): requeued_message_count += 1 assert original_message_count == topics_count diff --git a/packages/simcore-sdk/requirements/_base.in b/packages/simcore-sdk/requirements/_base.in index a07a0b50b01..da34e87a026 100644 --- a/packages/simcore-sdk/requirements/_base.in +++ b/packages/simcore-sdk/requirements/_base.in @@ -12,6 +12,7 @@ aiocache aiofiles aiohttp aiopg[sa] +opentelemetry-instrumentation-aiopg packaging pint pydantic[email] diff --git a/packages/simcore-sdk/requirements/_base.txt b/packages/simcore-sdk/requirements/_base.txt index 6a2a594c491..5eac02fa1ec 100644 --- a/packages/simcore-sdk/requirements/_base.txt +++ b/packages/simcore-sdk/requirements/_base.txt @@ -48,6 +48,7 @@ async-timeout==4.0.3 # via # aiopg # asyncpg + # redis asyncpg==0.29.0 # via sqlalchemy attrs==24.2.0 @@ -139,6 +140,10 @@ opentelemetry-api==1.27.0 # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation + # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions @@ -153,7 +158,20 @@ opentelemetry-exporter-otlp-proto-grpc==1.27.0 opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp opentelemetry-instrumentation==0.48b0 - # via opentelemetry-instrumentation-requests + # via + # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis + # opentelemetry-instrumentation-requests +opentelemetry-instrumentation-aiopg==0.48b0 + # via -r requirements/_base.in +opentelemetry-instrumentation-asyncpg==0.48b0 + # via -r requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-dbapi==0.48b0 + # via opentelemetry-instrumentation-aiopg +opentelemetry-instrumentation-redis==0.48b0 + # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-proto==1.27.0 @@ -168,6 +186,9 @@ opentelemetry-sdk==1.27.0 # opentelemetry-exporter-otlp-proto-http opentelemetry-semantic-conventions==0.48b0 # via + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.48b0 @@ -321,6 +342,9 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis yarl==1.12.1 # via # -r requirements/../../../packages/postgres-database/requirements/_base.in diff --git a/services/agent/requirements/_base.txt b/services/agent/requirements/_base.txt index 74afc082867..59f29515fe5 100644 --- a/services/agent/requirements/_base.txt +++ b/services/agent/requirements/_base.txt @@ -38,6 +38,8 @@ arrow==1.3.0 # -r requirements/../../../packages/service-library/requirements/_base.in asgiref==3.8.1 # via opentelemetry-instrumentation-asgi +async-timeout==4.0.3 + # via redis attrs==24.2.0 # via # aiohttp @@ -141,6 +143,7 @@ opentelemetry-api==1.27.0 # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions @@ -158,11 +161,14 @@ opentelemetry-instrumentation==0.48b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests opentelemetry-instrumentation-asgi==0.48b0 # via opentelemetry-instrumentation-fastapi opentelemetry-instrumentation-fastapi==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in +opentelemetry-instrumentation-redis==0.48b0 + # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-proto==1.27.0 @@ -179,6 +185,7 @@ opentelemetry-semantic-conventions==0.48b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.48b0 @@ -327,6 +334,7 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.12.1 # via # aio-pika diff --git a/services/api-server/requirements/_base.txt b/services/api-server/requirements/_base.txt index 51e2544cf88..92a441a0e25 100644 --- a/services/api-server/requirements/_base.txt +++ b/services/api-server/requirements/_base.txt @@ -74,6 +74,7 @@ async-timeout==4.0.3 # via # aiopg # asyncpg + # redis asyncpg==0.29.0 # via sqlalchemy attrs==23.2.0 @@ -270,61 +271,84 @@ multidict==6.0.5 # via # aiohttp # yarl -opentelemetry-api==1.26.0 +opentelemetry-api==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation + # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.26.0 +opentelemetry-exporter-otlp==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-exporter-otlp-proto-common==1.26.0 +opentelemetry-exporter-otlp-proto-common==1.27.0 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.26.0 +opentelemetry-exporter-otlp-proto-grpc==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.26.0 +opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.47b0 +opentelemetry-instrumentation==0.48b0 # via + # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests -opentelemetry-instrumentation-asgi==0.47b0 +opentelemetry-instrumentation-aiopg==0.48b0 + # via -r requirements/../../../packages/simcore-sdk/requirements/_base.in +opentelemetry-instrumentation-asgi==0.48b0 # via opentelemetry-instrumentation-fastapi -opentelemetry-instrumentation-fastapi==0.47b0 +opentelemetry-instrumentation-asyncpg==0.48b0 + # via + # -r requirements/../../../packages/postgres-database/requirements/_base.in + # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-dbapi==0.48b0 + # via opentelemetry-instrumentation-aiopg +opentelemetry-instrumentation-fastapi==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in -opentelemetry-instrumentation-requests==0.47b0 +opentelemetry-instrumentation-redis==0.48b0 + # via + # -r requirements/../../../packages/service-library/requirements/_base.in + # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-instrumentation-requests==0.48b0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-proto==1.26.0 +opentelemetry-proto==1.27.0 # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.26.0 +opentelemetry-sdk==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.47b0 +opentelemetry-semantic-conventions==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk -opentelemetry-util-http==0.47b0 +opentelemetry-util-http==0.48b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi @@ -620,6 +644,9 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis yarl==1.9.4 # via # -r requirements/../../../packages/postgres-database/requirements/_base.in diff --git a/services/autoscaling/requirements/_base.txt b/services/autoscaling/requirements/_base.txt index a58d343c4fe..0c7ff77b07f 100644 --- a/services/autoscaling/requirements/_base.txt +++ b/services/autoscaling/requirements/_base.txt @@ -65,6 +65,8 @@ arrow==1.3.0 # -r requirements/../../../packages/service-library/requirements/_base.in asgiref==3.8.1 # via opentelemetry-instrumentation-asgi +async-timeout==4.0.3 + # via redis attrs==23.2.0 # via # aiohttp @@ -256,8 +258,11 @@ opentelemetry-api==1.26.0 # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests + # opentelemetry-propagator-aws-xray # opentelemetry-sdk # opentelemetry-semantic-conventions opentelemetry-exporter-otlp==1.26.0 @@ -275,16 +280,26 @@ opentelemetry-exporter-otlp-proto-http==1.26.0 opentelemetry-instrumentation==0.47b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests opentelemetry-instrumentation-asgi==0.47b0 # via opentelemetry-instrumentation-fastapi +opentelemetry-instrumentation-botocore==0.47b0 + # via -r requirements/../../../packages/aws-library/requirements/_base.in opentelemetry-instrumentation-fastapi==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in +opentelemetry-instrumentation-redis==0.47b0 + # via + # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in + # -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.47b0 # via # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-propagator-aws-xray==1.0.1 + # via opentelemetry-instrumentation-botocore opentelemetry-proto==1.26.0 # via # opentelemetry-exporter-otlp-proto-common @@ -299,7 +314,9 @@ opentelemetry-sdk==1.26.0 opentelemetry-semantic-conventions==0.47b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.47b0 @@ -562,6 +579,7 @@ wrapt==1.16.0 # aiobotocore # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.9.4 # via # aio-pika diff --git a/services/autoscaling/requirements/_test.txt b/services/autoscaling/requirements/_test.txt index 47379c4d69f..8abc686eb76 100644 --- a/services/autoscaling/requirements/_test.txt +++ b/services/autoscaling/requirements/_test.txt @@ -6,6 +6,10 @@ anyio==4.3.0 # httpx asgi-lifespan==2.1.0 # via -r requirements/_test.in +async-timeout==4.0.3 + # via + # -c requirements/_base.txt + # redis attrs==23.2.0 # via # -c requirements/_base.txt diff --git a/services/autoscaling/tests/unit/conftest.py b/services/autoscaling/tests/unit/conftest.py index b705ea85b78..9876a3a1c20 100644 --- a/services/autoscaling/tests/unit/conftest.py +++ b/services/autoscaling/tests/unit/conftest.py @@ -226,6 +226,7 @@ def app_environment( "AUTOSCALING_EC2_SECRET_ACCESS_KEY": faker.pystr(), "AUTOSCALING_EC2_INSTANCES": "{}", "AUTOSCALING_SSM_ACCESS": "{}", + "AUTOSCALING_TRACING": "{}", "SSM_ACCESS_KEY_ID": faker.pystr(), "SSM_SECRET_ACCESS_KEY": faker.pystr(), "EC2_INSTANCES_KEY_NAME": faker.pystr(), @@ -366,6 +367,13 @@ def disabled_ec2(app_environment: EnvVarsDict, monkeypatch: pytest.MonkeyPatch) monkeypatch.setenv("AUTOSCALING_EC2_ACCESS", "null") +@pytest.fixture +def disabled_opentelemetry( + app_environment: EnvVarsDict, monkeypatch: pytest.MonkeyPatch +) -> None: + monkeypatch.setenv("AUTOSCALING_TRACING", "null") + + @pytest.fixture def disabled_ssm(app_environment: EnvVarsDict, monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setenv("AUTOSCALING_SSM_ACCESS", "null") diff --git a/services/autoscaling/tests/unit/test_modules_auto_scaling_computational.py b/services/autoscaling/tests/unit/test_modules_auto_scaling_computational.py index 5811b43b2f0..372546149c1 100644 --- a/services/autoscaling/tests/unit/test_modules_auto_scaling_computational.py +++ b/services/autoscaling/tests/unit/test_modules_auto_scaling_computational.py @@ -79,6 +79,7 @@ def minimal_configuration( local_dask_scheduler_server_envs: EnvVarsDict, mocked_ec2_instances_envs: EnvVarsDict, disabled_rabbitmq: None, + disabled_opentelemetry: None, disable_dynamic_service_background_task: None, disable_buffers_pool_background_task: None, mocked_redis_server: None, diff --git a/services/catalog/requirements/_base.txt b/services/catalog/requirements/_base.txt index a1d4ec9de10..890adbe5508 100644 --- a/services/catalog/requirements/_base.txt +++ b/services/catalog/requirements/_base.txt @@ -41,7 +41,9 @@ arrow==1.3.0 asgiref==3.8.1 # via opentelemetry-instrumentation-asgi async-timeout==4.0.3 - # via asyncpg + # via + # asyncpg + # redis asyncpg==0.29.0 # via # -r requirements/_base.in @@ -180,55 +182,65 @@ multidict==6.0.5 # via # aiohttp # yarl -opentelemetry-api==1.26.0 +opentelemetry-api==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.26.0 +opentelemetry-exporter-otlp==1.27.0 # via -r requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-exporter-otlp-proto-common==1.26.0 +opentelemetry-exporter-otlp-proto-common==1.27.0 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.26.0 +opentelemetry-exporter-otlp-proto-grpc==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.26.0 +opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.47b0 +opentelemetry-instrumentation==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests -opentelemetry-instrumentation-asgi==0.47b0 +opentelemetry-instrumentation-asgi==0.48b0 # via opentelemetry-instrumentation-fastapi -opentelemetry-instrumentation-fastapi==0.47b0 +opentelemetry-instrumentation-asyncpg==0.48b0 + # via -r requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-fastapi==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in -opentelemetry-instrumentation-requests==0.47b0 +opentelemetry-instrumentation-redis==0.48b0 + # via -r requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-instrumentation-requests==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-proto==1.26.0 +opentelemetry-proto==1.27.0 # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.26.0 +opentelemetry-sdk==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.47b0 +opentelemetry-semantic-conventions==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk -opentelemetry-util-http==0.47b0 +opentelemetry-util-http==0.48b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi @@ -425,6 +437,7 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.9.4 # via # -r requirements/../../../packages/postgres-database/requirements/_base.in diff --git a/services/clusters-keeper/requirements/_base.txt b/services/clusters-keeper/requirements/_base.txt index 38f29931595..9443ee269ef 100644 --- a/services/clusters-keeper/requirements/_base.txt +++ b/services/clusters-keeper/requirements/_base.txt @@ -63,6 +63,8 @@ arrow==1.3.0 # -r requirements/../../../packages/service-library/requirements/_base.in asgiref==3.8.1 # via opentelemetry-instrumentation-asgi +async-timeout==4.0.3 + # via redis attrs==23.2.0 # via # aiohttp @@ -254,8 +256,11 @@ opentelemetry-api==1.26.0 # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests + # opentelemetry-propagator-aws-xray # opentelemetry-sdk # opentelemetry-semantic-conventions opentelemetry-exporter-otlp==1.26.0 @@ -273,16 +278,26 @@ opentelemetry-exporter-otlp-proto-http==1.26.0 opentelemetry-instrumentation==0.47b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests opentelemetry-instrumentation-asgi==0.47b0 # via opentelemetry-instrumentation-fastapi +opentelemetry-instrumentation-botocore==0.47b0 + # via -r requirements/../../../packages/aws-library/requirements/_base.in opentelemetry-instrumentation-fastapi==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in +opentelemetry-instrumentation-redis==0.47b0 + # via + # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in + # -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.47b0 # via # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-propagator-aws-xray==1.0.1 + # via opentelemetry-instrumentation-botocore opentelemetry-proto==1.26.0 # via # opentelemetry-exporter-otlp-proto-common @@ -297,7 +312,9 @@ opentelemetry-sdk==1.26.0 opentelemetry-semantic-conventions==0.47b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.47b0 @@ -560,6 +577,7 @@ wrapt==1.16.0 # aiobotocore # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.9.4 # via # aio-pika diff --git a/services/clusters-keeper/requirements/_test.txt b/services/clusters-keeper/requirements/_test.txt index 00a7437644c..e2832a14944 100644 --- a/services/clusters-keeper/requirements/_test.txt +++ b/services/clusters-keeper/requirements/_test.txt @@ -19,6 +19,10 @@ anyio==4.3.0 # httpx asgi-lifespan==2.1.0 # via -r requirements/_test.in +async-timeout==4.0.3 + # via + # -c requirements/_base.txt + # redis attrs==23.2.0 # via # -c requirements/_base.txt diff --git a/services/dask-sidecar/requirements/_base.txt b/services/dask-sidecar/requirements/_base.txt index 8cbd9e4a15a..6cdd686b12f 100644 --- a/services/dask-sidecar/requirements/_base.txt +++ b/services/dask-sidecar/requirements/_base.txt @@ -46,6 +46,8 @@ arrow==1.3.0 # -r requirements/../../../packages/models-library/requirements/_base.in # -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in # -r requirements/../../../packages/service-library/requirements/_base.in +async-timeout==4.0.3 + # via redis attrs==23.2.0 # via # aiohttp @@ -187,6 +189,7 @@ opentelemetry-api==1.26.0 # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions @@ -201,7 +204,11 @@ opentelemetry-exporter-otlp-proto-grpc==1.26.0 opentelemetry-exporter-otlp-proto-http==1.26.0 # via opentelemetry-exporter-otlp opentelemetry-instrumentation==0.47b0 - # via opentelemetry-instrumentation-requests + # via + # opentelemetry-instrumentation-redis + # opentelemetry-instrumentation-requests +opentelemetry-instrumentation-redis==0.47b0 + # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-proto==1.26.0 @@ -216,6 +223,7 @@ opentelemetry-sdk==1.26.0 # opentelemetry-exporter-otlp-proto-http opentelemetry-semantic-conventions==0.47b0 # via + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.47b0 @@ -405,6 +413,7 @@ wrapt==1.16.0 # aiobotocore # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis xyzservices==2024.4.0 # via bokeh yarl==1.9.4 diff --git a/services/datcore-adapter/requirements/_base.txt b/services/datcore-adapter/requirements/_base.txt index bf98d4efe31..f8fe44d6058 100644 --- a/services/datcore-adapter/requirements/_base.txt +++ b/services/datcore-adapter/requirements/_base.txt @@ -39,6 +39,8 @@ arrow==1.3.0 # -r requirements/../../../packages/service-library/requirements/_base.in asgiref==3.8.1 # via opentelemetry-instrumentation-asgi +async-timeout==4.0.3 + # via redis attrs==23.2.0 # via # aiohttp @@ -164,6 +166,7 @@ opentelemetry-api==1.26.0 # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions @@ -181,11 +184,14 @@ opentelemetry-instrumentation==0.47b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests opentelemetry-instrumentation-asgi==0.47b0 # via opentelemetry-instrumentation-fastapi opentelemetry-instrumentation-fastapi==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in +opentelemetry-instrumentation-redis==0.47b0 + # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-proto==1.26.0 @@ -202,6 +208,7 @@ opentelemetry-semantic-conventions==0.47b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.47b0 @@ -367,6 +374,7 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.9.4 # via # aio-pika diff --git a/services/director-v2/requirements/_base.txt b/services/director-v2/requirements/_base.txt index 7e548a9fdcb..02162fe9a64 100644 --- a/services/director-v2/requirements/_base.txt +++ b/services/director-v2/requirements/_base.txt @@ -81,6 +81,7 @@ async-timeout==4.0.3 # via # aiopg # asyncpg + # redis asyncpg==0.29.0 # via sqlalchemy attrs==23.2.0 @@ -327,61 +328,84 @@ networkx==3.3 # via -r requirements/_base.in numpy==1.26.4 # via -r requirements/../../../services/dask-sidecar/requirements/_dask-distributed.txt -opentelemetry-api==1.26.0 +opentelemetry-api==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation + # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.26.0 +opentelemetry-exporter-otlp==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-exporter-otlp-proto-common==1.26.0 +opentelemetry-exporter-otlp-proto-common==1.27.0 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.26.0 +opentelemetry-exporter-otlp-proto-grpc==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.26.0 +opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.47b0 +opentelemetry-instrumentation==0.48b0 # via + # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests -opentelemetry-instrumentation-asgi==0.47b0 +opentelemetry-instrumentation-aiopg==0.48b0 + # via -r requirements/../../../packages/simcore-sdk/requirements/_base.in +opentelemetry-instrumentation-asgi==0.48b0 # via opentelemetry-instrumentation-fastapi -opentelemetry-instrumentation-fastapi==0.47b0 +opentelemetry-instrumentation-asyncpg==0.48b0 + # via + # -r requirements/../../../packages/postgres-database/requirements/_base.in + # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-dbapi==0.48b0 + # via opentelemetry-instrumentation-aiopg +opentelemetry-instrumentation-fastapi==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in -opentelemetry-instrumentation-requests==0.47b0 +opentelemetry-instrumentation-redis==0.48b0 + # via + # -r requirements/../../../packages/service-library/requirements/_base.in + # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-instrumentation-requests==0.48b0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-proto==1.26.0 +opentelemetry-proto==1.27.0 # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.26.0 +opentelemetry-sdk==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.47b0 +opentelemetry-semantic-conventions==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk -opentelemetry-util-http==0.47b0 +opentelemetry-util-http==0.48b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi @@ -745,6 +769,9 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis wsproto==1.2.0 # via simple-websocket yarl==1.9.4 diff --git a/services/director/requirements/_tools.txt b/services/director/requirements/_tools.txt index 38ed7220aed..24945ba6807 100644 --- a/services/director/requirements/_tools.txt +++ b/services/director/requirements/_tools.txt @@ -30,6 +30,8 @@ pathspec==0.9.0 # via black pep517==0.12.0 # via pip-tools +pip==24.3.1 + # via pip-tools pip-tools==6.4.0 # via -r requirements/_tools.in pyyaml==5.4 diff --git a/services/dynamic-scheduler/requirements/_base.txt b/services/dynamic-scheduler/requirements/_base.txt index 30f09ba7c89..cb2cc603fb0 100644 --- a/services/dynamic-scheduler/requirements/_base.txt +++ b/services/dynamic-scheduler/requirements/_base.txt @@ -40,7 +40,9 @@ arrow==1.3.0 asgiref==3.8.1 # via opentelemetry-instrumentation-asgi async-timeout==4.0.3 - # via asyncpg + # via + # asyncpg + # redis asyncpg==0.29.0 # via sqlalchemy attrs==23.2.0 @@ -161,55 +163,65 @@ multidict==6.0.5 # via # aiohttp # yarl -opentelemetry-api==1.26.0 +opentelemetry-api==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.26.0 +opentelemetry-exporter-otlp==1.27.0 # via -r requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-exporter-otlp-proto-common==1.26.0 +opentelemetry-exporter-otlp-proto-common==1.27.0 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.26.0 +opentelemetry-exporter-otlp-proto-grpc==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.26.0 +opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.47b0 +opentelemetry-instrumentation==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests -opentelemetry-instrumentation-asgi==0.47b0 +opentelemetry-instrumentation-asgi==0.48b0 # via opentelemetry-instrumentation-fastapi -opentelemetry-instrumentation-fastapi==0.47b0 +opentelemetry-instrumentation-asyncpg==0.48b0 + # via -r requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-fastapi==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in -opentelemetry-instrumentation-requests==0.47b0 +opentelemetry-instrumentation-redis==0.48b0 + # via -r requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-instrumentation-requests==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-proto==1.26.0 +opentelemetry-proto==1.27.0 # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.26.0 +opentelemetry-sdk==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.47b0 +opentelemetry-semantic-conventions==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk -opentelemetry-util-http==0.47b0 +opentelemetry-util-http==0.48b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi @@ -394,6 +406,7 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis wsproto==1.2.0 # via simple-websocket yarl==1.9.4 diff --git a/services/dynamic-sidecar/requirements/_base.txt b/services/dynamic-sidecar/requirements/_base.txt index 66b45dc90c9..40c32b696ec 100644 --- a/services/dynamic-sidecar/requirements/_base.txt +++ b/services/dynamic-sidecar/requirements/_base.txt @@ -76,6 +76,7 @@ async-timeout==4.0.3 # via # aiopg # asyncpg + # redis asyncpg==0.29.0 # via sqlalchemy attrs==23.2.0 @@ -230,61 +231,84 @@ multidict==6.0.5 # via # aiohttp # yarl -opentelemetry-api==1.26.0 +opentelemetry-api==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation + # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.26.0 +opentelemetry-exporter-otlp==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-exporter-otlp-proto-common==1.26.0 +opentelemetry-exporter-otlp-proto-common==1.27.0 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.26.0 +opentelemetry-exporter-otlp-proto-grpc==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.26.0 +opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.47b0 +opentelemetry-instrumentation==0.48b0 # via + # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests -opentelemetry-instrumentation-asgi==0.47b0 +opentelemetry-instrumentation-aiopg==0.48b0 + # via -r requirements/../../../packages/simcore-sdk/requirements/_base.in +opentelemetry-instrumentation-asgi==0.48b0 # via opentelemetry-instrumentation-fastapi -opentelemetry-instrumentation-fastapi==0.47b0 +opentelemetry-instrumentation-asyncpg==0.48b0 + # via + # -r requirements/../../../packages/postgres-database/requirements/_base.in + # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-dbapi==0.48b0 + # via opentelemetry-instrumentation-aiopg +opentelemetry-instrumentation-fastapi==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in -opentelemetry-instrumentation-requests==0.47b0 +opentelemetry-instrumentation-redis==0.48b0 + # via + # -r requirements/../../../packages/service-library/requirements/_base.in + # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-instrumentation-requests==0.48b0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-proto==1.26.0 +opentelemetry-proto==1.27.0 # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.26.0 +opentelemetry-sdk==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.47b0 +opentelemetry-semantic-conventions==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk -opentelemetry-util-http==0.47b0 +opentelemetry-util-http==0.48b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi @@ -554,6 +578,9 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis wsproto==1.2.0 # via simple-websocket yarl==1.9.4 diff --git a/services/efs-guardian/requirements/_base.txt b/services/efs-guardian/requirements/_base.txt index 6669c45274b..26a626f01db 100644 --- a/services/efs-guardian/requirements/_base.txt +++ b/services/efs-guardian/requirements/_base.txt @@ -69,7 +69,9 @@ arrow==1.3.0 asgiref==3.8.1 # via opentelemetry-instrumentation-asgi async-timeout==4.0.3 - # via asyncpg + # via + # asyncpg + # redis asyncpg==0.29.0 # via sqlalchemy attrs==24.2.0 @@ -233,8 +235,12 @@ opentelemetry-api==1.27.0 # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests + # opentelemetry-propagator-aws-xray # opentelemetry-sdk # opentelemetry-semantic-conventions opentelemetry-exporter-otlp==1.27.0 @@ -252,16 +258,29 @@ opentelemetry-exporter-otlp-proto-http==1.27.0 opentelemetry-instrumentation==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests opentelemetry-instrumentation-asgi==0.48b0 # via opentelemetry-instrumentation-fastapi +opentelemetry-instrumentation-asyncpg==0.48b0 + # via -r requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-botocore==0.48b0 + # via -r requirements/../../../packages/aws-library/requirements/_base.in opentelemetry-instrumentation-fastapi==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in +opentelemetry-instrumentation-redis==0.48b0 + # via + # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in + # -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.48b0 # via # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-propagator-aws-xray==1.0.1 + # via opentelemetry-instrumentation-botocore opentelemetry-proto==1.27.0 # via # opentelemetry-exporter-otlp-proto-common @@ -276,7 +295,10 @@ opentelemetry-sdk==1.27.0 opentelemetry-semantic-conventions==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.48b0 @@ -536,6 +558,7 @@ wrapt==1.16.0 # aiobotocore # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.15.4 # via # -r requirements/../../../packages/postgres-database/requirements/_base.in diff --git a/services/efs-guardian/requirements/_test.txt b/services/efs-guardian/requirements/_test.txt index f188e8071de..8bdc1ec8ebf 100644 --- a/services/efs-guardian/requirements/_test.txt +++ b/services/efs-guardian/requirements/_test.txt @@ -23,6 +23,10 @@ anyio==4.6.2.post1 # httpx asgi-lifespan==2.1.0 # via -r requirements/_test.in +async-timeout==4.0.3 + # via + # -c requirements/_base.txt + # redis attrs==24.2.0 # via # -c requirements/_base.txt diff --git a/services/invitations/requirements/_base.txt b/services/invitations/requirements/_base.txt index 4d2a539cd68..c6e253b5e6a 100644 --- a/services/invitations/requirements/_base.txt +++ b/services/invitations/requirements/_base.txt @@ -35,6 +35,8 @@ arrow==1.3.0 # -r requirements/../../../packages/service-library/requirements/_base.in asgiref==3.8.1 # via opentelemetry-instrumentation-asgi +async-timeout==4.0.3 + # via redis attrs==23.2.0 # via # aiohttp @@ -151,6 +153,7 @@ opentelemetry-api==1.26.0 # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions @@ -168,11 +171,14 @@ opentelemetry-instrumentation==0.47b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests opentelemetry-instrumentation-asgi==0.47b0 # via opentelemetry-instrumentation-fastapi opentelemetry-instrumentation-fastapi==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in +opentelemetry-instrumentation-redis==0.47b0 + # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-proto==1.26.0 @@ -189,6 +195,7 @@ opentelemetry-semantic-conventions==0.47b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.47b0 @@ -349,6 +356,7 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.9.4 # via # aio-pika diff --git a/services/opentelemetry-collector-config.yaml b/services/opentelemetry-collector-config.yaml index d3a1d09f605..14640ab61da 100644 --- a/services/opentelemetry-collector-config.yaml +++ b/services/opentelemetry-collector-config.yaml @@ -8,16 +8,12 @@ receivers: exporters: otlphttp: endpoint: ${TRACING_OPENTELEMETRY_COLLECTOR_EXPORTER_ENDPOINT} # Adjust to your Jaeger endpoint - debug: - verbosity: detailed service: pipelines: traces: receivers: [otlp] - exporters: [otlphttp,debug] - telemetry: - logs: - level: "debug" + exporters: [otlphttp] + processors: [batch,probabilistic_sampler] processors: batch: timeout: 5s diff --git a/services/payments/requirements/_base.txt b/services/payments/requirements/_base.txt index fc510211449..88aae6375d4 100644 --- a/services/payments/requirements/_base.txt +++ b/services/payments/requirements/_base.txt @@ -43,7 +43,9 @@ arrow==1.3.0 asgiref==3.8.1 # via opentelemetry-instrumentation-asgi async-timeout==4.0.3 - # via asyncpg + # via + # asyncpg + # redis asyncpg==0.29.0 # via sqlalchemy attrs==23.2.0 @@ -190,55 +192,65 @@ multidict==6.0.5 # via # aiohttp # yarl -opentelemetry-api==1.26.0 +opentelemetry-api==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.26.0 +opentelemetry-exporter-otlp==1.27.0 # via -r requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-exporter-otlp-proto-common==1.26.0 +opentelemetry-exporter-otlp-proto-common==1.27.0 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.26.0 +opentelemetry-exporter-otlp-proto-grpc==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.26.0 +opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.47b0 +opentelemetry-instrumentation==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests -opentelemetry-instrumentation-asgi==0.47b0 +opentelemetry-instrumentation-asgi==0.48b0 # via opentelemetry-instrumentation-fastapi -opentelemetry-instrumentation-fastapi==0.47b0 +opentelemetry-instrumentation-asyncpg==0.48b0 + # via -r requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-fastapi==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in -opentelemetry-instrumentation-requests==0.47b0 +opentelemetry-instrumentation-redis==0.48b0 + # via -r requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-instrumentation-requests==0.48b0 # via -r requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-proto==1.26.0 +opentelemetry-proto==1.27.0 # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.26.0 +opentelemetry-sdk==1.27.0 # via # -r requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.47b0 +opentelemetry-semantic-conventions==0.48b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk -opentelemetry-util-http==0.47b0 +opentelemetry-util-http==0.48b0 # via # opentelemetry-instrumentation-asgi # opentelemetry-instrumentation-fastapi @@ -442,6 +454,7 @@ wrapt==1.16.0 # via # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis wsproto==1.2.0 # via simple-websocket yarl==1.9.4 diff --git a/services/resource-usage-tracker/requirements/_base.txt b/services/resource-usage-tracker/requirements/_base.txt index ffc209bb6df..97a3bd129b7 100644 --- a/services/resource-usage-tracker/requirements/_base.txt +++ b/services/resource-usage-tracker/requirements/_base.txt @@ -69,7 +69,9 @@ arrow==1.3.0 asgiref==3.8.1 # via opentelemetry-instrumentation-asgi async-timeout==4.0.3 - # via asyncpg + # via + # asyncpg + # redis asyncpg==0.29.0 # via sqlalchemy attrs==23.2.0 @@ -255,8 +257,12 @@ opentelemetry-api==1.26.0 # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests + # opentelemetry-propagator-aws-xray # opentelemetry-sdk # opentelemetry-semantic-conventions opentelemetry-exporter-otlp==1.26.0 @@ -274,16 +280,29 @@ opentelemetry-exporter-otlp-proto-http==1.26.0 opentelemetry-instrumentation==0.47b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests opentelemetry-instrumentation-asgi==0.47b0 # via opentelemetry-instrumentation-fastapi +opentelemetry-instrumentation-asyncpg==0.47b0 + # via -r requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-botocore==0.47b0 + # via -r requirements/../../../packages/aws-library/requirements/_base.in opentelemetry-instrumentation-fastapi==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_fastapi.in +opentelemetry-instrumentation-redis==0.47b0 + # via + # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in + # -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.47b0 # via # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-propagator-aws-xray==1.0.1 + # via opentelemetry-instrumentation-botocore opentelemetry-proto==1.26.0 # via # opentelemetry-exporter-otlp-proto-common @@ -298,7 +317,10 @@ opentelemetry-sdk==1.26.0 opentelemetry-semantic-conventions==0.47b0 # via # opentelemetry-instrumentation-asgi + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-fastapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.47b0 @@ -597,6 +619,7 @@ wrapt==1.16.0 # aiobotocore # deprecated # opentelemetry-instrumentation + # opentelemetry-instrumentation-redis yarl==1.9.4 # via # -r requirements/../../../packages/postgres-database/requirements/_base.in diff --git a/services/resource-usage-tracker/requirements/_test.txt b/services/resource-usage-tracker/requirements/_test.txt index 4db08363ded..e70753feb19 100644 --- a/services/resource-usage-tracker/requirements/_test.txt +++ b/services/resource-usage-tracker/requirements/_test.txt @@ -10,6 +10,10 @@ anyio==4.3.0 # httpx asgi-lifespan==2.1.0 # via -r requirements/_test.in +async-timeout==4.0.3 + # via + # -c requirements/_base.txt + # redis attrs==23.2.0 # via # -c requirements/_base.txt diff --git a/services/storage/requirements/_base.in b/services/storage/requirements/_base.in index 2db40016724..fcebd5ba20a 100644 --- a/services/storage/requirements/_base.in +++ b/services/storage/requirements/_base.in @@ -19,6 +19,7 @@ aiofiles # i/o aiohttp # server aiohttp-swagger[performance] # server aiopg[sa] # db +opentelemetry-instrumentation-botocore packaging tenacity typer diff --git a/services/storage/requirements/_base.txt b/services/storage/requirements/_base.txt index d5a191d6e58..edadd851b65 100644 --- a/services/storage/requirements/_base.txt +++ b/services/storage/requirements/_base.txt @@ -78,6 +78,7 @@ async-timeout==4.0.3 # via # aiopg # asyncpg + # redis asyncpg==0.29.0 # via sqlalchemy attrs==23.2.0 @@ -242,8 +243,12 @@ opentelemetry-api==1.26.0 # opentelemetry-instrumentation-aiohttp-client # opentelemetry-instrumentation-aiohttp-server # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests + # opentelemetry-propagator-aws-xray # opentelemetry-sdk # opentelemetry-semantic-conventions opentelemetry-exporter-otlp==1.26.0 @@ -263,7 +268,10 @@ opentelemetry-instrumentation==0.47b0 # opentelemetry-instrumentation-aiohttp-client # opentelemetry-instrumentation-aiohttp-server # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests opentelemetry-instrumentation-aiohttp-client==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_aiohttp.in @@ -271,12 +279,24 @@ opentelemetry-instrumentation-aiohttp-server==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_aiohttp.in opentelemetry-instrumentation-aiopg==0.47b0 # via -r requirements/../../../packages/service-library/requirements/_aiohttp.in +opentelemetry-instrumentation-asyncpg==0.47b0 + # via -r requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-botocore==0.47b0 + # via + # -r requirements/../../../packages/aws-library/requirements/_base.in + # -r requirements/_base.in opentelemetry-instrumentation-dbapi==0.47b0 # via opentelemetry-instrumentation-aiopg +opentelemetry-instrumentation-redis==0.47b0 + # via + # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in + # -r requirements/../../../packages/service-library/requirements/_base.in opentelemetry-instrumentation-requests==0.47b0 # via # -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in # -r requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-propagator-aws-xray==1.0.1 + # via opentelemetry-instrumentation-botocore opentelemetry-proto==1.26.0 # via # opentelemetry-exporter-otlp-proto-common @@ -292,7 +312,10 @@ opentelemetry-semantic-conventions==0.47b0 # via # opentelemetry-instrumentation-aiohttp-client # opentelemetry-instrumentation-aiohttp-server + # opentelemetry-instrumentation-asyncpg + # opentelemetry-instrumentation-botocore # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk opentelemetry-util-http==0.47b0 @@ -570,6 +593,7 @@ wrapt==1.16.0 # opentelemetry-instrumentation-aiohttp-server # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis yarl==1.9.4 # via # -r requirements/../../../packages/postgres-database/requirements/_base.in diff --git a/services/storage/requirements/_test.txt b/services/storage/requirements/_test.txt index f0132fe4c7c..1e33824a7c0 100644 --- a/services/storage/requirements/_test.txt +++ b/services/storage/requirements/_test.txt @@ -13,6 +13,10 @@ aiosignal==1.3.1 # aiohttp antlr4-python3-runtime==4.13.2 # via moto +async-timeout==4.0.3 + # via + # -c requirements/_base.txt + # redis attrs==23.2.0 # via # -c requirements/_base.txt diff --git a/services/storage/src/simcore_service_storage/application.py b/services/storage/src/simcore_service_storage/application.py index 7ad35793bd7..f3a396cd3d4 100644 --- a/services/storage/src/simcore_service_storage/application.py +++ b/services/storage/src/simcore_service_storage/application.py @@ -56,7 +56,6 @@ def create(settings: Settings) -> web.Application: app, tracing_settings=tracing_settings, service_name=APP_NAME, - instrument_aiopg=True, ) setup_db(app) diff --git a/services/web/server/requirements/_base.txt b/services/web/server/requirements/_base.txt index d566b8d9112..5b42c95fffd 100644 --- a/services/web/server/requirements/_base.txt +++ b/services/web/server/requirements/_base.txt @@ -89,6 +89,7 @@ async-timeout==4.0.3 # via # aiohttp # aiopg + # redis asyncpg==0.27.0 # via # -r requirements/_base.in @@ -269,7 +270,7 @@ openapi-spec-validator==0.4.0 # via openapi-core openpyxl==3.0.9 # via -r requirements/_base.in -opentelemetry-api==1.26.0 +opentelemetry-api==1.27.0 # via # -r requirements/../../../../packages/service-library/requirements/_base.in # -r requirements/../../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in @@ -279,62 +280,77 @@ opentelemetry-api==1.26.0 # opentelemetry-instrumentation-aiohttp-client # opentelemetry-instrumentation-aiohttp-server # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk # opentelemetry-semantic-conventions -opentelemetry-exporter-otlp==1.26.0 +opentelemetry-exporter-otlp==1.27.0 # via # -r requirements/../../../../packages/service-library/requirements/_base.in # -r requirements/../../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-exporter-otlp-proto-common==1.26.0 +opentelemetry-exporter-otlp-proto-common==1.27.0 # via # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-grpc==1.26.0 +opentelemetry-exporter-otlp-proto-grpc==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-exporter-otlp-proto-http==1.26.0 +opentelemetry-exporter-otlp-proto-http==1.27.0 # via opentelemetry-exporter-otlp -opentelemetry-instrumentation==0.47b0 +opentelemetry-instrumentation==0.48b0 # via # opentelemetry-instrumentation-aiohttp-client # opentelemetry-instrumentation-aiohttp-server # opentelemetry-instrumentation-aiopg + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests -opentelemetry-instrumentation-aiohttp-client==0.47b0 +opentelemetry-instrumentation-aiohttp-client==0.48b0 # via -r requirements/../../../../packages/service-library/requirements/_aiohttp.in -opentelemetry-instrumentation-aiohttp-server==0.47b0 +opentelemetry-instrumentation-aiohttp-server==0.48b0 # via -r requirements/../../../../packages/service-library/requirements/_aiohttp.in -opentelemetry-instrumentation-aiopg==0.47b0 +opentelemetry-instrumentation-aiopg==0.48b0 # via # -r requirements/../../../../packages/service-library/requirements/_aiohttp.in + # -r requirements/../../../../packages/simcore-sdk/requirements/_base.in # -r requirements/_base.in -opentelemetry-instrumentation-dbapi==0.47b0 +opentelemetry-instrumentation-asyncpg==0.48b0 + # via + # -r requirements/../../../../packages/postgres-database/requirements/_base.in + # -r requirements/../../../../packages/simcore-sdk/requirements/../../../packages/postgres-database/requirements/_base.in +opentelemetry-instrumentation-dbapi==0.48b0 # via opentelemetry-instrumentation-aiopg -opentelemetry-instrumentation-requests==0.47b0 +opentelemetry-instrumentation-redis==0.48b0 + # via + # -r requirements/../../../../packages/service-library/requirements/_base.in + # -r requirements/../../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in +opentelemetry-instrumentation-requests==0.48b0 # via # -r requirements/../../../../packages/service-library/requirements/_base.in # -r requirements/../../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in -opentelemetry-proto==1.26.0 +opentelemetry-proto==1.27.0 # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.26.0 +opentelemetry-sdk==1.27.0 # via # -r requirements/../../../../packages/service-library/requirements/_base.in # -r requirements/../../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.47b0 +opentelemetry-semantic-conventions==0.48b0 # via # opentelemetry-instrumentation-aiohttp-client # opentelemetry-instrumentation-aiohttp-server + # opentelemetry-instrumentation-asyncpg # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis # opentelemetry-instrumentation-requests # opentelemetry-sdk -opentelemetry-util-http==0.47b0 +opentelemetry-util-http==0.48b0 # via # opentelemetry-instrumentation-aiohttp-client # opentelemetry-instrumentation-aiohttp-server @@ -619,6 +635,7 @@ wrapt==1.16.0 # opentelemetry-instrumentation-aiohttp-server # opentelemetry-instrumentation-aiopg # opentelemetry-instrumentation-dbapi + # opentelemetry-instrumentation-redis yarl==1.9.4 # via # -c requirements/./constraints.txt diff --git a/services/web/server/requirements/_test.txt b/services/web/server/requirements/_test.txt index 3aab7cde47d..67fcd247fda 100644 --- a/services/web/server/requirements/_test.txt +++ b/services/web/server/requirements/_test.txt @@ -18,6 +18,7 @@ async-timeout==4.0.3 # via # -c requirements/_base.txt # aiohttp + # redis asyncpg==0.27.0 # via # -c requirements/_base.txt diff --git a/services/web/server/src/simcore_service_webserver/tracing.py b/services/web/server/src/simcore_service_webserver/tracing.py index 5eafffcaa37..23041d95238 100644 --- a/services/web/server/src/simcore_service_webserver/tracing.py +++ b/services/web/server/src/simcore_service_webserver/tracing.py @@ -26,6 +26,5 @@ def setup_app_tracing(app: web.Application): setup_tracing( app, tracing_settings=tracing_settings, - instrument_aiopg=True, service_name=APP_NAME, )