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 = ["//test:__subpackages__"], 85 deps = [ 86 "//:gpr", 87 "//:grpc_base", 88 "//:grpc_public_hdrs", 89 "//src/core:env", 90 "//src/core:error", 91 "//src/core:json", 92 "//src/core:json_args", 93 "//src/core:json_object_loader", 94 "//src/core:json_reader", 95 "//src/core:slice", 96 "//src/core:slice_refcount", 97 "//src/core:status_helper", 98 "//src/core:validation_errors", 99 ], 100) 101 102grpc_cc_library( 103 name = "observability_logging_sink", 104 srcs = [ 105 "observability_logging_sink.cc", 106 ], 107 hdrs = [ 108 "observability_logging_sink.h", 109 ], 110 external_deps = [ 111 "absl/base:core_headers", 112 "absl/numeric:int128", 113 "absl/strings", 114 "absl/strings:str_format", 115 "absl/types:optional", 116 "google/api:monitored_resource_cc_proto", 117 "googleapis_logging_cc_proto", 118 "googleapis_logging_grpc_service", 119 "protobuf_headers", 120 ], 121 language = "c++", 122 visibility = ["//test:__subpackages__"], 123 deps = [ 124 "environment_autodetect", 125 "observability_config", 126 "//:event_engine_base_hdrs", 127 "//:gpr", 128 "//:gpr_platform", 129 "//:grpc++", 130 "//:grpc_opencensus_plugin", 131 "//src/core:default_event_engine", 132 "//src/core:env", 133 "//src/core:json", 134 "//src/core:logging_sink", 135 "//src/core:time", 136 "//src/core:uuid_v4", 137 ], 138) 139 140grpc_cc_library( 141 name = "environment_autodetect", 142 srcs = [ 143 "environment_autodetect.cc", 144 ], 145 hdrs = [ 146 "environment_autodetect.h", 147 ], 148 external_deps = [ 149 "absl/base:core_headers", 150 "absl/container:flat_hash_map", 151 "absl/functional:any_invocable", 152 "absl/meta:type_traits", 153 "absl/status", 154 "absl/status:statusor", 155 "absl/types:optional", 156 ], 157 language = "c++", 158 visibility = [ 159 "//src/cpp/ext/gcp:__subpackages__", 160 "//test:__subpackages__", 161 ], 162 deps = [ 163 "//:exec_ctx", 164 "//:gpr", 165 "//:gpr_platform", 166 "//:grpc++", 167 "//:grpc_base", 168 "//:grpc_trace", 169 "//:orphanable", 170 "//src/core:closure", 171 "//src/core:default_event_engine", 172 "//src/core:env", 173 "//src/core:error", 174 "//src/core:gcp_metadata_query", 175 "//src/core:iomgr_fwd", 176 "//src/core:load_file", 177 "//src/core:slice", 178 "//src/core:status_helper", 179 "//src/core:time", 180 ], 181) 182