本文整理汇总了Python中sentry.models.Event.group方法的典型用法代码示例。如果您正苦于以下问题:Python Event.group方法的具体用法?Python Event.group怎么用?Python Event.group使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sentry.models.Event
的用法示例。
在下文中一共展示了Event.group方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_notify_users_does_email
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_does_email(self, _send_mail):
project = Project(id=1, name='Project Name')
group = Group()
group.first_seen = timezone.now()
group.last_seen = group.first_seen
group.project = project
group.id = 2
event = Event()
event.group = group
event.message = 'hello world'
event.logger = 'root'
event.project = project
event.date = group.last_seen
with self.Settings(SENTRY_URL_PREFIX='http://example.com'):
p = MailProcessor(send_to=['[email protected]'])
p.notify_users(group, event)
_send_mail.assert_called_once()
args, kwargs = _send_mail.call_args
self.assertEquals(kwargs.get('fail_silently'), False)
self.assertEquals(kwargs.get('project'), project)
self.assertEquals(kwargs.get('subject'), u"[Project Name] ERROR: hello world")
示例2: test_notify_users_renders_interfaces_with_utf8
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_renders_interfaces_with_utf8(self, _send_mail):
group = Group(
id=2,
first_seen=timezone.now(),
last_seen=timezone.now(),
project=self.project,
)
stacktrace = Mock(spec=Stacktrace)
stacktrace.to_email_html.return_value = u'רונית מגן'
stacktrace.get_title.return_value = 'Stacktrace'
event = Event()
event.group = group
event.project = self.project
event.message = 'hello world'
event.interfaces = {'sentry.interfaces.Stacktrace': stacktrace}
notification = Notification(event=event)
with self.settings(SENTRY_URL_PREFIX='http://example.com'):
self.plugin.notify(notification)
stacktrace.get_title.assert_called_once_with()
stacktrace.to_email_html.assert_called_once_with(event)
示例3: test_notify_users_renders_interfaces_with_utf8
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_renders_interfaces_with_utf8(self, _send_mail):
group = Group(
id=2,
first_seen=timezone.now(),
last_seen=timezone.now(),
project=self.project,
)
stacktrace = Mock(spec=Stacktrace)
stacktrace.to_string.return_value = u'רונית מגן'
stacktrace.get_title.return_value = 'Stacktrace'
event = Event()
event.group = group
event.message = 'hello world'
event.logger = 'root'
event.site = None
event.interfaces = {'sentry.interfaces.Stacktrace': stacktrace}
with self.Settings(SENTRY_URL_PREFIX='http://example.com'):
p = MailProcessor(send_to=['[email protected]'])
p.notify_users(group, event)
stacktrace.get_title.assert_called_once_with()
stacktrace.to_string.assert_called_once_with(event)
示例4: test_notify_users_renders_interfaces_with_utf8_fix_issue_422
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_renders_interfaces_with_utf8_fix_issue_422(self, _send_mail):
group = Group(
id=2,
first_seen=timezone.now(),
last_seen=timezone.now(),
project=self.project,
)
stacktrace = Mock(spec=Stacktrace)
stacktrace.to_email_html.return_value = u'רונית מגן'
stacktrace.get_title.return_value = 'Stacktrace'
event = Event()
event.group = group
event.project = self.project
event.message = 'Soubor ji\xc5\xbe existuje'
event.logger = 'root'
event.site = None
event.interfaces = {'sentry.interfaces.Stacktrace': stacktrace}
with self.settings(SENTRY_URL_PREFIX='http://example.com'):
self.plugin.notify_users(group, event)
stacktrace.get_title.assert_called_once_with()
stacktrace.to_email_html.assert_called_once_with(event)
示例5: test_notify_users_does_email
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_does_email(self, _send_mail):
project = Project(id=1, name="Project Name")
group = Group()
group.first_seen = datetime.datetime.now()
group.last_seen = group.first_seen
group.project = project
group.id = 2
event = Event()
event.group = group
event.message = "hello world"
event.logger = "root"
event.project = project
event.date = group.last_seen
with self.Settings(SENTRY_URL_PREFIX="http://example.com"):
p = MailProcessor(send_to=["[email protected]"])
p.notify_users(group, event)
_send_mail.assert_called_once()
args, kwargs = _send_mail.call_args
self.assertEquals(kwargs.get("fail_silently"), False)
self.assertEquals(kwargs.get("project"), project)
self.assertEquals(kwargs.get("subject"), u"[Project Name] ERROR: hello world")
示例6: test_notify_users_renders_interfaces_with_utf8_fix_issue_422
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_renders_interfaces_with_utf8_fix_issue_422(self, _send_mail):
group = Group(
id=2,
first_seen=timezone.now(),
last_seen=timezone.now(),
project=self.project,
)
stacktrace = Mock(spec=Stacktrace)
stacktrace.to_email_html.return_value = u'רונית מגן'
stacktrace.get_title.return_value = 'Stacktrace'
event = Event()
event.group = group
event.project = self.project
event.message = 'Soubor ji\xc5\xbe existuje'
event.interfaces = {'sentry.interfaces.Stacktrace': stacktrace}
notification = Notification(event=event)
with self.options({'system.url-prefix': 'http://example.com'}):
self.plugin.notify(notification)
stacktrace.get_title.assert_called_once_with()
stacktrace.to_email_html.assert_called_once_with(event)
示例7: test_notify_users_renders_interfaces_with_utf8_fix_issue_422
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_renders_interfaces_with_utf8_fix_issue_422(self, _send_mail):
group = Group(id=2, first_seen=timezone.now(), last_seen=timezone.now(), project=self.project)
stacktrace = Mock(spec=Stacktrace)
stacktrace.to_email_html.return_value = u"רונית מגן"
stacktrace.get_title.return_value = "Stacktrace"
event = Event()
event.group = group
event.project = self.project
event.message = "Soubor ji\xc5\xbe existuje"
event.interfaces = {"sentry.interfaces.Stacktrace": stacktrace}
notification = Notification(event=event)
with self.settings(SENTRY_URL_PREFIX="http://example.com"):
self.plugin.notify(notification)
stacktrace.get_title.assert_called_once_with()
stacktrace.to_email_html.assert_called_once_with(event)
示例8: test_notify_users_renders_interfaces_with_utf8
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_renders_interfaces_with_utf8(self, _send_mail):
group = Group()
group.first_seen = datetime.datetime.now()
group.last_seen = group.first_seen
group.id = 2
group.project_id = 1
stacktrace = Mock(spec=Stacktrace)
stacktrace.to_string.return_value = u"רונית מגן"
stacktrace.get_title.return_value = "Stacktrace"
event = Event()
event.group = group
event.message = "hello world"
event.logger = "root"
event.site = None
event.interfaces = {"sentry.interfaces.Stacktrace": stacktrace}
with self.Settings(SENTRY_URL_PREFIX="http://example.com"):
p = MailProcessor(send_to=["[email protected]"])
p.notify_users(group, event)
stacktrace.get_title.assert_called_once_with()
stacktrace.to_string.assert_called_once_with(event)
示例9: test_notify_users_renders_interfaces
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_renders_interfaces(self, _send_mail):
group = Group(
id=2,
first_seen=timezone.now(),
last_seen=timezone.now(),
project=self.project,
)
stacktrace = Mock(spec=Stacktrace)
stacktrace.to_email_html.return_value = 'foo bar'
stacktrace.get_title.return_value = 'Stacktrace'
event = Event()
event.group = group
event.message = 'hello world'
event.logger = 'root'
event.site = None
event.interfaces = {'sentry.interfaces.Stacktrace': stacktrace}
with self.Settings(SENTRY_URL_PREFIX='http://example.com'):
self.plugin.notify_users(group, event)
stacktrace.get_title.assert_called_once_with()
stacktrace.to_email_html.assert_called_once_with(event)
示例10: test_notify_users_renders_interfaces_with_utf8_fix_issue_422
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def test_notify_users_renders_interfaces_with_utf8_fix_issue_422(self, _send_mail):
group = Group()
group.first_seen = timezone.now()
group.last_seen = group.first_seen
group.id = 2
group.project_id = 1
stacktrace = Mock(spec=Stacktrace)
stacktrace.to_string.return_value = u'רונית מגן'
stacktrace.get_title.return_value = 'Stacktrace'
event = Event()
event.group = group
event.message = 'Soubor ji\xc5\xbe existuje'
event.logger = 'root'
event.site = None
event.interfaces = {'sentry.interfaces.Stacktrace': stacktrace}
with self.Settings(SENTRY_URL_PREFIX='http://example.com'):
p = MailProcessor(send_to=['[email protected]'])
p.notify_users(group, event)
stacktrace.get_title.assert_called_once_with()
stacktrace.to_string.assert_called_once_with(event)
示例11: save
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
#.........这里部分代码省略.........
data['type'] = event_type.key
data['metadata'] = event_metadata
# index components into ``Event.message``
# See GH-3248
if event_type.key != 'default':
if 'sentry.interfaces.Message' in data and \
data['sentry.interfaces.Message']['message'] != message:
message = u'{} {}'.format(
message,
data['sentry.interfaces.Message']['message'],
)
if not message:
message = ''
elif not isinstance(message, six.string_types):
message = force_text(message)
for value in six.itervalues(event_metadata):
value_u = force_text(value, errors='replace')
if value_u not in message:
message = u'{} {}'.format(message, value_u)
if culprit and culprit not in message:
culprit_u = force_text(culprit, errors='replace')
message = u'{} {}'.format(message, culprit_u)
message = trim(message.strip(), settings.SENTRY_MAX_MESSAGE_LENGTH)
event.message = message
kwargs['message'] = message
received_timestamp = event.data.get('received') or float(event.datetime.strftime('%s'))
group_kwargs = kwargs.copy()
group_kwargs.update(
{
'culprit': culprit,
'logger': logger_name,
'level': level,
'last_seen': date,
'first_seen': date,
'active_at': date,
'data': {
'last_received': received_timestamp,
'type':
event_type.key,
# we cache the events metadata on the group to ensure its
# accessible in the stream
'metadata':
event_metadata,
},
}
)
if release:
group_kwargs['first_release'] = release
try:
group, is_new, is_regression, is_sample = self._save_aggregate(
event=event, hashes=hashes, release=release, **group_kwargs
)
except HashDiscarded:
event_discarded.send_robust(
project=project,
sender=EventManager,
)
示例12: save
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def save(self, project, raw=False):
project = Project.objects.get_from_cache(id=project)
data = self.data.copy()
# First we pull out our top-level (non-data attr) kwargs
event_id = data.pop('event_id')
message = data.pop('message')
level = data.pop('level')
culprit = data.pop('culprit', None)
time_spent = data.pop('time_spent', None)
logger_name = data.pop('logger', None)
server_name = data.pop('server_name', None)
site = data.pop('site', None)
checksum = data.pop('checksum', None)
fingerprint = data.pop('fingerprint', None)
platform = data.pop('platform', None)
release = data.pop('release', None)
environment = data.pop('environment', None)
if not culprit:
culprit = generate_culprit(data)
date = datetime.fromtimestamp(data.pop('timestamp'))
date = date.replace(tzinfo=timezone.utc)
kwargs = {
'message': message,
'platform': platform,
}
event = Event(
project=project,
event_id=event_id,
data=data,
time_spent=time_spent,
datetime=date,
**kwargs
)
tags = data.get('tags') or []
tags.append(('level', LOG_LEVELS[level]))
if logger_name:
tags.append(('logger', logger_name))
if server_name:
tags.append(('server_name', server_name))
if site:
tags.append(('site', site))
if release:
# TODO(dcramer): we should ensure we create Release objects
tags.append(('sentry:release', release))
if environment:
tags.append(('environment', environment))
for plugin in plugins.for_project(project, version=None):
added_tags = safe_execute(plugin.get_tags, event,
_with_transaction=False)
if added_tags:
tags.extend(added_tags)
event_user = self._get_event_user(project, data)
if event_user:
tags.append(('sentry:user', event_user.tag_value))
# XXX(dcramer): we're relying on mutation of the data object to ensure
# this propagates into Event
data['tags'] = tags
data['fingerprint'] = fingerprint or '{{ default }}'
# prioritize fingerprint over checksum as its likely the client defaulted
# a checksum whereas the fingerprint was explicit
if fingerprint:
hashes = map(md5_from_hash, get_hashes_from_fingerprint(event, fingerprint))
elif checksum:
hashes = [checksum]
else:
hashes = map(md5_from_hash, get_hashes_for_event(event))
group_kwargs = kwargs.copy()
group_kwargs.update({
'culprit': culprit,
'logger': logger_name,
'level': level,
'last_seen': date,
'first_seen': date,
'time_spent_total': time_spent or 0,
'time_spent_count': time_spent and 1 or 0,
})
if release:
release = Release.get_or_create(
project=project,
version=release,
date_added=date,
)
group_kwargs['first_release'] = release
#.........这里部分代码省略.........
示例13: save
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
#.........这里部分代码省略.........
event_type = eventtypes.get(data.get('type', 'default'))(data)
event_metadata = event_type.get_metadata()
# TODO(dcramer): temp workaround for complexity
del data['message']
data['type'] = event_type.key
data['metadata'] = event_metadata
# index components into ``Event.message``
# See GH-3248
if event_type.key != 'default':
if 'sentry.interfaces.Message' in data and \
data['sentry.interfaces.Message']['message'] != message:
message = u'{} {}'.format(
message,
data['sentry.interfaces.Message']['message'],
)
if not message:
message = ''
elif not isinstance(message, basestring):
message = force_text(message)
for value in event_metadata.itervalues():
value_u = force_text(value, errors='replace')
if value_u not in message:
message = u'{} {}'.format(message, value_u)
message = trim(message.strip(), settings.SENTRY_MAX_MESSAGE_LENGTH)
event.message = message
kwargs['message'] = message
group_kwargs = kwargs.copy()
group_kwargs.update({
'culprit': culprit,
'logger': logger_name,
'level': level,
'last_seen': date,
'first_seen': date,
'data': {
'last_received': event.data.get('received') or float(event.datetime.strftime('%s')),
'type': event_type.key,
# we cache the events metadata on the group to ensure its
# accessible in the stream
'metadata': event_metadata,
},
})
if release:
release = Release.get_or_create(
project=project,
version=release,
date_added=date,
)
group_kwargs['first_release'] = release
group, is_new, is_regression, is_sample = self._save_aggregate(
event=event,
hashes=hashes,
release=release,
**group_kwargs
)
event.group = group
示例14: save
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def save(self, project, raw=False):
# TODO: culprit should default to "most recent" frame in stacktraces when
# it's not provided.
project = Project.objects.get_from_cache(id=project)
data = self.data.copy()
# First we pull out our top-level (non-data attr) kwargs
event_id = data.pop('event_id')
message = data.pop('message')
level = data.pop('level')
culprit = data.pop('culprit', None) or ''
time_spent = data.pop('time_spent', None)
logger_name = data.pop('logger', None)
server_name = data.pop('server_name', None)
site = data.pop('site', None)
checksum = data.pop('checksum', None)
platform = data.pop('platform', None)
release = data.pop('release', None)
date = datetime.fromtimestamp(data.pop('timestamp'))
date = date.replace(tzinfo=timezone.utc)
kwargs = {
'message': message,
'platform': platform,
}
event = Event(
project=project,
event_id=event_id,
data=data,
time_spent=time_spent,
datetime=date,
**kwargs
)
# Calculate the checksum from the first highest scoring interface
if checksum:
hashes = [checksum]
else:
hashes = get_hashes_for_event(event)
# TODO(dcramer): remove checksum usage
event.checksum = hashes[0]
group_kwargs = kwargs.copy()
group_kwargs.update({
'culprit': culprit,
'logger': logger_name,
'level': level,
'last_seen': date,
'first_seen': date,
'time_spent_total': time_spent or 0,
'time_spent_count': time_spent and 1 or 0,
})
tags = data['tags']
tags.append(('level', LOG_LEVELS[level]))
if logger_name:
tags.append(('logger', logger_name))
if server_name:
tags.append(('server_name', server_name))
if site:
tags.append(('site', site))
if release:
# TODO(dcramer): we should ensure we create Release objects
tags.append(('sentry:release', release))
for plugin in plugins.for_project(project):
added_tags = safe_execute(plugin.get_tags, event)
if added_tags:
tags.extend(added_tags)
result = safe_execute(
self._save_aggregate,
event=event,
tags=tags,
hashes=hashes,
**group_kwargs
)
if result is None:
return
group, is_new, is_regression, is_sample = result
using = group._state.db
event.group = group
# save the event unless its been sampled
if not is_sample:
sid = transaction.savepoint(using=using)
try:
event.save()
except IntegrityError:
transaction.savepoint_rollback(sid, using=using)
return event
transaction.savepoint_commit(sid, using=using)
#.........这里部分代码省略.........
示例15: save_data
# 需要导入模块: from sentry.models import Event [as 别名]
# 或者: from sentry.models.Event import group [as 别名]
def save_data(self, project, data, raw=False):
# TODO: this function is way too damn long and needs refactored
# the inner imports also suck so let's try to move it away from
# the objects manager
# TODO: culprit should default to "most recent" frame in stacktraces when
# it's not provided.
from sentry.plugins import plugins
from sentry.models import Event, Project, EventMapping
project = Project.objects.get_from_cache(id=project)
Raven.tags_context({'project': project.id})
# First we pull out our top-level (non-data attr) kwargs
event_id = data.pop('event_id')
message = data.pop('message')
culprit = data.pop('culprit')
level = data.pop('level')
time_spent = data.pop('time_spent')
logger_name = data.pop('logger')
server_name = data.pop('server_name')
site = data.pop('site')
date = data.pop('timestamp')
checksum = data.pop('checksum')
platform = data.pop('platform')
if 'sentry.interfaces.Exception' in data:
if 'values' not in data['sentry.interfaces.Exception']:
data['sentry.interfaces.Exception'] = {'values': [data['sentry.interfaces.Exception']]}
# convert stacktrace + exception into expanded exception
if 'sentry.interfaces.Stacktrace' in data:
data['sentry.interfaces.Exception']['values'][0]['stacktrace'] = data.pop('sentry.interfaces.Stacktrace')
kwargs = {
'level': level,
'message': message,
'platform': platform,
'culprit': culprit or '',
'logger': logger_name,
}
event = Event(
project=project,
event_id=event_id,
data=data,
server_name=server_name,
site=site,
time_spent=time_spent,
datetime=date,
**kwargs
)
# Calculate the checksum from the first highest scoring interface
if not checksum:
checksum = get_checksum_from_event(event)
event.checksum = checksum
group_kwargs = kwargs.copy()
group_kwargs.update({
'last_seen': date,
'first_seen': date,
'time_spent_total': time_spent or 0,
'time_spent_count': time_spent and 1 or 0,
})
tags = data['tags']
tags.append(('level', LOG_LEVELS[level]))
if logger:
tags.append(('logger', logger_name))
if server_name:
tags.append(('server_name', server_name))
if site:
tags.append(('site', site))
for plugin in plugins.for_project(project):
added_tags = safe_execute(plugin.get_tags, event)
if added_tags:
tags.extend(added_tags)
try:
group, is_new, is_sample = self._create_group(
event=event,
tags=data['tags'],
**group_kwargs
)
except Exception as exc:
# TODO: should we mail admins when there are failures?
try:
logger.exception(u'Unable to process log entry: %s', exc)
except Exception as exc:
warnings.warn(u'Unable to process log entry: %s', exc)
return
using = group._state.db
event.group = group
#.........这里部分代码省略.........