Skip to content

Commit 16c101a

Browse files
committed
Add try/exception updating metrics
1 parent f6e22ca commit 16c101a

File tree

1 file changed

+28
-25
lines changed

1 file changed

+28
-25
lines changed

operator/resourcepool.py

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -178,34 +178,37 @@ async def handle_metrics(self, logger: kopf.ObjectLogger, resource_handles):
178178
logger.info("Handling metrics for resource pool")
179179
resource_handle_deficit = self.min_available - len(resource_handles)
180180

181-
ResourcePoolMetrics.resource_pool_min_available.set(
182-
labels=self.metrics_labels,
183-
value=self.min_available
184-
)
185-
186-
ResourcePoolMetrics.resource_pool_available.set(
187-
labels=self.metrics_labels,
188-
value=len(resource_handles)
189-
)
190-
191-
if resource_handle_deficit < 0:
192-
ResourcePoolMetrics.resource_pool_used_total.inc(
181+
try:
182+
ResourcePoolMetrics.resource_pool_min_available.set(
193183
labels=self.metrics_labels,
194-
value=resource_handle_deficit
184+
value=self.min_available
185+
)
186+
187+
ResourcePoolMetrics.resource_pool_available.set(
188+
labels=self.metrics_labels,
189+
value=len(resource_handles)
195190
)
196191

197-
state_labels = self.metric_state_labels
198-
state_labels['state'] = 'available'
199-
ResourcePoolMetrics.resource_pool_state.set(
200-
labels=state_labels,
201-
value=len(resource_handles)
202-
)
192+
if resource_handle_deficit < 0:
193+
ResourcePoolMetrics.resource_pool_used_total.inc(
194+
labels=self.metrics_labels,
195+
)
203196

204-
state_labels['state'] = 'used'
205-
ResourcePoolMetrics.resource_pool_state.set(
206-
labels=state_labels,
207-
value=resource_handle_deficit
208-
)
197+
state_labels = self.metric_state_labels
198+
state_labels['state'] = 'available'
199+
ResourcePoolMetrics.resource_pool_state.set(
200+
labels=state_labels,
201+
value=len(resource_handles)
202+
)
203+
204+
state_labels['state'] = 'used'
205+
ResourcePoolMetrics.resource_pool_state.set(
206+
labels=state_labels,
207+
value=resource_handle_deficit
208+
)
209+
except Exception as e:
210+
logger.error(f"Error handling metrics for resource pool: {e}")
211+
return
209212

210213
async def handle_delete(self, logger: kopf.ObjectLogger):
211214
await resourcehandle.ResourceHandle.delete_unbound_handles_for_pool(logger=logger, resource_pool=self)
@@ -214,7 +217,7 @@ async def handle_delete(self, logger: kopf.ObjectLogger):
214217
'response_time_seconds',
215218
method='manage',
216219
resource_type='resourcepool'
217-
)
220+
)
218221
async def manage(self, logger: kopf.ObjectLogger):
219222
async with self.lock:
220223
resource_handles = await resourcehandle.ResourceHandle.get_unbound_handles_for_pool(resource_pool=self, logger=logger)

0 commit comments

Comments
 (0)