Hi everyone,
I am looking to integrate our SolarWinds DPA database performance metrics into our central Elasticsearch cluster
As a data streaming engineer, my goal is to extract the query wait times, execution counts, and live active session data (with the full SQL text) that DPA collects from our monitored external databases.
Here is what I have found so far:
- Log Files: The files in
[DPA-Install-Dir]/iwc/tomcat/logs/ only contain DPA's internal Tomcat/Java application health, not the actual database telemetry. - REST API: The built-in Swagger API endpoints (
/iwc/api/...) seem to be management-only (registering instances, managing users, etc.) and do not expose endpoints for extracting the raw query performance data or live QuickPoll sessions. - Direct Database Querying: I successfully wrote a Python script to connect directly to the SQL Server
dpa_repository database. By joining tables like CONSW_1 (for live sessions) or CON_SQL_SUM_1 with CONST_1 (for the SQL text hashes), I can stream the data to Elastic.
My questions for the community:
- Is querying the
dpa_repository database directly the only officially supported way to extract this telemetry, or is there a hidden/undocumented REST API endpoint for data extraction? - Does DPA have any native webhook or forwarding mechanisms to push aggregated metric data out to third-party tools like Kafka, Logstash, or HTTP endpoints?
- If direct SQL querying is the only way, are there any specific repository tables or views you recommend using to avoid locking issues on the QuickPoll tables while DPA is actively writing to them?
Thanks in advance for the architecture advice!