Документация: установка агента и подключение — tracelight
docs / getting-started · обновлено 28.10.2026 · агент v3.8

Quickstart & Agent Installation

Подключение занимает около десяти минут: установите агент для вашего рантайма, передайте DSN-ключ проекта и убедитесь, что агент установил поток с ingestion-узлом. DSN выдаётся в консоли после активации организации: Settings → Projects → Client Keys.

1. Установка агента

Пакеты распространяются через закрытые репозитории tracelight Агенты и SDK не публикуются в открытых реестрах npm, Packagist и PyPI. После активации организации в консоли выдаётся токен доступа к внутренним репозиториям: Settings → Organization → Package Registry. Токен привязан к организации и может быть отозван в любой момент. Для Enterprise Dedicated Node доступно зеркало репозиториев внутри вашего контура.
РепозиторийАдрес
APT / RPM (расширение PHP, демон)packages.tracelight.ru
Composercomposer.tracelight.ru
npm (scope @tracelight)npm.tracelight.ru
PyPIpypi.tracelight.ru/simple

Для PHP агент состоит из двух частей: Zend Extension tracelight.so внутри PHP-FPM и системного демона tracelight-daemon, который держит соединение с ingestion-узлом.

# Токен из консоли: Settings → Organization → Package Registry
export TL_TOKEN=tlr_xxxxxxxxxxxxxxxx

# Debian / Ubuntu: закрытый APT-репозиторий
echo "machine packages.tracelight.ru login org password $TL_TOKEN" \
  | sudo tee /etc/apt/auth.conf.d/tracelight.conf
curl -fsSL -u org:$TL_TOKEN https://packages.tracelight.ru/gpg \
  | sudo gpg --dearmor -o /usr/share/keyrings/tracelight.gpg
echo "deb [signed-by=/usr/share/keyrings/tracelight.gpg] https://packages.tracelight.ru/apt stable main" \
  | sudo tee /etc/apt/sources.list.d/tracelight.list
sudo apt update && sudo apt install tracelight-php tracelight-daemon

# Composer: подключение закрытого репозитория
composer config repositories.tracelight composer https://composer.tracelight.ru
composer config http-basic.composer.tracelight.ru org $TL_TOKEN
composer require tracelight/profiler

SDK работает внутри процесса и поддерживает Node.js 22, 24 и 26. Scope @tracelight устанавливается только из внутреннего npm-реестра.

# .npmrc в корне проекта
@tracelight:registry=https://npm.tracelight.ru/
//npm.tracelight.ru/:_authToken=${TL_TOKEN}

# установка
npm install @tracelight/sdk

# загрузка source maps в CI
npx tracelight sourcemaps upload ./dist --release "$GIT_SHA"

Пакет поддерживает Python 3.11–3.15 и устанавливается из внутреннего индекса PyPI. Интеграции с FastAPI, Django, Celery и SQLAlchemy включаются автоматически.

# pip.conf или переменная окружения
export PIP_EXTRA_INDEX_URL=https://org:${TL_TOKEN}@pypi.tracelight.ru/simple

pip install "tracelight-apm[profiling]"

# Poetry
poetry source add --priority=supplemental tracelight https://pypi.tracelight.ru/simple
poetry config http-basic.tracelight org $TL_TOKEN
poetry add tracelight-apm

2. Инициализация и DSN

DSN содержит публичный ключ проекта, адрес регионального ingestion-узла и ID проекта. Храните его в переменной окружения TRACELIGHT_DSN.

https://pk_7f3a91c2e8@ingest.ru-msk-1.tracelight.ru/4821
; /etc/php/8.5/mods-available/tracelight.ini
extension=tracelight.so
tracelight.dsn="${TRACELIGHT_DSN}"
tracelight.service="checkout-api"
tracelight.environment="production"
tracelight.sample_rate=0.25
tracelight.profiling=1
// instrument.ts — импортируйте до остального кода приложения
import { init } from "@tracelight/sdk";

init({
  dsn: process.env.TRACELIGHT_DSN,
  service: "storefront-web",
  environment: "production",
  tracesSampleRate: 0.25,
  profiling: { eventLoopLag: true },
});
import os
import tracelight_apm
from fastapi import FastAPI

tracelight_apm.init(
    dsn=os.environ["TRACELIGHT_DSN"],
    service="pricing-svc",
    environment="production",
    traces_sample_rate=0.25,
    profiling=True,
)

app = FastAPI()

3. Проверка соединения

$ tracelight-agent doctor
[ok] DSN parsed        project=4821 region=ru-msk-1
[ok] DNS               ingest.ru-msk-1.tracelight.ru
[ok] TLS 1.3           TLS_AES_256_GCM_SHA384  alpn=h2
[ok] gRPC stream       established · keep-alive 30s
[ok] Clock skew        +3 ms

Ingestion Endpoints & Firewall Rules

Агент держит постоянное keep-alive соединение с ingestion-узлом своего региона. Соединение открывается при старте демона или процесса и переиспользуется для всех событий; при обрыве агент переподключается с экспоненциальной задержкой и досылает данные из локального буфера.

Узел Порт Протокол Назначение
ingest.ru-msk-1.tracelight.ru443/TCPTLS 1.3 · gRPC / WebSocketTelemetry Stream, постоянное keep-alive соединение
ingest.ru-spb-1.tracelight.ru443/TCPTLS 1.3 · gRPC / WebSocketTelemetry Stream, постоянное keep-alive соединение
ingest.ru-nsk-1.tracelight.ru443/TCPTLS 1.3 · gRPC / WebSocketTelemetry Stream, постоянное keep-alive соединение
live.tracelight.ru443/TCPTLS 1.3 · WSSLive Tail для консоли
api.tracelight.ru443/TCPHTTPSEnvelope API, загрузка source maps
127.0.0.18135/TCPлокальныйРасширение PHP → tracelight-daemon (только loopback)

Правила для межсетевого экрана

01Разрешите исходящие соединения на 443/TCP к *.tracelight.ru. Входящие правила не нужны.
02Не терминируйте TLS на корпоративном прокси: агент использует ALPN h2 и проверку сертификата узла, а разрыв долгоживущего стрима приводит к переподключениям.
03Idle-таймаут на балансировщиках и NAT должен быть не меньше 60 секунд: агент отправляет HTTP/2 PING каждые 30 секунд.
04Для тарифа Enterprise Dedicated Node адреса узла фиксированы и передаются при подключении, их можно добавить в allowlist по IP.

Envelope API

HTTP-эндпоинт для сред, где долгоживущее соединение невозможно (serverless, cron). Требует заголовок X-Tracelight-Auth с ключом из DSN. Запрос без ключа:

$ curl -i https://api.tracelight.ru/api/v1/envelope
HTTP/2 401
content-type: application/json
www-authenticate: Bearer realm="tracelight", error="invalid_token"

{"error":"unauthorized","message":"Missing or invalid DSN public key","code":401}