diff --git a/BUILD b/BUILD
index d38b9cee104a3b53bef86b3fa68e3142b428307f..b24ba311e29c286edba6cb971809d70fc2d0fc3d 100644
--- a/BUILD
+++ b/BUILD
@@ -145,7 +145,7 @@ cc_library(
     "src/core/tsi/ssl_transport_security.h",
     "src/core/tsi/transport_security.h",
     "src/core/tsi/transport_security_interface.h",
-    "src/core/channel/census_filter.h",
+    "src/core/census/census_filter.h",
     "src/core/channel/channel_args.h",
     "src/core/channel/channel_stack.h",
     "src/core/channel/client_channel.h",
@@ -267,8 +267,8 @@ cc_library(
     "src/core/tsi/fake_transport_security.c",
     "src/core/tsi/ssl_transport_security.c",
     "src/core/tsi/transport_security.c",
+    "src/core/census/census_filter.c",
     "src/core/census/grpc_context.c",
-    "src/core/channel/census_filter.c",
     "src/core/channel/channel_args.c",
     "src/core/channel/channel_stack.c",
     "src/core/channel/client_channel.c",
@@ -409,7 +409,7 @@ cc_library(
 cc_library(
   name = "grpc_unsecure",
   srcs = [
-    "src/core/channel/census_filter.h",
+    "src/core/census/census_filter.h",
     "src/core/channel/channel_args.h",
     "src/core/channel/channel_stack.h",
     "src/core/channel/client_channel.h",
@@ -511,8 +511,8 @@ cc_library(
     "src/core/census/context.h",
     "src/core/census/rpc_stat_id.h",
     "src/core/surface/init_unsecure.c",
+    "src/core/census/census_filter.c",
     "src/core/census/grpc_context.c",
-    "src/core/channel/census_filter.c",
     "src/core/channel/channel_args.c",
     "src/core/channel/channel_stack.c",
     "src/core/channel/client_channel.c",
@@ -997,8 +997,8 @@ objc_library(
     "src/core/tsi/fake_transport_security.c",
     "src/core/tsi/ssl_transport_security.c",
     "src/core/tsi/transport_security.c",
+    "src/core/census/census_filter.c",
     "src/core/census/grpc_context.c",
-    "src/core/channel/census_filter.c",
     "src/core/channel/channel_args.c",
     "src/core/channel/channel_stack.c",
     "src/core/channel/client_channel.c",
@@ -1137,7 +1137,7 @@ objc_library(
     "src/core/tsi/ssl_transport_security.h",
     "src/core/tsi/transport_security.h",
     "src/core/tsi/transport_security_interface.h",
-    "src/core/channel/census_filter.h",
+    "src/core/census/census_filter.h",
     "src/core/channel/channel_args.h",
     "src/core/channel/channel_stack.h",
     "src/core/channel/client_channel.h",
diff --git a/Makefile b/Makefile
index aabf1bbd045ab06d6702733670618f47eed987fe..995a4954e4588e8a73023ea10c00090ea8233731 100644
--- a/Makefile
+++ b/Makefile
@@ -3976,8 +3976,8 @@ LIBGRPC_SRC = \
     src/core/tsi/fake_transport_security.c \
     src/core/tsi/ssl_transport_security.c \
     src/core/tsi/transport_security.c \
+    src/core/census/census_filter.c \
     src/core/census/grpc_context.c \
-    src/core/channel/census_filter.c \
     src/core/channel/channel_args.c \
     src/core/channel/channel_stack.c \
     src/core/channel/client_channel.c \
@@ -4249,8 +4249,8 @@ endif
 
 LIBGRPC_UNSECURE_SRC = \
     src/core/surface/init_unsecure.c \
+    src/core/census/census_filter.c \
     src/core/census/grpc_context.c \
-    src/core/channel/census_filter.c \
     src/core/channel/channel_args.c \
     src/core/channel/channel_stack.c \
     src/core/channel/client_channel.c \
diff --git a/build.json b/build.json
index ab6a39a20ffcae0c1f279b88007be916f0ea9384..3e3e71a6849d1b9521f21d6c9d8a17cd27ee91e2 100644
--- a/build.json
+++ b/build.json
@@ -114,7 +114,7 @@
         "include/grpc/status.h"
       ],
       "headers": [
-        "src/core/channel/census_filter.h",
+        "src/core/census/census_filter.h",
         "src/core/channel/channel_args.h",
         "src/core/channel/channel_stack.h",
         "src/core/channel/client_channel.h",
@@ -215,8 +215,8 @@
         "src/core/transport/transport_impl.h"
       ],
       "src": [
+        "src/core/census/census_filter.c",
         "src/core/census/grpc_context.c",
-        "src/core/channel/census_filter.c",
         "src/core/channel/channel_args.c",
         "src/core/channel/channel_stack.c",
         "src/core/channel/client_channel.c",
diff --git a/gRPC.podspec b/gRPC.podspec
index d1e95a1652f574c0296f0c9ac2dde265e09ced46..b57960a896f3cefce101586f9a65c410e27b3e17 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -147,7 +147,7 @@ Pod::Spec.new do |s|
                       'src/core/tsi/ssl_transport_security.h',
                       'src/core/tsi/transport_security.h',
                       'src/core/tsi/transport_security_interface.h',
-                      'src/core/channel/census_filter.h',
+                      'src/core/census/census_filter.h',
                       'src/core/channel/channel_args.h',
                       'src/core/channel/channel_stack.h',
                       'src/core/channel/client_channel.h',
@@ -276,8 +276,8 @@ Pod::Spec.new do |s|
                       'src/core/tsi/fake_transport_security.c',
                       'src/core/tsi/ssl_transport_security.c',
                       'src/core/tsi/transport_security.c',
+                      'src/core/census/census_filter.c',
                       'src/core/census/grpc_context.c',
-                      'src/core/channel/census_filter.c',
                       'src/core/channel/channel_args.c',
                       'src/core/channel/channel_stack.c',
                       'src/core/channel/client_channel.c',
@@ -415,7 +415,7 @@ Pod::Spec.new do |s|
                               'src/core/tsi/ssl_transport_security.h',
                               'src/core/tsi/transport_security.h',
                               'src/core/tsi/transport_security_interface.h',
-                              'src/core/channel/census_filter.h',
+                              'src/core/census/census_filter.h',
                               'src/core/channel/channel_args.h',
                               'src/core/channel/channel_stack.h',
                               'src/core/channel/client_channel.h',
diff --git a/src/core/channel/census_filter.c b/src/core/census/census_filter.c
similarity index 99%
rename from src/core/channel/census_filter.c
rename to src/core/census/census_filter.c
index 53d70be356ac3be9ccebf51edf124411e4eef529..31db686cf3779d0a2cc4b8d81f787c88f91927c3 100644
--- a/src/core/channel/census_filter.c
+++ b/src/core/census/census_filter.c
@@ -31,7 +31,7 @@
  *
  */
 
-#include "src/core/channel/census_filter.h"
+#include "src/core/census/census_filter.h"
 
 #include <stdio.h>
 #include <string.h>
diff --git a/src/core/channel/census_filter.h b/src/core/census/census_filter.h
similarity index 100%
rename from src/core/channel/census_filter.h
rename to src/core/census/census_filter.h
diff --git a/src/core/surface/channel_create.c b/src/core/surface/channel_create.c
index 4379b3d01699abaa1b38f9fc8a77789488065958..4d01be3d7da79d131df4bb63155022d5b86fa241 100644
--- a/src/core/surface/channel_create.c
+++ b/src/core/surface/channel_create.c
@@ -38,7 +38,7 @@
 
 #include <grpc/support/alloc.h>
 
-#include "src/core/channel/census_filter.h"
+#include "src/core/census/census_filter.h"
 #include "src/core/channel/channel_args.h"
 #include "src/core/channel/client_channel.h"
 #include "src/core/channel/compress_filter.h"
diff --git a/src/core/surface/secure_channel_create.c b/src/core/surface/secure_channel_create.c
index 93a372928fe45835fb90d0d99afc4b92c56012ad..943bddfc0c385b2e19b3992c02eccbae8a991bca 100644
--- a/src/core/surface/secure_channel_create.c
+++ b/src/core/surface/secure_channel_create.c
@@ -38,7 +38,7 @@
 
 #include <grpc/support/alloc.h>
 
-#include "src/core/channel/census_filter.h"
+#include "src/core/census/census_filter.h"
 #include "src/core/channel/channel_args.h"
 #include "src/core/channel/client_channel.h"
 #include "src/core/channel/compress_filter.h"
diff --git a/src/core/surface/server.c b/src/core/surface/server.c
index 27070836f3512d6c8f073f0b5813b67af0f11790..22d399cf1f00a95b0e0c435381685889b6f9f07b 100644
--- a/src/core/surface/server.c
+++ b/src/core/surface/server.c
@@ -41,7 +41,7 @@
 #include <grpc/support/string_util.h>
 #include <grpc/support/useful.h>
 
-#include "src/core/channel/census_filter.h"
+#include "src/core/census/census_filter.h"
 #include "src/core/channel/channel_args.h"
 #include "src/core/channel/connected_channel.h"
 #include "src/core/iomgr/iomgr.h"
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 0619f76e277c6fcfc588cf79352391630eb360ad..f5d5dc0f80f2478693ecf5065908408dd96d5c48 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -780,7 +780,7 @@ src/core/tsi/fake_transport_security.h \
 src/core/tsi/ssl_transport_security.h \
 src/core/tsi/transport_security.h \
 src/core/tsi/transport_security_interface.h \
-src/core/channel/census_filter.h \
+src/core/census/census_filter.h \
 src/core/channel/channel_args.h \
 src/core/channel/channel_stack.h \
 src/core/channel/client_channel.h \
@@ -902,8 +902,8 @@ src/core/surface/secure_channel_create.c \
 src/core/tsi/fake_transport_security.c \
 src/core/tsi/ssl_transport_security.c \
 src/core/tsi/transport_security.c \
+src/core/census/census_filter.c \
 src/core/census/grpc_context.c \
-src/core/channel/census_filter.c \
 src/core/channel/channel_args.c \
 src/core/channel/channel_stack.c \
 src/core/channel/client_channel.c \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 38bf532f44764fd6954778163a69cae78cb5240c..cc74397cea379c4c65a330bbc64f6113d7b97c13 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -12222,9 +12222,9 @@
       "include/grpc/grpc.h", 
       "include/grpc/grpc_security.h", 
       "include/grpc/status.h", 
+      "src/core/census/census_filter.h", 
       "src/core/census/context.h", 
       "src/core/census/rpc_stat_id.h", 
-      "src/core/channel/census_filter.h", 
       "src/core/channel/channel_args.h", 
       "src/core/channel/channel_stack.h", 
       "src/core/channel/client_channel.h", 
@@ -12347,14 +12347,14 @@
       "include/grpc/grpc.h", 
       "include/grpc/grpc_security.h", 
       "include/grpc/status.h", 
+      "src/core/census/census_filter.c", 
+      "src/core/census/census_filter.h", 
       "src/core/census/context.c", 
       "src/core/census/context.h", 
       "src/core/census/grpc_context.c", 
       "src/core/census/initialize.c", 
       "src/core/census/record_stat.c", 
       "src/core/census/rpc_stat_id.h", 
-      "src/core/channel/census_filter.c", 
-      "src/core/channel/census_filter.h", 
       "src/core/channel/channel_args.c", 
       "src/core/channel/channel_args.h", 
       "src/core/channel/channel_stack.c", 
@@ -12694,9 +12694,9 @@
       "include/grpc/compression.h", 
       "include/grpc/grpc.h", 
       "include/grpc/status.h", 
+      "src/core/census/census_filter.h", 
       "src/core/census/context.h", 
       "src/core/census/rpc_stat_id.h", 
-      "src/core/channel/census_filter.h", 
       "src/core/channel/channel_args.h", 
       "src/core/channel/channel_stack.h", 
       "src/core/channel/client_channel.h", 
@@ -12805,14 +12805,14 @@
       "include/grpc/compression.h", 
       "include/grpc/grpc.h", 
       "include/grpc/status.h", 
+      "src/core/census/census_filter.c", 
+      "src/core/census/census_filter.h", 
       "src/core/census/context.c", 
       "src/core/census/context.h", 
       "src/core/census/grpc_context.c", 
       "src/core/census/initialize.c", 
       "src/core/census/record_stat.c", 
       "src/core/census/rpc_stat_id.h", 
-      "src/core/channel/census_filter.c", 
-      "src/core/channel/census_filter.h", 
       "src/core/channel/channel_args.c", 
       "src/core/channel/channel_args.h", 
       "src/core/channel/channel_stack.c", 
diff --git a/vsprojects/grpc/grpc.vcxproj b/vsprojects/grpc/grpc.vcxproj
index a87ad29d495234d741ce9f4817418521648974e0..950e385ee779238e3e0c3bbf29cd6ddfcea46f21 100644
--- a/vsprojects/grpc/grpc.vcxproj
+++ b/vsprojects/grpc/grpc.vcxproj
@@ -242,7 +242,7 @@
     <ClInclude Include="..\..\src\core\tsi\ssl_transport_security.h" />
     <ClInclude Include="..\..\src\core\tsi\transport_security.h" />
     <ClInclude Include="..\..\src\core\tsi\transport_security_interface.h" />
-    <ClInclude Include="..\..\src\core\channel\census_filter.h" />
+    <ClInclude Include="..\..\src\core\census\census_filter.h" />
     <ClInclude Include="..\..\src\core\channel\channel_args.h" />
     <ClInclude Include="..\..\src\core\channel\channel_stack.h" />
     <ClInclude Include="..\..\src\core\channel\client_channel.h" />
@@ -387,9 +387,9 @@
     </ClCompile>
     <ClCompile Include="..\..\src\core\tsi\transport_security.c">
     </ClCompile>
-    <ClCompile Include="..\..\src\core\census\grpc_context.c">
+    <ClCompile Include="..\..\src\core\census\census_filter.c">
     </ClCompile>
-    <ClCompile Include="..\..\src\core\channel\census_filter.c">
+    <ClCompile Include="..\..\src\core\census\grpc_context.c">
     </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_args.c">
     </ClCompile>
diff --git a/vsprojects/grpc/grpc.vcxproj.filters b/vsprojects/grpc/grpc.vcxproj.filters
index c8812faa85c63b31f2040b5b41f1ea939e73adac..d6ecdbba413f8a5cb8f0eedde3c76b23bc0619e1 100644
--- a/vsprojects/grpc/grpc.vcxproj.filters
+++ b/vsprojects/grpc/grpc.vcxproj.filters
@@ -64,11 +64,11 @@
     <ClCompile Include="..\..\src\core\tsi\transport_security.c">
       <Filter>src\core\tsi</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\src\core\census\grpc_context.c">
+    <ClCompile Include="..\..\src\core\census\census_filter.c">
       <Filter>src\core\census</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\src\core\channel\census_filter.c">
-      <Filter>src\core\channel</Filter>
+    <ClCompile Include="..\..\src\core\census\grpc_context.c">
+      <Filter>src\core\census</Filter>
     </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_args.c">
       <Filter>src\core\channel</Filter>
@@ -482,8 +482,8 @@
     <ClInclude Include="..\..\src\core\tsi\transport_security_interface.h">
       <Filter>src\core\tsi</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\src\core\channel\census_filter.h">
-      <Filter>src\core\channel</Filter>
+    <ClInclude Include="..\..\src\core\census\census_filter.h">
+      <Filter>src\core\census</Filter>
     </ClInclude>
     <ClInclude Include="..\..\src\core\channel\channel_args.h">
       <Filter>src\core\channel</Filter>
diff --git a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
index 06da784323d5b186af8783fe47ab1e216c04a975..acd83c6080de73d08e4e0e4fbbe20b42fa872bcc 100644
--- a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
@@ -225,7 +225,7 @@
     <ClInclude Include="..\..\include\grpc\census.h" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\src\core\channel\census_filter.h" />
+    <ClInclude Include="..\..\src\core\census\census_filter.h" />
     <ClInclude Include="..\..\src\core\channel\channel_args.h" />
     <ClInclude Include="..\..\src\core\channel\channel_stack.h" />
     <ClInclude Include="..\..\src\core\channel\client_channel.h" />
@@ -330,9 +330,9 @@
   <ItemGroup>
     <ClCompile Include="..\..\src\core\surface\init_unsecure.c">
     </ClCompile>
-    <ClCompile Include="..\..\src\core\census\grpc_context.c">
+    <ClCompile Include="..\..\src\core\census\census_filter.c">
     </ClCompile>
-    <ClCompile Include="..\..\src\core\channel\census_filter.c">
+    <ClCompile Include="..\..\src\core\census\grpc_context.c">
     </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_args.c">
     </ClCompile>
diff --git a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 2d10960a792af194cce16105f21256bf59df991b..12da3fa1e33a2a0a59ddd5c2dfbb04924ef153c2 100644
--- a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -4,11 +4,11 @@
     <ClCompile Include="..\..\src\core\surface\init_unsecure.c">
       <Filter>src\core\surface</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\src\core\census\grpc_context.c">
+    <ClCompile Include="..\..\src\core\census\census_filter.c">
       <Filter>src\core\census</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\src\core\channel\census_filter.c">
-      <Filter>src\core\channel</Filter>
+    <ClCompile Include="..\..\src\core\census\grpc_context.c">
+      <Filter>src\core\census</Filter>
     </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_args.c">
       <Filter>src\core\channel</Filter>
@@ -380,8 +380,8 @@
     </ClInclude>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\src\core\channel\census_filter.h">
-      <Filter>src\core\channel</Filter>
+    <ClInclude Include="..\..\src\core\census\census_filter.h">
+      <Filter>src\core\census</Filter>
     </ClInclude>
     <ClInclude Include="..\..\src\core\channel\channel_args.h">
       <Filter>src\core\channel</Filter>