def add_tags(self, group, environment, tags): project_id = group.project_id date = group.last_seen for tag_item in tags: if len(tag_item) == 2: (key, value), data = tag_item, None else: key, value, data = tag_item tagstore.incr_tag_value_times_seen(project_id, environment.id, key, value, extra={ 'last_seen': date, 'data': data, }) tagstore.incr_group_tag_value_times_seen(project_id, group.id, environment.id, key, value, extra={ 'project_id': project_id, 'last_seen': date, })
def repair_tag_data(caches, project, events): for (group_id, env_name), keys in collect_tag_data(events).items(): environment = caches["Environment"](project.organization_id, env_name) for key, values in keys.items(): tagstore.get_or_create_group_tag_key( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key ) # XXX: `{first,last}_seen` columns don't totally replicate the # ingestion logic (but actually represent a more accurate value.) # See GH-5289 for more details. for value, (times_seen, first_seen, last_seen) in values.items(): _, created = tagstore.get_or_create_group_tag_value( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, value=value, defaults={ "first_seen": first_seen, "last_seen": last_seen, "times_seen": times_seen, }, ) if not created: tagstore.incr_group_tag_value_times_seen( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, value=value, count=times_seen, extra={"first_seen": first_seen}, )
def add_tags(self, group, environment, tags): project_id = group.project_id date = group.last_seen for tag_item in tags: if len(tag_item) == 2: (key, value), data = tag_item, None else: key, value, data = tag_item tagstore.incr_tag_value_times_seen(project_id, environment.id, key, value, extra={ "last_seen": date, "data": data }) tagstore.incr_group_tag_value_times_seen( project_id, group.id, environment.id, key, value, extra={ "project_id": project_id, "last_seen": date }, )
def add_tags(self, group, tags): project_id = group.project_id date = group.last_seen for tag_item in tags: if len(tag_item) == 2: (key, value), data = tag_item, None else: key, value, data = tag_item tagstore.incr_tag_value_times_seen(project_id, key, value, { 'last_seen': date, 'data': data, }) tagstore.incr_group_tag_value_times_seen(group.id, key, value, { 'project_id': project_id, 'last_seen': date, })
def repair_tag_data(caches, project, events): for (group_id, env_name), keys in collect_tag_data(events).items(): environment = caches['Environment']( project.organization_id, env_name, ) for key, values in keys.items(): tagstore.get_or_create_group_tag_key( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, ) # XXX: `{first,last}_seen` columns don't totally replicate the # ingestion logic (but actually represent a more accurate value.) # See GH-5289 for more details. for value, (times_seen, first_seen, last_seen) in values.items(): _, created = tagstore.get_or_create_group_tag_value( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, value=value, defaults={ 'first_seen': first_seen, 'last_seen': last_seen, 'times_seen': times_seen, }, ) if not created: tagstore.incr_group_tag_value_times_seen( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, value=value, count=times_seen, extra={'first_seen': first_seen} )