Автоматизація експорту звітів Redash

Загальний опис

Панель адміністратора містить окрему сторінку для управління звітами Redash - перелік дашбордів, для кожного:

  • посилання на дашборд в Admin екземплярі Redash

  • посилання на експорт дашборду

  • індикатор ідентичності/наявності дашборду на Viewer екземплярі Full Scope

Сервіс експорту звітності повертає архів з json файлом дашборду та всіма залежними запитами в окремій теці queries.

Адмін панель комітить експортований дашборд в Gerrit репозиторій реєстру і створює запит на злиття Full Scope

Отримані файли Адміністратор даних комітить в Gerrit репозиторій реєстру, чим збуджує пайплан для внесення змін в реєстр.

dsfg
Figure 1. Публікування звітів Redash через панель адміністратора

Сервіс експорту звітності

Авторизація

Для звернення до Redash API необхідний API ключ, що знаходиться в сікретах OpenShift.

  • назва: redash-api-keys

  • ключ: admin-api-key

REST API

Звернення до ендпоінта створеного сервісу повертає перелік дашбордів наявних на адмін екземплярі Redash.

GET /
[
    {
        "id": ...
        "name": ...
        "slug": ...
        "created_at": ...
        "updated_at": ...
    },
    ...
]

У випадку зазначення slug дашброрду, ендпоінт повертає архів з дашбордами у json форматі.

GET /slug_id
  • приймає на вхід slug_id (ідентифікатор дашборда)

  • отримує json дашборда з Redash Admin REST API (dashboard_<slug>.json)

  • для кожного із залежних запитів отримує json запиту з Redash Admin REST API (зберігає масивом у queries/parameters_<slug>.json), формат файлу зазначено нижче

  • формує zip пакет для повернення

Формат запитів до Redash API детально описано у статті Побудова аналітичних звітів (Дашборд та Запит)
Структура файлів що містить архів
Figure 2. Структура файлів що містить архів
Формат файлу із залежними запитами
{
  "count": 3,
  "page": 1,
  "page_size": 25,
  "results": [
    {"id": ...},
    {"id": ...},
    {"id": ...}
  ]
}