Таблица статистики системы
Таблица статистики — одна из системных таблиц, добавленных в версию 1.16 RethinkDB. Она предоставляет статистику о пропускной способности чтения/записи сервера, подключениях клиентов и использовании памяти.
Запрос к таблице статистики
Примечание: как и другие системные таблицы, к таблице статистики можно получить доступ только с использованием учётной записи admin.
Первичный ключ таблицы — поле id, а ключи всегда являются массивами. Первый элемент массива всегда является строкой, указывающей тип объекта, к которому производится запрос (например, "table", "server", и т. д.); для всех объектов, кроме кластера (который имеет только один документ в таблице stats), второй элемент — UUID объекта, к которому производится запрос.
// get a dump of all current statistics
r.db("rethinkdb").table("stats").run(conn, callback);
// query about the cluster as a whole
r.db("rethinkdb").table("stats").get(["cluster"]).run(conn, callback);
// query about a specific server
r.db("rethinkdb").table("stats").get(["server", "de8b75d1-3184-48f0-b1ef-99a9c04e2be5"]).run(conn, callback);
// query about a specific table
r.db("rethinkdb").table("stats").get(["table", "31c92680-f70c-4a4b-a49e-b238eb12c023"]).run(conn, callback);
// query about a replica of a table on a specific server
// this requires *two* UUIDs: the table's, then the server's
r.db("rethinkdb").table("stats").get(["table_server", "31c92680-f70c-4a4b-a49e-b238eb12c023", "de8b75d1-3184-48f0-b1ef-99a9c04e2be5"]).run(conn, callback);
Схема документа
Каждый объект имеет свою собственную схему документа. Названия полей, в основном, понятны. Поля server, db и table будут либо UUID, либо строками в зависимости от значения необязательного аргумента identifier_format для table.
кластер
{
id: ["cluster"],
query_engine: {
queries_per_sec: <NUMBER>,
read_docs_per_sec: <NUMBER>,
written_docs_per_sec: <NUMBER>
}
}
сервер
{
id: ["server", <UUID>],
server: <UUID> or <STRING>,
query_engine: {
queries_per_sec: <NUMBER>,
queries_total: <NUMBER>,
read_docs_per_sec: <NUMBER>,
read_docs_total: <NUMBER>,
written_docs_per_sec: <NUMBER>,
written_docs_total: <NUMBER>,
client_connections: <NUMBER>
},
}
Если сервер вышел из строя, возвращаемый документ не будет содержать статистику, но будет содержать поле ошибки.
{
id: ["server", <UUID>],
server: <UUID> or <STRING>,
error: "Timed out. Unable to retrieve stats."
}
таблица
{
id: ["table", <UUID>],
table: <UUID> or <STRING>,
db: <UUID> or <STRING>,
query_engine: {
read_docs_per_sec: <NUMBER>,
written_docs_per_sec: <NUMBER>
}
}
реплика (пара таблица/сервер)
{
id: ["table_server", <UUID>, <UUID>] // table_id, server_id
server: <UUID> or <STRING>,
table: <UUID> or <STRING>,
db: <UUID> or <STRING>,
query_engine: {
read_docs_per_sec: <NUMBER>,
read_docs_total: <NUMBER>,
written_docs_per_sec: <NUMBER>,
written_docs_total: <NUMBER>
},
storage_engine: {
cache: {
in_use_bytes: <NUMBER>
},
disk: {
read_bytes_per_sec: <NUMBER>,
read_bytes_total: <NUMBER>,
written_bytes_per_sec: <NUMBER>,
written_bytes_total: <NUMBER>,
space_usage: {
metadata_bytes: <NUMBER>,
data_bytes: <NUMBER>,
garbage_bytes: <NUMBER>,
preallocated_bytes: <NUMBER>
}
}
}
}
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/docs/system-stats/