Skip to content

feat: add SolarWinds provider for pulling alerts via SWIS API#6277

Open
vasquezmyguy-collab wants to merge 1 commit intokeephq:mainfrom
vasquezmyguy-collab:feat/solarwinds-provider
Open

feat: add SolarWinds provider for pulling alerts via SWIS API#6277
vasquezmyguy-collab wants to merge 1 commit intokeephq:mainfrom
vasquezmyguy-collab:feat/solarwinds-provider

Conversation

@vasquezmyguy-collab
Copy link
Copy Markdown

SolarWinds Provider Implementation

/claim #3526

Summary

This PR adds a new SolarWinds provider to Keep that polls the SolarWinds SWIS REST API for alerts.

Features

  • Polling Provider: Pulls active and recently resolved alerts from SolarWinds NPM/NCM via SWQL queries
  • Webhook Support: Includes _format_alert method for push/webhook alerts from SolarWinds
  • Authentication: Supports hostname, username, password with configurable port (default 17778) and HTTPS toggle (default True)
  • Severity Mapping: Maps SolarWinds severity levels (Critical, Warning, Informational, etc.) to Keep AlertSeverity
  • Status Mapping: Maps SolarWinds alert states (Active, Acknowledged, Resolved, Cleared) to Keep AlertStatus
  • Node Details: Enriches alerts with node information (hostname, IP, node URL)
  • Mock Data: Includes sample alert data for testing and documentation

Files Added

  • keep/providers/solarwinds_provider/__init__.py
  • keep/providers/solarwinds_provider/solarwinds_provider.py
  • keep/providers/solarwinds_provider/alerts_mock.py

Testing

  • Provider follows the same pattern as other polling providers (e.g., Centreon, Site24x7)
  • Validated authentication via SWQL query against Orion.AlertActive
  • Tested SWQL queries for both active and resolved alerts

…#3526)

- Implements SolarWinds provider that polls the SWIS REST API for alerts
- Uses SWQL queries to fetch active and recently resolved alerts
- Auth config: hostname, username, password (port default 17778, use_https default True)
- Converts SolarWinds alert data to Keep AlertDto format
- Supports both polling (_get_alerts) and push/webhook (_format_alert)
- Maps SolarWinds severity and status to Keep equivalents
- Adds mock alert data for testing
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Apr 22, 2026
@github-actions
Copy link
Copy Markdown
Contributor

No linked issues found. Please add the corresponding issues in the pull request description.
Use GitHub automation to close the issue when a PR is merged

@dosubot dosubot Bot added Feature A new feature Provider Providers related issues labels Apr 22, 2026
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


vasquezmyguy-collab seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🙋 Bounty claim Feature A new feature Provider Providers related issues size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants