diff --git a/synapse/config/tracer.py b/synapse/config/tracer.py
index c19270c6c5..d67498f50d 100644
--- a/synapse/config/tracer.py
+++ b/synapse/config/tracer.py
@@ -24,41 +24,50 @@ class TracerConfig(Config):
section = "tracing"
def read_config(self, config: JsonDict, **kwargs: Any) -> None:
- opentracing_config = config.get("opentracing")
- if opentracing_config is None:
- opentracing_config = {}
+ tracing_config = config.get("tracing")
+ if tracing_config is None:
+ tracing_config = {}
- self.opentracer_enabled = opentracing_config.get("enabled", False)
+ self.tracing_enabled = tracing_config.get("enabled", False)
- self.jaeger_config = opentracing_config.get(
- "jaeger_config",
- {"sampler": {"type": "const", "param": 1}, "logging": False},
+ self.jaeger_exporter_config = tracing_config.get(
+ "jaeger_exporter_config",
+ {},
)
self.force_tracing_for_users: Set[str] = set()
- if not self.opentracer_enabled:
+ if not self.tracing_enabled:
return
- check_requirements("opentracing")
+ check_requirements("opentelemetry")
# The tracer is enabled so sanitize the config
- self.opentracer_whitelist: List[str] = opentracing_config.get(
+ # Default to always sample. Range: [0.0 - 1.0]
+ self.sample_rate: float = float(tracing_config.get("sample_rate", 1))
+ if self.sample_rate < 0.0 or self.sample_rate > 1.0:
+ raise ConfigError(
+ "Tracing sample_rate must be in range [0.0, 1.0].",
+ ("tracing", "sample_rate"),
+ )
+
+ self.homeserver_whitelist: List[str] = tracing_config.get(
"homeserver_whitelist", []
)
- if not isinstance(self.opentracer_whitelist, list):
- raise ConfigError("Tracer homeserver_whitelist config is malformed")
-
- force_tracing_for_users = opentracing_config.get("force_tracing_for_users", [])
- if not isinstance(force_tracing_for_users, list):
+ if not isinstance(self.homeserver_whitelist, list):
raise ConfigError(
- "Expected a list", ("opentracing", "force_tracing_for_users")
+ "Tracing homeserver_whitelist config is malformed",
+ ("tracing", "homeserver_whitelist"),
)
+
+ force_tracing_for_users = tracing_config.get("force_tracing_for_users", [])
+ if not isinstance(force_tracing_for_users, list):
+ raise ConfigError("Expected a list", ("tracing", "force_tracing_for_users"))
for i, u in enumerate(force_tracing_for_users):
if not isinstance(u, str):
raise ConfigError(
"Expected a string",
- ("opentracing", "force_tracing_for_users", f"index {i}"),
+ ("tracing", "force_tracing_for_users", f"index {i}"),
)
self.force_tracing_for_users.add(u)
|