diff --git a/BUILD b/BUILD
index c4ff5ee7972f454fe68604fc89ccc41f80423033..3e2a45b8a0adc19f03b37bf15e1ffdcdbf517476 100644
--- a/BUILD
+++ b/BUILD
@@ -220,6 +220,7 @@ cc_library(
     "src/core/profiling/timers.h",
     "src/core/statistics/census_interface.h",
     "src/core/statistics/census_rpc_stats.h",
+    "src/core/surface/api_trace.h",
     "src/core/surface/byte_buffer_queue.h",
     "src/core/surface/call.h",
     "src/core/surface/channel.h",
@@ -374,7 +375,6 @@ cc_library(
     "src/core/surface/server.c",
     "src/core/surface/server_chttp2.c",
     "src/core/surface/server_create.c",
-    "src/core/surface/surface_trace.c",
     "src/core/surface/version.c",
     "src/core/transport/chttp2/alpn.c",
     "src/core/transport/chttp2/bin_encoder.c",
@@ -506,6 +506,7 @@ cc_library(
     "src/core/profiling/timers.h",
     "src/core/statistics/census_interface.h",
     "src/core/statistics/census_rpc_stats.h",
+    "src/core/surface/api_trace.h",
     "src/core/surface/byte_buffer_queue.h",
     "src/core/surface/call.h",
     "src/core/surface/channel.h",
@@ -640,7 +641,6 @@ cc_library(
     "src/core/surface/server.c",
     "src/core/surface/server_chttp2.c",
     "src/core/surface/server_create.c",
-    "src/core/surface/surface_trace.c",
     "src/core/surface/version.c",
     "src/core/transport/chttp2/alpn.c",
     "src/core/transport/chttp2/bin_encoder.c",
@@ -1165,7 +1165,6 @@ objc_library(
     "src/core/surface/server.c",
     "src/core/surface/server_chttp2.c",
     "src/core/surface/server_create.c",
-    "src/core/surface/surface_trace.c",
     "src/core/surface/version.c",
     "src/core/transport/chttp2/alpn.c",
     "src/core/transport/chttp2/bin_encoder.c",
@@ -1294,6 +1293,7 @@ objc_library(
     "src/core/profiling/timers.h",
     "src/core/statistics/census_interface.h",
     "src/core/statistics/census_rpc_stats.h",
+    "src/core/surface/api_trace.h",
     "src/core/surface/byte_buffer_queue.h",
     "src/core/surface/call.h",
     "src/core/surface/channel.h",
diff --git a/Makefile b/Makefile
index ca365a8dbe3651e8c3110c519e75664fad2338f5..8eb94f768a2ba16272f5f86b75bdf8369631f145 100644
--- a/Makefile
+++ b/Makefile
@@ -4137,7 +4137,6 @@ LIBGRPC_SRC = \
     src/core/surface/server.c \
     src/core/surface/server_chttp2.c \
     src/core/surface/server_create.c \
-    src/core/surface/surface_trace.c \
     src/core/surface/version.c \
     src/core/transport/chttp2/alpn.c \
     src/core/transport/chttp2/bin_encoder.c \
@@ -4420,7 +4419,6 @@ LIBGRPC_UNSECURE_SRC = \
     src/core/surface/server.c \
     src/core/surface/server_chttp2.c \
     src/core/surface/server_create.c \
-    src/core/surface/surface_trace.c \
     src/core/surface/version.c \
     src/core/transport/chttp2/alpn.c \
     src/core/transport/chttp2/bin_encoder.c \
diff --git a/build.json b/build.json
index c68569e9f1a288693b591795ea96e86d47ef8ae3..0a4248c7a8da834c1a605fc3c88fe436ef82b438 100644
--- a/build.json
+++ b/build.json
@@ -184,6 +184,7 @@
         "src/core/profiling/timers_preciseclock.h",
         "src/core/statistics/census_interface.h",
         "src/core/statistics/census_rpc_stats.h",
+        "src/core/surface/api_trace.h",
         "src/core/surface/byte_buffer_queue.h",
         "src/core/surface/call.h",
         "src/core/surface/channel.h",
@@ -309,7 +310,6 @@
         "src/core/surface/server.c",
         "src/core/surface/server_chttp2.c",
         "src/core/surface/server_create.c",
-        "src/core/surface/surface_trace.c",
         "src/core/surface/version.c",
         "src/core/transport/chttp2/alpn.c",
         "src/core/transport/chttp2/bin_encoder.c",
diff --git a/gRPC.podspec b/gRPC.podspec
index dfb52a88bf790c3220d34a6abc9cfa9e64fc8246..2636a38882c80572782591142901ceeb3560d3d6 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -223,6 +223,7 @@ Pod::Spec.new do |s|
                       'src/core/profiling/timers.h',
                       'src/core/statistics/census_interface.h',
                       'src/core/statistics/census_rpc_stats.h',
+                      'src/core/surface/api_trace.h',
                       'src/core/surface/byte_buffer_queue.h',
                       'src/core/surface/call.h',
                       'src/core/surface/channel.h',
@@ -384,7 +385,6 @@ Pod::Spec.new do |s|
                       'src/core/surface/server.c',
                       'src/core/surface/server_chttp2.c',
                       'src/core/surface/server_create.c',
-                      'src/core/surface/surface_trace.c',
                       'src/core/surface/version.c',
                       'src/core/transport/chttp2/alpn.c',
                       'src/core/transport/chttp2/bin_encoder.c',
@@ -514,6 +514,7 @@ Pod::Spec.new do |s|
                               'src/core/profiling/timers.h',
                               'src/core/statistics/census_interface.h',
                               'src/core/statistics/census_rpc_stats.h',
+                              'src/core/surface/api_trace.h',
                               'src/core/surface/byte_buffer_queue.h',
                               'src/core/surface/call.h',
                               'src/core/surface/channel.h',
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 123280ca1b2e35ea891749408181c11f0d1a0325..5658a102d75d36deccc0e1aaa99210a32c3253a2 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -855,6 +855,7 @@ src/core/json/json_writer.h \
 src/core/profiling/timers.h \
 src/core/statistics/census_interface.h \
 src/core/statistics/census_rpc_stats.h \
+src/core/surface/api_trace.h \
 src/core/surface/byte_buffer_queue.h \
 src/core/surface/call.h \
 src/core/surface/channel.h \
@@ -1009,7 +1010,6 @@ src/core/surface/metadata_array.c \
 src/core/surface/server.c \
 src/core/surface/server_chttp2.c \
 src/core/surface/server_create.c \
-src/core/surface/surface_trace.c \
 src/core/surface/version.c \
 src/core/transport/chttp2/alpn.c \
 src/core/transport/chttp2/bin_encoder.c \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 8d5c82b8128ca601bcddaabe47a3b2d9d8f3e56f..1ceff15a3be19ad9625bd90a0650f9b07652b58b 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -12362,6 +12362,7 @@
       "src/core/security/security_context.h", 
       "src/core/statistics/census_interface.h", 
       "src/core/statistics/census_rpc_stats.h", 
+      "src/core/surface/api_trace.h", 
       "src/core/surface/byte_buffer_queue.h", 
       "src/core/surface/call.h", 
       "src/core/surface/channel.h", 
@@ -12597,6 +12598,7 @@
       "src/core/statistics/census_interface.h", 
       "src/core/statistics/census_rpc_stats.h", 
       "src/core/surface/api_trace.c", 
+      "src/core/surface/api_trace.h", 
       "src/core/surface/byte_buffer.c", 
       "src/core/surface/byte_buffer_queue.c", 
       "src/core/surface/byte_buffer_queue.h", 
@@ -12623,7 +12625,6 @@
       "src/core/surface/server.h", 
       "src/core/surface/server_chttp2.c", 
       "src/core/surface/server_create.c", 
-      "src/core/surface/surface_trace.c", 
       "src/core/surface/surface_trace.h", 
       "src/core/surface/version.c", 
       "src/core/transport/chttp2/alpn.c", 
@@ -12857,6 +12858,7 @@
       "src/core/profiling/timers.h", 
       "src/core/statistics/census_interface.h", 
       "src/core/statistics/census_rpc_stats.h", 
+      "src/core/surface/api_trace.h", 
       "src/core/surface/byte_buffer_queue.h", 
       "src/core/surface/call.h", 
       "src/core/surface/channel.h", 
@@ -13062,6 +13064,7 @@
       "src/core/statistics/census_interface.h", 
       "src/core/statistics/census_rpc_stats.h", 
       "src/core/surface/api_trace.c", 
+      "src/core/surface/api_trace.h", 
       "src/core/surface/byte_buffer.c", 
       "src/core/surface/byte_buffer_queue.c", 
       "src/core/surface/byte_buffer_queue.h", 
@@ -13087,7 +13090,6 @@
       "src/core/surface/server.h", 
       "src/core/surface/server_chttp2.c", 
       "src/core/surface/server_create.c", 
-      "src/core/surface/surface_trace.c", 
       "src/core/surface/surface_trace.h", 
       "src/core/surface/version.c", 
       "src/core/transport/chttp2/alpn.c", 
diff --git a/vsprojects/grpc/grpc.vcxproj b/vsprojects/grpc/grpc.vcxproj
index dc1a58b8dd42f639bdf29da99befe98f354f0229..c6750948677c9c88a6f881c548650a05ae01d71f 100644
--- a/vsprojects/grpc/grpc.vcxproj
+++ b/vsprojects/grpc/grpc.vcxproj
@@ -310,6 +310,7 @@
     <ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h" />
     <ClInclude Include="..\..\src\core\statistics\census_interface.h" />
     <ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h" />
+    <ClInclude Include="..\..\src\core\surface\api_trace.h" />
     <ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h" />
     <ClInclude Include="..\..\src\core\surface\call.h" />
     <ClInclude Include="..\..\src\core\surface\channel.h" />
@@ -568,8 +569,6 @@
     </ClCompile>
     <ClCompile Include="..\..\src\core\surface\server_create.c">
     </ClCompile>
-    <ClCompile Include="..\..\src\core\surface\surface_trace.c">
-    </ClCompile>
     <ClCompile Include="..\..\src\core\surface\version.c">
     </ClCompile>
     <ClCompile Include="..\..\src\core\transport\chttp2\alpn.c">
diff --git a/vsprojects/grpc/grpc.vcxproj.filters b/vsprojects/grpc/grpc.vcxproj.filters
index 624bac04f5b2b54cd3baf23f11292c177fc21039..5bde4656165cf7a92955dd6d15da5be2f868489b 100644
--- a/vsprojects/grpc/grpc.vcxproj.filters
+++ b/vsprojects/grpc/grpc.vcxproj.filters
@@ -331,9 +331,6 @@
     <ClCompile Include="..\..\src\core\surface\server_create.c">
       <Filter>src\core\surface</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\src\core\surface\surface_trace.c">
-      <Filter>src\core\surface</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\src\core\surface\version.c">
       <Filter>src\core\surface</Filter>
     </ClCompile>
@@ -692,6 +689,9 @@
     <ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h">
       <Filter>src\core\statistics</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\core\surface\api_trace.h">
+      <Filter>src\core\surface</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h">
       <Filter>src\core\surface</Filter>
     </ClInclude>
diff --git a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
index 2329d3532ccd3722d5594c8780934f53121469fd..60143f1ab12fe5b9d936f4792ce5287bbb2b974a 100644
--- a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
@@ -293,6 +293,7 @@
     <ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h" />
     <ClInclude Include="..\..\src\core\statistics\census_interface.h" />
     <ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h" />
+    <ClInclude Include="..\..\src\core\surface\api_trace.h" />
     <ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h" />
     <ClInclude Include="..\..\src\core\surface\call.h" />
     <ClInclude Include="..\..\src\core\surface\channel.h" />
@@ -511,8 +512,6 @@
     </ClCompile>
     <ClCompile Include="..\..\src\core\surface\server_create.c">
     </ClCompile>
-    <ClCompile Include="..\..\src\core\surface\surface_trace.c">
-    </ClCompile>
     <ClCompile Include="..\..\src\core\surface\version.c">
     </ClCompile>
     <ClCompile Include="..\..\src\core\transport\chttp2\alpn.c">
diff --git a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 493bae2fb8b762c2f92a4ef14aed3f50008dcaf1..edfa397e37ef9f6bab6b09acc35ead06b1408b2d 100644
--- a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -271,9 +271,6 @@
     <ClCompile Include="..\..\src\core\surface\server_create.c">
       <Filter>src\core\surface</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\src\core\surface\surface_trace.c">
-      <Filter>src\core\surface</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\src\core\surface\version.c">
       <Filter>src\core\surface</Filter>
     </ClCompile>
@@ -590,6 +587,9 @@
     <ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h">
       <Filter>src\core\statistics</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\core\surface\api_trace.h">
+      <Filter>src\core\surface</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h">
       <Filter>src\core\surface</Filter>
     </ClInclude>