Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 1 addition & 31 deletions ddtrace/internal/schema/__init__.py
Original file line number Diff line number Diff line change
@@ -1,45 +1,16 @@
import logging
import os

from ddtrace.internal.utils.formats import asbool

from .span_attribute_schema import _DEFAULT_SPAN_SERVICE_NAMES
from .default import _get_schema_version
from .span_attribute_schema import _SPAN_ATTRIBUTE_TO_FUNCTION
from .span_attribute_schema import SpanDirection


log = logging.getLogger(__name__)


# Span attribute schema
def _validate_schema(version):
error_message = (
"You have specified an invalid span attribute schema version: '{}'.".format(version),
"Valid options are: {}. You can change the specified value by updating".format(
_SPAN_ATTRIBUTE_TO_FUNCTION.keys()
),
"the value exported in the 'DD_TRACE_SPAN_ATTRIBUTE_SCHEMA' environment variable.",
)

if version not in _SPAN_ATTRIBUTE_TO_FUNCTION.keys():
log.warning(" ".join(error_message))
return False

return True


def _get_schema_version():
version = os.getenv("DD_TRACE_SPAN_ATTRIBUTE_SCHEMA", default="v0")
if not _validate_schema(version):
version = "v0"
return version


SCHEMA_VERSION = _get_schema_version()
_remove_client_service_names = asbool(os.getenv("DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED", default=False))
_service_name_schema_version = "v0" if SCHEMA_VERSION == "v0" and not _remove_client_service_names else "v1"

DEFAULT_SPAN_SERVICE_NAME = _DEFAULT_SPAN_SERVICE_NAMES[_service_name_schema_version]
schematize_cache_operation = _SPAN_ATTRIBUTE_TO_FUNCTION[SCHEMA_VERSION]["cache_operation"]
schematize_cloud_api_operation = _SPAN_ATTRIBUTE_TO_FUNCTION[SCHEMA_VERSION]["cloud_api_operation"]
schematize_cloud_faas_operation = _SPAN_ATTRIBUTE_TO_FUNCTION[SCHEMA_VERSION]["cloud_faas_operation"]
Expand All @@ -50,7 +21,6 @@ def _get_schema_version():
schematize_url_operation = _SPAN_ATTRIBUTE_TO_FUNCTION[SCHEMA_VERSION]["url_operation"]

__all__ = [
"DEFAULT_SPAN_SERVICE_NAME",
"SCHEMA_VERSION",
"SpanDirection",
"schematize_cache_operation",
Expand Down
51 changes: 51 additions & 0 deletions ddtrace/internal/schema/default.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import logging
import os
import sys
from typing import Dict
from typing import Optional

from ddtrace.internal.constants import DEFAULT_SERVICE_NAME
from ddtrace.internal.utils.formats import asbool
from ddtrace.settings._inferred_base_service import detect_service


VALID_VERSIONS = ["v0", "v1"]


log = logging.getLogger(__name__)


def _validate_schema(version):
error_message = (
"You have specified an invalid span attribute schema version: '{}'.".format(version),
"Valid options are: {}. You can change the specified value by updating".format(VALID_VERSIONS),
"the value exported in the 'DD_TRACE_SPAN_ATTRIBUTE_SCHEMA' environment variable.",
)

if version not in VALID_VERSIONS:
log.warning(" ".join(error_message))
return False

return True


def _get_schema_version():
version = os.getenv("DD_TRACE_SPAN_ATTRIBUTE_SCHEMA", default="v0")
if not _validate_schema(version):
version = "v0"
return version


SCHEMA_VERSION = _get_schema_version()
_remove_client_service_names = asbool(os.getenv("DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED", default=False))
_service_name_schema_version = "v0" if SCHEMA_VERSION == "v0" and not _remove_client_service_names else "v1"

_inferred_base_service: Optional[str] = detect_service(sys.argv)


_DEFAULT_SPAN_SERVICE_NAMES: Dict[str, Optional[str]] = {
"v0": _inferred_base_service or None,
"v1": _inferred_base_service or DEFAULT_SERVICE_NAME,
}

DEFAULT_SPAN_SERVICE_NAME = _DEFAULT_SPAN_SERVICE_NAMES[_service_name_schema_version]
13 changes: 0 additions & 13 deletions ddtrace/internal/schema/span_attribute_schema.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
from enum import Enum
import sys
from typing import Dict
from typing import Optional

from ddtrace.internal.constants import DEFAULT_SERVICE_NAME
from ddtrace.settings._inferred_base_service import detect_service


class SpanDirection(Enum):
Expand Down Expand Up @@ -114,10 +108,3 @@ def url_operation_v1(v0_operation, protocol=None, direction=None):
"url_operation": url_operation_v1,
},
}

_inferred_base_service: Optional[str] = detect_service(sys.argv)

_DEFAULT_SPAN_SERVICE_NAMES: Dict[str, Optional[str]] = {
"v0": _inferred_base_service or None,
"v1": _inferred_base_service or DEFAULT_SERVICE_NAME,
}
2 changes: 1 addition & 1 deletion ddtrace/settings/_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
from ..internal.constants import DEFAULT_TIMEOUT
from ..internal.constants import PROPAGATION_STYLE_ALL
from ..internal.logger import get_logger
from ..internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ..internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
Comment thread
juanjux marked this conversation as resolved.
from ..internal.serverless import in_aws_lambda
from ..internal.telemetry import get_config as _get_config
from ..internal.utils.formats import asbool
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/aiohttp/test_middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def test_service_operation_schema(ddtrace_run_python_code_in_subprocess, schema_
import asyncio
from tests.conftest import *
from tests.contrib.aiohttp.conftest import *
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME

def test(app_tracer, loop, aiohttp_client):
async def async_test(app_tracer, aiohttp_client):
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/aiomysql/test_aiomysql.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from ddtrace.contrib.internal.aiomysql.patch import patch
from ddtrace.contrib.internal.aiomysql.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.contrib import shared_tests_async as shared_tests
from tests.contrib.asyncio.utils import AsyncioTestCase
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/aiopg/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from ddtrace.contrib.internal.aiopg.patch import patch
from ddtrace.contrib.internal.aiopg.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME

# project
from ddtrace.trace import Pin
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/boto/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from ddtrace.contrib.internal.boto.patch import patch
from ddtrace.contrib.internal.boto.patch import unpatch
from ddtrace.ext import http
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME

# project
from ddtrace.trace import Pin
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/botocore/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
from ddtrace.contrib.internal.botocore.patch import unpatch
from ddtrace.internal.compat import PYTHON_VERSION_INFO
from ddtrace.internal.datastreams.processor import PROPAGATION_KEY_BASE_64
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.utils.version import parse_version
from ddtrace.propagation.http import HTTP_HEADER_PARENT_ID
from ddtrace.propagation.http import HTTP_HEADER_TRACE_ID
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/bottle/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from ddtrace.constants import USER_KEEP
from ddtrace.contrib.internal.bottle.patch import TracePlugin
from ddtrace.ext import http
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from tests.opentracer.utils import init_tracer
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_span_data
from tests.utils import TracerTestCase
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/cassandra/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from ddtrace.contrib.internal.cassandra.session import SERVICE
from ddtrace.ext import cassandra as cassx
from ddtrace.ext import net
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.contrib.config import CASSANDRA_CONFIG
from tests.opentracer.utils import init_tracer
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/consul/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from ddtrace.contrib.internal.consul.patch import patch
from ddtrace.contrib.internal.consul.patch import unpatch
from ddtrace.ext import consul as consulx
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.utils import TracerTestCase
from tests.utils import assert_is_measured
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/elasticsearch/test_elasticsearch.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from ddtrace.contrib.internal.elasticsearch.patch import patch
from ddtrace.contrib.internal.elasticsearch.patch import unpatch
from ddtrace.ext import http
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.contrib.patch import emit_integration_and_version_to_test_agent
from tests.utils import TracerTestCase
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/flask_cache/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from ddtrace.contrib.internal.flask_cache.patch import CACHE_BACKEND
from ddtrace.contrib.internal.flask_cache.patch import get_traced_cache
from ddtrace.ext import net
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from tests.opentracer.utils import init_tracer
from tests.utils import TracerTestCase
from tests.utils import assert_dict_issuperset
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/grpc/test_grpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from ddtrace.contrib.internal.grpc.patch import _unpatch_server
from ddtrace.contrib.internal.grpc.patch import patch
from ddtrace.contrib.internal.grpc.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.utils import TracerTestCase
from tests.utils import snapshot
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/httplib/test_httplib.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from ddtrace.contrib.internal.httplib.patch import unpatch
from ddtrace.ext import http
from ddtrace.internal.constants import _HTTPLIB_NO_TRACE_REQUEST
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.opentracer.utils import init_tracer
from tests.utils import TracerTestCase
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/kombu/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from ddtrace.contrib.internal.kombu.patch import unpatch
from ddtrace.ext import kombu as kombux
from ddtrace.internal.datastreams.processor import PROPAGATION_KEY_BASE_64
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.utils import TracerTestCase
from tests.utils import assert_is_measured
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/mako/test_mako.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from ddtrace.contrib.internal.mako.constants import DEFAULT_TEMPLATE_NAME
from ddtrace.contrib.internal.mako.patch import patch
from ddtrace.contrib.internal.mako.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.utils import TracerTestCase
from tests.utils import assert_is_measured
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/molten/test_molten.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from ddtrace.contrib.internal.molten.patch import patch
from ddtrace.contrib.internal.molten.patch import unpatch
from ddtrace.ext import http
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.propagation.http import HTTP_HEADER_PARENT_ID
from ddtrace.propagation.http import HTTP_HEADER_TRACE_ID
from ddtrace.trace import Pin
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/mongoengine/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from ddtrace.contrib.internal.mongoengine.patch import patch
from ddtrace.contrib.internal.mongoengine.patch import unpatch
from ddtrace.ext import mongo as mongox
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.opentracer.utils import init_tracer
from tests.utils import DummyTracer
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/mysqldb/test_mysqldb.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from ddtrace.contrib.internal.mysqldb.patch import patch
from ddtrace.contrib.internal.mysqldb.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.contrib import shared_tests
from tests.opentracer.utils import init_tracer
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/psycopg/test_psycopg.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

from ddtrace.contrib.internal.psycopg.patch import patch
from ddtrace.contrib.internal.psycopg.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.utils.version import parse_version
from ddtrace.trace import Pin
from tests.contrib.config import POSTGRES_CONFIG
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/psycopg2/test_psycopg.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

from ddtrace.contrib.internal.psycopg.patch import patch
from ddtrace.contrib.internal.psycopg.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.utils.version import parse_version
from ddtrace.trace import Pin
from tests.contrib.config import POSTGRES_CONFIG
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/pymemcache/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from ddtrace.contrib.internal.pymemcache.client import WrappedClient
from ddtrace.contrib.internal.pymemcache.patch import patch
from ddtrace.contrib.internal.pymemcache.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME

# project
from ddtrace.trace import Pin
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/pymysql/test_pymysql.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from ddtrace.contrib.internal.pymysql.patch import patch
from ddtrace.contrib.internal.pymysql.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.contrib import shared_tests
from tests.opentracer.utils import init_tracer
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/pynamodb/test_pynamodb.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from ddtrace.contrib.internal.pynamodb.patch import patch
from ddtrace.contrib.internal.pynamodb.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.utils import TracerTestCase
from tests.utils import assert_is_measured
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/pyodbc/test_pyodbc.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from ddtrace.contrib.internal.pyodbc.patch import patch
from ddtrace.contrib.internal.pyodbc.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.utils import TracerTestCase
from tests.utils import assert_is_measured
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/pyramid/test_pyramid.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from ddtrace import config
from ddtrace.constants import _ORIGIN_KEY
from ddtrace.constants import _SAMPLING_PRIORITY_KEY
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from tests.tracer.utils_inferred_spans.test_helpers import assert_web_and_inferred_aws_api_gateway_span_data
from tests.utils import TracerTestCase
from tests.webclient import Client
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/redis/test_redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import ddtrace
from ddtrace.contrib.internal.redis.patch import patch
from ddtrace.contrib.internal.redis.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.opentracer.utils import init_tracer
from tests.utils import DummyTracer
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/redis/test_redis_cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from ddtrace.contrib.internal.redis.patch import patch
from ddtrace.contrib.internal.redis.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.contrib.config import REDISCLUSTER_CONFIG
from tests.utils import DummyTracer
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/redis/test_redis_cluster_asyncio.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ def test_default_service_name_v1():
import redis

from ddtrace.contrib.internal.redis.patch import patch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.contrib.config import REDISCLUSTER_CONFIG
from tests.utils import DummyTracer
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/rediscluster/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from ddtrace.contrib.internal.rediscluster.patch import REDISCLUSTER_VERSION
from ddtrace.contrib.internal.rediscluster.patch import patch
from ddtrace.contrib.internal.rediscluster.patch import unpatch
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.contrib.config import REDISCLUSTER_CONFIG
from tests.utils import DummyTracer
Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/requests/test_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from ddtrace.contrib.internal.requests.patch import patch
from ddtrace.contrib.internal.requests.patch import unpatch
from ddtrace.ext import http
from ddtrace.internal.schema import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.internal.schema.default import DEFAULT_SPAN_SERVICE_NAME
from ddtrace.trace import Pin
from tests.opentracer.utils import init_tracer
from tests.utils import TracerTestCase
Expand Down
Loading
Loading