← Cloudflare Workers / workers / observability / exporting-opentelemetry-data
Экспорт в PostHog
PostHog - это платформа продуктовой аналитики, которая помогает понять поведение пользователей и находить причины ошибок. Экспортируя телеметрию приложения Cloudflare Workers в PostHog, вы можете:
- Сопоставляйте журналы с пользовательскими сессиями, событиями и данными отслеживания ошибок
- Запрашивайте и фильтруйте журналы по уровню важности, атрибутам и пользовательским свойствам
- Связывание логов приложения с воспроизведением сессий (session replay) для полного контекста отладки
Это руководство поможет настроить приложение Cloudflare Worker для экспорта журналов, совместимых с OpenTelemetry, в PostHog.
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть:
- Активный аккаунт PostHog ↗ (доступен бесплатный тариф)
- Развернутый Worker, который вы хотите отслеживать
- API ключ вашего проекта PostHog
Шаг 1: Получите API-ключ проекта PostHog
- Войдите в свой аккаунт PostHog ↗
- Перейдите в Настройки проекта ↗
- Найдите свой API-ключ проекта в разделе сведений о проекте
- Скопируйте ключ API: это тот же ключ, который используется для сбора событий и исключений
API-ключ должен выглядеть примерно так: phc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Шаг 2: Определите региональную конечную точку PostHog
У PostHog разные конечные точки в зависимости от вашего региона данных:
| Регион | Конечная точка логов |
|---|---|
| США (по умолчанию) | https://us.i.posthog.com/i/v1/logs |
| EU | https://eu.i.posthog.com/i/v1/logs |
Регион можно найти в настройках проекта PostHog либо посмотреть в URL-адресе после входа в PostHog (либо us.posthog.com или eu.posthog.com).
Шаг 3: Настройте назначение Cloudflare Logs
Теперь вы создадите в панели управления Cloudflare назначение, которое указывает на PostHog.
- Перейдите в раздел аккаунта Cloudflare Workers Observability ↗ раздел
- Нажмите Добавить назначение
- Настройте назначение для логов:
- Имя назначения:
posthog-logs(или любое описательное имя) - Тип назначения: Выберите Журналы
- OTLP Endpoint: Конечная точка логов PostHog (например,
https://us.i.posthog.com/i/v1/logsилиhttps://eu.i.posthog.com/i/v1/logs) - Пользовательские заголовки: Добавьте заголовок аутентификации:
- Имя заголовка:
Authorization - Значение заголовка:
Bearer <your-project-api-key>(например,Bearer phc_xxxxx...)
- Имя заголовка:
- Имя назначения:
- Нажмите Save
Шаг 4: Настройте Worker
Создав destination в Cloudflare dashboard, обновите конфигурацию Worker, чтобы включить экспорт логов.
{
"observability": {
"logs": {
"enabled": true,
// Must match the destination name in the dashboard
"destinations": ["posthog-logs"]
}
}
}[observability.logs]
enabled = true
destinations = [ "posthog-logs" ]После обновления конфигурации разверните Worker, чтобы изменения вступили в силу.
Шаг 5: Просмотрите логи в PostHog
После развертывания Worker и получения трафика:
- Войдите в свой аккаунт PostHog ↗
- Перейдите в Журналы раздел в левой боковой панели
- Логи вашего Worker будут отображаться с уровнями серьёзности, метками времени и атрибутами
Логи можно фильтровать по:
- Уровень серьёзности (trace, debug, info, warn, error, fatal)
- Диапазон времени
- Пользовательские атрибуты добавляется в записи журнала
- Ключевые слова в сообщениях журнала
Добавление произвольных атрибутов в логи
К логам можно добавлять собственные атрибуты с помощью стандартных console методы со структурированными данными:
export default {
async fetch(request, env) {
// Basic logging
console.log("Processing request");
// Logs with additional context
console.info("User action", {
userId: "user_123",
action: "api_call",
path: new URL(request.url).pathname
});
// Error logging with details
console.error("Request failed", {
error: "Connection timeout",
retryCount: 3
});
return new Response("OK");
}
};Эти атрибуты можно будет искать и фильтровать в интерфейсе логов PostHog.
Устранение неполадок
Логи не отображаются в PostHog
- Проверьте свой API-ключ: Убедитесь, что используете API-ключ проекта (он начинается с
phc_), а не персональный API-ключ - Проверьте регион конечной точки: Убедитесь, что используете верную региональную конечную точку (US или EU), соответствующую вашему инстансу PostHog
- Проверка статуса назначения: В дашборде Cloudflare убедитесь, что для назначения отображается недавняя успешная доставка
- Проверка частоты сэмплирования: Если настроена частота сэмплирования, не все журналы могут быть отправлены
Ошибки аутентификации
Если в статусе назначения вы видите ошибки аутентификации:
- Убедитесь, что значение заголовка Authorization включает
Bearerпрефикс, за которым следует ваш API-ключ - Убедитесь, что API-ключ не был отозван или перевыпущен в PostHog
- Также вы можете передать токен в качестве параметра запроса, используя
https://us.i.posthog.com/i/v1/logs?token=<your-project-api-key>в качестве конечной точки