diff --git a/changelog.d/11768.misc b/changelog.d/11768.misc
new file mode 100644
index 0000000000000000000000000000000000000000..1cac1f7446f8f1cdc5ea4420253ffbe112d33609
--- /dev/null
+++ b/changelog.d/11768.misc
@@ -0,0 +1 @@
+Use `auto_attribs` and native type hints for attrs classes.
\ No newline at end of file
diff --git a/synapse/logging/opentracing.py b/synapse/logging/opentracing.py
index 5672d60de3486b81c4a515a09a8b733feb173fe6..b240d2d21da2f2d31fe285e482305c74b654bfd1 100644
--- a/synapse/logging/opentracing.py
+++ b/synapse/logging/opentracing.py
@@ -247,7 +247,7 @@ try:
         class BaseReporter:  # type: ignore[no-redef]
             pass
 
-    @attr.s(slots=True, frozen=True)
+    @attr.s(slots=True, frozen=True, auto_attribs=True)
     class _WrappedRustReporter(BaseReporter):
         """Wrap the reporter to ensure `report_span` never throws."""