1# gRPC Bazel BUILD file. 2# 3# Copyright 2022 gRPC authors. 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17load( 18 "//bazel:grpc_build_system.bzl", 19 "grpc_cc_library", 20) 21 22licenses(["reciprocal"]) 23 24package( 25 default_visibility = ["//visibility:public"], 26 features = [ 27 "layering_check", 28 ], 29) 30 31grpc_cc_library( 32 name = "observability", 33 srcs = [ 34 "observability.cc", 35 ], 36 hdrs = [ 37 "//:include/grpcpp/ext/gcp_observability.h", 38 ], 39 external_deps = [ 40 "absl/status", 41 "absl/status:statusor", 42 "absl/strings", 43 "absl/time", 44 "absl/types:optional", 45 "google/api:monitored_resource_cc_proto", 46 "googleapis_monitoring_grpc_service", 47 "googleapis_trace_grpc_service", 48 "opencensus-stats", 49 "opencensus-stats-stackdriver_exporter", 50 "opencensus-trace", 51 "opencensus-trace-stackdriver_exporter", 52 ], 53 language = "c++", 54 visibility = ["//:__subpackages__"], 55 deps = [ 56 "environment_autodetect", 57 "observability_config", 58 "observability_logging_sink", 59 "//:gpr", 60 "//:grpc", 61 "//:grpc++", 62 "//:grpc++_base", 63 "//:grpc_opencensus_plugin", 64 "//src/core:logging_filter", 65 "//src/core:notification", 66 ], 67) 68 69grpc_cc_library( 70 name = "observability_config", 71 srcs = [ 72 "observability_config.cc", 73 ], 74 hdrs = [ 75 "observability_config.h", 76 ], 77 external_deps = [ 78 "absl/status", 79 "absl/status:statusor", 80 "absl/strings", 81 "absl/types:optional", 82 ], 83 language = "c++", 84 visibility = [ 85 "//test:__subpackages__", 86 "@grpc:grpc_python_observability", 87 ], 88 deps = [ 89 "//:gpr", 90 "//:grpc_base", 91 "//:grpc_public_hdrs", 92 "//:iomgr", 93 "//src/core:env", 94 "//src/core:error", 95 "//src/core:error_utils", 96 "//src/core:json", 97 "//src/core:json_args", 98 "//src/core:json_object_loader", 99 "//src/core:json_reader", 100 "//src/core:load_file", 101 "//src/core:slice", 102 "//src/core:slice_refcount", 103 "//src/core:status_helper", 104 "//src/core:validation_errors", 105 ], 106) 107 108grpc_cc_library( 109 name = "observability_logging_sink", 110 srcs = [ 111 "observability_logging_sink.cc", 112 ], 113 hdrs = [ 114 "observability_logging_sink.h", 115 ], 116 external_deps = [ 117 "absl/base:core_headers", 118 "absl/log:log", 119 "absl/numeric:int128", 120 "absl/strings", 121 "absl/strings:str_format", 122 "absl/types:optional", 123 "google/api:monitored_resource_cc_proto", 124 "googleapis_logging_cc_proto", 125 "googleapis_logging_grpc_service", 126 "protobuf_headers", 127 ], 128 language = "c++", 129 visibility = ["//test:__subpackages__"], 130 deps = [ 131 "environment_autodetect", 132 "observability_config", 133 "//:channel_arg_names", 134 "//:event_engine_base_hdrs", 135 "//:gpr", 136 "//:gpr_platform", 137 "//:grpc++", 138 "//:grpc_opencensus_plugin", 139 "//src/core:default_event_engine", 140 "//src/core:env", 141 "//src/core:json", 142 "//src/core:logging_sink", 143 "//src/core:time", 144 "//src/core:uuid_v4", 145 ], 146) 147 148grpc_cc_library( 149 name = "environment_autodetect", 150 srcs = [ 151 "environment_autodetect.cc", 152 ], 153 hdrs = [ 154 "environment_autodetect.h", 155 ], 156 external_deps = [ 157 "absl/base:core_headers", 158 "absl/container:flat_hash_map", 159 "absl/functional:any_invocable", 160 "absl/log:check", 161 "absl/log:log", 162 "absl/status", 163 "absl/status:statusor", 164 "absl/types:optional", 165 ], 166 language = "c++", 167 visibility = [ 168 "//src/cpp/ext/gcp:__subpackages__", 169 "//test:__subpackages__", 170 ], 171 deps = [ 172 "//:exec_ctx", 173 "//:gpr", 174 "//:gpr_platform", 175 "//:grpc++", 176 "//:grpc_base", 177 "//:grpc_trace", 178 "//:iomgr", 179 "//:orphanable", 180 "//src/core:closure", 181 "//src/core:default_event_engine", 182 "//src/core:env", 183 "//src/core:error", 184 "//src/core:gcp_metadata_query", 185 "//src/core:iomgr_fwd", 186 "//src/core:load_file", 187 "//src/core:slice", 188 "//src/core:status_helper", 189 "//src/core:time", 190 ], 191) 192