diff --git a/changelog.d/10135.misc b/changelog.d/10135.misc
new file mode 100644
index 0000000000000000000000000000000000000000..17819cbbcc6f7abfbd7b3084f1d036beb3a458ad
--- /dev/null
+++ b/changelog.d/10135.misc
@@ -0,0 +1 @@
+OpenTracing: use a consistent name for background processes.
diff --git a/synapse/logging/opentracing.py b/synapse/logging/opentracing.py
index 26c8ffe780eb498a58f3fe5ef2162470107a26bf..dd9377340eb83e03ae4a4043019c80c1f73d1de7 100644
--- a/synapse/logging/opentracing.py
+++ b/synapse/logging/opentracing.py
@@ -337,6 +337,7 @@ def ensure_active_span(message, ret=None):
 @contextlib.contextmanager
 def noop_context_manager(*args, **kwargs):
     """Does exactly what it says on the tin"""
+    # TODO: replace with contextlib.nullcontext once we drop support for Python 3.6
     yield
 
 
diff --git a/synapse/metrics/background_process_metrics.py b/synapse/metrics/background_process_metrics.py
index 0d6d643d3527c663e2a667edfed5d3972351eca2..de96ca08212a6390daa533f136e9e7262ad029e7 100644
--- a/synapse/metrics/background_process_metrics.py
+++ b/synapse/metrics/background_process_metrics.py
@@ -204,11 +204,12 @@ def run_as_background_process(desc: str, func, *args, bg_start_span=True, **kwar
 
         with BackgroundProcessLoggingContext(desc, count) as context:
             try:
-                ctx = noop_context_manager()
                 if bg_start_span:
                     ctx = start_active_span(
-                        desc, tags={SynapseTags.REQUEST_ID: str(context)}
+                        f"bgproc.{desc}", tags={SynapseTags.REQUEST_ID: str(context)}
                     )
+                else:
+                    ctx = noop_context_manager()
                 with ctx:
                     return await maybe_awaitable(func(*args, **kwargs))
             except Exception: