← Hyperdrive (Postgres & MySQL) / hyperdrive / observability
Метрики и аналитика
Hyperdrive предоставляет аналитику, позволяющую отслеживать объём запросов, задержку запросов, долю попаданий в кэш и метрики пула соединений для каждой конфигурации Hyperdrive в вашем аккаунте.
Метрики
На данный момент Hyperdrive экспортирует метрики через hyperdriveQueriesAdaptiveGroups и hyperdrivePoolSizesAdaptiveGroups наборов данных GraphQL.
Метрики запросов
hyperdriveQueriesAdaptiveGroups набор данных содержит следующие метрики:
| Метрика | Имя поля GraphQL | Описание |
|---|---|---|
| Запросы | count |
Количество запросов, выполненных к вашему Hyperdrive за указанный период времени. |
| Cache Status | cacheStatus |
Был ли запрос получен из кэша. Может быть одним из значений disabled, hit, miss, uncacheable, multiplestatements, notaquery, oversizedquery, oversizedresult, parseerror, transaction, а также volatile. |
| Байты запросов | queryBytes |
Размер ваших запросов в байтах. |
| Result Bytes | resultBytes |
Размер вашего запроса результаты, в байтах. |
| Задержка подключения | connectionLatency |
Время (в миллисекундах), необходимое для установки новых соединений от Hyperdrive к вашей базе данных, измеренное по пулу(ам) соединений Hyperdrive. |
| Задержка запросов | queryLatency |
Время (в миллисекундах), необходимое для выполнения запроса к базе данных и получения результата, измеренное по пулу(ам) соединений Hyperdrive. |
| Статус события | eventStatus |
Успешно ли выполнен запрос (complete) или неудачными (error). |
volatile статус кэша означает, что запрос содержит функцию PostgreSQL, отнесённую к категории STABLE или VOLATILE (например, NOW(), RANDOM()). См. Кеширование запросов с подробностями о том, какие функции влияют на кэшируемость.
Метрики размера пула
hyperdrivePoolSizesAdaptiveGroups набор данных содержит следующие метрики пула соединений:
| Метрика | Имя поля GraphQL | Описание |
|---|---|---|
| Avg. open connections | avg.currentPoolSize |
Среднее количество подключений, открытых в пуле в данный момент. |
| Avg. available slots | avg.availablePoolSlots |
Среднее количество подключений пула, доступных для использования. |
| Avg. waiting clients | avg.waitingClients |
Среднее количество клиентов, ожидающих подключение из пула. |
| Максимальный размер пула | max.maxPoolSize |
Заданный максимальный размер пула подключений. |
| Пиковые открытые подключения | max.currentPoolSize |
Пиковое количество подключений, открытых в пуле. |
| Пиковые ожидающие клиенты | max.waitingClients |
Пиковое количество клиентов, ожидающих подключения из пула. |
Конкуренция за подключения проявляется как всплеск числа ожидающих клиентов или когда количество открытых подключений стабильно приближается к максимальному размеру пула. Если открытые подключения регулярно приближаются к этому лимиту, рассмотрите увеличение лимита подключений Hyperdrive.
Метрики можно запрашивать (и они хранятся) за последние 31 день.
Просмотр метрик в панели управления
Аналитика Hyperdrive по каждой базе данных доступна в панели управления Cloudflare. Чтобы просмотреть текущие и исторические метрики конфигурации Hyperdrive, выполните следующие шаги:
-
На панели управления Cloudflare перейдите к разделу Hyperdrive страницу.
Перейдите в Hyperdrive ↗ -
Выберите существующую конфигурацию Hyperdrive.
-
Выберите Метрики на вкладке.
При необходимости можно выбрать временной интервал для запроса. По умолчанию используются последние 24 часа.
Панель управления включает Подключения в пуле график, на котором отображаются ожидающие соединения, открытые соединения и максимальный размер пула. С помощью селектора локаций можно отфильтровать данные по конкретным локациям Cloudflare.
Запрос через GraphQL API
Получать аналитику по конфигурациям Hyperdrive программно можно через GraphQL Analytics API. Этот API запрашивает те же наборы данных, что и панель управления Cloudflare, и поддерживает GraphQL интроспекция.
Для наборов данных GraphQL в Hyperdrive требуется accountTag фильтр с ID вашего аккаунта Cloudflare. Hyperdrive предоставляет hyperdriveQueriesAdaptiveGroups и hyperdrivePoolSizesAdaptiveGroups наборов данных.
Написание запросов GraphQL
Примеры анализа метрик Hyperdrive.
Получение количества запросов, обработанных вашей конфигурацией Hyperdrive, в разбивке по статусу кэша
query HyperdriveQueries(
$accountTag: string!
$configId: string!
$datetimeStart: Time!
$datetimeEnd: Time!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
hyperdriveQueriesAdaptiveGroups(
limit: 10000
filter: {
configId: $configId
datetime_geq: $datetimeStart
datetime_leq: $datetimeEnd
}
) {
count
dimensions {
cacheStatus
}
}
}
}
}Получить среднюю задержку запроса и подключения для запросов, обработанных через вашу конфигурацию Hyperdrive, за указанный период времени, без учёта запросов, завершившихся с ошибкой
query AverageHyperdriveLatencies(
$accountTag: string!
$configId: string!
$datetimeStart: Time!
$datetimeEnd: Time!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
hyperdriveQueriesAdaptiveGroups(
limit: 10000
filter: {
configId: $configId
eventStatus: "complete"
datetime_geq: $datetimeStart
datetime_leq: $datetimeEnd
}
) {
avg {
connectionLatency
queryLatency
}
}
}
}
}Получение общего объёма данных запросов и результатов (в байтах), проходящих через вашу конфигурацию Hyperdrive
query HyperdriveQueryAndResultBytesForSuccessfulQueries(
$accountTag: string!
$configId: string!
$datetimeStart: Date!
$datetimeEnd: Date!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
hyperdriveQueriesAdaptiveGroups(
limit: 10000
filter: {
configId: $configId
datetime_geq: $datetimeStart
datetime_leq: $datetimeEnd
}
) {
sum {
queryBytes
resultBytes
}
}
}
}
}Получение метрик размера пула для вашей конфигурации Hyperdrive
query HyperdrivePoolSizes(
$accountTag: string!
$configId: string!
$datetimeStart: Time!
$datetimeEnd: Time!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
hyperdrivePoolSizesAdaptiveGroups(
limit: 10000
filter: {
configId: $configId
datetime_geq: $datetimeStart
datetime_leq: $datetimeEnd
}
) {
avg {
currentPoolSize
availablePoolSlots
waitingClients
}
max {
maxPoolSize
currentPoolSize
waitingClients
}
dimensions {
coloCode
}
}
}
}
}