diff --git a/docs/telemetry.mdx b/docs/telemetry.mdx index b181ad827..7c1ca6cb4 100644 --- a/docs/telemetry.mdx +++ b/docs/telemetry.mdx @@ -22,7 +22,7 @@ usage of tools, API calls, responses, any data processed by the agents, or secre When the `share_crew` feature is enabled, detailed data including task descriptions, agents' backstories or goals, and other specific attributes are collected to provide deeper insights. This expanded data collection may include personal information if users have incorporated it into their crews or tasks. Users should carefully consider the content of their crews and tasks before enabling `share_crew`. -Users can disable telemetry by setting the environment variable `OTEL_SDK_DISABLED` to `true`. +Users can disable telemetry by setting the environment variable `CREWAI_DISABLE_TELEMETRY` to `true` or by setting `OTEL_SDK_DISABLED` to `true` (note that the latter disables all OpenTelemetry instrumentation globally). ### Data Explanation: | Defaulted | Data | Reason and Specifics | @@ -55,4 +55,4 @@ This enables a deeper insight into usage patterns. If you enable `share_crew`, the collected data may include personal information if it has been incorporated into crew configurations, task descriptions, or outputs. Users should carefully review their data and ensure compliance with GDPR and other applicable privacy regulations before enabling this feature. - \ No newline at end of file + diff --git a/src/crewai/telemetry/telemetry.py b/src/crewai/telemetry/telemetry.py index edf4c886a..b7f93c04a 100644 --- a/src/crewai/telemetry/telemetry.py +++ b/src/crewai/telemetry/telemetry.py @@ -48,7 +48,8 @@ class Telemetry: self.ready = False self.trace_set = False - if os.getenv("OTEL_SDK_DISABLED", "false").lower() == "true": + if (os.getenv("OTEL_SDK_DISABLED", "false").lower() == "true" or + os.getenv("CREWAI_DISABLE_TELEMETRY", "false").lower() == "true"): return try: diff --git a/tests/telemetry/__init__.py b/tests/telemetry/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/telemetry/test_telemetry_disable.py b/tests/telemetry/test_telemetry_disable.py new file mode 100644 index 000000000..2bd7967ad --- /dev/null +++ b/tests/telemetry/test_telemetry_disable.py @@ -0,0 +1,27 @@ +import os +import pytest +from unittest.mock import patch + +from crewai.telemetry import Telemetry + + +def test_telemetry_disabled_with_otel_sdk_disabled(): + """Test that telemetry is disabled when OTEL_SDK_DISABLED is set to true.""" + with patch.dict(os.environ, {"OTEL_SDK_DISABLED": "true"}): + telemetry = Telemetry() + assert telemetry.ready is False + + +def test_telemetry_disabled_with_crewai_disable_telemetry(): + """Test that telemetry is disabled when CREWAI_DISABLE_TELEMETRY is set to true.""" + with patch.dict(os.environ, {"CREWAI_DISABLE_TELEMETRY": "true"}): + telemetry = Telemetry() + assert telemetry.ready is False + + +def test_telemetry_enabled_by_default(): + """Test that telemetry is enabled by default.""" + with patch.dict(os.environ, {}, clear=True): + with patch("crewai.telemetry.telemetry.TracerProvider"): + telemetry = Telemetry() + assert telemetry.ready is True