Просматривайте, ищите и фильтруйте журналы веб-запросов вашего сайта с помощью Cloud Logging.

Вы можете связать свой проект Firebase с Cloud Logging , чтобы просматривать, искать и фильтровать журналы веб-запросов для каждого из ваших сайтов Hosting . Эти журналы поступают из CDN, который автоматически предоставляется Firebase, поэтому каждый запрос к вашему сайту и связанные с ним данные запроса регистрируются.

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

Если в вашем проекте несколько Hosting сайтов, вы можете выбрать, какие из них будут экспортировать журналы. Затем вы можете фильтровать и просматривать данные журналов по Hosting Hosting сайту и даже по домену. Выбирая конкретные Hosting сайты для экспорта журналов, вы также можете контролировать объем обрабатываемых данных для вашего проекта.

  1. Нажмите на ссылку в карточке интеграции Cloud Logging в консоли Firebase .

    Для подключения или отключения Cloud Logging вам потребуются разрешения, включенные в одну из следующих ролей: владелец проекта, редактор или администратор Firebase Develop .

  2. Следуйте инструкциям на экране, чтобы выбрать, какие из ваших Hosting сайтов должны экспортировать журналы в Cloud Logging .

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

После подключения к Cloud Logging , журналы всех новых запросов к вашим Hosting сайтам обычно появляются в течение 30 минут после отправки запроса.

Вы также можете отвязать Firebase Hosting от Cloud Logging , что прекратит экспорт журналов веб-запросов в Cloud Logging .

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

После подключения к Cloud Logging вы сможете просмотреть уровень использования данных журналов с ваших Hosting площадок:

Лучше разберитесь в своем сайте.

Интерфейс Logs Viewer в консоли Google Cloud предоставляет инструменты для просмотра конкретных журналов и данных с помощью запросов, встроенных фильтров и панелей данных. Подробнее о фильтрации журналов с помощью запросов читайте в следующем разделе.

  • Откуда именно поступает трафик на ваш сайт, если рассматривать его детально?
    Вы можете просмотреть информацию о каждом запросе, включая IP-адрес источника, реферер, город и статус.

  • Когда пользователи посещают ваш сайт?
    Вы можете использовать панель «Гистограмма» , чтобы увидеть распределение по определенным временным диапазонам. Это может дать вам представление о нормальных пиках и спадах использования вашего приложения, а также выявить любые неожиданные всплески трафика.

  • Каково распределение статусов запросов от конечных пользователей?
    Вы можете просмотреть статус каждого запроса и даже диагностировать запросы, в которых возникают ошибки. Вы можете фильтровать журналы по категориям Critical , Error или Warning .

  • Сколько времени требуется вашему сайту для ответа на запрос?
    Вы можете просмотреть задержку вашего сайта для каждого запроса, используя значение latency зафиксированное в каждом журнале.

  • Использует ли ваш сайт кэширование контента?
    Каждый лог содержит поле cacheHit , которое показывает, был ли ресурс вашего сайта быстро загружен из CDN-кэша Hosting или ему пришлось совершить полный путь до бэкэнда Hosting . Это может помочь вам улучшить производительность вашего веб-сайта, максимально используя глобальную CDN Firebase. Например, вы можете использовать эти данные для тонкой настройки кэширования ваших статических ресурсов и динамического контента .

  • Каково распределение трафика между вашими различными доменами?
    Если у вас несколько доменов или сайтов Hosting , вы можете фильтровать журналы по домену или по сайту. Это позволит вам увидеть, как распределяется ваш трафик. При фильтрации по домену вы сможете отслеживать, какой домен посещается чаще всего.

Фильтруйте журналы с помощью запросов.

Чтобы узнать, как фильтровать журналы с помощью запросов, посетите разделы «Примеры запросов с использованием Logs Viewer» и «Создание запросов к журналам» . В таблице ниже описаны поля, доступные для этих запросов.

Для Hosting вот несколько начальных фильтров для запроса:

  • Ресурс ( resource.type ) — firebase_domain (домен Firebase Hosting )
  • Имя журнала ( logName ) — webrequests ( Firebase Hosting )

Каждая запись в журнале имеет предопределенную структуру и поля, доступные для запросов (см. LogEntry ). Для Hosting некоторые поля являются стандартными для HTTP-запроса, но есть и другие значения полей, которые поступают из обработки, выполняемой Hosting для каждого запроса.

Поле Описание
Firebase Hosting сохраняет следующие поля в объекте httpRequest записи журнала.
Эти поля определены в спецификации HTTP.
cacheHit Было ли у CDN Hosting в кэше наличие ресурса ответа?
latency Длительность запроса в секундах с суффиксом s (например, 1.256s с).
protocol Протокол, используемый для запроса (например, HTTP/1.1 , HTTP/2 , websocket ).
referer Адрес предыдущей веб-страницы, с которой была совершена ссылка на текущую запрошенную страницу (если таковая имеется).
remoteIp IP-адрес клиента, отправившего запрос.
requestMethod Метод запроса ( GET , POST , PUT и т. д.)
requestSize Размер запроса в байтах
requestUrl Полный URL-адрес запроса (например,
https://foo.web.app/bar или https://custom.domain.com?query=param )
responseSize Размер HTTP-ответа в байтах
serverIp незаселенный
status Статус HTTP-ответа (например, 200 или 404 )
userAgent Заголовок user-Agent запроса
Firebase Hosting сохраняет дополнительные поля в объекте jsonPayload записи журнала.
acceptEncoding (из HTTP-запроса) Какое кодирование контента, обычно алгоритм сжатия, поддерживает клиент (например, gzip или compress )?
billable Независимо от того, был ли ваш проект оплачен за этот запрос или нет.
customDomain Был ли запрос сделан в отношении пользовательского домена или нет.
hostname Имя хоста, к которому был отправлен запрос.
remoteIpCountry Страна, из которой поступил запрос
remoteIpCity Город, в котором поступил запрос.

Используйте метрики на основе логов.

Вы можете просматривать и создавать метрики на основе логов , а затем использовать эти метрики в Cloud Monitoring для создания диаграмм и политик оповещения.

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

  • Создавайте пользовательские метрики для своего проекта. Вы можете подсчитывать количество записей в журнале, соответствующих заданному запросу, или отслеживать определенные значения в соответствующих записях журнала. Вы можете фильтровать данные с помощью регулярных выражений.

  • Используйте Cloud Monitoring для записи количества записей в журналах, содержащих определенные сообщения, или для извлечения информации о задержке, указанной в записях журналов. Затем вы можете использовать эти метрики в диаграммах и политиках оповещения.

Firebase Hosting также генерирует следующие специфические Hosting метрики логирования. Эти метрики относятся не к конкретной записи в журнале, а к конкретному сайту Hosting в целом.

  • log_bytes : Общий объем использованных данных в байтах для каждого сайта

  • response_count : Общее количество ответов, отправленных на сайт.

    Этот показатель включает поле HTTP-статуса, поэтому вы можете построить график HTTP-ответов в зависимости от статуса (например).

Экспорт журналов в другие инструменты Google Cloud

Вы также можете экспортировать журналы своего сайта в другие инструменты Google Cloud , например, в Cloud Monitoring или BigQuery:

  • С помощью Cloud Monitoring вы можете создавать метрики на основе журналов, которые можно использовать в диаграммах и политиках оповещения.

  • С помощью BigQuery вы можете выполнить любое из следующих действий:

    • Используйте Looker Studio для создания панелей мониторинга данных о вашем Hosting .
    • Выполняйте запросы, чтобы получить более подробную информацию о ваших запросах (средний размер ответа, количество попаданий и промахов в кэше и т. д.).
    • Узнайте, какие URL-адреса действительно запрашивают ваши пользователи.
    • Объедините данные Hosting с другими данными Firebase, экспортированными в BigQuery, и выполняйте запросы к ним новыми способами.