diff --git a/docs/en_us/data/source/internal_data_formats/discussion_data.rst b/docs/en_us/data/source/internal_data_formats/discussion_data.rst
index eea84076f66f56691ae4de006846c6a762cdb6de..659c85505fe9b341ebe24503a721d06c71fc09b5 100644
--- a/docs/en_us/data/source/internal_data_formats/discussion_data.rst
+++ b/docs/en_us/data/source/internal_data_formats/discussion_data.rst
@@ -18,6 +18,8 @@ The primary collection that holds all of the discussion posts written by users i
 
 A sample of the field/value pairs that are in the mongo file, and descriptions of the attributes that these two types of objects share and that are specific to each type, follow.
 
+In addition to these collections, events are also emitted to track specific user activities. See :ref:`forum_events`.
+
 *********
 Samples
 *********
diff --git a/docs/en_us/data/source/internal_data_formats/event_list.rst b/docs/en_us/data/source/internal_data_formats/event_list.rst
index 135d950e4f8105b4aa62b2fe47d602be3483f591..fcfdc4685a9b3d23fed9abfcd18166f44be90ad5 100644
--- a/docs/en_us/data/source/internal_data_formats/event_list.rst
+++ b/docs/en_us/data/source/internal_data_formats/event_list.rst
@@ -38,6 +38,8 @@ Event List
      - :ref:`enrollment` and :ref:`instructor_enrollment`
    * - ``edx.course.enrollment.deactivated`` 
      - :ref:`enrollment` and :ref:`instructor_enrollment`
+   * - ``edx.forum.searched``
+     - :ref:`forum_events`
    * - ``get_anon_ids``
      - :ref:`Instructor_Event_Types`
    * - ``get_student_progress_page``
diff --git a/docs/en_us/data/source/internal_data_formats/tracking_logs.rst b/docs/en_us/data/source/internal_data_formats/tracking_logs.rst
index 633a7d4e68a014ec7316d7dd3aa01d1a747c3f8c..a585c218dd1e08db021bae3c236e01bfa8c0e103 100644
--- a/docs/en_us/data/source/internal_data_formats/tracking_logs.rst
+++ b/docs/en_us/data/source/internal_data_formats/tracking_logs.rst
@@ -292,6 +292,8 @@ outside the Instructor Dashboard.
 
 * :ref:`AB_Event_Types`
 
+* :ref:`forum_events`
+
 The descriptions that follow include what each event represents, the system
 component it originates from, the history of any changes made to the event over
 time, and any additional member fields that the ``context`` and ``event`` fields contain.
@@ -1762,6 +1764,33 @@ the child module that was shown to the student.
      - string
      - ID of the module that displays to the student. 
 
+.. _forum_events:
+
+==========================
+Forum Events
+==========================
+
+``edx.forum.searched``
+----------------------------------
+
+After a user executes a text search in the navigation sidebar of the Discussion tab of a course, the server emits an ``edx.forum.text_search`` event.
+
+**Component**: Discussion Tab
+
+**Event Source**: Server
+
+**History**: Added 16 May 2014.
+
+``event`` **Fields**:
+
++---------------------+---------------+---------------------------------------------------------------------+
+| Field               | Type          | Details                                                             |
++=====================+===============+=====================================================================+
+| ``query``           | string        | The text entered into the search box by the user.                   |
++---------------------+---------------+---------------------------------------------------------------------+
+| ``total_results``   | integer       | The total number of results matching the query.                     |
++---------------------+---------------+---------------------------------------------------------------------+
+
 .. _Instructor_Event_Types:
 
 *************************
diff --git a/lms/lib/comment_client/thread.py b/lms/lib/comment_client/thread.py
index 95fbdec084703ab52bbe728bb94210c4eff9bbb0..bd6f96421a139f5336b51b5ca79c487176760605 100644
--- a/lms/lib/comment_client/thread.py
+++ b/lms/lib/comment_client/thread.py
@@ -1,8 +1,12 @@
+import logging
+
+from eventtracking import tracker
 from .utils import merge_dict, strip_blank, strip_none, extract, perform_request
 from .utils import CommentClientRequestError
 import models
 import settings
 
+log = logging.getLogger(__name__)
 
 class Thread(models.Model):
 
@@ -54,6 +58,26 @@ class Thread(models.Model):
             metric_action='thread.search',
             paged_results=True
         )
+        if query_params.get('text'):
+            search_query = query_params['text']
+            course_id = query_params['course_id']
+            total_results = response.get('total_results')
+            # Record search result metric to allow search quality analysis.
+            # course_id is already included in the context for the event tracker
+            tracker.emit(
+                'edx.forum.searched',
+                {
+                    'query': search_query,
+                    'total_results': total_results,
+                }
+            )
+            log.info(
+                'forum_text_search query="{search_query}" course_id={course_id} total_results={total_results}'.format(
+                    search_query=search_query,
+                    course_id=course_id,
+                    total_results=total_results
+                )
+            )
         return response.get('collection', []), response.get('page', 1), response.get('num_pages', 1)
 
     @classmethod