ci(bigtable): add fake monitoring server and metric test that uses it#16266
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces an Observability Collector Server within the CI infrastructure to support end-to-end integration testing of OpenTelemetry metrics for Google Cloud C++ client libraries, starting with Bigtable. The changes include the server implementation, protobuf definitions for observability verification, and integration tests. My feedback includes a recommendation to refactor duplicated code in the server implementation to improve maintainability.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #16266 +/- ##
==========================================
- Coverage 92.27% 92.27% -0.01%
==========================================
Files 2218 2218
Lines 206654 206665 +11
==========================================
- Hits 190699 190698 -1
- Misses 15955 15967 +12 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
c8590cf to
876f2a8
Compare
|
The tsan-storage-pr failure has been addressed in a separate PR. |
| python3 -m pip uninstall -y --quiet googleapis-storage-testbench | ||
| python3 -m pip install --upgrade --user --quiet --disable-pip-version-check \ | ||
| "git+https://github.com/googleapis/storage-testbench@v0.61.0" | ||
| if python3 -m pip --version >/dev/null 2>&1; then |
There was a problem hiding this comment.
isn't this going to silent fail if python/pip is not available ? is this the desired behavior ?
There was a problem hiding this comment.
It's unlikely that python/pip are unavailable as we also manage the Dockerfiles that these tests use. If it fails silently here, then we will see failures later when an attempt to lauch the storage-testbench fail.
This PR adds a basic echo/replay server that implements the metrics service from Cloud Monitoring. The idea is to record the requests our exporter sends and then replay them back so their contents can be verified.