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

Метрики и аналитика

Durable Objects предоставляют аналитику по метрикам на уровне пространства имён Durable Object и на уровне запросов.

Метрики, отображаемые в Панель управления Cloudflare ↗ графики формируются на основе данных Cloudflare GraphQL Analytics API. Вы можете получить доступ к метрикам программно через GraphQL или HTTP-клиент.

Просмотр метрик и аналитики

Аналитика Durable Object в разрезе namespace доступна на панели управления Cloudflare. Чтобы просмотреть текущие и исторические метрики для namespace, выполните следующее:

  1. На панели управления Cloudflare перейдите к разделу Durable Objects страницу.

    Перейдите в Durable Objects ↗
  2. Просматривайте использование Durable Objects на уровне аккаунта.

  3. Выберите существующее пространство имён Durable Object.

  4. Выберите Метрики на вкладке.

При необходимости можно выбрать временной интервал для запроса. По умолчанию используются последние 24 часа.

Вы также можете отфильтровать графики по одному Durable Object, указав его ID или имя и выбора совпадения. Чтобы вернуться к метрикам уровня пространства имён, очистите фильтр.

Использование памяти

Использование памяти график на Метрики вкладка показывает V8 изолят использование памяти, периодически измеряемое, пока ваши Durable Objects активны, с разбивкой по перцентилям P50, P90, P99 и P999. На каждый изолят распространяется лимит памяти 128 MB.

В этой памяти хранится состояние, которое накапливают ваши объекты: свойства класса, кэши и активные WebSocket-соединения. Оно сохраняется между запросами, пока объект не будет переведён в спящий режим или вытеснен. Это состояние не сохраняется при вытеснении, гибернации или сбое, поэтому всё важное следует сохранять в хранилище.

Содержимое графика зависит от того, применён ли фильтр:

Использование памяти отслеживается с помощью durableObjectsPeriodicGroups набор данных GraphQL, который предоставляет memoryUsageBytes метрика. Значения перцентилей доступны как quantiles.memoryUsageBytesP50 через quantiles.memoryUsageBytesP999, в байтах.

Если использование памяти со временем растёт, это может указывать на утечку памяти. Используйте профилирование памяти с помощью DevTools локально, чтобы делать снимки кучи и находить конкретные объекты, вызывающие высокое потребление памяти.

Просмотр логов

Вы можете просматривать логи Durable Object в Cloudflare dashboard. Логи группируются по имени скрипта и имени класса Durable Object.

Чтобы начать использовать логирование Durable Object:

  1. Включите логирование Durable Object в файле конфигурации Wrangler того Worker, который определяет класс вашего Durable Object:

    {
        "observability": {
            "enabled": true
        }
    }
    [observability]
    enabled = true
  2. Разверните последнюю версию Worker с обновлённой привязкой.

  3. Перейдите в Durable Objects страницу.

    Перейдите в Durable Objects ↗
  4. Выберите существующее пространство имён Durable Object.

  5. Выберите Журналы на вкладке.

Запрос через GraphQL API

Метрики Durable Object основаны на GraphQL.

Наборы данных, включающие метрики Durable Object:

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

Метрики WebSocket

Durable Objects с использованием WebSockets вы увидите метрики запросов по нескольким наборам данных GraphQL, поскольку у WebSocket-соединений разные типы запросов.

Пример GraphQL-запроса для Durable Objects

  viewer {
    /*
    Replace with your account tag, the 32 hex character id visible at the beginning of any url
    when logged in to dash.cloudflare.com or under "Account ID" on the sidebar of the Workers & Pages Overview
    */
    accounts(filter: {accountTag: "your account tag here"}) {
      // Replace dates with a recent date
      durableObjectsInvocationsAdaptiveGroups(filter: {date_gt: "2023-05-23"}, limit: 1000) {
        sum {
          // Any other fields found through introspection can be added here
          requests
          responseBodySize
        }
      }
      durableObjectsPeriodicGroups(filter: {date_gt: "2023-05-23"}, limit: 1000) {
        sum {
          cpuTime
        }
      }
      durableObjectsStorageGroups(filter: {date_gt: "2023-05-23"}, limit: 1000) {
        max {
          storedBytes
        }
      }
    }
  }

См. Запрос метрик Workers с помощью GraphQL учебник по аутентификации, а также узнать больше о запросах к datasets Workers.

Дополнительные ресурсы

Часто задаваемые вопросы

Как определить, какой экземпляр Durable Object сформировал запись в журнале?

Вы можете использовать $workers.durableObjectId чтобы определить конкретный экземпляр Durable Object, создавший запись в журнале.