Skip to content

Instantly share code, notes, and snippets.

@groeney
Last active December 7, 2018 05:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save groeney/911af3c402f70a6dbc1e to your computer and use it in GitHub Desktop.
Save groeney/911af3c402f70a6dbc1e to your computer and use it in GitHub Desktop.
iD Insights stack (non-technical)

iD Insights stack (non-technical)

Everyone derives "insights" on the iD team - PMs, Devs, QA, Design, DevOps and leaders alike. We have a two part system for insights; Google Analytics (GA) and a tailored ELK deployment -- Elasticsearch, Logstash and Kibana. Generally speaking Kibana is the interface you will become most familiar with in the ELK ecosystem and you should already be familiar with GA. GA and Kibana are broad stroke and fine stroke analytics tools respectively.

Telos: the fewest data to give us maximum insight into user and application behaviours.

Important note regarding this document: this document is maintained through a Google Drive <--> StackEdit sync/pairing. Please make edits at either one of these platforms. Do not edit the gist directly, by doing so you will effectively clone the document and you will lose those changes next time it is published from the source.

Source: https://drive.google.com/open?id=0B52VNRX_C7xPN0ZvZV9paHd1MmM

Sink: https://gist.github.com/groeneveld91/911af3c402f70a6dbc1e#file-id-insights-non-technical-md

This is what you should dive into for broad stroke analytics (general, high-level users flow insights). For instance if you are just interested in a particular page or a particular "funnel" then go to GA. There are a lot of useful resources on the interwebs to help develop some GA skills if you are new to it. Here is a screen cast tailored to the iD team. GA does basic things and has been around for a long time. This is precisely why it is so useful! Emphasis on getting basics covered first and keeping it simple, stoopid.

Kibana is your visual layer into data that lives and has been processed by the ELK stack. Elasticsearch is the database layer and Logstash is in charge of getting data into Elasticsearch.

Kibana compliments the usage of Google Analytics (GA); the two can be very powerful tools when used together. GA offers predefined, industry standard broad stroke analytics (e.g., pageviews) and Kibana takes over when there are questions unique to the iD project (e.g., how many people verified a phone last week?). Ultimately we decide both what data goes into the ELK stack and how it is structured. This gives us ultimate control over the data whereas GA displays the same metrics/dimensions/visuals for every customer from Facebook to iD. Navigate to Kibana home to get started.

ELK infrastructure

Visual diagram describing the infrastructure architecture. The Kibana and Logstash software is self managed and we are using AWS Elasticsearch service to manage our ES cluster.

Tracking new events

The process of tracking new events is fully baked into the regular dev cycle and Workflow. A few pointers on tracking new events:

Storage

We are using Elasticsearch 1.5.4 as our primary event datastore. Our ELK deployment ingests both generic machine log data (e.g., record of an ssh login) as well as custom events (e.g., user login). A custom event describes some user behaviour. There are two (aliased) indexes that hold all custom events; user-events and admin-events. The Chrome browser extension Sense is a handy tool for digging into the index schemas of our Elasticsearch cluster.

Event criteria

An event answers the question “what did the user do?” A new event should be created only when there’s a new answer to that question.

Naming conventions

Cap first, lower case after, spaces. “Specify event name”

Event overhead

Just as accumulating new goods in your personal life comes with storage and "clutter" overhead, tracking new events comes with a the same kind of overhead. Before tracking anything new, remember the telos.

Written with StackEdit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment