INTEGRITY Документация

Экспорт в PostHog

PostHog - это платформа продуктовой аналитики, которая помогает понять поведение пользователей и находить причины ошибок. Экспортируя телеметрию приложения Cloudflare Workers в PostHog, вы можете:

Просмотр логов PostHog с развернутыми атрибутами и временной шкалой сверху

Это руководство поможет настроить приложение Cloudflare Worker для экспорта журналов, совместимых с OpenTelemetry, в PostHog.

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

Шаг 1: Получите API-ключ проекта PostHog

  1. Войдите в свой аккаунт PostHog
  2. Перейдите в Настройки проекта
  3. Найдите свой API-ключ проекта в разделе сведений о проекте
  4. Скопируйте ключ 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.

  1. Перейдите в раздел аккаунта Cloudflare Workers Observability раздел
  2. Нажмите Добавить назначение
  3. Настройте назначение для логов:
    • Имя назначения: 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...)
  4. Нажмите Save
Настройка назначения Cloudflare для логов PostHog с именем назначения, выбором типа, конечной точкой OTLP и пользовательскими заголовками

Шаг 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 и получения трафика:

  1. Войдите в свой аккаунт PostHog
  2. Перейдите в Журналы раздел в левой боковой панели
  3. Логи вашего Worker будут отображаться с уровнями серьёзности, метками времени и атрибутами

Логи можно фильтровать по:

Добавление произвольных атрибутов в логи

К логам можно добавлять собственные атрибуты с помощью стандартных 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

  1. Проверьте свой API-ключ: Убедитесь, что используете API-ключ проекта (он начинается с phc_), а не персональный API-ключ
  2. Проверьте регион конечной точки: Убедитесь, что используете верную региональную конечную точку (US или EU), соответствующую вашему инстансу PostHog
  3. Проверка статуса назначения: В дашборде Cloudflare убедитесь, что для назначения отображается недавняя успешная доставка
  4. Проверка частоты сэмплирования: Если настроена частота сэмплирования, не все журналы могут быть отправлены

Ошибки аутентификации

Если в статусе назначения вы видите ошибки аутентификации: