diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2021-09-13 08:54:01 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-13 08:54:01 -0400 |
commit | 003846d68a7ef5f2afbf33ab59086d9fdfc1047f (patch) | |
tree | 1ff46450b9ab202f4f76ffba88f5808824322a6c /synapse/logging | |
parent | Add types to synapse.util. (#10601) (diff) | |
download | synapse-003846d68a7ef5f2afbf33ab59086d9fdfc1047f.tar.xz |
Use the BaseReporter super-class for _WrappedRustReporter. (#10799)
This fixes mypy errors with jaeger-client >= 4.7.0 and should be a no-op for versions before that.
Diffstat (limited to 'synapse/logging')
-rw-r--r-- | synapse/logging/opentracing.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/synapse/logging/opentracing.py b/synapse/logging/opentracing.py index ecd51f1b4a..d20f6e9106 100644 --- a/synapse/logging/opentracing.py +++ b/synapse/logging/opentracing.py @@ -236,8 +236,17 @@ except ImportError: try: from rust_python_jaeger_reporter import Reporter + # jaeger-client 4.7.0 requires that reporters inherit from BaseReporter, which + # didn't exist before that version. + try: + from jaeger_client.reporter import BaseReporter + except ImportError: + + class BaseReporter: # type: ignore[no-redef] + pass + @attr.s(slots=True, frozen=True) - class _WrappedRustReporter: + class _WrappedRustReporter(BaseReporter): """Wrap the reporter to ensure `report_span` never throws.""" _reporter = attr.ib(type=Reporter, default=attr.Factory(Reporter)) @@ -382,6 +391,7 @@ def init_tracer(hs: "HomeServer"): # If we have the rust jaeger reporter available let's use that. if RustReporter: logger.info("Using rust_python_jaeger_reporter library") + assert config.sampler is not None tracer = config.create_tracer(RustReporter(), config.sampler) opentracing.set_global_tracer(tracer) else: |