cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to export the list of all Custom Dashboards in the controller into a format like JSON or XML?

Amartya.Jha
New Member

 

Is there a way you can export Dashboards in any format like JSON or XML?

 

^ Edited by @Ryan.Paredez to include the location of the original comment.

 

Note: This comment was split off into its own post from this original post: How to export the list of all Custom Dashboards in the controller into a file?

6 REPLIES 6

Nawaz Ali.Mohammad
AppDynamics Team

Hello Amartya,

 

If you export the custom dashboards from "Dashboards & Reports", I see that the dashboard by default is being exported as .json file. I have attached a gif recording of the same.

Export.gif

Is there a way to export all the dashboards at once via command line ?

 

We would like to set up an automated way of exporting all custom dashboards at regular intervals.

 

Hi There

 

You can create a simple script to query all the dashboard ID's

https://<controller URL>/controller/restui/dashboards/getPermissionsForDashboards

 

Then just loop through the dashboard id's, example below GET Query

https://<controller URL>/controller/CustomDashboardImportExportServlet?dashboardId=1234

 

We used a Python script to do this task, for regular backups of teh dashboards into JSON backups format

 

Ciao



Found something helpful? Click the Accept as Solution button to help others find answers faster.
Liked something? Click the Thumbs Up button.

Learn more about me in the Community Member Spotlight Q & A

Thanks for the tip @Mario.Morelli .

 

I tried a simple curl test to the url https://<controller URL>/controller/restui/dashboards/getPermissionsForDashboards and I got an error.

 

curl --user xxxxxx@xxxxx:xxxx https://appdynamics_controller:8181/controller/restui/dashboards/getPermissionsForDashboards

 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Unauthorized</title>
</head>
<body>
HTTP Error 401 Unauthorized
<p/>
This request requires HTTP authentication
</body>
</html>

 

Is this expected ? HTTP is blocked in our environment, so cant test that. Also, we are going through a LB.

Hi Vishwanath

 

My Apologies, I gave you the incorrect details, please find below method to query it:)

 

1) Get the JESSIONID and X-CSRF-TOKEN with user having permissions

curl -i --user <USERNAME>@<Account>:<PASSWORD> https://<Controller-URL>/controller/auth?action=login

 

2) Run the following CURL call with JESSIONID and X-CSRF-TOKEN from step 1?

curl -i -H "X-CSRF-TOKEN:<TOKEN FROM ABOVE>" -H "Cookie: JSESSIONID=<JSESSION ID FROM ABOVE>; X-CSRF-TOKEN=<TOKEN>;" -H "Content-Type: application/json" -H "Accept: application/json" https://<Controller URL>/controller/restui/dashboards/getAllDashboardsByType/false


Example below
curl -i -H "Cookie:JSESSIONID=9b81672143e228e4eb73fdea89a9;" -H "X-CSRF-TOKEN:6fece457az197155a8f68320cfa781eaeb88991b" -H "Content-Type: application/json" -H "Accept: application/json" https://<controller url>/controller/restui/dashboards/getAllDashboardsByType/false"

 

 

This will output all dashboards, with one of the attributes being the Dashboard ID, which you can then use in the last query

https://<controller url>/controller/CustomDashboardImportExportServlet?dashboardId=<dashboard ID>

 

Ciao

 

 



Found something helpful? Click the Accept as Solution button to help others find answers faster.
Liked something? Click the Thumbs Up button.

Learn more about me in the Community Member Spotlight Q & A

Thanks a lot! Much appreciated.