-
Notifications
You must be signed in to change notification settings - Fork 984
feat: Add CloudWatch Synthetics Canary Analysis to Application Signals MCP Server #1471
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
df0806c
to
39ae4ac
Compare
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Outdated
Show resolved
Hide resolved
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Outdated
Show resolved
Hide resolved
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Show resolved
Hide resolved
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Show resolved
Hide resolved
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Fixed
Show fixed
Hide fixed
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Fixed
Show fixed
Hide fixed
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Fixed
Show fixed
Hide fixed
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Fixed
Show fixed
Hide fixed
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Fixed
Show fixed
Hide fixed
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Fixed
Show fixed
Hide fixed
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/server.py
Fixed
Show fixed
Hide fixed
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1471 +/- ##
==========================================
+ Coverage 89.48% 89.49% +0.01%
==========================================
Files 729 730 +1
Lines 50584 51317 +733
Branches 7990 8164 +174
==========================================
+ Hits 45265 45928 +663
- Misses 3453 3474 +21
- Partials 1866 1915 +49 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/aws_clients.py
Outdated
Show resolved
Hide resolved
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Outdated
Show resolved
Hide resolved
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Outdated
Show resolved
Hide resolved
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/canary_utils.py
Fixed
Show fixed
Hide fixed
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/server.py
Outdated
Show resolved
Hide resolved
src/cloudwatch-appsignals-mcp-server/awslabs/cloudwatch_appsignals_mcp_server/server.py
Outdated
Show resolved
Hide resolved
0fc12d8
to
0313607
Compare
- Added missing AWS client mocks for canary_utils module (lambda_client, logs_client, synthetics_client) - Renamed conflicting mock_aws_clients fixture in test_canary_utils.py to mock_canary_clients - Fixed fixture isolation issues that caused canary tests to fail with authentication errors - All 28 canary failure analysis tests now pass consistently - Improved test coverage from 383/389 to 387/389 tests passing (96% → 99.5% pass rate)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are there so many new changes? Previously the PR was ~2K lines of code changes and now it is approaching 7K
Just adding more unit test as it's (88.99% of diff hit (target 89.48%)) which causing check failure |
~0.5% additional test coverage results in 5K more lines of code? |
Originally it was in 35% |
src/cloudwatch-appsignals-mcp-server/cloudwatch-appsignals-mcp-server-coverage.xml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM now. Thx
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM ty
Add CloudWatch Synthetics Canary Analysis to Application Signals MCP Server
Summary
Changes
Extended the CloudWatch Application Signals MCP Server with comprehensive CloudWatch Synthetics canary analysis capabilities:
canary_utils.py
: Utility functions for canary failure analysis, IAM role validation, artifact retrieval, and debuggingserver.py
: Addedanalyze_canary_failures
tool for comprehensive canary failure investigationaws_clients.py
: Added Synthetics, S3, IAM, Lambda, and STS clients; cleaned up debug loggingREADME.md
: Added documentation for canary analysis capabilitiestest_canary_utils.py
User experience
Before: Users could only analyze Application Signals metrics and traces, with no visibility into CloudWatch Synthetics canary failures
After: Users can now:
Key Features Added
Checklist
Is this a breaking change? (Y/N) N
RFC issue number: N/A
Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the project license.
Reference: https://quip-amazon.com/J1eLAngUZYMB/Cloudwatch-Synthetics-MCP-Server-using-API
Testing


