Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
23ee911
refactor(o11y): rename attributes and variables to match design
haphungw May 7, 2026
fb34333
feat(o11y): instrument until_done with T2 span
haphungw May 8, 2026
ce3bbbb
test(o11y): test T2 span in until_done
haphungw May 8, 2026
2f31a6a
feat(o11y): add LRO Sleep span (T5) in until_done
haphungw May 8, 2026
0cab2b4
test(o11y): test T5 span in until_done
haphungw May 8, 2026
d587b74
feat(o11y): instrument poll with GetOperation span (T3)
haphungw May 8, 2026
e062cd2
test(o11y): test T3 span in poll
haphungw May 8, 2026
2b357a2
refactor(o11y): add _with_options variants for unit pollers
haphungw May 8, 2026
a019c96
chore: bump google-cloud-lro version to 1.7.0
haphungw May 8, 2026
879d8e3
feat(o11y): regenerate all clients with LRO tracing
haphungw May 8, 2026
80ef2a3
feat(o11y): regenerate all clients with spec-compliant span attributes
haphungw May 9, 2026
6d60d14
fix(o11y): allow dead code on get_poller_options in dynamic stub
haphungw May 9, 2026
51f01d2
feat(o11y): capture current span as T2 longrunning span
haphungw May 9, 2026
824b62f
feat(o11y): declare placeholder attributes on T3 LRO poll span
haphungw May 9, 2026
864e875
fix(o11y): regenerate workflows-v1 to declare LRO status placeholder
haphungw May 9, 2026
75f2fd5
feat(o11y): implement error attributes mapping and tests in LRO poller
haphungw May 9, 2026
5ce8a6d
format assertions in aip151.rs unit tests
haphungw May 9, 2026
7fcded7
fix(o11y): regenerate all clients to declare longrunning status place…
haphungw May 9, 2026
34decc3
test(o11y): add Showcase E2E mock LRO tracing integration test
haphungw May 9, 2026
acbca47
test(o11y): add Text-to-Speech live E2E LRO tracing integration test
haphungw May 9, 2026
11416ec
fix GCS cleanup parameter and drop parent span before force flush
haphungw May 9, 2026
b0d18cc
test(o11y): add fully hermetic offline E2E LRO tracing integration test
haphungw May 9, 2026
e4f3650
feat(o11y): record gcp.resource.destination.id in LRO poller and poll…
haphungw May 9, 2026
b1e1532
test(o11y): add destination ID assertions in unit tests
haphungw May 9, 2026
baf4e2c
test(o11y): fix flaky duration check in hermetic E2E LRO span finder
haphungw May 9, 2026
d077b7d
test(o11y): run cargo fmt on updated E2E test targets
haphungw May 9, 2026
4a90345
test(o11y): gate hermetic_lro test module under google_cloud_unstable…
haphungw May 9, 2026
45219e5
refactor(o11y): map non-RPC LRO errors to specific OTel error types
haphungw May 9, 2026
35f6866
refactor(o11y): explicitly link parent context in poll attempt spans
haphungw May 9, 2026
69d1732
test(o11y): add permanent LRO startup failure tracing unit test
haphungw May 9, 2026
4069912
refactor(o11y): deprecate legacy poller construction helpers that omi…
haphungw May 9, 2026
646b6fc
test(o11y): verify with_tracing runtime configuration in negative uni…
haphungw May 9, 2026
545e30f
refactor(o11y): format poller and tests in aip151.rs
haphungw May 9, 2026
9f23713
test(o11y): allow deprecations in aip151.rs unit tests to resolve com…
haphungw May 9, 2026
60764c7
test(o11y): align Cargo.toml dependency spacing
haphungw May 9, 2026
6fdb25f
refactor(o11y): conditionally create LRO child spans based on runtime…
haphungw May 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 4 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ google-cloud-api = { default-features = false, version = "1.6.0", path =
google-cloud-iam-v1 = { default-features = false, version = "1.9.0", path = "src/generated/iam/v1" }
google-cloud-location = { default-features = false, version = "1.9.0", path = "src/generated/cloud/location" }
google-cloud-longrunning = { default-features = false, version = "1.10.0", path = "src/generated/longrunning" }
google-cloud-lro = { default-features = false, version = "1.6.0", path = "src/lro" }
google-cloud-lro = { default-features = false, version = "1.7.0", path = "src/lro" }
google-cloud-rpc = { default-features = false, version = "1.5.0", path = "src/generated/rpc/types", package = "google-cloud-rpc" }
google-cloud-type = { default-features = false, version = "1.5.0", path = "src/generated/type" }
# These are used by specific generated libraries.
Expand Down
108 changes: 84 additions & 24 deletions src/generated/api/apikeys/v2/src/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ pub mod api_keys {
type Operation = google_cloud_lro::internal::Operation<crate::model::Key, wkt::Empty>;
let polling_error_policy = self.0.stub.get_polling_error_policy(&self.0.options);
let polling_backoff_policy = self.0.stub.get_polling_backoff_policy(&self.0.options);
let poller_options = self.0.stub.get_poller_options(&self.0.options);

let stub = self.0.stub.clone();
let mut options = self.0.options.clone();
Expand All @@ -146,12 +147,26 @@ pub mod api_keys {
Ok(Operation::new(op))
};

google_cloud_lro::internal::new_unit_metadata_poller(
polling_error_policy,
polling_backoff_policy,
start,
query,
)
let span = tracing::info_span!(
"google_cloud_apikeys_v2::client::ApiKeys::create_key",
"gcp.rpc.method" = "google_cloud_apikeys_v2::client::ApiKeys::create_key",
"gcp.longrunning.operation_name" = tracing::field::Empty,
"otel.status_code" = tracing::field::Empty,
"rpc.response.status_code" = tracing::field::Empty,
"error.type" = tracing::field::Empty,
"gcp.longrunning.status_code" = tracing::field::Empty,
"gcp.resource.destination.id" = tracing::field::Empty
);

span.in_scope(|| {
google_cloud_lro::internal::new_unit_metadata_poller_with_options(
polling_error_policy,
polling_backoff_policy,
start,
query,
poller_options,
)
})
}

/// Sets the value of [parent][crate::model::CreateKeyRequest::parent].
Expand Down Expand Up @@ -479,6 +494,7 @@ pub mod api_keys {
type Operation = google_cloud_lro::internal::Operation<crate::model::Key, wkt::Empty>;
let polling_error_policy = self.0.stub.get_polling_error_policy(&self.0.options);
let polling_backoff_policy = self.0.stub.get_polling_backoff_policy(&self.0.options);
let poller_options = self.0.stub.get_poller_options(&self.0.options);

let stub = self.0.stub.clone();
let mut options = self.0.options.clone();
Expand All @@ -501,12 +517,26 @@ pub mod api_keys {
Ok(Operation::new(op))
};

google_cloud_lro::internal::new_unit_metadata_poller(
polling_error_policy,
polling_backoff_policy,
start,
query,
)
let span = tracing::info_span!(
"google_cloud_apikeys_v2::client::ApiKeys::update_key",
"gcp.rpc.method" = "google_cloud_apikeys_v2::client::ApiKeys::update_key",
"gcp.longrunning.operation_name" = tracing::field::Empty,
"otel.status_code" = tracing::field::Empty,
"rpc.response.status_code" = tracing::field::Empty,
"error.type" = tracing::field::Empty,
"gcp.longrunning.status_code" = tracing::field::Empty,
"gcp.resource.destination.id" = tracing::field::Empty
);

span.in_scope(|| {
google_cloud_lro::internal::new_unit_metadata_poller_with_options(
polling_error_policy,
polling_backoff_policy,
start,
query,
poller_options,
)
})
}

/// Sets the value of [key][crate::model::UpdateKeyRequest::key].
Expand Down Expand Up @@ -612,6 +642,7 @@ pub mod api_keys {
type Operation = google_cloud_lro::internal::Operation<crate::model::Key, wkt::Empty>;
let polling_error_policy = self.0.stub.get_polling_error_policy(&self.0.options);
let polling_backoff_policy = self.0.stub.get_polling_backoff_policy(&self.0.options);
let poller_options = self.0.stub.get_poller_options(&self.0.options);

let stub = self.0.stub.clone();
let mut options = self.0.options.clone();
Expand All @@ -634,12 +665,26 @@ pub mod api_keys {
Ok(Operation::new(op))
};

google_cloud_lro::internal::new_unit_metadata_poller(
polling_error_policy,
polling_backoff_policy,
start,
query,
)
let span = tracing::info_span!(
"google_cloud_apikeys_v2::client::ApiKeys::delete_key",
"gcp.rpc.method" = "google_cloud_apikeys_v2::client::ApiKeys::delete_key",
"gcp.longrunning.operation_name" = tracing::field::Empty,
"otel.status_code" = tracing::field::Empty,
"rpc.response.status_code" = tracing::field::Empty,
"error.type" = tracing::field::Empty,
"gcp.longrunning.status_code" = tracing::field::Empty,
"gcp.resource.destination.id" = tracing::field::Empty
);

span.in_scope(|| {
google_cloud_lro::internal::new_unit_metadata_poller_with_options(
polling_error_policy,
polling_backoff_policy,
start,
query,
poller_options,
)
})
}

/// Sets the value of [name][crate::model::DeleteKeyRequest::name].
Expand Down Expand Up @@ -719,6 +764,7 @@ pub mod api_keys {
type Operation = google_cloud_lro::internal::Operation<crate::model::Key, wkt::Empty>;
let polling_error_policy = self.0.stub.get_polling_error_policy(&self.0.options);
let polling_backoff_policy = self.0.stub.get_polling_backoff_policy(&self.0.options);
let poller_options = self.0.stub.get_poller_options(&self.0.options);

let stub = self.0.stub.clone();
let mut options = self.0.options.clone();
Expand All @@ -741,12 +787,26 @@ pub mod api_keys {
Ok(Operation::new(op))
};

google_cloud_lro::internal::new_unit_metadata_poller(
polling_error_policy,
polling_backoff_policy,
start,
query,
)
let span = tracing::info_span!(
"google_cloud_apikeys_v2::client::ApiKeys::undelete_key",
"gcp.rpc.method" = "google_cloud_apikeys_v2::client::ApiKeys::undelete_key",
"gcp.longrunning.operation_name" = tracing::field::Empty,
"otel.status_code" = tracing::field::Empty,
"rpc.response.status_code" = tracing::field::Empty,
"error.type" = tracing::field::Empty,
"gcp.longrunning.status_code" = tracing::field::Empty,
"gcp.resource.destination.id" = tracing::field::Empty
);

span.in_scope(|| {
google_cloud_lro::internal::new_unit_metadata_poller_with_options(
polling_error_policy,
polling_backoff_policy,
start,
query,
poller_options,
)
})
}

/// Sets the value of [name][crate::model::UndeleteKeyRequest::name].
Expand Down
11 changes: 11 additions & 0 deletions src/generated/api/apikeys/v2/src/stub.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,4 +157,15 @@ pub trait ApiKeys: std::fmt::Debug + Send + Sync {
) -> std::sync::Arc<dyn google_cloud_gax::polling_backoff_policy::PollingBackoffPolicy> {
std::sync::Arc::new(google_cloud_gax::exponential_backoff::ExponentialBackoff::default())
}

/// Returns the poller options.
///
/// When mocking, this method is typically irrelevant. Do not try to verify
/// it is called by your mocks.
fn get_poller_options(
&self,
_options: &crate::RequestOptions,
) -> google_cloud_lro::internal::PollerOptions {
google_cloud_lro::internal::PollerOptions::default()
}
}
14 changes: 14 additions & 0 deletions src/generated/api/apikeys/v2/src/stub/dynamic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,12 @@ pub trait ApiKeys: std::fmt::Debug + Send + Sync {
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_backoff_policy::PollingBackoffPolicy>;

#[allow(dead_code)]
fn get_poller_options(
&self,
options: &crate::RequestOptions,
) -> google_cloud_lro::internal::PollerOptions;
}

/// All implementations of [super::ApiKeys] also implement [ApiKeys].
Expand Down Expand Up @@ -179,4 +185,12 @@ impl<T: super::ApiKeys> ApiKeys for T {
) -> std::sync::Arc<dyn google_cloud_gax::polling_backoff_policy::PollingBackoffPolicy> {
T::get_polling_backoff_policy(self, options)
}

#[allow(dead_code)]
fn get_poller_options(
&self,
options: &crate::RequestOptions,
) -> google_cloud_lro::internal::PollerOptions {
T::get_poller_options(self, options)
}
}
10 changes: 10 additions & 0 deletions src/generated/api/apikeys/v2/src/tracing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,16 @@ where
) -> std::sync::Arc<dyn google_cloud_gax::polling_backoff_policy::PollingBackoffPolicy> {
self.inner.get_polling_backoff_policy(options)
}

fn get_poller_options(
&self,
options: &crate::RequestOptions,
) -> google_cloud_lro::internal::PollerOptions {
let mut opts = self.inner.get_poller_options(options);
let details = google_cloud_lro::internal::TracingDetails::default();
opts.tracing = Some(details);
opts
}
}

pub(crate) mod info {
Expand Down
Loading
Loading