Skip to content

Grafana: пул соединений с БД не распадается на серии при перезапуске хаба - #1

Merged
Segate-ekb merged 1 commit into
Segate-ekb:feature/openhubfrom
sfaqer:fix/grafana-db-pool-series
Sep 25, 2026
Merged

Segate-ekb merged 1 commit into
Segate-ekb:feature/openhubfrom
sfaqer:fix/grafana-db-pool-series

Conversation

@sfaqer

@sfaqer sfaqer commented Sep 25, 2026

Copy link
Copy Markdown

К EvilBeaver#37 (EvilBeaver/oscript-infrastructure).

Что было

Запросы виджета «Пул соединений с БД» брали db_client_connection_* без агрегации. Prometheus в otel-lgtm поднимает в метки ресурсные атрибуты host.name, service.instance.id, service.version (плюс instance). После каждого перезапуска контейнера openhub у него новый хостнейм, и появляется новая серия. legendFormat у неё прежний (used, idle, предел, ожидают), но цвет новый. В итоге одна и та же линия на графике рвётся и меняет цвет.

Что стало

Метки экземпляра сворачиваются, остаются только имя пула и состояние:

max by (db_client_connection_pool_name, db_client_connection_state) (db_client_connection_count{service_name="$service"})
max by (db_client_connection_pool_name) (db_client_connection_max{service_name="$service"})
max by (db_client_connection_pool_name) (db_client_connection_pending_requests{service_name="$service"})

db_client_connection_pool_name стабилен между перезапусками (в opentelemetry-instrumentation-entity он собирается из системы, адреса и имени базы), поэтому его оставил в by: если пулов станет несколько, они не сольются в один.

Почему max, а не sum

  • При push по OTLP Prometheus не ставит staleness-маркеры. Последняя точка остановленного контейнера видна ещё около 5 минут (lookback delta). С sum после каждого перезапуска used/idle на эти минуты удваивались бы, и получался бы ложный всплеск. С max такого нет.
  • Пул и его предел свои у каждого процесса. Сравнивать занятые с РазмерПула имеет смысл только в пределах одного экземпляра. Если реплик станет несколько, max покажет самый загруженный пул, а это как раз то, что нужно, чтобы понять, хватает ли размера.

🤖 Generated with Claude Code

…хаба

Запросы виджета «Пул соединений с БД» брали датчики db.client.connection.*
без агрегации, поэтому в серию попадали метки экземпляра — host_name,
service_instance_id, instance, service_version. После каждого перезапуска
контейнера у хаба новый хостнейм, и та же серия рисовалась новым цветом.

Теперь метки экземпляра сворачиваются через max by, остаются только имя
пула и состояние соединения.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Segate-ekb
Segate-ekb merged commit 6d8ab4b into Segate-ekb:feature/openhub Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants