Логирование в Sentry.io
Создание аккаунта на Sentry.io
Переходим на sentry.io и регистрируем аккаунт любым удобным способом.
Запоняем поля
Создаем проект symfony. После создания проекта Вам выведут dsn для подключения в проекте.
Регистрация проекта закончена. Вы увидите похожую страницу.
В настройках аккаунта можно выбрать русский язык.
Добавляем модуль логирования в проект
Добавляем модуль в проект
composer require sentry/sentry-symfony
Во время установки пакета, может возникнуть ошибка: Uncaught Error: Class 'Nyholm\Psr7\Factory\Psr17Factory' not found .
Решил выключением psr_message
sensio_framework_extra:
psr_message:
enabled: false
Если Вы используете Flex plugin, то все конфиги создадутся автоматически. Если нет, то добавьте конфиг в config/packages/prod/sentry.yaml :
sentry:
dsn: '%env(SENTRY_DSN)%' # Обязательный параметр
## Не обязательные параметры
register_error_listener: true
options:
attach_stacktrace: true
before_breadcrumb: "@sentry.callback.before_breadcrumb"
before_send: "@sentry.callback.before_send"
capture_silenced_errors: false
context_lines: 5
default_integrations: true
enable_compression: true
environment: "%kernel.environment%"
error_types: "E_ALL & ~E_NOTICE"
http_proxy: "10.0.0.12:3456"
in_app_exclude:
- "%kernel.cache_dir%"
- "%kernel.project_dir%/vendor"
integrations:
- "@sentry.integration.my_custom_integration"
logger: "php"
max_breadcrumbs: 50
max_value_length: 2048
prefixes:
- "/local_dir/"
project_root: "%kernel.project_dir%"
release: "abcde12345"
sample_rate: 1
send_attempts: 3
send_default_pii: true
server_name: "www.example.com"
tags:
tag1: "value1"
tag2: "value2"
listener_priorities:
request: 1
subrequest: 1
console: 1
В config/bundles.php :
return [
Sentry\SentryBundle\SentryBundle::class => ['all' => true],
];
Для проверки доступа к sentry из проекта можно воспользоваться тестовой командой:
php bin/console sentry:test
Ответ на тестовый запрос: Message sent successfully with ID 02eeb70c274f43c9b3f788be22712d97
Подробная документация
Использование в monolog
Добавляем обработчик:
monolog:
handlers:
sentry:
type: sentry
level: !php/const Monolog\Logger::ERROR
hub_id: Sentry\State\HubInterface
Интеграция с gitlab
Чтобы настроить GitLab с Sentry, вам нужно будет создать приложение Sentry в вашем экземпляре GitLab.
- Перейдите в раздел Настройки пользователя вашего экземпляра GitLab.
- На боковой панели выберите пункт Приложения.
Переходим в настройки организации, в раздел integrations (пример ссылки https://sentry.io/settings/backloger/integrations/) и добавляем gitlab.
Заполняем форму
Интеграция настроена. Теперь при пуше в ветку, sentry узнает какие ошибки были исправлены и автоматически их закроет. Например, если в комментарии коммита добавить BACKLOGER-1K (например, Fix BACKLOGER-1K), то sentry закроет ошибку.
Все действия по багам отображаются во вкладке Activity