Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
17 changes: 17 additions & 0 deletions ddtrace/settings/database_monitoring.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from envier import En
from envier import validators


class DatabaseMonitoringConfig(En):
__prefix__ = "dd_trace"

injection_mode = En.v(
str,
"sql_comment_injection_mode",
default="disabled",
help="Valid Injection Modes: disabled, service, and full",
validator=validators.choice(["disabled", "full", "service"]),
)


config = DatabaseMonitoringConfig()
29 changes: 29 additions & 0 deletions tests/internal/test_database_monitoring.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import pytest

from ddtrace.settings import database_monitoring
from tests.utils import override_env


def test_injection_mode_configuration():
# Ensure Database Monitoring support is disabled by default
# TODO: Enable DBM support by default
assert database_monitoring.config.injection_mode == "disabled"

# Ensure service is a valid injection mode
with override_env(dict(DD_TRACE_SQL_COMMENT_INJECTION_MODE="service")):
config = database_monitoring.DatabaseMonitoringConfig()
assert config.injection_mode == "service"

# Ensure full is a valid injection mode
with override_env(dict(DD_TRACE_SQL_COMMENT_INJECTION_MODE="full")):
config = database_monitoring.DatabaseMonitoringConfig()
assert config.injection_mode == "full"

# Ensure an invalid injection mode raises a ValueError
with override_env(dict(DD_TRACE_SQL_COMMENT_INJECTION_MODE="notaninjectionmode")):
with pytest.raises(ValueError) as excinfo:
database_monitoring.DatabaseMonitoringConfig()
assert (
excinfo.value.args[0] == "Invalid value for environment variable DD_TRACE_SQL_COMMENT_INJECTION_MODE: "
"value must be one of ['disabled', 'full', 'service']"
)