Stackdriver Отчет об ошибках для Ruby, работающего на GKE - PullRequest
0 голосов
/ 03 января 2019

Какие шаги необходимы для сбора ошибок из приложения Rails, работающего на GKE?

Я добавил гем стека-драйвера в свое приложение Rails и создал собственную роль с разрешением errorreporting.errorEvents.create. Эта роль назначается учетной записи службы по умолчанию Compute Engine

Я интерпретирую документы , что не нужно выполнять следующую настройку при работе на GKE:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Error Reporting specific parameters
  config.google_cloud.error_reporting.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.error_reporting.keyfile    = "/path/to/service-account.json"
end

Я вручную создал исключение

Это дало мне ценную информацию:

irb(main):001:0> Google::Cloud::ErrorReporting.report Exception.new(msg: "from console")
=> nil
irb(main):002:0> {:msg=>"from console"} (Exception)
Google::Cloud::PermissionDeniedError: 7:Stackdriver Error Reporting API has not been used in project NNNNN before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/clouderrorreporting.googleapis.com/overview?project=NNNN then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

После включения API я получаю эту ошибку:

irb(main):004:0> {:msg=>"from console"} (Exception)
Google::Cloud::PermissionDeniedError: 7:User not authorized.

Итак, какое разрешение я должен дать тому или иному пользователю для выполнения этой работы? : - |

1 Ответ

0 голосов
/ 03 января 2019

Кажется, это проблема с правами доступа, поэтому после установки и настройки google-cloud-ruby .

Затем необходимо включить API отчетов об ошибках Stackdriver.

Затемвам нужно добавить роль "role / errorreporting.writer" в учетную запись службы вычислений по умолчанию.

кластеры контейнеров gcloud создают example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform

При созданиикластер, к которому нужно добавить флаг --scope для платформы, см. пример выше:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...