Activity Tracking

You can configure Squirro to collect data on the user's interactions with Squirro. The collected activity data provides insights on the overall usage of the system, for example, what dashboards were visited or what queries a user submitted. Squirro uses the recorded queries to improve the overall user experience by suggesting popular queries in typeahead or recommending similar queries when a user types into the search bar.

Configuration

Enable activity tracking in the Server Configuration (frontend.userapp.log-activity).

The activity logs are then stored under /var/log/squirro/frontend/activity.$year-$month-$day.jsonl

Activity Tracking Project

Starting with version 3.4.5, Squirro allows for automatic creation of a Squirro Monitoring project.

The Squirro Monitoring project uses the Squirro Activity Log data loader plugin with a pre-configured Activity Log Enrichment pipeline to continuously load the activity data from the activity logs.

Automatic Creation

Self-service instances are shipped with a pre-configured monitoring project. On new deployments, Squirro creates the monitoring project named Squirro Monitoring upon first admin-user sign up (for each tenant).

You can configure the behaviour of the automatic monitoring project creation in the Server space under Configuration by setting the value of topic.monitoring.default-monitoring-project to true or false (default is true)

Any automatically created monitoring comes with the following:

  • A pre-configured Squirro Activity Log data source

  • A custom index for the activity data with name squirro_v9_activity_tracking_${tenant}. The index is required to set up the popular queries suggestions.

Current limitations:

  • The monitoring project has no pre-configured dashboards. Have a look in the delivery repository for a template.

Manual Creation

On existing deployments, you can also manually create a monitoring project:

  1. Create a new project

  2. Add the Squirro Activity Log data loader plugin as data source

  3. Click the SAVE button to set up the source as 1-click connector.

By setting up the source as 1-click connector, all necessary facets are automatically mapped correctly. If you need to map the facets manually, click the NEXT button (step 3 above). The relevant facets are listed in the facets.json below.

For manually created monitoring projects, the Squirro Activity Log data loader plugin uses a custom index with name squirro_v9_${project_id}. The index is required to set up the popular queries suggestions.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 { "pageview_id": { "display_name": "Pageview", "analyzed": false, "typeahead": false, "group_name": "Activity" }, "source": { "name": "event_source", "display_name": "Source", "analyzed": false, "group_name": "Activity" }, "action": { "display_name": "Action", "analyzed": false, "group_name": "Activity" }, "user_id": { "display_name": "User ID", "analyzed": false, "typeahead": false, "group_name": "User" }, "query.query": { "name": "query", "display_name": "Query", "group_name": "Activity", "analyzed": false }, "item.id": { "name": "item_id", "display_name": "Item ID", "analyzed": false, "typeahead": false, "group_name": "Activity" }, "item.link": { "name": "item_link", "display_name": "Item Link", "analyzed": false, "group_name": "Activity" }, "drop_to": { "name": "drop_to", "display_name": "Item Dropped To", "analyzed": false, "group_name": "Activity" }, "widget.type": { "name": "widget_type", "display_name": "Widget Type", "analyzed": false, "group_name": "Activity" }, "dashboard.title": { "name": "dashboard_title", "display_name": "Dashboard", "analyzed": false, "group_name": "Activity" }, "layer_title": { "name": "layer_title", "display_name": "Layer", "analyzed": false, "group_name": "Activity" }, "dashboard.id": { "name": "dashboard_id", "display_name": "Dashboard ID", "analyzed": false, "typeahead": false, "group_name": "Activity" }, "project.title": { "name": "project_title", "display_name": "Project", "analyzed": false, "group_name": "Activity" }, "project.id": { "name": "project_id", "display_name": "Project ID", "analyzed": false, "typeahead": false, "group_name": "Activity" }, "edit": { "display_name": "Edit", "analyzed": false, "group_name": "Activity" }, "microseconds": { "display_name": "microseconds", "data_type": "int", "group_name": "Activity", "typeahead": false }, "result.start": { "display_name": "Result List Offset", "data_type": "int", "group_name": "Activity", "typeahead": false }, "result.total": { "display_name": "Results", "name": "result_total", "data_type": "int", "group_name": "Activity" }, "type": { "analyzed": false, "group_name": "Activity", "typeahead": false }, "Name": { "analyzed": false, "group_name": "User" }, "Email": { "analyzed": false, "group_name": "User" }, "Role": { "analyzed": false, "group_name": "User" }, "Groups": { "display_name": "User Group", "analyzed": false, "group_name": "User" }, "comment": { "name": "Comment", "group_name": "Activity" }, "rating": { "name": "Rating", "group_name": "Activity" }, "user_email": { "import": false } }