diff --git a/.github/workflows/ci-main.yaml b/.github/workflows/ci-main.yaml index 77219467..2373d7be 100644 --- a/.github/workflows/ci-main.yaml +++ b/.github/workflows/ci-main.yaml @@ -42,14 +42,29 @@ jobs: python -m pip install --upgrade pip pip install pytest==7.4.4 pytest-cov==4.1.0 pip install -r dev-genai-requirements.txt + pip install pytest-asyncio pyyaml - - name: Install all genai packages + - name: Install util packages run: | pip install -e util/opentelemetry-util-genai --no-deps pip install -e util/opentelemetry-util-genai-evals --no-deps pip install -e util/opentelemetry-util-genai-evals-deepeval --no-deps pip install -e util/opentelemetry-util-genai-emitters-splunk --no-deps + pip install -e util/opentelemetry-util-genai-emitters-test --no-deps + pip install -e util/opentelemetry-util-genai-traceloop-translator --no-deps + pip install -e util/opentelemetry-util-genai-openlit-translator --no-deps + pip install -e util/opentelemetry-util-genai-langsmith-translator --no-deps + + - name: Install instrumentation packages + run: | pip install -e "instrumentation-genai/opentelemetry-instrumentation-langchain[instruments,test]" + pip install -e "instrumentation-genai/opentelemetry-instrumentation-openai-v2[instruments]" + pip install -e instrumentation-genai/opentelemetry-instrumentation-openai-agents-v2 --no-deps + pip install -e "instrumentation-genai/opentelemetry-instrumentation-llamaindex[instruments,test]" + pip install -e "instrumentation-genai/opentelemetry-instrumentation-fastmcp[instruments,test]" + pip install -e "instrumentation-genai/opentelemetry-instrumentation-crewai[instruments,test]" + pip install -e "instrumentation-genai/opentelemetry-instrumentation-aidefense[test]" + pip install -e "instrumentation-genai/opentelemetry-instrumentation-weaviate[instruments,test]" - name: Run tests - opentelemetry-util-genai run: | @@ -67,6 +82,50 @@ jobs: run: | python -m pytest util/opentelemetry-util-genai-evals-deepeval/tests/ -v + - name: Run tests - opentelemetry-util-genai-emitters-test + run: | + python -m pytest util/opentelemetry-util-genai-emitters-test/tests/ -v + + - name: Run tests - opentelemetry-util-genai-traceloop-translator + run: | + python -m pytest util/opentelemetry-util-genai-traceloop-translator/tests/ -v + + - name: Run tests - opentelemetry-util-genai-openlit-translator + run: | + python -m pytest util/opentelemetry-util-genai-openlit-translator/tests/ -v + + - name: Run tests - opentelemetry-util-genai-langsmith-translator + run: | + python -m pytest util/opentelemetry-util-genai-langsmith-translator/tests/ -v + - name: Run tests - opentelemetry-instrumentation-langchain run: | python -m pytest instrumentation-genai/opentelemetry-instrumentation-langchain/tests/ -v + + - name: Run tests - opentelemetry-instrumentation-openai-v2 + run: | + python -m pytest instrumentation-genai/opentelemetry-instrumentation-openai-v2/tests/ -v + + - name: Run tests - opentelemetry-instrumentation-openai-agents-v2 + run: | + python -m pytest instrumentation-genai/opentelemetry-instrumentation-openai-agents-v2/tests/ -v + + - name: Run tests - opentelemetry-instrumentation-llamaindex + run: | + python -m pytest instrumentation-genai/opentelemetry-instrumentation-llamaindex/tests/ -v + + - name: Run tests - opentelemetry-instrumentation-fastmcp + run: | + python -m pytest instrumentation-genai/opentelemetry-instrumentation-fastmcp/tests/ -v + + - name: Run tests - opentelemetry-instrumentation-crewai + run: | + python -m pytest instrumentation-genai/opentelemetry-instrumentation-crewai/tests/ -v + + - name: Run tests - opentelemetry-instrumentation-aidefense + run: | + python -m pytest instrumentation-genai/opentelemetry-instrumentation-aidefense/tests/ -v + + - name: Run tests - opentelemetry-instrumentation-weaviate + run: | + python -m pytest instrumentation-genai/opentelemetry-instrumentation-weaviate/tests/ -v diff --git a/util/opentelemetry-util-genai-langsmith-translator/src/opentelemetry/util/genai/langsmith/__init__.py b/util/opentelemetry-util-genai-langsmith-translator/src/opentelemetry/util/genai/langsmith/__init__.py index a0102a88..6398dda4 100644 --- a/util/opentelemetry-util-genai-langsmith-translator/src/opentelemetry/util/genai/langsmith/__init__.py +++ b/util/opentelemetry-util-genai-langsmith-translator/src/opentelemetry/util/genai/langsmith/__init__.py @@ -349,8 +349,14 @@ def wrapped_set_tracer_provider(tracer_provider): trace.set_tracer_provider = wrapped_set_tracer_provider -# Auto-enable on import (unless disabled) -_auto_enable() +# Auto-enable on import (unless disabled). +# Wrapped in try/except because this runs via .pth file on every Python +# startup, including during pip installs where namespace packages may not +# be fully resolved yet. +try: + _auto_enable() +except (ImportError, ModuleNotFoundError): + _LOGGER.debug("Langsmith translator deferred: processor module not yet available") __all__ = [ diff --git a/util/opentelemetry-util-genai-openlit-translator/src/opentelemetry/util/genai/openlit/__init__.py b/util/opentelemetry-util-genai-openlit-translator/src/opentelemetry/util/genai/openlit/__init__.py index ada69fa3..87ee89fa 100644 --- a/util/opentelemetry-util-genai-openlit-translator/src/opentelemetry/util/genai/openlit/__init__.py +++ b/util/opentelemetry-util-genai-openlit-translator/src/opentelemetry/util/genai/openlit/__init__.py @@ -266,8 +266,14 @@ def wrapped_set_tracer_provider(tracer_provider): trace.set_tracer_provider = wrapped_set_tracer_provider -# Auto-enable on import (unless disabled) -_auto_enable() +# Auto-enable on import (unless disabled). +# Wrapped in try/except because this runs via .pth file on every Python +# startup, including during pip installs where namespace packages may not +# be fully resolved yet. +try: + _auto_enable() +except (ImportError, ModuleNotFoundError): + _LOGGER.debug("OpenLit translator deferred: processor module not yet available") __all__ = [ diff --git a/util/opentelemetry-util-genai-traceloop-translator/src/opentelemetry/util/genai/traceloop/__init__.py b/util/opentelemetry-util-genai-traceloop-translator/src/opentelemetry/util/genai/traceloop/__init__.py index 08c11473..92792905 100644 --- a/util/opentelemetry-util-genai-traceloop-translator/src/opentelemetry/util/genai/traceloop/__init__.py +++ b/util/opentelemetry-util-genai-traceloop-translator/src/opentelemetry/util/genai/traceloop/__init__.py @@ -228,8 +228,14 @@ def wrapped_set_tracer_provider(tracer_provider): trace.set_tracer_provider = wrapped_set_tracer_provider -# Auto-enable on import (unless disabled) -_auto_enable() +# Auto-enable on import (unless disabled). +# Wrapped in try/except because this runs via .pth file on every Python +# startup, including during pip installs where namespace packages may not +# be fully resolved yet. +try: + _auto_enable() +except (ImportError, ModuleNotFoundError): + _LOGGER.debug("Traceloop translator deferred: processor module not yet available") __all__ = [