xref: /aosp_15_r20/external/grpc-grpc/src/cpp/ext/gcp/BUILD (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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