Включение функций, мониторинг и отладка

Как включать и отключать функции

Есть два способа управлять конфигурацией DataLens:

  • Флаги для ./init.sh: например, --export, --files. Удобно для быстрой проверки или разового запуска.
  • Файл values.yaml: декларативный способ для промышленной эксплуатации. Вся конфигурация хранится в одном месте, ее легко версионировать и переиспользовать. Файл values.yaml приоритетнее, чем параметры из аргументов ./init.sh.

Совет

Всегда используйте кастомный values.yaml для управления конфигурацией при промышленной эксплуатации.

Обзор ключевых функций

Большинство функций включаются в файле values.yaml в блоке features.

Посмотрите на структуру values.yaml и изучите, как включать основные функции. Процесс происходит преимущественно в секции features, иногда необходима секция infra.

# ... (начало файла: registry, ingress, infra, application, secrets, и т. д.)
#
# Секция, управляющая видимостью коннекторов в интерфейсе
#
visible_connectors:
  - clickhouse
  - postgres
  - chyt
  - ydb
  - mysql
  - greenplum
  - mssql
  - oracle
  - trino
#
# КЛЮЧЕВАЯ СЕКЦИЯ ДЛЯ УПРАВЛЕНИЯ ФУНКЦИЯМИ
#
features:
  auth:
    enabled: true
    local: true
  meta_manager:
    enabled: false
  ui_api:
    enabled: false
  demo:
    enabled: true        # <-- Чтобы отключить демодашборды, установите false
  hc:
    enabled: true
    endpoint: ''
    protocol: ''
  yandex_map:
    enabled: false       # <-- Для включения Яндекс Карт установите true и укажите токен
    token: ''
  editor:
    enabled: false       # <-- Для включения Chart Editor установите true
  export:
    enabled: false       # <-- Для включения экспорта/импорта воркбуков установите true
                         #     Это развернет доп. сервисы: temporal, meta_manager, ui_api
  compeng_sidecar:
    enabled: false
  usage_tracking:
    enabled: false       # <-- Для включения сбора статистики использования установите true
                         #     Потребуется работающая СУБД ClickHouse
  files:
    enabled: false       # <-- Для включения файловых коннекторов установите true
                         #     Потребуются работающие ClickHouse, Valkey и S3

infra:
  postgres:
    enabled: true       
  clickhouse:
    enabled: false
  temporal:
    enabled: false
# ... (конец файла: config, checksum)

Совет

Если настройки ресурсов для сервисов в секции infra не изменяются, то в собственном values.yaml достаточно задать только enable. Секция resources будет взята из ./helm/values.yaml. Это также позволит имплементировать изменение настроек ресурсов при обновлениях. Файл ./helm/values.yaml перезаписывается при обновлении.

Функции и зависимости инфраструктуры

Некоторые функции зависят от дополнительных сервисов:

  • При использовании аргумента командной строки функции включаются автоматически.
  • При настройке через файл values.yaml функции нужно включать самостоятельно.
  • Для работы функции экспорта/импорта должны быть включены meta-manager, ui-api в секции features и temporal в секции infra.

Расскажем подробнее про функции.

Отслеживание использования — usage_tracking

Включает сбор событий о действиях пользователей (просмотры дашбордов, выполнение запросов) и их запись в ClickHouse®. Это позволяет анализировать использование DataLens.

Использует:

  • infra.clickhouse.enabled — базу данных ClickHouse® для хранения метрик использования;
  • infra.fluent_bit.enabled — Fluent Bit для сбора и пересылки логов;
  • infra.temporal.enabled — движок рабочих процессов Temporal для асинхронной обработки.

Флаг для ./init.sh: --usage-tracking.

Загрузка файлов и управление ими — files

Позволяет пользователям загружать файлы CSV и XLS и создавать на их основе датасеты.

Использует:

  • infra.clickhouse.enabled — ClickHouse® для метаданных файлов;
  • infra.redis.enabled — Redis для кеширования сессий и управления ими;
  • infra.s3.enabled — S3-совместимое хранилище для хранения файлов.

Флаг для ./init.sh: --files.

Эта функция требует работающих систем:

  • ClickHouse® — для хранения данных из файлов;
  • Redis — для кешей;
  • S3 — для хранения файлов.

Если вы не настроили внешние сервисы, дистрибутив развернет встроенные — MinIO в качестве S3.

Фоновый экспорт — background_exports

Позволит выгружать полный файл с данными из чарта таблицы с включенной пагинацией.

Использует:

  • infra.redis.enabled — Redis для очереди задач и управления состоянием;
  • infra.s3.enabled — S3 для хранения экспортированных файлов.

Флаг для ./init.sh: --background-exports.

Кеширование — cache

Позволяет кешировать запросы из баз данных для повторных запросов.

Использует infra.redis.enabled — Redis для слоя кеширования.

Флаг для ./init.sh: --cache.

Функциональность экспорта — export

Эта функция позволяет переносить объекты (воркбуки, дашборды, чарты) между разными инсталляциями DataLens. Она полезна при переносе объектов между инстансами, а также используется в CI/CD-процессах.

Использует:

  • features.meta_manager.enabled — Meta Manager для обработки метаданных;
  • features.ui_api.enabled — UI API для интерфейса экспорта;
  • infra.temporal.enabled — Temporal для асинхронных рабочих процессов экспорта.

Флаг для ./init.sh: --export.

Кастомные чарты Editor — editor

Открывает возможность создавать кастомные визуализации с помощью JavaScript, HTML и библиотеки D3.js.

Флаг для ./init.sh: --editor.

Важно

Развертывание дополнительных сервисов увеличивает потребление ресурсов.

Компоненты инфраструктуры

Расскажем о компонентах инфраструктуры, которые используются при работе функций: PostgreSQL, ClickHouse®, Redis, S3, Temporal и Fluent Bit.

PostgreSQL — infra.postgres

Это основная база данных для всех сервисов. По умолчанию enabled: true.

Базы данных:

  • pg-auth-db — сервис аутентификации;
  • pg-compeng-db — вычислительный движок;
  • pg-us-db — сервис пользователей;
  • pg-meta-manager-db — Meta Manager;
  • pg-demo-db — демоданные;
  • pg-temporal-db — рабочие процессы Temporal;
  • pg-temporal-visibility-db — видимость Temporal.

ClickHouse® — infra.clickhouse

Это аналитическая база данных для метаданных файлов и отслеживания использования DataLens. По умолчанию enabled: false. Используется функциями usage_tracking и files.

Redis — infra.redis

Система для кеширования, очередей задач, управления сессиями. По умолчанию enabled: false. Используется функциями files, background_exports и cache.

Базы данных:

  • 0 — кеш данных;
  • 1 — кеш мутаций;
  • 9 — file API;
  • 11 — file worker;
  • 14 — экспорт.

S3 — infra.s3

Это объектное хранилище для файлов и экспорта. По умолчанию enabled: false. Используется функциями files и background_exports.

Бакеты:

  • dl-file-uploader-tmp — временные файлы;
  • dl-file-uploader — постоянные файлы.

Temporal — infra.temporal

Платформа для оркестрации рабочих процессов в асинхронных операциях. По умолчанию enabled: false. Используется функциями usage_tracking и export. Требует базу данных PostgreSQL.

Fluent Bit — infra.fluent_bit

Агент для сбора и пересылки логов. По умолчанию enabled: false. Используется функцией usage_tracking.

Краткое описание и характеристики инфраструктурных компонентов:

image

Граф зависимостей

usage_tracking
├── clickhouse
├── fluent_bit
└── temporal

files
├── clickhouse
├── redis
└── s3

background_exports
├── redis
└── s3

cache
└── redis

export
├── meta_manager
├── ui_api
└── temporal

Особенности настройки при использовании внешних сервисов

Для промышленной эксплуатации рекомендуется использовать внешние инфраструктурные сервисы. Как это настроить на примере ClickHouse®:

  1. Отключите встроенный сервис в values.yaml:

    infra:
    clickhouse:
        enabled: false
    
  2. Если используется TLS, то включите его поддержку и добавьте сертификат в свой файл values.yaml явно:

    infra:
    clickhouse:
        ...
        tls:
        enabled: true
        secret:
            ref: null
            ca: |-
            -----BEGIN CERTIFICATE-----
            # ... (остальной сертификат)
            -----END CERTIFICATE-----
    
    

    Или через секрет: ref: my-existing-secret.

    Подробнее о секретах читайте в статье «Секреты DataLens On-premises».

  3. Укажите параметры подключения к внешнему сервису:

    clickhouse:
    CLICKHOUSE_HOST: 'your-ch.db.internal'
    CLICKHOUSE_PORT: '9440' # Часто используется для TLS-соединений
    CLICKHOUSE_USER: 'datalens-user'
    # Пароль задается в блоке secrets файла values.yaml
    
    #...
    secrets:
    CLICKHOUSE_PASSWORD: '12345678'
    

Аналогичный подход используется и для S3-хранилища. Нужно отключить
infra.s3.enabled: false и прописать эндпоинт и креды для S3, например Yandex Object Storage.

Итоги

Вы научились управлять функциями DataLens через values.yaml. Теперь вы знаете, как включить экспорт, работу с файлами и какие зависимости это за собой тянет.