debian-mirror-gitlab/app/models/error_tracking/error_event.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

34 lines
919 B
Ruby
Raw Normal View History

2021-09-30 23:02:18 +05:30
# frozen_string_literal: true
class ErrorTracking::ErrorEvent < ApplicationRecord
belongs_to :error, counter_cache: :events_count
2022-01-26 12:08:38 +05:30
# Scrub null bytes
attribute :payload, Gitlab::Database::Type::JsonPgSafe.new
2021-09-30 23:02:18 +05:30
validates :payload, json_schema: { filename: 'error_tracking_event_payload' }
validates :error, presence: true
2021-12-11 22:18:48 +05:30
validates :description, presence: true, length: { maximum: 1024 }
validates :level, length: { maximum: 255 }
validates :environment, length: { maximum: 255 }
2021-09-30 23:02:18 +05:30
validates :occurred_at, presence: true
2021-10-27 15:23:28 +05:30
def stacktrace
2022-07-23 23:45:48 +05:30
@stacktrace ||= ErrorTracking::StacktraceBuilder.new(payload).stacktrace
2021-10-27 15:23:28 +05:30
end
# For compatibility with sentry integration
def to_sentry_error_event
Gitlab::ErrorTracking::ErrorEvent.new(
issue_id: error_id,
date_received: occurred_at,
stack_trace_entries: stacktrace
)
end
2021-11-18 22:05:49 +05:30
def release
payload.dig('release')
end
2021-09-30 23:02:18 +05:30
end