17 Exportación de un Dashoard de Datadog en JSON - xavisan/Datadog GitHub Wiki

Una de las funcionalidades interesantes de Datadog es la exportación de un Dashboard generado, en un fichero JSON, el que posteriormente podremos modificar manualmente, realizar nuestros cambios y poder subirlo nuevamente mediante su proceso de importación.

El procedimiento de exportación es realmente simple, en nuestro ejemplo dispongo de este Dashboard que se ha realizado a modo de prueba,

Un Dashboard muy sencillo sin complicaciones, para realizar la exportación a JSON, pulsaremos en el botón de la rueda dentada, apareciendo el desplegable:

Sobre este, pusaremos sobre “Export dashboard JSON”, este descargará directamente un fichero con la configuración de nuestro Dashboard en formato JSON, el problema de este fichero es que no está identado, es decir está todo en una única línea, con lo que se hace bastante ilegible para poder ser modificado posteriormente.   En nuestro ejemplo el “código” que ha estado cortado por saltos de línea para poder visualizarlo correctamente es el siguiente:

{"title":"EKS TEST","description":"","widgets":[{"id":37355100xxxxxxxx,"definition":{"type":"toplist",

`"requests":[{"q":"top(avg:system.load.1{*} by {host}, 10, 'mean', 'desc')"}],`

`"title":"Avg of system.load.1 over * by host"}},{"id":85885xxxxx049xxx,"definition"`

    `:{"type":"timeseries","requests":[{"q":"top(avg:system.cpu.user{*} by {service}, 10, 'mean', 'desc')",`

        `"display_type":"line","style":{"palette":"dog_classic","line_type":"solid","line_width":"normal"}}],"yaxis":{"label":"","scale":"linear","min":"auto","max":"auto","include_zero":true},`

        `"title":"Avg of system.cpu.user over * by service","show_legend":false,"legend_size":"0"}},`

        `{"id":8057955431903508,"definition":{"type":"timeseries","requests":[{"q":"avg:system.cpu.user{*}",`

            `"display_type":"line","style":{"palette":"dog_classic","line_type":"solid","line_width":"normal"}}],`

            `"yaxis":{"label":"","scale":"linear","min":"auto","max":"auto","include_zero":true},"title":"Avg of system.cpu.user over *",`

                `"show_legend":false,"legend_size":"0"}},{"id":28xxxxxxx7105xxxxx,"definition":{"type":"check_status","title":"Agent Up Working",`

                    `"check":"kubernetes.kubelet.check.ping","grouping":"cluster","group_by":[],"tags":["*"]}},{"id":4168267465123914,"definition":`

                        `{"type":"timeseries","requests":[{"q":"avg:docker.cpu.usage{*}","display_type":"line","style":{"palette":"dog_classic","line_type":"solid",`

                            `"line_width":"normal"}}],"yaxis":{"label":"","scale":"linear","min":"auto","max":"auto","include_zero":true},`

                            `"title":"Docker CPU usage","show_legend":false,"legend_size":"0"}},{"id":447549545278352,"definition":`

                                `{"type":"query_value","requests":[{"q":"avg:system.load.1{*}","aggregator":"avg","conditional_formats":`

                                    `[{"comparator":">","value":90,"palette":"white_on_red"},{"comparator":">=","value":70,"palette":"white_on_yellow"},`

                                        `{"comparator":"<","value":70,"palette":"white_on_green"}]}],"title":"System Load"}}],"template_variables":`

                                            `[],"layout_type":"ordered","is_read_only":false,"notify_list":[],"id":"wg6-wkj-jmy"}`

Los ID corresponden a cada uno de los gráficos generados, con los correspondientes valores especificados en cada uno de los distintos módulos, ello nos permite además el disponer de una copia de seguridad en caso de desear utilizarlo.

Consideración: la importación no es directa, es necesario crear un nuevo Dashboard, especificar el tipo, y posteriormente podremos realizar la importación, sustituyendo el Dashboard actual.