Module: Dapp::Dapp::Sentry
- Included in:
- Dapp::Dapp
- Defined in:
- lib/dapp/dapp/sentry.rb
Instance Method Summary collapse
- #_make_sentry_params(level: nil, tags: {}, extra: {}, user: {}) ⇒ Object
- #_sentry_extra_context ⇒ Object
- #_sentry_tags_context ⇒ Object
- #_sentry_user_context ⇒ Object
- #ensure_sentry_configured ⇒ Object
- #sentry_exception(exception, **kwargs) ⇒ Object
- #sentry_message(msg, **kwargs) ⇒ Object
Instance Method Details
#_make_sentry_params(level: nil, tags: {}, extra: {}, user: {}) ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/dapp/dapp/sentry.rb', line 37 def _make_sentry_params(level: nil, tags: {}, extra: {}, user: {}) Marshal.load(Marshal.dump({ level: level, tags: .merge(), extra: _sentry_extra_context.merge(extra), user: _sentry_user_context.merge(user), })) end |
#_sentry_extra_context ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/dapp/dapp/sentry.rb', line 46 def _sentry_extra_context @_sentry_extra_context ||= { "pwd" => Dir.pwd, "dapp-dir" => self.work_dir, "build-dir" => self.build_dir, "options" => self., "env-options" => { "DAPP_FORCE_SAVE_CACHE" => ENV["DAPP_FORCE_SAVE_CACHE"], "DAPP_BIN_DAPPFILE_YML" => ENV["DAPP_BIN_DAPPFILE_YML"], "ANSIBLE_ARGS" => ENV["ANSIBLE_ARGS"], "DAPP_CHEF_DEBUG" => ENV["DAPP_CHEF_DEBUG"], }, }.tap {|extra| extra["ci-env"] = {"CI" => ENV["CI"]} ENV.select {|k, v| k.start_with?("CI_")}.each do |k, v| extra["ci-env"][k] = v end } end |
#_sentry_tags_context ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/dapp/dapp/sentry.rb', line 66 def @_sentry_tags_context ||= { "dapp-name" => self.name, "dapp-short-version" => ::Dapp::VERSION.split(".")[0..1].join("."), "dapp-version" => ::Dapp::VERSION, "dapp-build-cache-version" => ::Dapp::BUILD_CACHE_VERSION, "dapp-command" => self.[:dapp_command], }.tap {|| # FIXME: precache this info after Dapp object initialization #if git_own_repo_exist? && git_own_repo.remote_origin_url #tags["git-host"] = self.get_host_from_git_url(git_own_repo.remote_origin_url) #git_name = self.git_url_to_name(git_own_repo.remote_origin_url) #tags["git-group"] = git_name.partition("/")[0] #tags["git-name"] = git_name #end begin ver = self.class.host_docker_minor_version ["docker-minor-version"] = ver.to_s rescue ::Exception end } end |
#_sentry_user_context ⇒ Object
92 93 94 |
# File 'lib/dapp/dapp/sentry.rb', line 92 def _sentry_user_context @__sentry_user_context ||= {} end |
#ensure_sentry_configured ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/dapp/dapp/sentry.rb', line 19 def ensure_sentry_configured return false unless sentry_settings = settings["sentry"] unless @sentry_settings_configured Raven.configure do |config| logger = ::Logger.new(STDOUT) logger.level = ::Logger::WARN config.logger = logger config.dsn = sentry_settings["dsn"] end @sentry_settings_configured = true end return true end |
#sentry_exception(exception, **kwargs) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/dapp/dapp/sentry.rb', line 10 def sentry_exception(exception, **kwargs) return if not ensure_sentry_configured (kwargs[:tags] ||= {})['error-code'] = begin net_status = exception.net_status [net_status[:context], net_status[:code]].compact.join('_') end Raven.capture_exception(exception, _make_sentry_params(**kwargs)) end |
#sentry_message(msg, **kwargs) ⇒ Object
4 5 6 7 8 |
# File 'lib/dapp/dapp/sentry.rb', line 4 def (msg, **kwargs) return if not ensure_sentry_configured kwargs[:level] ||= "info" Raven.(msg, _make_sentry_params(**kwargs)) end |