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/numeric:int128", 119 "absl/strings", 120 "absl/strings:str_format", 121 "absl/types:optional", 122 "google/api:monitored_resource_cc_proto", 123 "googleapis_logging_cc_proto", 124 "googleapis_logging_grpc_service", 125 "protobuf_headers", 126 ], 127 language = "c++", 128 visibility = ["//test:__subpackages__"], 129 deps = [ 130 "environment_autodetect", 131 "observability_config", 132 "//:channel_arg_names", 133 "//:event_engine_base_hdrs", 134 "//:gpr", 135 "//:gpr_platform", 136 "//:grpc++", 137 "//:grpc_opencensus_plugin", 138 "//src/core:default_event_engine", 139 "//src/core:env", 140 "//src/core:json", 141 "//src/core:logging_sink", 142 "//src/core:time", 143 "//src/core:uuid_v4", 144 ], 145) 146 147grpc_cc_library( 148 name = "environment_autodetect", 149 srcs = [ 150 "environment_autodetect.cc", 151 ], 152 hdrs = [ 153 "environment_autodetect.h", 154 ], 155 external_deps = [ 156 "absl/base:core_headers", 157 "absl/container:flat_hash_map", 158 "absl/functional:any_invocable", 159 "absl/status", 160 "absl/status:statusor", 161 "absl/types:optional", 162 ], 163 language = "c++", 164 visibility = [ 165 "//src/cpp/ext/gcp:__subpackages__", 166 "//test:__subpackages__", 167 ], 168 deps = [ 169 "//:exec_ctx", 170 "//:gpr", 171 "//:gpr_platform", 172 "//:grpc++", 173 "//:grpc_base", 174 "//:grpc_trace", 175 "//:iomgr", 176 "//:orphanable", 177 "//src/core:closure", 178 "//src/core:default_event_engine", 179 "//src/core:env", 180 "//src/core:error", 181 "//src/core:gcp_metadata_query", 182 "//src/core:iomgr_fwd", 183 "//src/core:load_file", 184 "//src/core:slice", 185 "//src/core:status_helper", 186 "//src/core:time", 187 ], 188) 189