Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

Commit e10741b

Browse files
committed
fixed init issues
1 parent 5a507c2 commit e10741b

3 files changed

Lines changed: 14 additions & 7 deletions

File tree

google/cloud/bigtable/data/_async/client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,8 @@ def __init__(
215215
project = _DEFAULT_BIGTABLE_EMULATOR_CLIENT
216216
# create a metrics exporter using the same client configuration
217217
self._gcp_metrics_exporter = BigtableMetricsExporter(
218+
project_id=project,
218219
credentials=credentials,
219-
project=project,
220220
client_options=client_options,
221221
)
222222
self._metrics_interceptor = MetricInterceptorType()
@@ -981,7 +981,6 @@ def __init__(
981981
handlers=[
982982
GoogleCloudMetricsHandler(
983983
exporter=client._gcp_metrics_exporter,
984-
project_id=self.client.project,
985984
instance_id=instance_id,
986985
table_id=table_id,
987986
app_profile_id=app_profile_id
@@ -1702,6 +1701,8 @@ async def close(self):
17021701
"""
17031702
Called to close the Table instance and release any resources held by it.
17041703
"""
1704+
for handler in self._metrics.handlers:
1705+
handler.close()
17051706
if self._register_instance_future:
17061707
self._register_instance_future.cancel()
17071708
await self.client._remove_instance_registration(self.instance_id, self)

google/cloud/bigtable/data/_metrics/handlers/_base.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@ def on_attempt_complete(
3333
self, attempt: CompletedAttemptMetric, op: ActiveOperationMetric
3434
) -> None:
3535
pass
36+
37+
def close(self):
38+
pass

google/cloud/bigtable/data/_metrics/handlers/gcp_exporter.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,12 @@ def __init__(self, exporter, *args, export_interval=60, **kwargs):
112112
exporter, export_interval_millis=export_interval * 1000
113113
)
114114
# use private meter provider to store instruments and views
115-
meter_provider = MeterProvider(metric_readers=[gcp_reader], views=VIEW_LIST)
116-
otel = _OpenTelemetryInstruments(meter_provider=meter_provider)
117-
super().__init__(*args, instruments=otel, project_id=exporter.roject_id, **kwargs)
115+
self.meter_provider = MeterProvider(metric_readers=[gcp_reader], views=VIEW_LIST)
116+
otel = _OpenTelemetryInstruments(meter_provider=self.meter_provider)
117+
super().__init__(*args, instruments=otel, project_id=exporter.project_id, **kwargs)
118+
119+
def close(self):
120+
self.meter_provider.shutdown()
118121

119122

120123
class BigtableMetricsExporter(MetricExporter):
@@ -131,11 +134,11 @@ class BigtableMetricsExporter(MetricExporter):
131134
- project_id: GCP project id to associate metrics with
132135
"""
133136

134-
def __init__(self, *client_args, **client_kwargs):
137+
def __init__(self, project_id: str, *client_args, **client_kwargs):
135138
super().__init__()
136139
self.client = MetricServiceClient(*client_args, **client_kwargs)
137140
self.prefix = "bigtable.googleapis.com/internal/client"
138-
self.project_id = self.client.project
141+
self.project_id = project_id
139142
self.project_name = self.client.common_project_path(self.project_id)
140143

141144
def export(

0 commit comments

Comments
 (0)