Skip to content

Перевод 🌍

Вы можете перевести или улучшить перевод этой страницы.

Внести вклад

Самостоятельная установка

Мы предлагаем версию сервера Tuist с возможностью самостоятельного размещения для организаций, которым требуется больший контроль над своей инфраструктурой. Эта версия позволяет размещать Tuist на собственной инфраструктуре, обеспечивая безопасность и конфиденциальность данных.

LICENSE REQUIRED

Для самостоятельного размещения Tuist требуется действующая платная лицензия. Местная версия Tuist доступна только для организаций на тарифном плане Enterprise. Если вы заинтересованы в этой версии, пожалуйста, свяжитесь с нами по адресу [email protected].

Каденция выпуска

Мы выпускаем новые версии Tuist постоянно, по мере того как новые изменения, которые можно выпустить, появляются на главной. Мы следуем семантическому версионированию, чтобы обеспечить предсказуемое версионирование и совместимость.

Основной компонент используется для того, чтобы отмечать изменения в сервере Tuist, которые потребуют согласования с локальными пользователями. Не стоит ожидать, что мы будем его использовать, а если вдруг понадобится, будьте уверены, мы будем работать с вами, чтобы сделать переход плавным.

Непрерывное развертывание

Мы настоятельно рекомендуем настроить конвейер непрерывного развертывания, который будет автоматически развертывать последнюю версию Tuist каждый день. Это гарантирует, что вы всегда будете иметь доступ к последним функциям, улучшениям и обновлениям безопасности.

Вот пример рабочего процесса GitHub Actions, который ежедневно проверяет наличие и развертывает новые версии:

yaml
name: Update Tuist Server
on:
  schedule:
    - cron: '0 3 * * *' # Run daily at 3 AM UTC
  workflow_dispatch: # Allow manual runs

jobs:
  update:
    runs-on: ubuntu-latest
    steps:
      - name: Check and deploy latest version
        run: |
          # Your deployment commands here
          # Example: docker pull ghcr.io/tuist/tuist:latest
          # Deploy to your infrastructure

Требования к времени выполнения

В этом разделе описаны требования к размещению сервера Tuist на вашей инфраструктуре.

Матрица совместимости

Сервер Tuist протестирован и совместим со следующими минимальными версиями:

КомпонентМинимальная версияПримечания
PostgreSQL15С расширением TimescaleDB
TimescaleDB2.16.1Необходимое расширение PostgreSQL (устаревшее)
ClickHouse25Требуется для аналитики

TIMESCALEDB DEPRECATION

TimescaleDB в настоящее время является необходимым расширением PostgreSQL для сервера Tuist, используемым для хранения и запроса данных временных рядов. Однако TimescaleDB устарел и будет исключен из числа необходимых зависимостей в ближайшем будущем, когда мы перенесем всю функциональность временных рядов на ClickHouse. Пока же убедитесь, что на вашем экземпляре PostgreSQL установлена и включена TimescaleDB.

Запуск виртуализированных образов Docker

Мы распространяем сервер в виде образа Docker через GitHub's Container Registry.

Чтобы запустить его, ваша инфраструктура должна поддерживать запуск образов Docker. Обратите внимание, что большинство поставщиков инфраструктуры поддерживают его, поскольку он стал стандартным контейнером для распространения и запуска программного обеспечения в производственных средах.

База данных Postgres

Помимо запуска образов Docker, вам понадобится база данных Postgres с расширением TimescaleDB для хранения реляционных данных и временных рядов. Большинство поставщиков инфраструктуры включают базы данных Postgres в свои предложения (например, AWS и Google Cloud).

Требуется расширение TimescaleDB: Tuist требует расширения TimescaleDB для эффективного хранения и запроса данных временных рядов. Это расширение используется для командных событий, аналитики и других функций, основанных на времени. Перед запуском Tuist убедитесь, что на вашем экземпляре PostgreSQL установлено и включено расширение TimescaleDB.

MIGRATIONS

Точка входа образа Docker автоматически запускает все ожидающие миграции схемы перед запуском службы. Если миграция не удалась из-за отсутствия расширения TimescaleDB, вам нужно будет сначала установить его в свою базу данных.

База данных ClickHouse

Tuist использует ClickHouse для хранения и запроса больших объемов аналитических данных. ClickHouse - это , необходимый для таких функций, как build insights, и он станет основной базой данных временных рядов, когда мы откажемся от TimescaleDB. Вы можете выбрать, размещать ClickHouse самостоятельно или использовать их хостинговый сервис.

MIGRATIONS

Точка входа образа Docker автоматически запускает все предстоящие миграции схемы ClickHouse перед запуском службы.

Хранение

Вам также понадобится решение для хранения файлов (например, двоичных файлов фреймворков и библиотек). В настоящее время мы поддерживаем любое хранилище, совместимое с S3.

Конфигурация

Конфигурация службы выполняется во время выполнения с помощью переменных окружения. Учитывая конфиденциальный характер этих переменных, мы рекомендуем шифровать и хранить их в надежных решениях для управления паролями. Будьте уверены, Tuist работает с этими переменными очень осторожно, гарантируя, что они никогда не будут отображаться в логах.

LAUNCH CHECKS

При запуске проверяются все необходимые переменные. Если какие-либо из них отсутствуют, запуск завершится неудачей, а в сообщении об ошибке будут подробно указаны отсутствующие переменные.

Конфигурация лицензии

Как пользователь локального сервиса, вы получите лицензионный ключ, который нужно будет указать в качестве переменной окружения. Этот ключ используется для проверки лицензии и обеспечения работы службы в соответствии с условиями соглашения.

Переменная средыОписаниеТребуетсяПо умолчаниюПример
TUIST_LICENSEЛицензия, предоставляемая после подписания соглашения об уровне обслуживанияДа*******
TUIST_LICENSE_CERTIFICATE_BASE64Исключительная альтернатива TUIST_LICENSE. Публичный сертификат в кодировке Base64 для автономной проверки лицензии в средах с воздушной завесой, где сервер не может связаться с внешними службами. Используется только в тех случаях, когда TUIST_LICENSE не может быть использован.Да*LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0t...

* Должны быть указаны либо TUIST_LICENSE, либо TUIST_LICENSE_CERTIFICATE_BASE64, но не оба. Используйте TUIST_LICENSE для стандартных развертываний.

EXPIRATION DATE

Лицензии имеют срок действия. Пользователи получат предупреждение при использовании команд Tuist, взаимодействующих с сервером, если срок действия лицензии истекает менее чем через 30 дней. Если вы заинтересованы в продлении лицензии, пожалуйста, свяжитесь с [email protected].

Конфигурация базовой среды

Переменная средыОписаниеТребуетсяПо умолчаниюПример
TUIST_APP_URLБазовый URL-адрес для доступа к экземпляру из ИнтернетаДаhttps://tuist.dev
TUIST_SECRET_KEY_BASEКлюч, используемый для шифрования информации (например, сеансов в файле cookie).Даc5786d9f869239cbddeca645575349a570ffebb332b64400c37256e1c9cb7ec831345d03dc0188edd129d09580d8cbf3ceaf17768e2048c037d9c31da5dcacfa
TUIST_SECRET_KEY_PASSWORDПерец для генерации хэшированных паролейНет$TUIST_SECRET_KEY_BASE
TUIST_SECRET_KEY_TOKENSСекретный ключ для генерации случайных жетоновНет$TUIST_SECRET_KEY_BASE
TUIST_SECRET_KEY_ENCRYPTION32-байтный ключ для шифрования конфиденциальных данных по алгоритму AES-GCMНет$TUIST_SECRET_KEY_BASE
TUIST_USE_IPV6Когда 1, он настраивает приложение на использование IPv6-адресов.Нет01
TUIST_LOG_LEVELУровень журнала, который будет использоваться для приложенияНетинформацияУровни журнала
TUIST_GITHUB_APP_NAMEURL-версия имени вашего приложения на GitHubНетmy-app
TUIST_GITHUB_APP_PRIVATE_KEY_BASE64Закрытый ключ в кодировке base64, используемый в приложении GitHub для разблокировки дополнительных функций, таких как автоматическая публикация комментариев к PR.НетLS0tLS1CRUdJTiBSU0EgUFJJVkFUR...
TUIST_GITHUB_APP_PRIVATE_KEYЗакрытый ключ, используемый в приложении GitHub для разблокировки дополнительных функций, таких как автоматическая публикация комментариев к PR. Мы рекомендуем использовать base64-кодированную версию, чтобы избежать проблем со специальными символамиНет-----BEGIN RSA...
TUIST_OPS_USER_HANDLESСписок дескрипторов пользователей, имеющих доступ к URL-адресам операций, разделенный запятымиНетпользователь1,пользователь2
TUIST_WEBВключите конечную точку веб-сервераНет11 или 0

Конфигурация базы данных

Для настройки подключения к базе данных используются следующие переменные окружения:

Переменная средыОписаниеТребуетсяПо умолчаниюПример
DATABASE_URLURL-адрес для доступа к базе данных Postgres. Обратите внимание, что URL должен содержать информацию об аутентификацииДаpostgres://username:[email protected]/production
TUIST_CLICKHOUSE_URLURL-адрес для доступа к базе данных ClickHouse. Обратите внимание, что URL должен содержать информацию об аутентификацииНетhttp://username:[email protected]/production
TUIST_USE_SSL_FOR_DATABASEЕсли значение равно true, то для подключения к базе данных используется SSL.Нет11
TUIST_DATABASE_POOL_SIZEКоличество соединений, которые необходимо держать открытыми в пуле соединенийНет1010
TUIST_DATABASE_QUEUE_TARGETИнтервал (в милисекундах) для проверки того, что все соединения, извлеченные из пула, заняли больше интервала очереди (Дополнительная информация)Нет300300
TUIST_DATABASE_QUEUE_INTERVALПороговое время (в милисекундах) в очереди, которое пул использует для определения того, следует ли ему начать отбрасывать новые соединения (Дополнительная информация)Нет10001000
TUIST_CLICKHOUSE_FLUSH_INTERVAL_MSИнтервал времени в миллисекундах между очистками буфера ClickHouseНет50005000
TUIST_CLICKHOUSE_MAX_BUFFER_SIZEМаксимальный размер буфера ClickHouse в байтах перед принудительной очисткойНет10000001000000
TUIST_CLICKHOUSE_BUFFER_POOL_SIZEКоличество запускаемых буферных процессов ClickHouseНет55

Настройка среды аутентификации

Мы поддерживаем аутентификацию через провайдеров идентификации (IdP). Чтобы воспользоваться этим, убедитесь, что все необходимые переменные окружения для выбранного провайдера присутствуют в окружении сервера. Отсутствие переменных приведет к тому, что Tuist обойдет этого провайдера.

GitHub

Мы рекомендуем аутентифицироваться с помощью GitHub App, но вы также можете использовать OAuth App. Убедитесь, что в окружение сервера включены все необходимые переменные окружения, указанные GitHub. Отсутствие переменных приведет к тому, что Tuist не примет во внимание аутентификацию GitHub. Чтобы правильно настроить приложение GitHub:

  • В общих настройках приложения GitHub:
    • Скопируйте идентификатор клиента `` и установите его как TUIST_GITHUB_APP_CLIENT_ID.
    • Создайте и скопируйте новый клиентский секрет `` и установите его как TUIST_GITHUB_APP_CLIENT_SECRET.
    • Установите URL-адрес обратного вызова `` как http://YOUR_APP_URL/users/auth/github/callback. YOUR_APP_URL также может быть IP-адресом вашего сервера.
  • Требуются следующие разрешения:
    • Репозитории:
      • Заявки на перетяжку: Чтение и запись
    • Счета:
      • Адреса электронной почты: Только для чтения

В разделе Разрешения и события's Account permissions установите для разрешения Email addresses значение Read-only.

Затем вам нужно будет выставить следующие переменные окружения в среде, в которой запущен сервер Tuist:

Переменная средыОписаниеТребуетсяПо умолчаниюПример
TUIST_GITHUB_APP_CLIENT_IDИдентификатор клиента приложения GitHubДаIv1.a629723000043722
TUIST_GITHUB_APP_CLIENT_SECRETСекрет клиента приложенияДа232f972951033b89799b0fd24566a04d83f44ccc

Google

Вы можете настроить аутентификацию в Google с помощью OAuth 2. Для этого вам нужно будет создать новый мандат типа OAuth client ID. При создании учетных данных выберите тип приложения "Веб-приложение", назовите его Tuist, а URI перенаправления установите на {base_url}/users/auth/google/callback, где base_url - это URL, на котором работает ваш хостинг-сервис. После создания приложения скопируйте идентификатор и секрет клиента и установите их в качестве переменных окружения GOOGLE_CLIENT_ID и GOOGLE_CLIENT_SECRET соответственно.

CONSENT SCREEN SCOPES

Возможно, вам потребуется создать экран согласия. При этом обязательно добавьте диапазоны userinfo.email и openid и отметьте приложение как внутреннее.

Okta

Вы можете включить аутентификацию с помощью Okta по протоколу OAuth 2.0. Вам нужно будет создать приложение на Okta, следуя этим инструкциям.

После получения идентификатора и секрета клиента в процессе настройки приложения Okta вам нужно будет установить следующие переменные окружения:

Переменная средыОписаниеТребуетсяПо умолчаниюПример
TUIST_OKTA_1_CLIENT_IDИдентификатор клиента для аутентификации в Okta. Номер должен быть идентификатором вашей организацииДа
TUIST_OKTA_1_CLIENT_SECRETСекрет клиента для аутентификации в OktaДа

Число 1 необходимо заменить на идентификатор вашей организации. Обычно это 1, но проверьте в своей базе данных.

Настройка среды хранения данных

Tuist нуждается в хранилище для хранения артефактов, загружаемых через API. Для эффективной работы Tuist необходимо настроить одно из поддерживаемых решений для хранения.

Хранилища, совместимые с S3

Для хранения артефактов можно использовать любого поставщика услуг хранения, совместимого с S3. Для аутентификации и настройки интеграции с поставщиком хранилища необходимы следующие переменные среды:

Переменная средыОписаниеТребуетсяПо умолчаниюПример
TUIST_S3_ACCESS_KEY_ID или AWS_ACCESS_KEY_IDИдентификатор ключа доступа для аутентификации у поставщика услуг хранения данныхДаAKIAIOSFOD
TUIST_S3_SECRET_ACCESS_KEY или AWS_SECRET_ACCESS_KEYСекретный ключ доступа для аутентификации у поставщика услуг хранения данныхДаwJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
TUIST_S3_REGION или AWS_REGIONРегион, в котором находится ведроНетавтозапад-2
TUIST_S3_ENDPOINT или AWS_ENDPOINTКонечная точка поставщика услуг храненияДаhttps://s3.us-west-2.amazonaws.com
TUIST_S3_BUCKET_NAMEИмя ведра, в котором будут храниться артефактыДаtuist-artifacts
TUIST_S3_CA_CERT_PEMСертификат ЦС в кодировке PEM для проверки HTTPS-соединений S3. Полезно для сред с воздушной завесой с самоподписанными сертификатами или внутренними центрами сертификации.НетПакет системного ЦС-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----
TUIST_S3_CONNECT_TIMEOUTТаймаут (в миллисекундах) для установления соединения с провайдером хранилищаНет30003000
TUIST_S3_RECEIVE_TIMEOUTТаймаут (в миллисекундах) для получения данных от провайдера хранилищаНет50005000
TUIST_S3_POOL_TIMEOUTТаймаут (в миллисекундах) для пула соединений с провайдером хранилища. Используйте infinity для отсутствия таймаута.Нет50005000
TUIST_S3_POOL_MAX_IDLE_TIMEМаксимальное время простоя (в миллисекундах) для соединений в пуле. Используйте infinity, чтобы поддерживать соединения неограниченное время.НетБесконечность60000
TUIST_S3_POOL_SIZEМаксимальное количество соединений в одном пулеНет500500
TUIST_S3_POOL_COUNTКоличество используемых пулов соединенийНетКоличество системных планировщиков4
TUIST_S3_PROTOCOLПротокол, используемый при подключении к провайдеру хранилища (http1 или http2).Нетhttp1http1
TUIST_S3_VIRTUAL_HOSTСледует ли строить URL с именем ведра в качестве поддомена (виртуального хоста).Нетложь1

AWS authentication with Web Identity Token from environment variables

Если ваш поставщик хранилища - AWS и вы хотите аутентифицироваться с помощью токена веб-идентификации, вы можете установить переменную окружения TUIST_S3_AUTHENTICATION_METHOD на aws_web_identity_token_from_env_vars, и Tuist будет использовать этот метод, используя обычные переменные окружения AWS.

Облачное хранилище Google

Для Google Cloud Storage следуйте этим документам, чтобы получить пару AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY. Переменная AWS_ENDPOINT должна быть установлена на https://storage.googleapis.com. Остальные переменные окружения такие же, как и для любого другого S3-совместимого хранилища.

Конфигурация электронной почты

Tuist требует функциональности электронной почты для аутентификации пользователей и транзакционных уведомлений (например, сброс пароля, уведомления об учетной записи). В настоящее время поддерживает только Mailgun в качестве почтового провайдера.

Переменная средыОписаниеТребуетсяПо умолчаниюПример
TUIST_MAILGUN_API_KEYКлюч API для аутентификации в MailgunДа*ключ-1234567890abcdef
TUIST_MAILING_DOMAINДомен, с которого будут отправляться электронные письмаДа*mg.tuist.io
TUIST_MAILING_FROM_ADDRESSАдрес электронной почты, который будет отображаться в поле "От".Да*[email protected]
TUIST_MAILING_REPLY_TO_ADDRESSНеобязательный адрес для ответов пользователейНет[email protected]
TUIST_SKIP_EMAIL_CONFIRMATIONПропускать подтверждение по электронной почте при регистрации новых пользователей. Если эта функция включена, пользователи автоматически получают подтверждение и могут войти в систему сразу после регистрацииНетtrue, если электронная почта не настроена, false, если электронная почта настроена.true, false, 1, 0

* Переменные конфигурации электронной почты необходимы только в том случае, если вы хотите отправлять электронные письма. Если они не настроены, подтверждение электронной почты автоматически пропускается

SMTP SUPPORT

Поддержка общего SMTP в настоящее время недоступна. Если вам нужна поддержка SMTP для вашего локального развертывания, свяжитесь с [email protected], чтобы обсудить ваши требования.

AIR-GAPPED DEPLOYMENTS

Для локальных установок, не имеющих доступа в Интернет или настроек почтового провайдера, подтверждение по электронной почте автоматически пропускается по умолчанию. Пользователи могут войти в систему сразу после регистрации. Если у вас настроена электронная почта, но вы хотите пропустить подтверждение, установите TUIST_SKIP_EMAIL_CONFIRMATION=true. Чтобы потребовать подтверждения электронной почты, если она настроена, установите TUIST_SKIP_EMAIL_CONFIRMATION=false.

Настройка платформы Git

Tuist может интегрироваться с Git-платформами, чтобы предоставить дополнительные возможности, такие как автоматическая публикация комментариев в ваших запросах на вытягивание.

GitHub

Вам нужно будет создать приложение GitHub. Вы можете использовать созданное вами приложение для аутентификации, если вы не создали приложение GitHub с OAuth. В разделе Разрешения и события's Repository permissions вам нужно дополнительно установить разрешение Pull requests на Read and write.

Помимо TUIST_GITHUB_APP_CLIENT_ID и TUIST_GITHUB_APP_CLIENT_SECRET, вам понадобятся следующие переменные окружения:

Переменная средыОписаниеТребуетсяПо умолчаниюПример
TUIST_GITHUB_APP_PRIVATE_KEYЗакрытый ключ приложения GitHubДа----- BEGIN RSA PRIVATE KEY-----...

Тестирование на месте

Мы предоставляем комплексную конфигурацию Docker Compose, включающую все необходимые зависимости для тестирования сервера Tuist на локальной машине перед развертыванием в вашей инфраструктуре:

  • PostgreSQL 15 с расширением TimescaleDB 2.16 (устаревшее)
  • ClickHouse 25 для аналитики
  • ClickHouse Keeper для координации
  • MinIO для S3-совместимого хранилища
  • Redis для постоянного хранения KV во всех развертываниях (необязательно).
  • pgweb для администрирования баз данных

LICENSE REQUIRED

Для запуска сервера Tuist, включая локальные экземпляры разработки, требуется действительная переменная окружения TUIST_LICENSE. Если вам нужна лицензия, пожалуйста, свяжитесь с [email protected].

Быстрый старт:

  1. Загрузите файлы конфигурации:

    bash
    curl -O https://docs.tuist.io/server/self-host/docker-compose.yml
    curl -O https://docs.tuist.io/server/self-host/clickhouse-config.xml
    curl -O https://docs.tuist.io/server/self-host/clickhouse-keeper-config.xml
    curl -O https://docs.tuist.io/server/self-host/.env.example
  2. Настройте переменные окружения:

    bash
    cp .env.example .env
    # Edit .env and add your TUIST_LICENSE and authentication credentials
  3. Запустите все службы:

    bash
    docker compose up -d
    # or with podman:
    podman compose up -d
  4. Зайдите на сервер по адресу http://localhost:8080.

Конечные точки обслуживания:

Общие команды:

Проверьте состояние обслуживания:

bash
docker compose ps
# or: podman compose ps

Просмотр журналов:

bash
docker compose logs -f tuist

Услуги по остановке:

bash
docker compose down

Сброс всех настроек (удаление всех данных):

bash
docker compose down -v

Файлы конфигурации:

Развертывание

Официальный образ Tuist Docker доступен по адресу:

ghcr.io/tuist/tuist

Извлечение образа Docker

Вы можете получить изображение, выполнив следующую команду:

bash
docker pull ghcr.io/tuist/tuist:latest

Или выберите конкретную версию:

bash
docker pull ghcr.io/tuist/tuist:0.1.0

Развертывание образа Docker

Процесс развертывания образа Docker будет отличаться в зависимости от выбранного вами облачного провайдера и подхода к непрерывному развертыванию в вашей организации. Поскольку большинство облачных решений и инструментов, таких как Kubernetes, используют образы Docker в качестве фундаментальных единиц, примеры, приведенные в этом разделе, должны хорошо сочетаться с существующими настройками.

WARNING

Если вашему конвейеру развертывания необходимо подтвердить, что сервер работает, вы можете отправить HTTP-запрос GET по адресу /ready и подтвердить код состояния 200 в ответе.

Fly

Чтобы развернуть приложение на Fly, вам потребуется конфигурационный файл fly.toml. Рассмотрите возможность его динамической генерации в рамках конвейера непрерывного развертывания (CD). Ниже приведен эталонный пример для использования:

toml
app = "tuist"
primary_region = "fra"
kill_signal = "SIGINT"
kill_timeout = "5s"

[experimental]
  auto_rollback = true

[env]
  # Your environment configuration goes here
  # Or exposed through Fly secrets

[processes]
  app = "/usr/local/bin/hivemind /app/Procfile"

[[services]]
  protocol = "tcp"
  internal_port = 8080
  auto_stop_machines = false
  auto_start_machines = false
  processes = ["app"]
  http_options = { h2_backend = true }

  [[services.ports]]
    port = 80
    handlers = ["http"]
    force_https = true

  [[services.ports]]
    port = 443
    handlers = ["tls", "http"]
  [services.concurrency]
    type = "connections"
    hard_limit = 100
    soft_limit = 80

  [[services.http_checks]]
    interval = 10000
    grace_period = "10s"
    method = "get"
    path = "/ready"
    protocol = "http"
    timeout = 2000
    tls_skip_verify = false
    [services.http_checks.headers]

[[statics]]
  guest_path = "/app/public"
  url_prefix = "/"

Затем вы можете выполнить fly launch --local-only --no-deploy для запуска приложения. При последующих развертываниях вместо fly launch --local-only нужно будет выполнить fly deploy --local-only. Fly.io не позволяет получать приватные Docker-образы, поэтому нам нужно использовать флаг --local-only.

Метрики Прометея

Tuist предоставляет метрики Prometheus по адресу /metrics, чтобы помочь вам следить за вашим самораспространяющимся экземпляром. Эти метрики включают в себя:

Метрики HTTP-клиента Finch

Tuist использует Finch в качестве HTTP-клиента и выдает подробные метрики о HTTP-запросах:

Метрики запроса

  • tuist_prom_ex_finch_request_count_total - Общее количество запросов Finch (счетчик).
    • Метки: finch_name, method, scheme, host, port, status
  • tuist_prom_ex_finch_request_duration_milliseconds - Продолжительность HTTP-запросов (гистограмма).
    • Метки: finch_name, method, scheme, host, port, status
    • Ведра: 10 мс, 50 мс, 100 мс, 250 мс, 500 мс, 1 с, 2,5 с, 5 с, 10 с
  • tuist_prom_ex_finch_request_exception_count_total - Общее количество исключений из запросов Finch (счетчик).
    • Ярлыки: finch_name, method, scheme, host, port, kind, reason

Метрики очереди пула подключений

  • tuist_prom_ex_finch_queue_duration_milliseconds - Время ожидания в очереди пула соединений (гистограмма).
    • Метки: finch_name, scheme, host, port, pool
    • Ведра: 1 мс, 5 мс, 10 мс, 25 мс, 50 мс, 100 мс, 250 мс, 500 мс, 1 с
  • tuist_prom_ex_finch_queue_idle_time_milliseconds - Время, в течение которого соединение простаивало перед использованием (гистограмма).
    • Метки: finch_name, scheme, host, port, pool
    • Ведра: 10 мс, 50 мс, 100 мс, 250 мс, 500 мс, 1 с, 5 с, 10 с
  • tuist_prom_ex_finch_queue_exception_count_total - Общее количество исключений из очереди Finch (счетчик).
    • Ярлыки: finch_name, scheme, host, port, kind, reason

Метрики подключения

  • tuist_prom_ex_finch_connect_duration_milliseconds - Время установления соединения (гистограмма).
    • Ярлыки: finch_name, scheme, host, port, error
    • Ведра: 10 мс, 50 мс, 100 мс, 250 мс, 500 мс, 1 с, 2,5 с, 5 с
  • tuist_prom_ex_finch_connect_count_total - Общее количество попыток соединения (счетчик).
    • Ярлыки: finch_name, scheme, host, port

Отправить метрики

  • tuist_prom_ex_finch_send_duration_milliseconds - Время, затраченное на отправку запроса (гистограмма).
    • Метки: finch_name, method, scheme, host, port, error
    • Ведра: 1 мс, 5 мс, 10 мс, 25 мс, 50 мс, 100 мс, 250 мс, 500 мс, 1 с
  • tuist_prom_ex_finch_send_idle_time_milliseconds - Время простоя соединения перед отправкой (гистограмма).
    • Метки: finch_name, method, scheme, host, port, error
    • Ведра: 1 мс, 5 мс, 10 мс, 25 мс, 50 мс, 100 мс, 250 мс, 500 мс

Все метрики гистограмм предоставляют варианты _bucket, _sum, и _count для детального анализа.

Другие показатели

В дополнение к метрикам Finch, Tuist предоставляет метрики для:

  • Производительность виртуальной машины BEAM
  • Пользовательские метрики бизнес-логики (хранилища, учетные записи, проекты и т. д.)
  • Производительность базы данных (при использовании инфраструктуры Tuist-hosted)

Операции

Tuist предоставляет набор утилит по адресу /ops/, которые вы можете использовать для управления своим экземпляром.

Authorization

Доступ к конечным точкам /ops/ могут получить только те, чьи дескрипторы указаны в переменной окружения TUIST_OPS_USER_HANDLES.

  • Ошибки (/ops/errors): Вы можете просмотреть неожиданные ошибки, возникшие в приложении. Это полезно для отладки и понимания того, что пошло не так, и мы можем попросить вас поделиться этой информацией с нами, если вы столкнулись с проблемами.
  • Приборная панель (/ops/dashboard): Вы можете просмотреть приборную панель, которая дает представление о производительности и состоянии приложения (например, потребление памяти, запущенные процессы, количество запросов). Эта панель может быть очень полезна, чтобы понять, достаточно ли используемого вами оборудования для дескриптора нагрузки.

Released under the MIT License.