Просмотр исходного кода

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

Bogdan Drutu 10 лет назад
Родитель
Сommit
9e0953c001
2 измененных файлов с 7 добавлено и 10 удалено
  1. 6 6
      src/core/surface/server.c
  2. 1 4
      src/core/surface/server_create.c

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

@@ -37,6 +37,7 @@
 #include <stdlib.h>
 #include <stdlib.h>
 #include <string.h>
 #include <string.h>
 
 
+#include <grpc/census.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 #include <grpc/support/log.h>
 #include <grpc/support/string_util.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_filter **filters, size_t filter_count,
     const grpc_channel_args *args) {
     const grpc_channel_args *args) {
   size_t i;
   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));
   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
      grpc_server_census_filter (optional) - for stats collection and tracing
      {passed in filter stack}
      {passed in filter stack}
      grpc_connected_channel_filter - for interfacing with transports */
      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 =
   server->channel_filters =
       gpr_malloc(server->channel_filter_count * sizeof(grpc_channel_filter *));
       gpr_malloc(server->channel_filter_count * sizeof(grpc_channel_filter *));
   server->channel_filters[0] = &server_surface_filter;
   server->channel_filters[0] = &server_surface_filter;
-  if (census_enabled) {
+  if (enable_census) {
     server->channel_filters[1] = &grpc_server_census_filter;
     server->channel_filters[1] = &grpc_server_census_filter;
   }
   }
   for (i = 0; i < filter_count; i++) {
   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);
   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"
 #include "src/core/surface/server.h"
 
 
 grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved) {
 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;
   size_t num_filters = 0;
   filters[num_filters++] = &grpc_compress_filter;
   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));
   GRPC_API_TRACE("grpc_server_create(%p, %p)", 2, (args, reserved));
   return grpc_server_create_from_filters(filters, num_filters, args);
   return grpc_server_create_from_filters(filters, num_filters, args);
 }
 }