On this page:
Related pages:
You can use the Database Visibility API to get, create, update, and delete Database Visibility Collectors.
Include the following headers for all Database Visibility API requests:
Accept: application/json; Content-type: application/json
JSON is currently the only supported format.
Supported API Calls
Get all Collectors
GET /controller/rest/databases/collectors
Get a Specific Collector
GET /controller/rest/databases/collectors/{configurationId}
Create a Collector
POST /controller/rest/databases/collectors/create
The JSON you send must contain the relevant Collector information. The required fields describing the Collector vary based on the type of database. See the table in the "UI Collector versus JSON Collector Configuration Field Names" section that follows for more information.
Below is a sample JSON request payload:
{ "performanceState": null, "collectorStatus": "COLLECTING_DATA", "eventSummary": null, "config": { "id": 1, "version": 0, "name": "test", "nameUnique": true, "builtIn": false, "createdBy": "user1", "createdOn": 1453317194781, "modifiedBy": "user1", "modifiedOn": 1453317194781, "type": "MYSQL", "hostname": "localhost", "useWindowsAuth": false, "username": "root", "password": "appdynamics_redacted_password", "port": 8080, "loggingEnabled": false, "databaseName": null, "failoverPartner": null, "connectAsSysdba": false, "useServiceName": false, "sid": null, "customConnectionString": null, "enterpriseDB": false, "useSSL": false, "enableOSMonitor": false, "hostOS": null, "useLocalWMI": false, "hostDomain": null, "hostUsername": null, "hostPassword": "", "certificateAuth": false, "removeLiterals": true, "sshPort": 0, "agentName": "Default Database Agent" } }
Update a Collector
- Make a GET request for the collector that you want to update.
- Copy the JSON response body that is returned by the GET request to a text editor, and modify the fields that you want to update.
Make a POST request for the collector that you want to update, and include the updated JSON.
POST /controller/rest/databases/collectors/update
Below is a sample JSON request payload:
{ "id": 1, "version": 0, "name": "localdocker_dbagent-MySQLCollector", "nameUnique": true, "builtIn": false, "createdBy": null, "createdOn": 1509725417000, "modifiedBy": null, "modifiedOn": 1509725417000, "type": "MYSQL", "hostname": "mysql", "useWindowsAuth": false, "username": "root", "password": "appdynamics_redacted_password", "port": 3306, "loggingEnabled": false, "enabled": true, "excludedSchemas": null, "databaseName": null, "failoverPartner": null, "connectAsSysdba": false, "useServiceName": false, "sid": null, "customConnectionString": null, "enterpriseDB": false, "useSSL": false, "enableOSMonitor": false, "hostOS": null, "useLocalWMI": false, "hostDomain": null, "hostUsername": null, "hostPassword": "", "dbInstanceIdentifier": null, "region": null, "certificateAuth": false, "removeLiterals": true, "sshPort": 0, "agentName": "localdocker_dbagent", "dbCyberArkEnabled": false, "dbCyberArkApplication": null, "dbCyberArkSafe": null, "dbCyberArkFolder": null, "dbCyberArkObject": null, "hwCyberArkEnabled": false, "hwCyberArkApplication": null, "hwCyberArkSafe": null, "hwCyberArkFolder": null, "hwCyberArkObject": null, "orapkiSslEnabled": false, "orasslClientAuthEnabled": false, "orasslTruststoreLoc": null, "orasslTruststoreType": null, "orasslTruststorePassword": "", "orasslKeystoreLoc": null, "orasslKeystoreType": null, "orasslKeystorePassword": "", "ldapEnabled": false, "customMetrics": null }
The JSON you send must contain all the details of the existing collector with only the fields that you want to modify changed. To ensure you have all the fields, use the Get a Specific Collector call.
Delete a Specific Collector
DELETE /controller/rest/databases/collectors/{configurationId}
Below is an example of a delete request.
DELETE /controller/rest/databases/collectors/{1}
Batch Delete Multiple Collectors
POST /controller/rest/databases/collectors/batchDelete
Send an array of the configuration Ids of the Collectors.
Below is an example of a batch delete command.
curl --user user1@customer1:password -H "Accept: application/json" -H "Content-type: application/json" -X POST -d “[1,2,3]” http://demo.appdynamics.com/controller/rest/databases/collectors/batchDelete
UI Collector versus JSON Collector Configuration Field Names
Use the table below to ensure you use the correct field names for your API calls. The Collector configuration field names are described in Configure the Database Agent to Monitor Server Hardware and Add Database Collectors.
Section | UI Collector Configuration Field Name | JSON Collector Configuration Field Name |
---|---|---|
id (AppDynamics assigns this ID to the Collector when you configure the Collector. You need this ID when doing a batch delete.) | ||
Database Type | type | |
Database Agent | agentName | |
Database | name | |
Connection Details | Hostname/IP Address | hostname |
EnterpriseDB | enterpriseDB | |
Failover Partner | failoverPartner | |
Listener Port | port | |
Custom JDBC Connection String | customConnectionString | |
Use Service Name | useServiceName | |
SID or SERVICE_NAME | sid | |
Connect as a sysdba | connectAsSysdba | |
Username | username | |
Password | password | |
Logging Enabled | ||
Hardware Monitoring | Monitor Operating System | enableOSMonitor |
Operating System | hostOS | |
Use Local WMI | useLocalWMI | |
Domain | hostDomain | |
SSH Port | sshPort | |
Use certificate | certificateAuth | |
Username | hostUsername | |
Password | hostPassword |
SSL field