<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Документация Proto Observability Platform – Tantor</title><link>/docs/tags/tantor/</link><description>Recent content in Tantor on Документация Proto Observability Platform</description><generator>Hugo -- gohugo.io</generator><language>ru</language><atom:link href="/docs/tags/tantor/index.xml" rel="self" type="application/rss+xml"/><item><title>Instrumentation: Мониторинг Tantor с помощью Proto Observability</title><link>/docs/instrumentation/infra/databases/tantor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/instrumentation/infra/databases/tantor/</guid><description>
&lt;h1 id="сбор-метрик-tantor">Сбор метрик Tantor&lt;/h1>
&lt;p>&lt;a href="https://tantorlabs.ru/" target="_blank" rel="noopener noreferrer">Tantor&lt;/a> — российская СУБД от Tantor Labs, являющаяся
форком PostgreSQL. Wire-протокол и SQL-поведение Tantor полностью совместимы
с PostgreSQL, поэтому ProtoOBP-агент собирает метрики Tantor той же проверкой
&lt;code>postgres&lt;/code>, что и для ванильного PostgreSQL — отдельной интеграции
устанавливать не нужно. Инструкция ниже подходит для редакций Tantor BE
(Basic Edition), SE (Standard Edition), SE 1C и Certified, для версий
PostgreSQL-ядра 14, 15, 16 и 17.&lt;/p>
&lt;h2 id="конфигурация-tantor">Конфигурация Tantor&lt;/h2>
&lt;p>Создайте пользователя с правами &lt;code>read-only&lt;/code> для агента ProtoOBP в &lt;code>admin&lt;/code> базе данных Tantor:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Для версий с ядром PostgreSQL 10 и выше (вся актуальная линейка Tantor 14/15/16/17):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">create user protoobp with password &lt;span class="s1">&amp;#39;&amp;lt;PASSWORD&amp;gt;&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">grant pg_monitor to protoobp&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">grant SELECT ON pg_stat_database to protoobp&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ul>
&lt;p>Если требуется собирать query-level метрики (&lt;code>postgresql.queries.*&lt;/code>),
загрузите расширение &lt;code>pg_stat_statements&lt;/code> через &lt;code>shared_preload_libraries&lt;/code> в
&lt;code>postgresql.conf&lt;/code> и выполните в наблюдаемой базе:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">EXTENSION&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">IF&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">NOT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">EXISTS&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">pg_stat_statements&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="конфигурация-protoobp-агента">Конфигурация ProtoOBP агента&lt;/h2>
&lt;h3 id="если-агент-запускается-в-виде-службы-systemd-на-хосте">Если агент запускается в виде службы systemd на хосте&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>В файле конфигурации ProtoOBP агента (&lt;code>/etc/protoobp-agent/conf.d/postgres.d/conf.yaml&lt;/code>) укажите адрес и порт Tantor и учетную запись под которой агент сможет подключиться к базе:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">init_config&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">instances&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">host&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">localhost&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">port&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="m">5432&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">username&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">protoobp&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">password&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">protoobp&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c">#По-умолчанию используется dbname - postgres&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">dbname&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;&amp;lt;DB_NAME&amp;gt;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Перезапустите ProtoOBP агента выполнив &lt;code>systemctl restart protoobp-agent&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Выполните &lt;a href="../../../../setup/agent#%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%8b-%d0%b0%d0%b3%d0%b5%d0%bd%d1%82%d0%b0">проверку работы агента&lt;/a> и убедитесь, что в разделе Postgres нет ошибок.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Обратите внимание&lt;/h4>
Для отображения нового хоста СУБД следует &lt;em>обновить страницу браузера целиком&lt;/em> (кнопка &lt;code>Обновить&lt;/code> в правом верхнем углу веб-консоли обновляет только значения метрик на дашборде, но не список серверов).
&lt;/div>
&lt;h3 id="если-агент-запускается-в-виде-docker-контейнера">Если агент запускается в виде Docker контейнера&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>Добавьте следующие лейблы к Docker &lt;strong>контейнеру с Tantor&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>в &lt;code>docker-compose.yaml&lt;/code>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">labels&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">com.protoobp.ad.check_names&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;[&amp;#34;postgres&amp;#34;]&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">com.protoobp.ad.init_configs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;[{}]&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">com.protoobp.ad.instances&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;[{&amp;#34;host&amp;#34;:&amp;#34;%%host%%&amp;#34;, &amp;#34;port&amp;#34;:5432,&amp;#34;username&amp;#34;:&amp;#34;protoobp&amp;#34;,&amp;#34;password&amp;#34;:&amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;}]&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>или в &lt;code>Dockerfile&lt;/code>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-Dockerfile" data-lang="Dockerfile">&lt;span class="line">&lt;span class="cl">&lt;span class="k">LABEL&lt;/span> &lt;span class="s2">&amp;#34;com.protoobp.ad.check_names&amp;#34;&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;[&amp;#34;postgres&amp;#34;]&amp;#39;&lt;/span>&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&lt;/span>&lt;span class="k">LABEL&lt;/span> &lt;span class="s2">&amp;#34;com.protoobp.ad.init_configs&amp;#34;&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;[{}]&amp;#39;&lt;/span>&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&lt;/span>&lt;span class="k">LABEL&lt;/span> &lt;span class="s2">&amp;#34;com.protoobp.ad.instances&amp;#34;&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;[{&amp;#34;host&amp;#34;:&amp;#34;%%host%%&amp;#34;, &amp;#34;port&amp;#34;:5432,&amp;#34;username&amp;#34;:&amp;#34;protoobp&amp;#34;,&amp;#34;password&amp;#34;:&amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;}]&amp;#39;&lt;/span>&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Примените изменения лейблов для контейнера с Tantor (перезапуском контейнера), а также перезапустите контейнер с агентом ProtoOBP.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Выполните &lt;a href="../../../../setup/agent#%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%8b-%d0%b0%d0%b3%d0%b5%d0%bd%d1%82%d0%b0">проверку работы агента&lt;/a> и убедитесь, что в разделе Postgres нет ошибок.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Обратите внимание&lt;/h4>
Для отображения нового хоста СУБД следует &lt;em>обновить страницу браузера целиком&lt;/em> (кнопка &lt;code>Обновить&lt;/code> в правом верхнем углу веб-консоли обновляет только значения метрик на дашборде, но не список серверов).
&lt;/div>
&lt;h2 id="собираемые-данные">Собираемые данные&lt;/h2>
&lt;h3 id="метрики">Метрики&lt;/h3>
&lt;p>Список метрик идентичен PostgreSQL — Tantor использует ту же модель данных
и те же &lt;code>pg_stat_*&lt;/code> представления, поэтому проверка &lt;code>postgres&lt;/code> собирает с него
ровно те же &lt;code>postgresql.*&lt;/code> серии.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Имя метрики&lt;/th>
&lt;th>Тип метрики&lt;/th>
&lt;th>Единица&lt;/th>
&lt;th>В единицу&lt;/th>
&lt;th>Описание&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>postgresql_connections&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>connection&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество активных соединений с этой базой данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_commits&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>transaction&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество транзакций, которые были зафиксированы в этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_rollbacks&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>transaction&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество транзакций, которые были откачены (rollback) в этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_disk_read&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>block&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество дисковых блоков, прочитанных в этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_buffer_hit&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>hit&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество раз, когда дисковые блоки оказывались в буферном кэше, предотвращая необходимость чтения из базы данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_rows_returned&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество строк, возвращенных запросами в этой базе данных&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_rows_fetched&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество строк, полученных запросами в этой базе данных&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_rows_inserted&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество строк, вставленных запросами в эту базу данных&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_rows_updated&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество строк, обновленных запросами в этой базе данных&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_rows_deleted&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество строк, удаленных запросами в этой базе данных&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_database_size&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>byte&lt;/td>
&lt;td>&lt;/td>
&lt;td>Дисковое пространство, используемое этой базой данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_db_count&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>item&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество доступных баз данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_deadlocks&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>lock&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество тупиковых ситуаций (deadlocks), обнаруженных в этой базе данных&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_deadlocks_count&lt;/td>
&lt;td>count&lt;/td>
&lt;td>lock&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество тупиковых ситуаций (deadlocks), обнаруженных в этой базе данных&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_temp_bytes&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>byte&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество данных, записанных во временные файлы запросами в этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_temp_files&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>file&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество временных файлов, созданных запросами в этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_checkpoints_timed&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество запланированных контрольных точек, которые были выполнены.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_checkpoints_requested&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество запрошенных контрольных точек, которые были выполнены.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_buffers_checkpoint&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество буферов, записанных во время контрольных точек.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_buffers_clean&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество буферов, записанных фоновым писателем.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_maxwritten_clean&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество раз, когда фоновая запись останавливала очистку из-за записи слишком большого количества буферов.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_buffers_backend&lt;/td>
&lt;td>count&lt;/td>
&lt;td>buffer&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество буферов, записанных непосредственно бэкендом.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_buffers_alloc&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество выделенных буферов&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_buffers_backend_fsync&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество случаев, когда бэкенд должен был выполнить свой собственный вызов fsync вместо фонового писателя.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_write_time&lt;/td>
&lt;td>count&lt;/td>
&lt;td>millisecond&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее время обработки контрольной точки, затраченное на запись файлов на диск.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_bgwriter_sync_time&lt;/td>
&lt;td>count&lt;/td>
&lt;td>millisecond&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее время обработки контрольной точки, затраченное на синхронизацию файлов с диском.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_locks&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>lock&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество блокировок, активных для этой базы данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_seq_scans&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество последовательных сканирований, инициированных для этой таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_seq_rows_read&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество живых строк, полученных при последовательном сканировании.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_index_scans&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество индексных сканирований, инициированных для этой таблицы, с пометкой по индексу.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_index_rel_scans&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество сканирований индекса, инициированных для этой таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_index_rows_fetched&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество живых строк, полученных при сканировании индекса.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_index_rel_rows_fetched&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество живых строк, полученных при сканировании индекса.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_rows_hot_updated&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество строк было обновлено HOT, то есть отдельное обновление индекса не потребовалось.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_live_rows&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>&lt;/td>
&lt;td>Предполагаемое количество живых строк.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_dead_rows&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>&lt;/td>
&lt;td>Предполагаемое количество мертвых строк.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_vacuumed&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество раз, когда эта таблица была вакуумирована вручную.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_autovacuumed&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество раз, когда эта таблица была вакуумирована демоном autovacuum.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_analyzed&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество раз, когда эта таблица была проанализирована вручную.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_autoanalyzed&lt;/td>
&lt;td>count&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество раз, когда эта таблица была проанализирована демоном autovacuum.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_index_rows_read&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>row&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество записей индекса, возвращенных в результате сканирования этого индекса.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_table_size&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>byte&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее дисковое пространство, используемое указанной таблицей. Включает TOAST, карту свободного пространства и карту видимости. Исключает индексы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_index_size&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>byte&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее дисковое пространство, используемое индексами, подключенными к указанной таблице.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_total_size&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>byte&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее дисковое пространство, используемое таблицей, включая индексы и данные TOAST.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_table_count&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>table&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество пользовательских таблиц в этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_max_connections&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>connection&lt;/td>
&lt;td>&lt;/td>
&lt;td>Максимальное количество клиентских подключений, разрешенных к этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_percent_usage_connections&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>fraction&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество подключений к этой базе данных в долях от максимального числа разрешенных подключений.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_replication_delay&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>second&lt;/td>
&lt;td>&lt;/td>
&lt;td>Текущая задержка репликации в секундах. Доступно только в postgresql 9.1 и новее&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_replication_delay_bytes&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>byte&lt;/td>
&lt;td>&lt;/td>
&lt;td>Текущая задержка репликации в байтах. Доступно только в postgresql 9.2 и новее&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_replication_wal_write_lag&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>second&lt;/td>
&lt;td>&lt;/td>
&lt;td>Время, прошедшее с момента локального стирания недавней записи WAL до получения уведомления о том, что этот резервный сервер записал ее (но еще не стирал и не применил). Доступно только для postgresql 10 и более новых версий.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_replication_wal_flush_lag&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>second&lt;/td>
&lt;td>&lt;/td>
&lt;td>Время, прошедшее с момента локального стирания последних данных WAL до получения уведомления о том, что этот резервный сервер записал и слил их (но еще не применил). Доступно только для postgresql 10 и более новых версий.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_replication_wal_replay_lag&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>second&lt;/td>
&lt;td>&lt;/td>
&lt;td>Время, прошедшее с момента локального стирания последних данных WAL до получения уведомления о том, что этот резервный сервер их записал, слил и применил. Это можно использовать для оценки задержки, которую понесл synchronous_commit уровня remote_apply при коммите, если этот сервер был настроен как синхронный резервный.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_replication_backend_xmin_age&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Возраст xmin-горизонта резервного сервера (относительно последнего стабильного xid), о котором сообщает hot_standby_feedback.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_heap_blocks_read&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>block&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество дисковых блоков, считанных из этой таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_heap_blocks_hit&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>hit&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество обращений к буферу в этой таблице.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_index_blocks_read&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>block&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество дисковых блоков, прочитанных из всех индексов этой таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_index_blocks_hit&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>hit&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество попаданий в буфер во всех индексах этой таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_table_bloat&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>percent&lt;/td>
&lt;td>&lt;/td>
&lt;td>Предполагаемый процент разбухания таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_index_bloat&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>percent&lt;/td>
&lt;td>&lt;/td>
&lt;td>Предполагаемый процент разбухания индекса.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_toast_blocks_read&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>block&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество дисковых блоков, прочитанных из таблицы TOAST этой таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_toast_blocks_hit&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>hit&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество просмотров буфера в таблице TOAST этой таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_toast_index_blocks_read&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>block&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество дисковых блоков, прочитанных из индекса таблицы TOAST этой таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_toast_index_blocks_hit&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>block&lt;/td>
&lt;td>second&lt;/td>
&lt;td>Количество попаданий в буфер в индексе таблицы TOAST этой таблицы.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_transactions_open&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>transaction&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество открытых транзакций в этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_transactions_idle_in_transaction&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>transaction&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество транзакций &amp;lsquo;idle in transaction&amp;rsquo; в этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_before_xid_wraparound&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>transaction&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество транзакций, которое может произойти до момента обхода транзакции.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_active_queries&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество активных запросов в этой базе данных.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_active_waiting_queries&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>Количество ожидающих запросов в этой базе данных в активном состоянии.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_waiting_queries&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>The number of waiting queries in this database.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_count&lt;/td>
&lt;td>count&lt;/td>
&lt;td>query&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество выполненных запросов для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_time&lt;/td>
&lt;td>count&lt;/td>
&lt;td>nanosecond&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее время выполнения запроса для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_rows&lt;/td>
&lt;td>count&lt;/td>
&lt;td>row&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество строк, полученных или затронутых запросом, для каждого query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_shared_blks_hit&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество обращений к кэшу разделяемых блоков для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_shared_blks_read&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество прочитанных общих блоков для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_shared_blks_dirtied&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество общих блоков, загрязненных для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_shared_blks_written&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество общих блоков, записанных для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_local_blks_hit&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество обращений к локальному блочному кэшу по query_signature, db и user. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_local_blks_read&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество прочитанных локальных блоков для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_local_blks_dirtied&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество локальных блоков, испачканных для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_local_blks_written&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество локальных блоков, записанных для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_temp_blks_read&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество прочитанных временных блоков для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_temp_blks_written&lt;/td>
&lt;td>count&lt;/td>
&lt;td>block&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее количество временных блоков, записанных для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_blk_read_time&lt;/td>
&lt;td>count&lt;/td>
&lt;td>nanosecond&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее время чтения блоков для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_blk_write_time&lt;/td>
&lt;td>count&lt;/td>
&lt;td>nanosecond&lt;/td>
&lt;td>&lt;/td>
&lt;td>Общее время, затраченное на запись блоков для query_signature, db и пользователя. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_duration_max&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>nanosecond&lt;/td>
&lt;td>&lt;/td>
&lt;td>Возраст самого продолжительного выполнения запроса для пользователя, базы данных и приложения. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_queries_duration_sum&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>nanosecond&lt;/td>
&lt;td>&lt;/td>
&lt;td>Сумма возраста всех выполняющихся запросов для пользователя, базы данных и приложения. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_transactions_duration_max&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>nanosecond&lt;/td>
&lt;td>&lt;/td>
&lt;td>Возраст самой продолжительной выполняемой транзакции для пользователя, базы данных и приложения. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_transactions_duration_sum&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>nanosecond&lt;/td>
&lt;td>&lt;/td>
&lt;td>Сумма возраста всех запущенных транзакций для пользователя, базы данных и приложения. (только для DBM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>postgresql_wal_age&lt;/td>
&lt;td>gauge&lt;/td>
&lt;td>second&lt;/td>
&lt;td>&lt;/td>
&lt;td>Возраст в секундах самого старого WAL-файла.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item></channel></rss>