Исключения Ruby не отображаются в отчетах об ошибках Google Cloud

У меня есть приложение Rails, работающее в GKE, и я пытаюсь настроить отчеты об ошибках Google Cloud. Я установил драгоценный камень stackdriver и потребовал его при запуске приложения. Я могу без проблем вручную сообщать об ошибках из консоли Rails, но они не отображаются в пользовательском интерфейсе отчетов об ошибках GCP.

irb(main):021:0> Google::Cloud::ErrorReporting.report(Exception.new(msg: "from console")).result
=> [true, [], nil]

Я также подтвердил, что он настроен правильно project_id и что я просматриваю правильный проект в пользовательском интерфейсе GCP.

ОБНОВЛЯТЬ

Я использовал фрагмент кода, найденный здесь, заменил $stderr на $stdout и изменил уровень журнала на DEBUG, чтобы получить некоторое представление о вызове RPC. Когда я попытался сообщить о другом исключении в консоли, я увидел следующее...

Failing with status #<struct Struct::Status code=7, details = "User not authorized.", metadata = {}, debug_error_string = "UNKNOWN:Error received from peer ipv4:xxx.xxx.xxx.xx:443 {grpc_message:\"User not authorized.\", grpc_status:7, created_time:\"2024-05-23T17:54:30.826579798+00:00\"}">

Увидев эту ошибку «Пользователь не авторизован», я проверил назначенные роли сервисной учетной записи и увидел, что у нее нет необходимой роли errorreporting.errorEvents.create. Как только это было добавлено, я смог сообщить об исключении и увидеть его появление в пользовательском интерфейсе отчетов об ошибках.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Возможно, возникла проблема с настройкой отчетов об ошибках GCP. Следующие шаги могут помочь вам решить эту проблему:

  • Еще раз убедитесь, что API для отчетов об ошибках включен для соответствующего проекта Google Cloud.

  • Проверьте, имеет ли связанный ServiceAccount с кластером GKE все необходимые разрешения. Кроме того, учетная запись службы должна иметь роль «roles/errorreporting.writer» для записи в отчеты об ошибках Stackdriver.

  • Проверьте, установлена ​​ли правильная клиентская библиотека отчетов об ошибках для Ruby. Для Ruby требуется гем google-cloud-error_reporting.

  • Еще раз убедитесь, что кластер GKE имеет все необходимые разрешения для доступа к сервисам GCP.

    Обратитесь к официальному приложению GCP Instrument Ruby для отчетов об ошибках для получения дополнительной информации.

Также проверьте этот документ Github на google-cloud-error_reporting для получения более подробной информации.

Разве я не получу какую-то ошибку, если API не будет включен или если у учетной записи службы не будет необходимых разрешений? Кроме того, если бы правильная библиотека не была установлена, мой отчет об ошибках вручную из консоли Rails завершился бы с ошибкой NameError.

brentmc79 23.05.2024 19:46

Да, видимо мне просто не хватало нужной роли. К сожалению, выходные данные метода report не указывают на какую-либо проблему.

brentmc79 23.05.2024 21:03

Другие вопросы по теме

Поддерживает ли LoadBalancer внешней транзитной сети конфигурацию BackendConfig из GKE?
Поддерживается ли диапазон управляемых служб Google (34.118.224.0/20) для стандартных частных кластеров GKE?
Невозможно выполнить запрос для существующего сеанса: java.util.concurrent.TimeoutException для тестов селена, запущенных из Jenkins в кластере GKE
Экземпляр Airflow на веб-сервере/планировщике GCP Composer отключен
Google Kubernetes Engine переопределяет завершениеGracePeriodSeconds до 600 секунд
HPA не может найти «нетипизированную» пользовательскую метрику из адаптера Prometheus/Stackdriver
Перенаправление домена вершины на URL-адрес, отличный от вершины (с www на не www) в GCP/GKE
Golang == Ошибка: не удалось создать среду выполнения OCI: невозможно запустить процесс контейнера: exec: "./bin": stat ./bin: нет такого файла или каталога: неизвестно
Невозможно добавить сертификат TLS в GKE из Google Secret Manager
Могу ли я использовать диапазон управляемых услуг Google в стандартном кластере gke, созданном с помощью Terraform без автопилота?