---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - en/cookbook/configuration
  - ru/cookbook/configuration
  - href: ru/cookbook/configuration.md
    type: text/markdown
    title: Markdown version
csp:
  - script-src:
      - https://mc.yandex.ru
    img-src:
      - https://mc.yandex.ru
    connect-src:
      - https://mc.yandex.ru
      - wss://mc.yandex.ru
    child-src:
      - 'blob:'
      - https://mc.yandex.ru
    frame-src:
      - 'blob:'
      - https://mc.yandex.ru
    frame-ancestors:
      - 'blob:'
      - https://mc.yandex.ru
canonical: ru/cookbook/configuration.html
title: Включение функций в DataLens On-premises
description: "Из статьи вы узнаете, как включать и\_отключать функции в DataLens On-premises."
vcsPath: ru/cookbook/configuration.md
---

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

## Как включать и отключать функции {#features-enable}

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

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

{% note tip %}

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

{% endnote %}

## Обзор ключевых функций {#basic-features}

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

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

```yaml
# ... (начало файла: 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)
```

{% note tip %}

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

{% endnote %}

## Функции и зависимости инфраструктуры {#features-dependencies}

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

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

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

### Отслеживание использования — `usage_tracking` {#usage-tracking}

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

Использует:

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

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

### Загрузка файлов и управление ими — `files` {#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` {#background-exports}

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

Использует:

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

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

### Кеширование — `cache` {#cache}

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

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

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

### Функциональность экспорта — `export` {#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` {#editor}

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

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

{% note warning %}

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

{% endnote %}

## Компоненты инфраструктуры {#components}

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

### PostgreSQL — `infra.postgres` {#pg}

Это основная база данных для всех сервисов. По умолчанию `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` {#ch}

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

### Redis — `infra.redis` {#redis}

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

Базы данных:

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

### S3 — `infra.s3` {#s3}

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

Бакеты:

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

### Temporal — `infra.temporal` {#temporal}

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

### Fluent Bit — `infra.fluent_bit` {#fluent-bit}

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

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


![image](../_assets/datalens/cookbook/infrastructure-components.png)


## Граф зависимостей {#dependencies}

```yaml
usage_tracking
├── clickhouse
├── fluent_bit
└── temporal

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

background_exports
├── redis
└── s3

cache
└── redis

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

## Особенности настройки при использовании внешних сервисов {#external-services-config}

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

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

    ```yaml
    infra:
    clickhouse:
        enabled: false
    ```

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

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

    ```

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

    Подробнее о секретах читайте в статье [«Секреты DataLens On-premises»](../concepts/secrets-instance/index.md).

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

    ```yaml
    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.

## Итоги {#results}

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