GcpObservability: Disable observability traces for CloudOps endpoints (#31094)

* GcpObservability: Disable observability traces for CloudOps endpoints

* Fix deps and IWYU
pull/31162/head
Yash Tibrewal 2 years ago committed by GitHub
parent 4ccb80252b
commit d7266f48f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      bazel/grpc_deps.bzl
  2. 3
      src/cpp/ext/gcp/BUILD
  3. 18
      src/cpp/ext/gcp/observability.cc

@ -190,6 +190,16 @@ def grpc_deps():
actual = "@com_github_libuv_libuv//:libuv_test",
)
native.bind(
name = "googleapis_trace_grpc_service",
actual = "@com_google_googleapis//google/devtools/cloudtrace/v2:cloudtrace_cc_grpc",
)
native.bind(
name = "googleapis_monitoring_grpc_service",
actual = "@com_google_googleapis//google/monitoring/v3:monitoring_cc_grpc",
)
if "boringssl" not in native.existing_rules():
http_archive(
name = "boringssl",

@ -41,6 +41,8 @@ grpc_cc_library(
"absl/status",
"absl/status:statusor",
"absl/types:optional",
"googleapis_trace_grpc_service",
"googleapis_monitoring_grpc_service",
"opencensus-stats",
"opencensus-trace",
"opencensus-trace-stackdriver_exporter",
@ -54,6 +56,7 @@ grpc_cc_library(
"//:gpr",
"//:grpc++_public_hdrs",
"//:grpc_opencensus_plugin",
"//:grpc_public_hdrs",
],
)

@ -20,11 +20,14 @@
#include <stdint.h>
#include <memory>
#include <string>
#include <utility>
#include "absl/status/statusor.h"
#include "absl/types/optional.h"
#include "google/devtools/cloudtrace/v2/tracing.grpc.pb.h"
#include "google/monitoring/v3/metric_service.grpc.pb.h"
#include "opencensus/exporters/stats/stackdriver/stackdriver_exporter.h"
#include "opencensus/exporters/trace/stackdriver/stackdriver_exporter.h"
#include "opencensus/stats/stats.h"
@ -32,9 +35,12 @@
#include "opencensus/trace/trace_config.h"
#include <grpcpp/opencensus.h>
#include <grpcpp/security/credentials.h>
#include <grpcpp/support/channel_arguments.h>
#include <grpcpp/support/config.h>
#include "src/cpp/ext/filters/census/grpc_plugin.h"
#include "src/cpp/ext/filters/census/open_census_call_tracer.h"
#include "src/cpp/ext/gcp/observability_config.h"
namespace grpc {
@ -49,6 +55,9 @@ constexpr uint32_t kMaxAnnotations = 128;
constexpr uint32_t kMaxMessageEvents = 128;
constexpr uint32_t kMaxLinks = 128;
constexpr char kGoogleStackdriverTraceAddress[] = "cloudtrace.googleapis.com";
constexpr char kGoogleStackdriverStatsAddress[] = "monitoring.googleapis.com";
void RegisterOpenCensusViewsForGcpObservability() {
// Register client default views for GCP observability
ClientStartedRpcsCumulative().RegisterForExport();
@ -67,6 +76,8 @@ absl::Status GcpObservabilityInit() {
}
grpc::RegisterOpenCensusPlugin();
RegisterOpenCensusViewsForGcpObservability();
ChannelArguments args;
args.SetInt(GRPC_ARG_ENABLE_OBSERVABILITY, 0);
if (config->cloud_trace.has_value()) {
opencensus::trace::TraceConfig::SetCurrentTraceParams(
{kMaxAttributes, kMaxAnnotations, kMaxMessageEvents, kMaxLinks,
@ -74,12 +85,19 @@ absl::Status GcpObservabilityInit() {
config->cloud_trace->sampling_rate)});
opencensus::exporters::trace::StackdriverOptions trace_opts;
trace_opts.project_id = config->project_id;
trace_opts.trace_service_stub =
::google::devtools::cloudtrace::v2::TraceService::NewStub(
CreateCustomChannel(kGoogleStackdriverTraceAddress,
GoogleDefaultCredentials(), args));
opencensus::exporters::trace::StackdriverExporter::Register(
std::move(trace_opts));
}
if (config->cloud_monitoring.has_value()) {
opencensus::exporters::stats::StackdriverOptions stats_opts;
stats_opts.project_id = config->project_id;
stats_opts.metric_service_stub =
google::monitoring::v3::MetricService::NewStub(CreateCustomChannel(
kGoogleStackdriverStatsAddress, GoogleDefaultCredentials(), args));
opencensus::exporters::stats::StackdriverExporter::Register(
std::move(stats_opts));
}

Loading…
Cancel
Save