summary refs log tree commit diff
path: root/synapse/config/tracer.py
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/config/tracer.py')
-rw-r--r--synapse/config/tracer.py43
1 files changed, 26 insertions, 17 deletions
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)