grpc/examples/cpp
Yash Tibrewal 4bf3c5da1b
[GcpObservability C++] Backport: De-experimentalize API (#32715) (#32813)
This PR aims to de-experimentalize the APIs for GCP Observability. 

We would have ideally wanted public feedback before declaring the APIs
stable, but we need stable APIs for GA.

Changes made after API review with @markdroth @veblush, @ctiller and the
entire Core/C++ team -
* The old experimental APIs `grpc::experimental::GcpObservabilityInit`
and `grpc::experimental::GcpObservabilityClose` are now deprecated and
will be deleted after v.1.55 release.
* The new API gets rid of the Close method and follows the RAII idiom
with a single `grpc::GcpObservability::Init()` call that returns an
`GcpObservability` object, the lifetime of which controls when
observability data is flushed.
* The `GcpObservability` class could in the future add more methods. For
example, a debug method that shows the current configuration.
* Document that GcpObservability initialization and flushing (on
`GcpObservability` destruction) are blocking calls.
* Document that gRPC is still usable if GcpObservability initialization
failed. (Added a test to prove the same).
* Since we don't have a good way to flush stats and tracing with
OpenCensus, the examples required users to sleep for 25 seconds. This
sleep is now part of `GcpObservability` destruction.

Additional Implementation details -
* `GcpObservability::Init` is now marked with `GRPC_MUST_USE_RESULT` to
make sure that the results are used. We ideally want users to store it,
but this is better than nothing.
* Added a note on GCP Observability lifetime guarantees.

<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->




<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
2023-04-05 16:29:05 -07:00
..
cmake CMake's better handling c++14 requirement (#31916) 2023-01-27 09:51:31 -08:00
compression CMake's better handling c++14 requirement (#31916) 2023-01-27 09:51:31 -08:00
features Add support for systemd socket activation (#31667) 2023-01-05 14:53:33 -08:00
gcp_observability/helloworld [GcpObservability C++] Backport: De-experimentalize API (#32715) (#32813) 2023-04-05 16:29:05 -07:00
helloworld Switch to protobuf's /CMakeLists.txt instead of /cmake/CMakeLists.txt (#32678) 2023-03-22 09:14:04 -07:00
keyvaluestore CMake's better handling c++14 requirement (#31916) 2023-01-27 09:51:31 -08:00
load_balancing CMake's better handling c++14 requirement (#31916) 2023-01-27 09:51:31 -08:00
metadata CMake's better handling c++14 requirement (#31916) 2023-01-27 09:51:31 -08:00
route_guide CMake's better handling c++14 requirement (#31916) 2023-01-27 09:51:31 -08:00
README.md Docs: fix links to grpc.io tutorial pages 2020-06-16 08:47:24 -04:00

README.md

gRPC C++ Examples

For information about the other examples in this directory, see their respective README files.