Greenplum-exporter
Основанный на языке Go интегрированный в Greenplum прометеевский (prometheus) инструмент для сбора данных мониторинга.
Проект доступен по адресам:
(1) Установка окружения:
wget https://gomirrors.org/dl/go/go1.14.12.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.14.12.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
(2) Компиляция программного обеспечения:
git clone https://github.com/tangyibo/greenplum_exporter
cd greenplum_exporter/ && make build
cd bin && ls -l
git clone https://github.com/tangyibo/greenplum_exporter
cd greenplum_exporter/
sh docker-build.sh
export GPDB_DATA_SOURCE_URL=postgres://gpadmin:password@10.17.20.11:5432/postgres?sslmode=disable
./greenplum_exporter --web.listen-address="0.0.0.0:9297" --web.telemetry-path="/metrics" --log.level=error
docker run -d -p 9297:9297 -e GPDB_DATA_SOURCE_URL=postgres://gpadmin:password@10.17.20.11:5432/postgres?sslmode=disable inrgihc/greenplum-exporter:latest
Примечание: переменная среды GPDB_DATA_SOURCE_URL указывает на строку подключения к базе данных Greenplum (рекомендуется использовать учётные данные gpadmin для подключения к библиотеке postgres), строка подключения начинается с postgres://, формат следующий:
postgres://[имя пользователя базы данных, обязательно gpadmin]:[пароль пользователя базы данных]@[IP-адрес базы данных]:[порт базы данных]/[имя базы данных, должно быть postgres]?[параметр имя]=[значение параметра]&[параметр имя]=[параметр значение]
Затем посетите URL-адрес показателей мониторинга: http://127.0.0.1:9297/metrics.
Дополнительные параметры запуска:
usage: greenplum_exporter [<flags>]
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--web.listen-address="0.0.0.0:9297"
web endpoint
--web.telemetry-path="/metrics"
Path under which to expose metrics.
--disableDefaultMetrics do not report default metrics(go metrics and process metrics)
--version Show application version.
--log.level="info" Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]
--log.format="logger:stderr"
Set the log target and format. Example: "logger:syslog?appname=bob&local=7" or "logger:stdout?json=true"
№ | Название показателя | Тип | Метки группы | Единица измерения | Описание показателя | Метод получения данных |
---|---|---|---|---|---|---|
1 | greenplum_cluster_state | Gauge | version; master(имя главного хоста); standby(имя резервного хоста) | boolean | состояние доступности gp: 1→ доступно;0→ недоступно | SELECT count(*) из gp_dist_random('gp_id'); select version(); SELECT hostname из p_segment_configuration, где content=-1 и role='p'; |
2 | greenplum_cluster_uptime | Gauge | - | int | время работы | select extract(epoch from now() - pg_postmaster_start_time()); |
3 | greenplum_cluster_sync | Gauge | - | int | состояние синхронизации MasterStandby: 1→ нормальное;0→ аномальное | SELECT количество (*) из pg_stat_replication, где state='streaming' |
4 | greenplum_cluster_max_connections | Gauge | - | int | максимальное количество подключений | show max_connections; show superuser_reserved_connections; |
5 | greenplum_cluster_total_connections | Gauge | - | int | текущее количество подключений | выберите количество (*), количество (*) filter (где current_query='') idle, количество (*) filter (где current_query<>'') active, количество (*) filter (где current_query<>'' и не waiting) running, количество (*) filter (где current_queue<>'' и waiting) waiting из pg_stat_activity, где procpid <> pg_backend_pid(); |
6 | greenplum_cluster_idle_connections | Gauge | - | int | количество подключенных соединений | аналогично |
7 | greenplum_cluster_active_connections | Gauge | - | int | активное количество запросов | аналогично |
8 | greenplum_cluster_running_connections | Gauge | - | int | номер выполняемого запроса | аналогично |
9 | greenplum_cluster_waiting_connections | Gauge | - | int | номер ожидающего выполнения запроса | аналогично |
10 | greenplum_node_segment_status | Gauge | имя хоста; адрес; dbid; контент; предпочтительная роль; порт; порт репликации | int | статус сегмента status: 1(U)→ вверх; 0(D)→ вниз | выберите * из gp_segment_configuration; |
11 | greenplum_node_segment_role | роль сегмента |
| 12 | greenplum_node_segment_mode | Gauge | hostname; address; dbid; content; preferred_role; port; replication_port | int | режим сегмента: 1(S) → Synced; 2(R) → Resyncing; 3(C) → Change Tracking; 4(N) → Not Syncing | аналогично |
| 13 | greenplum_node_segment_disk_free_mb_size | Gauge | hostname | MB | размер свободного дискового пространства сегмента (MB) | SELECT dfhostname as segment_hostname, sum(dfspace)/count(dfspace)/(1024*1024) as segment_disk_free_gb from gp_toolkit.gp_disk_free GROUP BY dfhostname |
| 14 | greenplum_cluster_total_connections_per_client | Gauge | client | int | общее количество подключений на одного клиента | select usename, count() total, count() filter(where current_query='') idle, count(*) filter(where current_query<>'') active from pg_stat_activity group by 1; |
| 15 | greenplum_cluster_idle_connections_per_client | Gauge | клиент | int | количество неактивных подключений на одного клиента | аналогично |
| 16 | greenplum_cluster_active_connections_per_client | Gauge | клиент | int | количество активных подключений на одного клиента | аналогично |
| 17 | greenplum_cluster_total_online_user_count | Gauge | - | int | число пользователей онлайн | аналогично |
| 18 | greenplum_cluster_total_client_count | Gauge | - | int | общее количество клиентов | аналогично |
| 19 | greenplum_cluster_total_connections_per_user | Gauge | usename | int | общее количество подключений для каждого пользователя | select client_addr, count() total, count() filter(where current_query='') idle, count(*) filter(where current_query<>'') active from pg_stat_activity group by 1; |
| 20 | greenplum_cluster_idle_connections_per_user | Gauge | usename | int | количество неактивных подключений для каждого пользователя | аналогично |
| 21 | greenplum_cluster_active_connections_per_user | Gauge | usename | int | количество активных подключений для каждого пользователя | аналогично |
| 22 | greenplum_cluster_config_last_load_time_seconds | Gauge | - | int | время загрузки конфигурации системы | SELECT pg_conf_load_time() |
| 23 | greenplum_node_database_name_mb_size | Gauge | dbname | MB | объём занимаемого пространства каждой базой данных | SELECT dfhostname as segment_hostname,sum(dfspace)/count(dfspace)/(1024*1024) as segment_disk_free_gb from gp_toolkit.gp_disk_free GROUP BY dfhostname |
| 24 | greenplum_node_database_table_total_count | Gauge | dbname | - | общее количество таблиц в каждой базе данных | SELECT count(*) as total from information_schema.tables where table_schema not in ('gp_toolkit','information_schema','pg_catalog'); |
| 25 | greenplum_exporter_total_scraped | Counter | -| int | - | - |
| 26 | greenplum_exporter_total_error | Counter | - | int | - | - |
| 27 | greenplum_exporter_scrape_duration_second | Gauge | - | int | - | - |
| 28 | greenplum_server_users_name_list | Gauge | - | int | общее число пользователей | SELECT usename from pg_catalog.pg_user; |
| 29 | greenplum_server_users_total_count | Gauge | - | int | детализация пользователей | аналогично |
| 30 | greenplum_server_locks_table_detail | Gauge | pid;datname;usename;locktype;mode;application_name;state;lock_satus;query | int | информация о блокировках | SELECT * from pg_locks |
| 31 | greenplum_server_database_hit_cache_percent_rate | Gauge | - | float | процент попаданий в кэш | select sum(blks_hit)/(sum(blks_read)+sum(blks_hit))*100 from pg_stat_database; |
| 32 | greenplum_server_database_transition_commit_percent_rate | Gauge | - | float | процент транзакционных коммитов | select sum(xact_commit)/(sum(xact_commit)+sum(xact_rollback))*100 from pg_stat_database; |
| 33 | greenplum_server_database_table_bloat_list | Gauge | - | int | список раздутых таблиц | select * from gp_toolkit.gp_bloat_diag; |
| 34 | greenplum_server_database_table_skew_list | Gauge | - | int | список перекошенных таблиц | select * from gp_toolkit.gp_skew_coefficients; |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )