MCPcopy Create free account
hub / github.com/AgentOps-AI/agentops / _should_instrument_package

Function _should_instrument_package

agentops/instrumentation/__init__.py:238–288  ·  view source on GitHub ↗

Determine if a package should be instrumented based on current state. Handles special cases for agentic libraries and providers.

(package_name: str)

Source from the content-addressed store, hash-verified

236
237
238def _should_instrument_package(package_name: str) -> bool:
239 """
240 Determine if a package should be instrumented based on current state.
241 Handles special cases for agentic libraries and providers.
242 """
243 global _has_agentic_library
244
245 # If already instrumented by AgentOps (using our refined check), skip.
246 if _is_package_instrumented(package_name):
247 logger.debug(f"_should_instrument_package: '{package_name}' already instrumented by AgentOps. Skipping.")
248 return False
249
250 is_target_agentic = package_name in AGENTIC_LIBRARIES
251 is_target_provider = package_name in PROVIDERS
252
253 if not is_target_agentic and not is_target_provider:
254 logger.debug(
255 f"_should_instrument_package: '{package_name}' is not a targeted provider or agentic library. Skipping."
256 )
257 return False
258
259 if _has_agentic_library:
260 # An agentic library is already active.
261 if is_target_agentic:
262 logger.debug(
263 f"AgentOps: An agentic library is active. Skipping instrumentation for subsequent agentic library '{package_name}'."
264 )
265 return False
266 if is_target_provider:
267 logger.debug(
268 f"AgentOps: An agentic library is active. Skipping instrumentation for provider '{package_name}'."
269 )
270 return False
271 else:
272 # No agentic library is active yet.
273 if is_target_agentic:
274 logger.debug(
275 f"AgentOps: '{package_name}' is the first-targeted agentic library. Will uninstrument providers if any are/become active."
276 )
277 _uninstrument_providers()
278 return True
279 if is_target_provider:
280 logger.debug(
281 f"_should_instrument_package: '{package_name}' is a provider, no agentic library active. Allowing."
282 )
283 return True
284
285 logger.debug(
286 f"_should_instrument_package: Defaulting to False for '{package_name}' (state: _has_agentic_library={_has_agentic_library})"
287 )
288 return False
289
290
291def _perform_instrumentation(package_name: str):

Callers 1

_perform_instrumentationFunction · 0.85

Calls 2

_is_package_instrumentedFunction · 0.85
_uninstrument_providersFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…