Ключи API
Для использования ClickHouse OpenAPI требуется аутентификация; о том, как создать [ключи API], см. в соответствующем разделе. Затем используйте их, передав учетные данные Basic Auth следующим образом:Идентификатор организации
Далее вам понадобится идентификатор вашей организации.- Выберите название своей организации в левом нижнем углу консоли.
- Выберите Сведения об организации.
- Нажмите значок копирования справа от идентификатора организации, чтобы сразу скопировать его в буфер обмена.
CRUD
Рассмотрим жизненный цикл сервиса Postgres.Создание
Сначала создайте новый сервис с помощью create API. Для этого в JSON body запроса должны быть указаны следующие свойства:name: имя нового сервиса Postgresprovider: имя облачного провайдера:aws(илиgcpв режиме закрытой предварительной версии)region: регион в сети провайдера, в котором будет развернут сервисsize: размер VM
Чтение
Используйтеid из ответа, чтобы снова запросить сервис:
state: когда его значение изменится на running, сервер будет готов к работе:
connectionString, сохранённое из ответа, полученного при создании,
например через psql:
\q для выхода из psql.
Обновление
Patch API поддерживает обновление части свойств управляемого сервиса Postgres с помощью JSON Merge Patch согласно RFC 7396. Для сложных развертываний особенно полезны могут быть теги; просто отправьте в запросе только их:Удаление
Используйте API удаления, чтобы удалить сервис Postgres.Мониторинг
Две совместимые с Prometheus конечные точки предоставляют метрики ЦП, памяти, I/O, подключений и транзакций для сервисов ClickHouse Managed Postgres: одна возвращает метрики для всех сервисов в организации, другая — для одного сервиса. См. страницу конечная точка Prometheus с инструкциями по настройке и [справочник по метрикам] для полного списка метрик.Query insights
Телеметрия по отдельным операторам SQL, лежащая в основе вкладки Query Insights в облачной консоли, также доступна программно. Две конечные точки позволяют получить доступ к самым медленным шаблонам запросов в сервисе: одна возвращает список всех шаблонов, ранжированных по влиянию, другая — один шаблон вместе с его недавними выполнениями.Получить список шаблонов медленных запросов
[API slow patterns] возвращает агрегированные метрики по самым медленным шаблонам запросов, наблюдавшимся в заданном временном интервале. Интервал обязателен — передайтеfrom_date и to_date в виде временных меток RFC 3339:
total_duration
по убыванию. Чтобы сортировать по другому счётчику, используйте sort_by (например,
p99_duration, call_count или total_wal_bytes), а направление изменяйте
с помощью sort_order. Сузить выборку можно с помощью фильтров db_name, db_user,
db_operation и app, а для постраничного просмотра используйте limit и
offset.
Каждый результат представляет собой один нормализованный шаблон, из которого удалены литералы, а
длительности указаны в микросекундах:
queryId — это знаковый 64-битный хеш нормализованного оператора, поэтому он
часто бывает отрицательным. Передайте его обратно дословно — включая
начальный - и всё остальное, — чтобы получить один шаблон запроса.
Получить шаблон медленного запроса
ПередайтеqueryId из ответа со списком в API шаблона медленного запроса, чтобы получить
агрегированные метрики этого шаблона, а также сведения о его последних отдельных выполнениях.
Параметры db_name, db_user и db_operation, которые идентифицируют шаблон,
обязательны:
aggregate, а также массив recentExecutions. Каждое выполнение включает
полный набор счётчиков по каждому выполнению — ввод-вывод общих и временных
блоков, время CPU в пользовательском и системном режимах, параллельные
воркеры, JIT и WAL — те же счётчики, которые
выдвижная панель сведений показывает в консоли:
Серверные журналы
Серверные журналы PostgreSQL, доступные в средстве просмотра журналов в облачной консоли, также доступны программно. API журналов возвращает отдельные записи журнала для сервиса за временной интервал. Как и в Query Insights, указание интервала обязательно, поэтому передайтеfrom_date и to_date в виде временных меток RFC 3339. Интервал не должен превышать
30 дней, а to_date должен быть позже from_date:
sort_order (asc или
desc). Чтобы отфильтровать записи по одному уровню серьёзности, используйте severity (например, ERROR,
WARNING или LOG); для поиска подстроки в теле журнала с учётом регистра — body_contains; для постраничного просмотра результатов — limit и offset.
Каждая запись содержит timestamp, severity и необработанное body. Тело
всегда представляет собой строку: структурированные строки журнала возвращаются в кодировке JSON, обычные строки —
без изменений:
limit и offset, а не общее
количество; увеличивайте offset, пока страница не вернёт меньше limit записей.