При работе с кластерами PostgreSQL, особенно в конфигурациях с высокой доступностью (High Availability, HA), разработчики часто сталкиваются с ошибками типа "cannot execute INSERT in a read-only transaction". Эти ошибки возникают, когда приложение пытается выполнить операцию записи на узел, который в данный момент является репликой (read-only). Особенно остро эта проблема проявляется в моменты переключения мастера: пул соединений вашего приложения может все еще содержать коннекты к бывшему мастеру, ставшему репликой, или же балансировщик может направить новый запрос на запись к реплике.
К счастью, драйверы PostgreSQL предоставляют элегантное решение этой проблемы – параметр строки подключения target_session_attrs. В версии PostgreSQL 14 были добавлены новые значения для target_session_attrs: read-only, primary, standby и prefer-standby. Этот параметр позволяет указать, какого типа сессию ожидает ваше приложение. Наиболее полезным значением для приложений, выполняющих операции чтения и записи, является read-write. В этой статье мы подробно разберем, почему это так важно, продемонстрируем проблему на практике и покажем, как target_session_attrs=read-write спасает ситуацию. Использование target_session_attrs=primary, включая его специфические отличия от read-write, будет подробно рассмотрено далее в статье.
https://habr.com/ru/articles/910508/
К счастью, драйверы PostgreSQL предоставляют элегантное решение этой проблемы – параметр строки подключения target_session_attrs. В версии PostgreSQL 14 были добавлены новые значения для target_session_attrs: read-only, primary, standby и prefer-standby. Этот параметр позволяет указать, какого типа сессию ожидает ваше приложение. Наиболее полезным значением для приложений, выполняющих операции чтения и записи, является read-write. В этой статье мы подробно разберем, почему это так важно, продемонстрируем проблему на практике и покажем, как target_session_attrs=read-write спасает ситуацию. Использование target_session_attrs=primary, включая его специфические отличия от read-write, будет подробно рассмотрено далее в статье.
https://habr.com/ru/articles/910508/
Хабр
Всегда используйте target_session_attrs=read-write (или primary) при подключении к кластеру PostgreSQL по FQDN в YC
При работе с кластерами PostgreSQL по http://c-xxxx.rw.mdb.yandexcloud.net , особенно в конфигурациях с высокой доступностью (High Availability, HA), разработчики часто сталкиваются с ошибками типа...
Отличная новость. Смержили MR в sentry-kubernetes chart по параметризации SENTRY_WEB_OPTIONS: https://github.com/sentry-kubernetes/charts/pull/1765
Функционал будет доступен в следующем релизе после v26.17.1.
Функционал будет доступен в следующем релизе после v26.17.1.
GitHub
Refactor Sentry web configuration from hardcoded to values.yaml by patsevanton · Pull Request #1765 · sentry-kubernetes/charts
Description
This PR moves hardcoded Sentry configuration values from the _helper-sentry.tpl template to values.yaml. This change follows the Helm best practices by making configuration parameters e...
This PR moves hardcoded Sentry configuration values from the _helper-sentry.tpl template to values.yaml. This change follows the Helm best practices by making configuration parameters e...
Смержили MR https://github.com/sentry-kubernetes/charts/pull/1769
по очистке Symbolicator. Ранее в helm чарте Sentry этого функционала не было. Будет доступен в версии после 26.18.0.
по очистке Symbolicator. Ранее в helm чарте Sentry этого функционала не было. Будет доступен в версии после 26.18.0.
GitHub
Add Symbolicator Cleanup and Increase dbInit Memory by patsevanton · Pull Request #1769 · sentry-kubernetes/charts
Summary
This PR introduces automatic cleanup functionality for Symbolicator and addresses memory issues with database initialization.
Changes Made
Symbolicator Cleanup Enhancement
Added automatic ...
This PR introduces automatic cleanup functionality for Symbolicator and addresses memory issues with database initialization.
Changes Made
Symbolicator Cleanup Enhancement
Added automatic ...
Разработчики Coroot зарелизили версию 1.12:
1. Availability risks
https://docs.coroot.com/risks/overview
2. Dashboards
https://docs.coroot.com/dashboards/overview
3. GPU monitoring
https://docs.coroot.com/inspections/gpu
4. New layout (the main navigation menu on the left)
https://demo.coroot.com
1. Availability risks
https://docs.coroot.com/risks/overview
2. Dashboards
https://docs.coroot.com/dashboards/overview
3. GPU monitoring
https://docs.coroot.com/inspections/gpu
4. New layout (the main navigation menu on the left)
https://demo.coroot.com
Протестировал Pyroscope + Gradle для профилирования сборок Android APK , но название проекта в Pyroscope создается сгенерированное, а не передается через параметры. Сделал issue https://github.com/grafana/pyroscope/issues/4243
GitHub
The Java Pyroscope agent does not use `pyroscope.application.name ` when profiling Gradle assemblies · Issue #4243 · grafana/pyroscope
Problem description When trying to profile a Gradle project build using the Java Pyroscope agent, the application name that is set in the gradle.properties file via the system property -Dpyroscope....
Полезный шаблон для gitlab merge request (
.gitlab/merge_request_templates/default.md):/assign_reviewer @user1 @user2 @user2
/assign me
## Required
Обязательные условия прохождения **merge request**.
- [ ] **Я** отвечаю за доведение функционала до **production** окружения.
- [ ] Код соответствует принятым [соглашениям IT департамента](ссылка)
- [ ] Не нарушена обратная совместимость миграций.
- [ ] Не нарушена обратная совместимость API.
- [ ] Перед созданием **merge request** были выполнены `make format`, `make lint` и `make test`.
## Conformity
Соглашения которые можно пропустить/выполнить из-за особенностей задачи.
- [ ] Функционал протестирован перед отправкой Merge Request.
- [ ] Необходимо тестирование на dev/uat окружении.
- [ ] Необходим пропуск job `migrations-lint`.
Обнаружение отсутствия данных или результатов в алертах и recording rules:
1) Следующее выражение вернёт правила оповещения, которые, скорее всего, содержат опечатку или неправильный селектор временных рядов:
2) Чтобы найти recording rules, которые не генерируют данные, выполните следующий запрос:
Подробности: https://victoriametrics.com/blog/never-firing-alerts/
1) Следующее выражение вернёт правила оповещения, которые, скорее всего, содержат опечатку или неправильный селектор временных рядов:
max(vmalert_alerting_rules_last_evaluation_series_fetched) by (group, alertname) == 02) Чтобы найти recording rules, которые не генерируют данные, выполните следующий запрос:
sum(vmalert_recording_rules_last_evaluation_samples) by (group, recording) < 1Подробности: https://victoriametrics.com/blog/never-firing-alerts/
VictoriaMetrics
Never-firing alerts: What they are and how to deal with them
Read how vmalert helps to find alerting rules which don’t match any time series. Such rules will never fire and only trick users with a false sense of protection.
Форк kaniko https://github.com/chainguard-dev/kaniko, который обещают поддерживать так как исходный проект больше не поддерживается.
GitHub
GitHub - chainguard-dev/kaniko: Build Container Images In Kubernetes
Build Container Images In Kubernetes. Contribute to chainguard-dev/kaniko development by creating an account on GitHub.
В sentry-kubernetes чарт смержили 2 интересных PR:
1) Adds support for configuring a separate distributedClusterName for external ClickHouse - https://github.com/sentry-kubernetes/charts/pull/1780
2) add errors-only mode from original self-hosted compose - https://github.com/sentry-kubernetes/charts/pull/1810
Функционал будет доступен в версии 26.22.0 как только Mokto сделает релиз.
1) Adds support for configuring a separate distributedClusterName for external ClickHouse - https://github.com/sentry-kubernetes/charts/pull/1780
2) add errors-only mode from original self-hosted compose - https://github.com/sentry-kubernetes/charts/pull/1810
Функционал будет доступен в версии 26.22.0 как только Mokto сделает релиз.
GitHub
feat: add distributed cluster name config by brewle · Pull Request #1780 · sentry-kubernetes/charts
Summary
Adds support for configuring a separate distributedClusterName for external ClickHouse setups, while maintaining backward compatibility.
Motivation
Currently, both cluster_name and distribu...
Adds support for configuring a separate distributedClusterName for external ClickHouse setups, while maintaining backward compatibility.
Motivation
Currently, both cluster_name and distribu...
Forwarded from 𝚔𝚟𝚊𝚙𝚜
К слову о дичи, я тут давеча с ресурсами и реквестами разбирался в одном кластере. Написал целую тулзу
Возможно кому-то будет полезно
https://github.com/aenix-io/kubectl-ps
Синтаксис позабористее чем у
https://github.com/aenix-io/kubectl-ps
kubectl ps, это эдакий kubectl top но на стеройдах, умеет реквесты/лимиты показывать и по всякому их сравнивать с реальным потреблением. Возможно кому-то будет полезно
https://github.com/aenix-io/kubectl-ps
Синтаксис позабористее чем у
ps aux получился, в общем любой фидбек приветствуетсяhttps://github.com/aenix-io/kubectl-ps
GitHub
GitHub - aenix-io/kubectl-ps: Command kubectl-ps is a kubectl plugin that prints ps-style resource tables for pods, nodes and namespaces.
Command kubectl-ps is a kubectl plugin that prints ps-style resource tables for pods, nodes and namespaces. - aenix-io/kubectl-ps
Вышла версия 0.1.0 инструмента VictoriaTraces: https://github.com/VictoriaMetrics/VictoriaTraces/releases/tag/v0.1.0
VictoriaTraces аналог https://github.com/grafana/tempo.
Напомню, Grafana Tempo — это масштабируемая, высокопроизводительная и экономичная система распределенной трассировки с открытым исходным кодом. Желаю успехов VictoriaTraces!
VictoriaTraces аналог https://github.com/grafana/tempo.
Напомню, Grafana Tempo — это масштабируемая, высокопроизводительная и экономичная система распределенной трассировки с открытым исходным кодом. Желаю успехов VictoriaTraces!
GitHub
Release v0.1.0 · VictoriaMetrics/VictoriaTraces
v0.1.0
Released at 2025-07-28
Initial release
Released at 2025-07-28
Initial release
С 28 августа 2025 года в публичном каталоге Bitnami произойдут изменения:
- Прекратится генерация образов Debian, существующие переедут в Bitnami Legacy repository.
- Бесплатные hardened образы для разработки будут доступны только с тегом "latest" на hub.docker.com/u/bitnamisecure.
- Production-ready образы и Helm charts перейдут в Bitnami Secure Images (с hardening, CVE, SBOM, поддержкой и LTS).
- Старые образы (включая версии) будут перемещены в Bitnami Legacy repository (без обновлений и поддержки).
Рекомендации пользователям:
- Обновить CI/CD пайплайны, Helm репозитории и ссылки на образы.
- Протестировать hardened образы на hub.docker.com/u/bitnamisecure.
- Для production подписаться на Bitnami Secure Images (для поддержки и обновлений).
- Как временное решение - использовать Bitnami Legacy repository.
Различия репозиториев:
- Bitnami Mainline: актуальные образы (бесплатные и enterprise). После 28 августа 2025 - только hardened образы.
- Bitnami Legacy: архив старых версий (без обновлений).
Бесплатные образы сохранятся, но в ограниченном количестве и только "latest" версии. Для продолжения поддержки старых версий и приложений необходимо подписаться на Bitnami Secure Images. Исходный код Bitnami доступен на GitHub (Apache 2 license).
Для продолжения поддержки Helm charts рекомендуется подписка на Bitnami Secure Images. Временное решение - указать Bitnami Legacy repository в настройках Helm chart.
Подробности https://github.com/bitnami/containers/issues/83267
- Прекратится генерация образов Debian, существующие переедут в Bitnami Legacy repository.
- Бесплатные hardened образы для разработки будут доступны только с тегом "latest" на hub.docker.com/u/bitnamisecure.
- Production-ready образы и Helm charts перейдут в Bitnami Secure Images (с hardening, CVE, SBOM, поддержкой и LTS).
- Старые образы (включая версии) будут перемещены в Bitnami Legacy repository (без обновлений и поддержки).
Рекомендации пользователям:
- Обновить CI/CD пайплайны, Helm репозитории и ссылки на образы.
- Протестировать hardened образы на hub.docker.com/u/bitnamisecure.
- Для production подписаться на Bitnami Secure Images (для поддержки и обновлений).
- Как временное решение - использовать Bitnami Legacy repository.
Различия репозиториев:
- Bitnami Mainline: актуальные образы (бесплатные и enterprise). После 28 августа 2025 - только hardened образы.
- Bitnami Legacy: архив старых версий (без обновлений).
Бесплатные образы сохранятся, но в ограниченном количестве и только "latest" версии. Для продолжения поддержки старых версий и приложений необходимо подписаться на Bitnami Secure Images. Исходный код Bitnami доступен на GitHub (Apache 2 license).
Для продолжения поддержки Helm charts рекомендуется подписка на Bitnami Secure Images. Временное решение - указать Bitnami Legacy repository в настройках Helm chart.
Подробности https://github.com/bitnami/containers/issues/83267
GitHub
Upcoming changes to the Bitnami catalog (effective August 28th, 2025) · Issue #83267 · bitnami/containers
ImportantAfter evaluating the impact and community feedback, the Bitnami team has postponed the deletion of the Bitnami public catalog (docker.io/bitnami) until September 29th to give users more ti...
Вышла новая версия https://github.com/romashqua/alertcli - консольной утилиты для просмотра алертов. теперь не нужно собирать ее из исходников.
alertcli alerts list -A -u https://alertmanager.k8s.dev.corp | grep -v ScrapePoolHasNoTargets
ALERT SEVERITY STATE SINCE INSTANCE SUMMARY SILENCED BY INHIBITED BY
KubernetesJobFailed warning active 25h0m0s victoria-metrics-k8s-stack-kube-state-metrics.victoria-metrics.svc:8080 Kubernetes Job failed (instance victoria-metrics-k8s-stack-kube-state-metrics.victoria-metrics.svc:8080)
GitHub
GitHub - romashqua/alertcli
Contribute to romashqua/alertcli development by creating an account on GitHub.
Появилась легковесная замена sentry только с обработкой exception https://github.com/rom8726/warden-ce
GitHub
GitHub - rom8726/warden-ce: Self-Hosted Error Monitoring Platform
Self-Hosted Error Monitoring Platform. Contribute to rom8726/warden-ce development by creating an account on GitHub.