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

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

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

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

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

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

  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 сайтов, вы можете фильтровать журналы по домену или по сайту. Это позволяет вам увидеть, как распределяется ваш трафик. Фильтруя по домену, вы можете отслеживать, какой домен посещается чаще всего.

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

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

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

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

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

Поле Описание
Firebase Hosting сохраняет следующие поля в объекте httpRequest записи журнала.
Эти поля определены в спецификации HTTP.
cacheHit Имелся ли у Hosting CDN ресурс ответа в кеше
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 , вы можете выполнить любое из следующих действий:

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