Sentry
Зачем
Инструмент реализующий:
- паттерн мониторинга исключений (exception), ошибок
- распределенной трассировки
- Observability
- Traditional logging provides you with a trail of events. Some of those events are errors, but many times they’re simply informational. Sentry is fundamentally different because we focus on exceptions.
- provides client libraries in every major programming language which instrument your software’s code to capture both error data and tracing telemetry
- Uptime Monitoring
- анализа производительности APM
- Frontend
- performance bottlenecks in your code
- Security and compliance
- SIEM
Функции
- Log
- Error\Exception
- Message
- Level Logging
- PHP example
- Stack traces
- Query
- Issue Grouping
- Группировка ошибок по кастомным правилам
- Filters
- Clean
- Очистка БД через Sentry CLI
- Dashboard
- Release
- Tracking
- GitLab
- in Details Project Commit Tracking
- Resolve via Commit or Pull Request
- PHP
- JS
- Breadcrumbs - trace of events that lead to errors
- for logging messages, network requests, database queries
- Reproduce Errors Without User Feedback логирование действий пользователя (клики, переходы по страницам и т.п.), предшествующих ошибке.
- PHP
- model Breadcrumb
- type
- category - a logger name, and helps you understand the area in which an event took place, such as auth
- level
- Nginx + Sentry
- Data Collector
- From stdout from FluentD Plugin
- Hardware Sentry is free to use
- Sentry SDK
- RSyslog и Sentry
- Drupal module Raven
- source maps
- SPA Vite
- APM
- Web Vitals
- Web Vitals in breadcrumbs
- Distributed Trace
- Trace -> Transaction -> Span
- Duration Span
- FrontEnd to BackEnd trace demo
- PHP example
- Alert
- SSO
- Auth user access by KeyCloak SAML
- Google OIDC
- RBAC
- Роли
- маппинг групп LDAP на роль Sentry
- LDAP
- SAML - нет маппинга групп LDAP на роли Sentry
- Jira Task Intregration
- MTA
- Relay - Rate Limit, Filter
Модель данных
- Organization
- Member
- Team - рекомендуется создавать команды, которые соответствуют вашей внутренней структуре команды (например, #Frontend, #Ops, #SDK и так далее)
- Member
- Project - маппинг на проект в GIT рекомендуется
- Issue
- Release
- Alert
Event Model
Плюсы-Минусы
Плюсы:
- Store support Clickhouse
- OpenTelemetry support in work
- дает фокусировку на ошибках
- позволяет получить максимальный контекст в короткое сообщение
- хорошая оптимизация хранения данных. То есть, он не хранит всю подряд информацию, если произошло повторное событие – оно группируется в одно
Минусы:
- не очень хорошо справляется с большим потоком, риски задержки событий
- узкие места при 100 млн событий за 24ч
- PostgreSQL шардирование по репликам (кастом замена на NOSQL store ClickHouse)
- Kafka размер топиков, round robin partition раскладывание событий
- ClickHouse шардирование по репликам
- узкие места при 100 млн событий за 24ч
Deployment
- docker 22.12.0
- demo
- demo
- On premise docker
- BSL license - Если мы не конкурируем с ними, то бесплатно
- HELM charts
- Системные требования
- Observability Sentry
- health checks
- relay
- Add healthchecks for redis, memcached and postgres
- kafka
- logs stdout
- metric in StatsD
- model
- rps DB PostgreSQL
- health checks
- HA
- СберМегаМаркет опыт
- PostgreSQL узкое место - Master\Replica
- Object Storage для “сырых” Event (Minio) вместо PostgreSQL
- СберМегаМаркет опыт