Add event for new comments

This commit is contained in:
Chad Birch
2015-12-09 17:17:01 -07:00
parent c4af6b2630
commit 7c8ddcaf76
4 changed files with 51 additions and 0 deletions

View File

@@ -820,6 +820,8 @@ goldvertisement_class =
events_collector_vote_sample_rate = 0.0
# Event-collector sample rate for submit (new link) events
events_collector_submit_sample_rate = 0.0
# Event-collector sample rate for new comment events
events_collector_comment_sample_rate = 0.0
# Event-collector sample rate for cache poisoning events
events_collector_poison_sample_rate = 0.0
# Event-collector sample rate for moderator events

View File

@@ -358,6 +358,7 @@ class Globals(object):
'events_collector_quarantine_sample_rate',
'events_collector_report_sample_rate',
'events_collector_submit_sample_rate',
'events_collector_comment_sample_rate',
'https_cert_testing_probability',
],
ConfigValue.tuple: [

View File

@@ -150,6 +150,52 @@ class EventQueue(object):
self.save_event(event)
@squelch_exceptions
@sampled("events_collector_comment_sample_rate")
def comment_event(self, new_comment, request=None, context=None):
"""Create a 'comment' event for event-collector.
new_comment: An r2.models.Comment object
request, context: Should be pylons.request & pylons.c respectively
"""
from r2.models import Comment, Link
event = Event(
topic="comment_events",
event_type="ss.comment",
time=new_comment._date,
request=request,
context=context,
truncatable_field="comment_body",
)
event.add("comment_id", new_comment._id)
event.add("comment_fullname", new_comment._fullname)
event.add("comment_body", new_comment.body)
post = Link._byID(new_comment.link_id)
event.add("post_id", post._id)
event.add("post_fullname", post._fullname)
event.add("post_created_ts",
_epoch_to_millis(epoch_timestamp(post._date)))
if new_comment.parent_id:
parent = Comment._byID(new_comment.parent_id)
else:
# If this is a top-level comment, parent is the same as the post
parent = post
event.add("parent_id", parent._id)
event.add("parent_fullname", parent._fullname)
event.add("parent_created_ts",
_epoch_to_millis(epoch_timestamp(parent._date)))
event.add("user_neutered", new_comment.author_slow._spam)
event.add_subreddit_fields(new_comment.subreddit_slow)
self.save_event(event)
@squelch_exceptions
@sampled("events_collector_poison_sample_rate")
def cache_poisoning_event(self, poison_info, request=None, context=None):

View File

@@ -1261,6 +1261,8 @@ class Comment(Thing, Printable):
comment._commit()
g.events.comment_event(comment, request=request, context=c)
cast_vote(author, comment, Vote.DIRECTIONS.up)
if link.num_comments < 20 or link.num_comments % 10 == 0: