fix(#193): handle list API responses gracefully in getServers and HealthRulesAndAlerting#194
Open
alexafshar wants to merge 1 commit into
Open
Conversation
…ers and HealthRulesAndAlerting When the AppDynamics API returns a list instead of the expected dict for getEventCounts (APM/BRUM/MRUM) or getServerAvailability, the tool crashed with a fatal TypeError aborting the entire job. - AppDService.getServers: guard serverAvailabilityResult.data with an isinstance(dict) check; default availability to None with a warning log. - HealthRulesAndAlertingAPM/BRUM/MRUM extract: guard eventCounts[idx].data with an error/type check; default to zero violations so analyze() proceeds. Fixes Appdynamics#193
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #193
When the AppDynamics API returns a list instead of the expected dict for
getEventCounts(APM/BRUM/MRUM) orgetServerAvailability, the tool crashed with a fatalTypeErrorthat aborted the entire job.Changes
AppDService.getServers— GuardserverAvailabilityResult.datawith anisinstance(dict)check before key access; default availability toNonewith a warning log.HealthRulesAndAlertingAPM/BRUM/MRUMextract()— GuardeventCounts[idx].datawith an error/type check; default to zero violations soanalyze()can proceed safely.Behaviour after fix
WARNINGlog entry is emitted for each affected application/machine.0health rule violations rather than crashing.