Эх сурвалжийг харах

Fix the census initialization on the server. Remove duplicate initialization logic and also enable census per channel if census is initialized.

Bogdan Drutu 10 жил өмнө
parent
commit
9e0953c001

+ 6 - 6
src/core/surface/server.c

@@ -37,6 +37,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include <grpc/census.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 #include <grpc/support/string_util.h>
@@ -779,9 +780,8 @@ grpc_server *grpc_server_create_from_filters(
     const grpc_channel_filter **filters, size_t filter_count,
     const grpc_channel_args *args) {
   size_t i;
-  /* TODO(census): restore this once we finalize census filter etc.
-     int census_enabled = grpc_channel_args_is_census_enabled(args); */
-  int census_enabled = 0;
+  int enable_census =
+      grpc_channel_args_is_census_enabled(args) || census_enabled();
 
   grpc_server *server = gpr_malloc(sizeof(grpc_server));
 
@@ -815,15 +815,15 @@ grpc_server *grpc_server_create_from_filters(
      grpc_server_census_filter (optional) - for stats collection and tracing
      {passed in filter stack}
      grpc_connected_channel_filter - for interfacing with transports */
-  server->channel_filter_count = filter_count + 1u + (census_enabled ? 1u : 0u);
+  server->channel_filter_count = filter_count + 1u + (enable_census ? 1u : 0u);
   server->channel_filters =
       gpr_malloc(server->channel_filter_count * sizeof(grpc_channel_filter *));
   server->channel_filters[0] = &server_surface_filter;
-  if (census_enabled) {
+  if (enable_census) {
     server->channel_filters[1] = &grpc_server_census_filter;
   }
   for (i = 0; i < filter_count; i++) {
-    server->channel_filters[i + 1u + (census_enabled ? 1u : 0u)] = filters[i];
+    server->channel_filters[i + 1u + (enable_census ? 1u : 0u)] = filters[i];
   }
 
   server->channel_args = grpc_channel_args_copy(args);

+ 1 - 4
src/core/surface/server_create.c

@@ -40,12 +40,9 @@
 #include "src/core/surface/server.h"
 
 grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved) {
-  const grpc_channel_filter *filters[3];
+  const grpc_channel_filter *filters[2];
   size_t num_filters = 0;
   filters[num_filters++] = &grpc_compress_filter;
-  if (grpc_channel_args_is_census_enabled(args)) {
-    filters[num_filters++] = &grpc_server_census_filter;
-  }
   GRPC_API_TRACE("grpc_server_create(%p, %p)", 2, (args, reserved));
   return grpc_server_create_from_filters(filters, num_filters, args);
 }