Skip to content

Instantly share code, notes, and snippets.

@Dexterp37
Last active December 21, 2016 21:23
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Dexterp37/56aeadf8520d0a6d9c23f24bb5609916 to your computer and use it in GitHub Desktop.
Save Dexterp37/56aeadf8520d0a6d9c23f24bb5609916 to your computer and use it in GitHub Desktop.
Bug 1303044 - Validate engagement measurements on Beta
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Bug 1303044 - Validate engagement measurements on Beta"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/hadoop/anaconda2/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unable to parse whitelist (/home/hadoop/anaconda2/lib/python2.7/site-packages/moztelemetry/histogram-whitelists.json). Assuming all histograms are acceptable.\n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"import ujson as json\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import numpy as np\n",
"import plotly.plotly as py\n",
"import datetime as dt\n",
"from uuid import UUID\n",
"\n",
"from moztelemetry import get_pings, get_pings_properties, get_one_ping_per_client, get_clients_history\n",
"\n",
"%pylab inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We get all the pings on Beta, after bug 1293222 landed."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The 'schema' parameter is deprecated. Version 4 is now the only schema supported.\n"
]
}
],
"source": [
"def dedupe(pings):\n",
" return pings.map(lambda p: (p[\"meta/documentId\"], p))\\\n",
" .reduceByKey(lambda a, b: a)\\\n",
" .values()\n",
"\n",
"def filter(pings):\n",
" subset = get_pings_properties(pings, [\"meta/clientId\",\n",
" \"meta/documentId\",\n",
" \"meta/submissionDate\",\n",
" \"environment/profile/creationDate\",\n",
" \"environment/profile/resetDate\",\n",
" \"environment/build\",\n",
" \"environment/partner\",\n",
" \"environment/system\",\n",
" \"payload/info/reason\",\n",
" \"payload/info/sessionId\",\n",
" \"payload/info/subsessionLength\",\n",
" \"payload/info/sessionLength\",\n",
" \"payload/info/profileSubsessionCounter\",\n",
" \"payload/processes/parent/scalars\"])\n",
" return dedupe(subset)\n",
"\n",
"latest_pings = filter(get_pings(sc,\n",
" app=\"Firefox\",\n",
" channel=\"beta\",\n",
" doc_type=\"main\",\n",
" schema=\"v4\",\n",
" submission_date=(\"20160926\", \"20161002\"),\n",
" build_id=(\"20160920000000\", \"20160929999999\"), # Post bug 1293222\n",
" fraction=1.0))\n",
"\n",
"all_pings = latest_pings"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_clients = latest_pings.map(lambda p: p[\"meta/clientId\"]).distinct().count()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Helper functions for plotting and analysing."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def plot_series(series, graph_bins=100, graph_min=0.1):\n",
" # Plot to an histogram.\n",
" fig, ax = plt.subplots()\n",
" series.hist(ax=ax, bins=graph_bins, bottom=graph_min)\n",
" ax.set_yscale('log')\n",
" # Return some descriptive statistics.\n",
" return series.describe(percentiles=[.5, .75, .95, .99, .995])\n",
"\n",
"def plot_histogram_scalar(pings, scalar_name):\n",
" scalar_values = pings.filter(lambda p: p[\"payload/processes/parent/scalars\"] and p[\"payload/processes/parent/scalars\"].get(scalar_name, False))\\\n",
" .map(lambda p: p[\"payload/processes/parent/scalars\"][scalar_name])\n",
" scalar_series = pd.Series(scalar_values.collect())\n",
" return plot_series(scalar_series)\n",
"\n",
"def values_per_day(pings, scalar):\n",
" # Each entry in the |daily_per_user| RDD is like:\n",
" # ((\"date\", \"clientId\"), [ ... scalar values for the client, date ... ])\n",
" daily_per_user = pings.filter(lambda p: p[\"payload/processes/parent/scalars\"] and \\\n",
" p[\"payload/processes/parent/scalars\"].get(scalar, False))\\\n",
" .map(lambda p: ((p[\"meta/submissionDate\"], p[\"meta/clientId\"]), [ p[\"payload/processes/parent/scalars\"].get(scalar) ]))\\\n",
" .reduceByKey(lambda a,b: a + b)\n",
" return daily_per_user\n",
"\n",
"def pct(a, b):\n",
" return round(float(a) / b, 3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Make sure each ping has a scalar section and the contained engagament measurements scalar have the right formats."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"defaultdict(int,\n",
" {'': 29429938,\n",
" 'browser.engagement.max_concurrent_tab_count not reported': 65081,\n",
" 'browser.engagement.max_concurrent_window_count not reported': 158,\n",
" 'scalars section is None': 42654})"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def engagement_measurements_check(p):\n",
" known_engagement_scalars = {\n",
" \"browser.engagement.max_concurrent_tab_count\": int,\n",
" \"browser.engagement.max_concurrent_window_count\": int,\n",
" \"browser.engagement.tab_open_event_count\": int,\n",
" \"browser.engagement.total_uri_count\": int,\n",
" \"browser.engagement.unique_domains_count\": int,\n",
" \"browser.engagement.window_open_event_count\": int,\n",
" }\n",
" \n",
" # We know these scalars must be there for the referenced timeframe.\n",
" expected_scalars = [\n",
" \"browser.engagement.max_concurrent_tab_count\",\n",
" \"browser.engagement.max_concurrent_window_count\"\n",
" ]\n",
" \n",
" scalars = p[\"payload/processes/parent/scalars\"]\n",
" \n",
" if scalars is None:\n",
" return (\"scalars section is None\", p)\n",
"\n",
" # We don't expect all the engagement measurements to be there but,\n",
" # if they are, make sure they have the correct format.\n",
" for k, v in known_engagement_scalars.iteritems():\n",
" if k in scalars:\n",
" if type(scalars[k]) != v:\n",
" return (\"wrong type: \" + k, p)\n",
" if scalars[k] < 0:\n",
" return (\"check failed: \" + k + \" < 1\", p)\n",
" \n",
" # We're not expecting other scalars from these builds.\n",
" for k in scalars:\n",
" if k not in known_engagement_scalars:\n",
" return (\"unexpected scalar: \" + k, p)\n",
" \n",
" for s in expected_scalars:\n",
" if s not in scalars:\n",
" return (\"{} not reported\".format(s), p)\n",
" \n",
" return (\"\", p)\n",
"\n",
"checked_pings = all_pings.map(engagement_measurements_check)\n",
"result_counts = checked_pings.countByKey()\n",
"result_counts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Let's dig into the pings with missing engagement measurements."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Report the counts as ratios for beter readability."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'': 0.996,\n",
" 'browser.engagement.max_concurrent_tab_count not reported': 0.002,\n",
" 'browser.engagement.max_concurrent_window_count not reported': 0.0,\n",
" 'scalars section is None': 0.001}"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total_pings = sum(result_counts.values())\n",
"{key: pct(value, total_pings) for (key, value) in result_counts.iteritems()}"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"missing_eng = latest_pings.filter(lambda p: (p[\"payload/processes/parent/scalars\"] != None) and\\\n",
" (len(p[\"payload/processes/parent/scalars\"].keys()) == 0))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many clients are sending an empy scalars section?"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ratio of clients not sending engagement measurements:\t0.019\n"
]
}
],
"source": [
"num_clients_no_eng = len(missing_eng.map(lambda p: p[\"meta/clientId\"]).distinct().collect())\n",
"print \"Ratio of clients not sending engagement measurements:\\t{}\"\\\n",
" .format(pct(num_clients_no_eng, total_clients))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's check the distribution of the subsession lengths."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 6.488900e+04\n",
"mean 1.435561e+03\n",
"std 9.270036e+03\n",
"min -6.000000e+00\n",
"50% 1.600000e+01\n",
"75% 1.130000e+02\n",
"95% 6.635000e+03\n",
"99% 3.068372e+04\n",
"99.5% 4.681492e+04\n",
"max 1.669421e+06\n",
"dtype: float64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb843dbf950>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"missing_ssl = missing_eng.map(lambda p: p[\"payload/info/subsessionLength\"]).collect()\n",
"plot_series(pd.Series(missing_ssl), 30, 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Maximum Concurrent Tab Count"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 2.940783e+07\n",
"mean 3.853502e+00\n",
"std 1.572521e+01\n",
"min 1.000000e+00\n",
"50% 2.000000e+00\n",
"75% 4.000000e+00\n",
"95% 1.000000e+01\n",
"99% 2.400000e+01\n",
"99.5% 4.100000e+01\n",
"max 5.560000e+03\n",
"dtype: float64"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nqY3YxdsAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb843dbf3d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_histogram_scalar(all_pings, \"browser.engagement.max_concurrent_tab_count\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What's the maximum number of concurrent tabs each user has, per day?"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 7.441419e+06\n",
"mean 5.854665e+00\n",
"std 1.670865e+01\n",
"min 1.000000e+00\n",
"50% 4.000000e+00\n",
"75% 6.000000e+00\n",
"95% 1.400000e+01\n",
"99% 3.100000e+01\n",
"99.5% 5.000000e+01\n",
"max 5.560000e+03\n",
"dtype: float64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841b4e090>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"daily_max_tabs_per_user = values_per_day(all_pings, \"browser.engagement.max_concurrent_tab_count\")\\\n",
" .map(lambda x: np.max(x[1]))\n",
"plot_series(pd.Series(daily_max_tabs_per_user.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Maximum Concurrent Window Count"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 2.940767e+07\n",
"mean 1.374844e+00\n",
"std 1.095686e+00\n",
"min 1.000000e+00\n",
"50% 1.000000e+00\n",
"75% 1.000000e+00\n",
"95% 3.000000e+00\n",
"99% 5.000000e+00\n",
"99.5% 7.000000e+00\n",
"max 1.880000e+02\n",
"dtype: float64"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb84830bd50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_histogram_scalar(all_pings, \"browser.engagement.max_concurrent_window_count\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What's the maximum number of concurrent windows each user has, per day?"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 7.441438e+06\n",
"mean 1.911958e+00\n",
"std 1.743464e+00\n",
"min 1.000000e+00\n",
"50% 1.000000e+00\n",
"75% 2.000000e+00\n",
"95% 4.000000e+00\n",
"99% 8.000000e+00\n",
"99.5% 1.100000e+01\n",
"max 1.880000e+02\n",
"dtype: float64"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAhUAAAFnCAYAAAAR5rspAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X+QHPd53/n3Q5gmudCZPgcWQNuiJRYjCDFPFHdEy2uL\nohKeQeHiajOns+CJaF0AxSoWFyjd1hlI4osFUHapAjgkIOLHmVbhBNKwhuDFMriKGXJNBaIESSSt\nGUEKlV2kkkBcHUTA2tCCbC9AMYvn/ugZcnZmFju90zPd/d3Pq2qKnO/0dD+NB8A++Pb3h7k7IiIi\nIr26IusAREREJAwqKkRERCQVKipEREQkFSoqREREJBUqKkRERCQVKipEREQkFSoqREREJBUqKkRE\nRCQVKipEREQkFSoqREREJBUqKkRERCQVmRcVZvZWM/u6mdXq/501syjruERERCQZy9OGYma2EjgN\n/Ky7X8g6HhEREele5j0VLSLg8yooREREiidvRcUHgKNZByEiIiLJ9VRUmNltZjZuZmfM7FKnsRBm\nNmpmp83sgpk9a2a3LnCu/wEYAZ7oJSYRERHJRq89FSuBk8C9QNvgDDPbCNwP7ABuAb4BPGVmqzqc\n61eBCXf/YY8xiYiISAZSG6hpZpeAu9x9vKntWeA5d/9o/b0B3wEedPfdLd8fBx5y9z9b5Dp/B7gT\n+DZwMZXgRUREloergTcDT7n7f0v75D+S9gkbzOxKoAR8otHm7m5mTxM/5mg+9seAW4H/tYtT3wn8\ncYqhioiILDcfBD6T9kn7VlQAq4AVwLmW9nPA2uYGd/8BcF2X5/02wJEjR1i3bl2PIUoejI2NsWfP\nnqzDkJQon2FRPsMyOTnJ3XffDfWfpWnrZ1HRLxcB1q1bx/DwcNaxSAquvfZa5TIgymdYlM9g9WX4\nQD+nlM4Ac8DqlvbVwNk+XlcK5uxZ/XYIifIZFuVTkuhbT4W7v2pmVeAOYBxeG6h5B/Bgr+cfGxvj\n2muvpVwuUy6Xez2dZOjMmTNZhyApUj7DonyGoVKpUKlUOH/+fF+v01NRUV9W+0bA6k03mNnNwMvu\n/h3gAeBwvbh4HhgDhoDDvVwXYM+ePeqSC0SpVMo6BEmR8hkW5TMMjX+A12q1vua0156KdwLHideo\ncOI1KQAeBja7+2P1NSk+TvzY4yRwp7t/r8frSkDU0xQW5TMsyqckkasNxbphZsNAtVqtqqdCREQk\n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\nRCQV/z84FkdtmX5mZgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb84195e250>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"daily_max_wins_per_user = values_per_day(all_pings, \"browser.engagement.max_concurrent_window_count\")\\\n",
" .map(lambda x: np.max(x[1]))\n",
"plot_series(pd.Series(daily_max_wins_per_user.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Tab Open Event Count"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 1.710415e+07\n",
"mean 9.951624e+00\n",
"std 3.143885e+01\n",
"min 1.000000e+00\n",
"50% 3.000000e+00\n",
"75% 9.000000e+00\n",
"95% 3.700000e+01\n",
"99% 9.700000e+01\n",
"99.5% 1.370000e+02\n",
"max 2.080200e+04\n",
"dtype: float64"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841a3c550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_histogram_scalar(all_pings, \"browser.engagement.tab_open_event_count\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many tabs are being opened by each user, per day?"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 6.372005e+06\n",
"mean 2.671279e+01\n",
"std 7.973880e+01\n",
"min 1.000000e+00\n",
"50% 1.100000e+01\n",
"75% 2.800000e+01\n",
"95% 9.700000e+01\n",
"99% 2.230000e+02\n",
"99.5% 3.090000e+02\n",
"max 7.102900e+04\n",
"dtype: float64"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nantayf3h1wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841bb1d10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"daily_tab_opens_per_user = values_per_day(all_pings, \"browser.engagement.tab_open_event_count\")\\\n",
" .map(lambda x: np.sum(x[1]))\n",
"plot_series(pd.Series(daily_tab_opens_per_user.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compare tab open event and the maximum tab count, over a subsession:\n",
"* Get the maximum among all the fragments for the concurrent tabs\n",
"* Sum the open events for each fragment"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def map_to_tab_measurements(p):\n",
" scalars = p[\"payload/processes/parent/scalars\"]\n",
" max_cnt = scalars.get(\"browser.engagement.max_concurrent_tab_count\", 0)\n",
" open_cnt = scalars.get(\"browser.engagement.tab_open_event_count\", 0)\n",
" return ((p[\"meta/clientId\"], p[\"payload/info/sessionId\"]), (open_cnt, max_cnt))\n",
"\n",
"per_session_tab = latest_pings.filter(lambda p: p[\"payload/processes/parent/scalars\"])\\\n",
" .map(map_to_tab_measurements)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"combined_per_session_tab = per_session_tab.combineByKey(lambda x: x,\n",
" lambda acc, x: (acc[0] + x[0], max(acc[1], x[1])),\n",
" lambda x, y: (x[0] + y[0], max(x[1], y[1])))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot and describe the number of tab open events per client session."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 2.634302e+07\n",
"mean 6.461448e+00\n",
"std 2.888351e+01\n",
"min 0.000000e+00\n",
"50% 1.000000e+00\n",
"75% 5.000000e+00\n",
"95% 2.800000e+01\n",
"99% 8.200000e+01\n",
"99.5% 1.200000e+02\n",
"max 2.903300e+04\n",
"dtype: float64"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nY4MAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841ff1110>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"per_session_tab_open_events = combined_per_session_tab.map(lambda x: x[1][0])\n",
"plot_series(pd.Series(per_session_tab_open_events.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot and describe the maximum number of concurrent tabs per client session."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 2.634302e+07\n",
"mean 3.345133e+00\n",
"std 1.054626e+01\n",
"min 0.000000e+00\n",
"50% 2.000000e+00\n",
"75% 4.000000e+00\n",
"95% 9.000000e+00\n",
"99% 1.800000e+01\n",
"99.5% 2.700000e+01\n",
"max 5.560000e+03\n",
"dtype: float64"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841473090>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"per_session_max_tabs = combined_per_session_tab.map(lambda x: x[1][1])\n",
"plot_series(pd.Series(per_session_max_tabs.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Window Open Event Count"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 5.035311e+06\n",
"mean 5.253073e+00\n",
"std 1.602326e+01\n",
"min 1.000000e+00\n",
"50% 2.000000e+00\n",
"75% 4.000000e+00\n",
"95% 1.800000e+01\n",
"99% 5.700000e+01\n",
"99.5% 8.700000e+01\n",
"max 3.372000e+03\n",
"dtype: float64"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAhkAAAFnCAYAAAAL2lunAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X+UXHd93//n28axvOKLUiKQ3AaBXRehEmK8i0s3wYbW\nJ3JK2huaFJYtjotE4fhY0sl3zzcSJKWWbCCNRG1RZKk4RUV2BWNBQ8SGOLZi17Et/CvesdyWat0f\nkbtUxPqyMVEIaxnHevePz4zu7MystLszdz73zn09ztkjzZ27974/r7mr/ejez/1cc3dEREREuu28\n2AWIiIhIf1InQ0RERDKhToaIiIhkQp0MERERyYQ6GSIiIpIJdTJEREQkE+pkiIiISCbUyRAREZFM\nqJMhIiIimVAnQ0RERDKhToaIiIhkInonw8zebGZPm1m19ueMmSWx6xIREZHOWJ4ekGZmS4FjwBvd\n/cXY9YiIiMjiRT+T0SQBHlAHQ0REpPjy1sn4AHAgdhEiIiLSuY46GWZ2lZmNm9lxMzvdbiyFmW0w\ns2Nm9qKZPW5mV86xrf8HGAbu6aQmERERyYdOz2QsBY4ANwItgzvMbAS4FdgKXAE8A9xnZsvbbOsX\ngUPu/qMOaxIREZEc6NrATzM7DbzP3ccblj0OPOHuv1p7bcB3gM+7+46m7x8H7nD33z/Hfn4CuBZ4\nDjjVleJFRETKYQnwJuA+d/+zrHf2qqw2bGYXAEPAb9aXubub2f2EyyKN674GuBL4pXls+lrgy10s\nVUREpGw+BHwl651k1skAlgPnAyealp8AVjcucPe/AC6e53afA9i/fz9r1qzpsMRiGxsbY+fOnbHL\nyAVlESiHQDmklEWgHIKjR49y3XXXQe13aday7GRk5RTAmjVrGBwcjF1LVMuWLSt9BnXKIlAOgXJI\nKYtAObToyXCDLG9hnQZeAVY0LV8BPJ/hfkvj+ecVY52yCJRDoBxSyiJQDnFkdibD3V82swngGmAc\nzgz8vAb4fKfbHxsbY9myZYyOjjI6Otrp5grp+PHjsUvIDWURKIdAOaSURVD2HCqVCpVKhZMnT/Z0\nvx11MmrTgF8GWG3RpWZ2OfCCu38HuA3YV+tsPAmMAQPAvk72C7Bz587Sn/oaGhqKXUJuKItAOQTK\nIaUsgrLnUP8PebVa7WkWnZ7JeAfwIGGODCfMiQFwJ7De3b9amxPjFsJlkiPAte7+vQ73K1DaMzjt\nKItAOQTKIaUsAuUQR64ekDYfZjYITExMTJT+TIaIiMhCNJzJGHL3atb7y9uzS0RERKRPFLaTMTY2\nRpIkVCqV2KVEs27dutgl5IayCJRDoBxSyiIoew6VSoUkSRgbG+vpfos4TwaggZ8Aa9eujV1CbiiL\nQDkEyiGlLIKy5xBr4Gdhx2R8+tOf5pJLLgHgrW99K5dffnncwkRERHKu12MyCnsm45Of/OSZvy9Z\nMsCf//kLXHjhhRErEhERkUaFHZMB3wJmgC9x6tQMr7zySuyCREREpEGBOxlLgIuAH4tdSDSHDx+O\nXUJuKItAOQTKIaUsAuUQR4E7GbJjx47YJeSGsgiUQ6AcUsoiUA5xFHbgJ1wNLANWAbv54Q9/yMDA\nQNziemxmZqZ0bZ6LsgiUQ6AcUsoiKHsOjc8uefjhh6FHAz8L3MmYAAaBrwAfKmUnQ0REZCE046eI\niIj0BXUyREREJBPqZBTY5s2bY5eQG8oiUA6Bckgpi0A5xKFORoGtWrUqdgm5oSwC5RAoh5SyCJRD\nHBr4KSIiUhIa+CkiIiJ9QZ0MERERyYQ6GQU2OTkZu4TcUBaBcgiUQ0pZBMohDnUyCmzLli2xS8gN\nZREoh0A5pJRFoBzi0MDPApuamtKI6RplESiHQDmklEWgHIJeD/wscCdDzy4RERGZDz27ZJ50JkNE\nRGRxdAuriIiI9IVcdDLM7E1m9p/M7Ntm9oyZXRS7piLYvn177BJyQ1kEyiFQDillESiHOF4Vu4Ca\nfcBvuPujZvbjwEuR6ymEmZmZ2CXkhrIIlEOgHFLKIlAOcUQfk2Fmfxv4nLuvnef6GpMhIiKyCGUc\nk/G3gB+a2biZPWVmvx67IBEREelcR50MM7uq1jk4bmanzSxps84GMztmZi+a2eNmdmXTKq8C3gXc\nAPwM8HNmdk0ndYmIiEh8nZ7JWAocAW4EWq67mNkIcCuwFbgCeAa4z8yWN6x2HHjK3b/r7j8C7gHe\n3mFdpTA9PR27hNxQFoFyCJRDSlkEyiGOjjoZ7n6vu9/k7t8ArM0qY8Ad7n6Xu08SzlbMAOsb1vlj\n4PVmtszMziPMsnW0k7rKYv369edeqSSURaAcAuWQUhaBcogjszEZZnYBMAQ8UF/mYZTp/cBww7JX\ngN8AHiGcFfnv7n5PVnX1k23btsUuITeURaAcAuWQUhaBcogjy4Gfy4HzgRNNy08AKxsXuPt97v7T\nta9fm9/m3wskhKsx8P73v5/h4WEOHjw4a61Dhw6RJC1DRdiwYQN79+6dtaxarZIkSctpta1bt7bc\nYz01NUWSJC1P9tu1axebN2+etWxmZoYkSTh8+PCs5ZVKhXXr1rXUNjIyMq92DA4O9kU7oPPPY/ny\n5X3Rjk4/j8HBwb5oB3T2eQwODvZFO+o6acfg4GBftAM6+zzqx0TR21E3n3ZUKhWSJGF4eJiVK1eS\nJAljY2Mt35Olrt3Camangfe5+3jt9cWE8RbD7v5Ew3rbgavdfbj9ls65H93CKiIisgj9dAvrNPAK\nsKJp+Qrg+Qz3KyIiIjmQWSfD3V8mnG44czuqmVnt9aNZ7bdMmk/XlZmyCJRDoBxSyiJQDnF0Ok/G\nUjO73Mzqt5xeWnv9htrr24CPmtn1ZvYW4AvAAGEa8Q6NEcZklLe/Uq1mfqarMJRFoBwC5ZBSFkHZ\nc6iPzyjUmAwzezfwIK1zZNzp7utr69wIbCFcJjkCbHL3pzrYp8ZkiIiILEKvx2R09IA0d3+Ic5wN\ncfc9wJ5O9iMiIiLFk4dnl4iIiEgfUidDREREMlHgToYGfrabJKaslEWgHALlkFIWQdlziDXws8Cd\njJ3AOOHBreW0cePG2CXkhrIIlEOgHFLKIih7DqOjo4yPj7Nz586e7rdrM372iu4uERERWZx+mvFT\nRERESkydDBEREcmEOhkF1vzEwDJTFoFyCJRDSlkEyiEOdTIKrFKpxC4hN5RFoBwC5ZBSFoFyiKPA\nAz+vBpYBq4DdGvgpIiIyh0qlQqVS4eTJkzz88MPQo4GfBe5k6O4SERGRhdDdJSIiItIX1MkQERGR\nTKiTUWDr1q2LXUJuKItAOQTKIaUsAuUQhzoZBbZ27drYJeSGsgiUQ6AcUsoiUA5xaOCniIhISWjg\np4iIiPQFdTJEREQkE+pkFNjhw4djl5AbyiJQDoFySCmLQDnEoU5Gge3YsSN2CbmhLALlECiHlLII\nlEMcBR74qWnFZ2ZmStfmuSiLQDkEyiGlLIKy56BpxedJd5eIiIgsju4uERERkb6gToaIiIhkIhed\nDDN7zsyOmNnTZvZA7HqKYvPmzbFLyA1lESiHQDmklEWgHOJ4VewCak4Dw+7+YuxCimTVqlWxS8gN\nZREoh0A5pJRFoBziyMXATzM7BvyUu/9wHutq4KeIiMgilHXgpwMPm9kTZvZPYxcjIiIineuok2Fm\nV5nZuJkdN7PTZpa0WWeDmR0zsxfN7HEzu7LNpn7W3YeAXwR+w8x+qpO6REREJL5Oz2QsBY4ANxLO\nRsxiZiPArcBW4ArgGeA+M1veuJ67/2ntz+eBewjXQeQcJicnY5eQG8oiUA6Bckgpi0A5xNFRJ8Pd\n73X3m9z9G4C1WWUMuMPd73L3SeAGYAZYX1/BzAbM7NW1v78a+PvAtzupqyy2bNkSu4TcUBaBcgiU\nQ0pZBMohjszuLjGzC4Ah4Dfry9zdzex+YLhh1RXA75qZA+cDv+3uE1nV1U9uv/322CXkhrIIlEOg\nHFLKIlAOcWQ58HM5odNwomn5CWBl/YW7H3P3t7v7Fe7+0+4+zyPhvUBCuBoD73//+xkeHubgwYOz\n1jp06BBJ0jJUhA0bNrB3795Zy6rVKkmSMD09PWv51q1b2b59+6xlU1NTJEnScgpu165dLfdjz8zM\nkCRJy1MAK5UK69ata6ltZGRkXu1YtWpVX7QDOv88gL5oR6efx6pVq/qiHdDZ51G/XbHo7ajrpB2r\nVq3qi3ZAZ59H/Zgoejvq5tOOSqVCkiQMDw+zcuVKkiRhbGys5Xuy1LVbWM3sNPA+dx+vvb4YOE6Y\n/+KJhvW2A1e7+3D7LZ1zP7qFVUREZBH66RbWaeAVwuWQRiuA5zPcr4iIiORAZp0Md3+ZcLrhmvoy\nM7Pa60ez2m+ZtLtkUFbKIlAOgXJIKYtAOcTR0cBPM1sKXEZ6Z8mlZnY58IK7fwe4DdhnZhPAk4S7\nTQaAfZ3sNxgDlgHlnSp2ZmYmdgm5oSwC5RAoh5SyCMqeQ6VSoVKpcPLkyZ7ut6MxGWb2buBBWufI\nuNPd19fWuRHYQrhMcgTY5O5PdbBPjckQERFZhF6PyejoTIa7P8Q5Lrm4+x5gTyf7mY+nn36aiy66\n6Mzr5cuX64E4IiIiEeXlKawdmAbO413vetespUuWDPDss0fV0RAREYkkLw9I68APCE+K30+4hDIB\n7OfUqZmW+5X7Tb+3byGURaAcAuWQUhaBcoijwJ2MMcJkXM/UXq8hjNEYrP29/61fv/7cK5WEsgiU\nQ6AcUsoiKHsO9Ym5CjsZV6+0Dvz8DPBJ0tcAVWCIiYkJBgf791lr1Wq1r9u3EMoiUA6Bckgpi0A5\nBP00GZdkTD8wKWURKIdAOaSURaAc4lAnQ0RERDKhToaIiIhkQp2MAmt+CmCZKYtAOQTKIaUsAuUQ\nR4E7Gc13l5RPtZr5mJ3CUBaBcgiUQ0pZBGXPQXeXzJPuLhEREVkc3V0iIiIifUGdDBEREcmEOhki\nIiKSCXUyCixJktgl5IayCJRDoBxSyiJQDnGok1FgGzdujF1CbiiLQDkEyiGlLALlEIc6GQW2du3a\n2CXkhrIIlEOgHFLKIlAOcaiTISIiIplQJ0NEREQyoU5GgR08eDB2CbmhLALlECiHlLIIlEMc6mQU\nWKVSiV1CbiiLQDkEyiGlLALlEEeBpxW/GlgGLAG+Rrtpxffv38+aNWsAWL58OatWrYpQsYiISFyV\nSoVKpcLJkyd5+OGHoUfTihe4k3G2Z5f8PuHhaafPfN+SJQM8++xRdTRERKS09OySrvhzQgdjP6Hz\nsZ9Tp2aYnp6OW5aIiEiJvCp2AdlaQ3p2Q0RERHopN2cyzOwiM3vOzHbErqUo1q1bF7uE3FAWgXII\nlENKWQTKIY7cdDKAfwE8FruIItEMdillESiHQDmklEWgHOLIRSfDzC4DVgN/ELuWIhkdHY1dQm4o\ni0A5BMohpSwC5RBHLjoZwL8Gfh2w2IWIiIhId3TUyTCzq8xs3MyOm9lpM2t5lq6ZbTCzY2b2opk9\nbmZXNr2fAM+6+/+sL+qkJhEREcmHTs9kLAWOADcCLRNumNkIcCuwFbgCeAa4z8yWN6z2d4EPmtmf\nEM5o/HMz+2SHdZXC4cOHY5eQG8oiUA6Bckgpi0A5xNFRJ8Pd73X3m9z9G7Q/AzEG3OHud7n7JHAD\nMAOsb9jGb7j7G939UuDXgH/n7p/upK6y2LFDN+LUKYtAOQTKIaUsAuUQR2ZjMszsAmAIeKC+zMP0\novcDw1ntt0zuvvvu2CXkhrIIlEOgHFLKIlAOcWQ58HM5cD5womn5CWBlu29w9zvdfcv8Nv9ewtTh\n+2uvxwh9l+Yn7R2qvTfbhg0b2Lt376xl1WqVJElaZgbdunUr27dvn7VsamqKJEmYnJyctXzXrl1s\n3rx51rKZmRmSJGk5XVepVNreuz0yMtLyxMBDhw6RJLOHvAwMDPRFO6Dzz2N6erov2tHp5zEwMNAX\n7YDOPo+BgYG+aEddJ+0YGBjoi3ZAZ59H/Zgoejvq5tOOSqVCkiQMDw+zcuVKkiRhbKz192GWuvbs\nEjM7DbzP3cdrry8GjgPD7v5Ew3rbgavdfVFnM+b37JIvA9c1LAsPTJuYmGBwUDOAiohIOfXTs0um\ngVeAFU3LVwDPZ7hfERERyYHMOhnu/jLhVMI19WVmZrXXj3a+hzHC5ZJn5v0dR48epVqtnvmamprq\nvIyImk+rlZmyCJRDoBxSyiIoew71Sye9vlzS0QPSzGwpcBnpnSWXmtnlwAvu/h3gNmCfmU0ATxJ6\nBgPAvk72G+wkvVzytXOs+6fAeVx33XWzlhb98e9FrTsLyiJQDoFySCmLoOw5jI6OMjo62ni5pCc6\nGpNhZu8GHqR1jow73X19bZ0bgS2EyyRHgE3u/lQH+1zEmIz66/2EJ7MCHAWu0zgNEREpjV6Pyejo\nTIa7P8Q5Lrm4+x5gTyf76R49+l1ERKRX8vLsEhEREekzBe5kLHzgZ79pvse6zJRFoBwC5ZBSFkHZ\nc4g18LPAnYydwDhweexCotmyZZ7zlpWAsgiUQ6AcUsoiKHsOo6OjjI+Ps3Pnzp7ut8CdDLn99ttj\nl5AbyiJQDoFySCmLQDnEoU5GgZX9lqxGyiJQDoFySCmLQDnEoU6GiIiIZEKdDBEREclE6TsZjVON\nF22a8eYn+5WZsgiUQ6AcUsoiUA5xdDQZV1xjwDJgySK/v3Wq8aJNMz4zMxO7hNxQFoFyCJRDSlkE\nZc+hUqlQqVQ4efJkT/fbtUe990pn04q3W6c+1bimGRcRkf5WqGnF+4OmGhcREclC6cdkiIiISDbU\nySiw6enp2CXkhrIIlEOgHFLKIlAOcaiTUWDr16+PXUJuKItAOQTKIaUsAuUQhzoZBbZt27bYJeSG\nsgiUQ6AcUsoiUA5xqJNRYLoLJqUsAuUQKIeUsgiUQxzqZIiIiEgmdAtrk6NHj856vXz58sJMziUi\nIpInOpNxRjoD6NDQ0Jmv1avX5Ha68b1798YuITeURaAcAuWQUhaBcohDnYwz/hw4TZgBdKL2tZ9T\np2Zye+tTtZr5ZG2FoSwC5RAoh5SyCJRDHAW+XNLps0vmUpwZQHfv3h27hNxQFoFyCJRDSlkEZc8h\n1rNLCnwmYycwDlweuxAREZFcGx0dZXx8nJ07d/Z0vwXuZIiIiEieqZMhIiIimYjeyTCzZWb2x2ZW\nNbP/bGb/PHZNRZEkSewSckNZBMohUA4pZREohzjyMPDzL4Cr3P2UmV0EfNvMfsfdvx+7sLzbuHFj\n7BJyQ1kEyiFQDillESiHOKJ3MtzdgVO1lxfV/rRI5bTVOEFXnibnWrt2bewSckNZBMohUA4pZREo\nhziidzIgXDIBHgIuAza7+wuRS6pJJ+iqW7JkgGefPZqbjoaIiEhedTQmw8yuMrNxMztuZqfNrOWi\nl5ltMLNjZvaimT1uZlc2r+PuJ9397cAlwIfM7HWd1NU9zRN05XtyLhERkTzpdODnUuAIcCPgzW+a\n2QhwK7AVuAJ4BrjPzJa325i7f6+2zlUd1tVl9Qm61gDh8km1Wj3zFWva8YMHD0bZbx4pi0A5BMoh\npSwC5RBHR50Md7/X3W9y92/QfhzFGHCHu9/l7pPADcAMsL6+gpm93sxeXfv7MuBq4NlO6spOvp5v\nUqlUer7PvFIWgXIIlENKWQTKIY7MbmE1swuAIeCB+rLaIM/7geGGVd8IPGJmTxPGZfwbd//2uffw\nXiAhXMqA0J8ZBpp7q4cIJ1Oa7Ztju2NA8+WQLwDbmX355JuE/tCOWZdQdu3axebNm2d998zMDEmS\ncPjw4VnLK5UK69ata6lgZGSkpdd96NChlluwDhw4wIYNG1oe/FOtVkmSpOWyztatW9m+ffusZVNT\nUyRJwuTk5KzlvWwH0HE7PvvZz/ZFOzr9PA4cONAX7YDOPo8DBw70RTvqOmnHgQMH+qId0NnnUT8m\nit6Ouvm0o1KpkCQJw8PDrFy5kiRJGBsba/meLFn4vd+FDZmdBt7n7uO11xcDx4Fhd3+iYb3twNXu\nPtx+S+fczyAwEcZIDAKfAT5J+hrgy8B1DcuaX3dznSowxMTEBIODxXjmiYiIlFO1WmVoaAhgyN0z\nf2pc9Mm4REREpD9l2cmYBl4BVjQtXwE8n+F+RUREJAcy62S4+8uE6wrX1JeZmdVeP9r5HsYIYzKe\n6XxTBdXuelxZKYtAOQTKIaUsgrLnUB+f0esxGZ3Ok7HUzC43s7fXFl1ae/2G2uvbgI+a2fVm9hbC\nCMoB5h51uQB61LtmsEspi0A5BMohpSyCsucQ61Hvnc74+Q7gQcIcGU56G8edwHp3/2ptToxbCJdJ\njgDX1ubDkA6Njo7GLiE3lEWgHALlkFIWgXKIo6NOhrs/xDnOhrj7HmBPJ/spgrw+30RERCSWXDy7\npNj0fBMREZF2CnwLa14GfsZ7vknz5CxlpiwC5RAoh5SyCMqeQyEHfsaVt4Gfs59v0gs7duzo2b7y\nTlkEyiFQDillEZQ9h1gDPwvcyZC77747dgm5oSwC5RAoh5SyCJRDHOpkFNjAwEDsEnJDWQTKIVAO\nKWURKIc41MkQERGRTKiTISIiIplQJyMjR48epVqtnvmamprq+j6aHwlcZsoiUA6Bckgpi0A5xFHg\neTLGgGXAktiFNGmdNwOymTtD83CklEWgHALlkFIWQdlzqFQqVCoVTp482dP9FvhMRt5uYa1rnjcj\nu7kzNm3a1NXtFZmyCJRDoBxSyiIoew5FfXaJzKk+b4aIiEg5qZPRQ3q+iYiIlEmBL5cUSTpOY2ho\niKGhIVavXtPxYNDJycnulNcHlEWgHALlkFIWgXKIQ52Mnsjm+SZbtmzpQm39QVkEyiFQDillESiH\nOHS5pKe6O07j9ttv79q2ik5ZBMohUA4pZREohzh0JqPANKYjpSwC5RAoh5SyCJRDHDqTEVHjQFDQ\nYFAREekv6mRE0bsJu0RERGLR5ZIoujNh1/bt27Mpr4CURaAcAuWQUhaBcohDZzKi6mwg6MzMTPdK\nKThlESiHQDmklEWgHOIocCcjr88u6Z2bb745dgm5oSwC5RAoh5SyCMqeg55dsmB5fXaJiIhIvujZ\nJQJo6nEREekfuTiTYWY/aWYPmtm3zeyImf2T2DX13sKnHu/2U12LTFkEyiFQDillESiHOHLRyQD+\nCvhVd38rcC3wOTO7KHJNPbbwqcfXr1/fo9ryT1kEyiFQDillESiHOHJxucTdnweer/39hJlNA68F\njkctLIr533Gybdu2TCspEmURKIdAOaSURaAc4sjLmYwzzGwIOM/dS9jBWJjBwe49B6XolEWgHALl\nkFIWgXKIo+MzGWZ2FbAZGAIuBt7n7uNN62wAfg1YCTwDbHL3P26zrdcCdwIf6bSufqGpx0VEpKi6\ncblkKXAE2At8vflNMxsBbgU+BjxJmODiPjN7s7tPN6z3Y8DvAr/p7k90oa6C09TjIiJSbB1fLnH3\ne939Jnf/BmBtVhkD7nD3u9x9ErgBmAGaR+HcCTzg7l/ptKb+MPfU44888gjVapWbbrrprHeflMne\nvXtjl5ALyiFQDillESiHODIdk2FmFxAuozxQX+buDtwPDDes97PA+4H3mdnTZlY1s7dmWVtx1AeC\nDgI/TuNtrp/61KfOeZtrWVSr1dgl5IJyCJRDSlkEyiGOrAd+LgfOB040LT9BGJ8BgLt/y91f5e6D\n7n5F7c9vn33T7wUSwv/0IZwwGQYONq13iHC1ptm+ObY7BjTfNvoFoPnhOlO1/X+3zf6avVT78+mm\n5fcC69qsPwI81Wa7/5J2t7l+8YtfnLVmtVolSZKW21+3bt3a8pCgqakpkiRhcnJy1vJdu3axefPm\nWctmZmZIkoTDhw/PWl6pVFi3rrUdIyMjHDw4+/M4dOgQSZK0rLthw4aW/2kspB0f//jH+6IdnX4e\nu3fv7ot2QGefx+7du/uiHXWdtGP37t190Q7o7POoHxNFb0fdfNpRqVRIkoTh4WFWrlxJkiSMjY21\nfE+m3L1rX4TfgEnD64try97ZtN524LFF7mMQcJhwcIdP++zX7rC/aVnz635ZZ8IBn5iYcBERkXOZ\nmJio/R5h0Lv4+3+ur6znyZgGXgFWNC1fQW1eDOmc7kAREZE8yrST4e4vm9kEcA3haWaYmdVefz7L\nfZeD7kAREZH86nhMhpktNbPLzezttUWX1l6/ofb6NuCjZna9mb2FMMBhgLkHRczTGGFMxDOdbabQ\nmsdozG868n7U7rppGSmHQDmklEVQ9hzq4zN6PSajG2cy3gE8SLjG46SjLO8E1rv7V81sOXAL4TLJ\nEeBad/9eZ7vdSRie8Rnga51tqrDWEgaTnn0q8qmpqVmdjn68nLJx48bYJeSCcgiUQ0pZBGXPYXR0\nlNHRUarVKkNDQz3bb8edDHd/iHOcEXH3PcCeTvclzd52zjWmpqZYvXoNp07NnFnWj5dT1q5dG7uE\nXFAOgXJIKYtAOcSRu2eXSHdNT0/XOhjzf7qriIhIN+TiKazSC/N/uquIiEg3FPhMhgZ+tk7YlTp6\n9CjVarXl9tZ+1TyJTlkph0A5pJRFUPYcYg38LHAnYyfhrtjLYxcS0WNtlqW3tQ4NDbXc3tqvKpVK\n7BJyQTkEyiGlLIKy5zA6Osr4+Dg7d+7s6X4L3MkQ2NRmWfOD1T7V04piOXDgQOwSckE5BMohpSwC\n5RCHOhl9qz4G45LYhYiISElp4GdJaSpyERHJmjoZpaOpyEVEpDd0uaTQ7ljE9zSP2UjnznjkkUeo\nVqtUq1Wmpqa6WWjm2j3yuIyUQ6AcUsoiUA5xFPhMxhiwDFgSu5CI3gY8ssjvbZw3o/XsRtHObGg2\nv0A5BMohpSyCsudQqVSoVCqcPHmyp/st8JkM3cIKP9Ol7TSf3SjerKCjo6OxS8gF5RAoh5SyCMqe\nQ6xbWAt8JkO6T7OCiohI9xT4TIaIiIjkmToZhfZs7AJy4/Dhw7FLyAXlECiHlLIIlEMc6mQU2jdj\nF5AbO3bsiF1CLiiHQDmklEWgHOLQmIxC2wh8JLOtF2nCrrvvvjt2CbmgHALlkFIWgXKIQ52MQrsw\no+0ufsLNAF36AAAX0klEQVSuqampWXel9KpjMjAwkPk+ikA5BMohpSwC5RCHOhnSRuMtrWtqy45y\n6tR1PPLII6xZE5Y1dyCmpqZYvXoNp07NnFlWtPk2RESke9TJkLNY2IRd09PTtQ5GvXMSOibT09Pq\nZIiIlJAGfhbaV3q4r4VM2FXvnKxp8142Nm/e3LN95ZlyCJRDSlkEyiGOAp/J0LTisDzCPvM5YZfO\nlATKIVAOKWURlD2HWNOKF7iTsZPwy+4zwNci1xLLWuCu2EUsWBaDQzdt2tRpWX1BOQTKIaUsgrLn\nMDo6yujoKNVqlaGhoZ7tt8CdDCkiDQ4VESkPjcmQnpo9OLSYD2MTEZH5yU0nw8y+bmYvmNlXY9dS\nHN+NXQBHjx6lWq1SrVZbJu86u+4ODp2cnOzKdopOOQTKIaUsAuUQR246GcDngF+JXUSxVCLuO72l\ndWhoiKGhoZbJu3ppy5Yt0fadJ8ohUA4pZREohzhy08lw94eBv4xdR7H8s4j7br6ldQL4VLRqbr/9\n9mj7zhPlECiHlLIIlEMcGvhZaDFuYW3WeEvrQi6XdJcGjQbKIVAOKWURKIc4Oj6TYWZXmdm4mR03\ns9NmlrRZZ4OZHTOzF83scTO7stP9ioiISL5140zGUuAIsBf4evObZjYC3Ap8DHiSMIvWfWb2ZnfX\nLQXSVqwHrYmISPd0fCbD3e9195vc/RuAtVllDLjD3e9y90ngBmAGWN9mXZtjG9LW78UuIBP1uTTq\nA0qHhoZYvXoNU1NTc37P9u3be1hhfimHQDmklEWgHOLIdOCnmV0ADAEP1Je5uwP3A8NN6/4hcAD4\nB2Y2ZWbvzLK2/vCj2AVkYjFzaczMzMz5Xpkoh0A5pJRFoBziyPrukuXA+cCJpuUngJWNC9z959x9\nhbu/2t1XufsTZ9/0e4GE8IsIwgmTYeBg03qHCFdrmu2bY7tjQPMvsy8Azb3gqdr+m+eqONRmmy/V\n/ny6afm9wLo2648AT7XZbnM7frn2Z3OboX07ttJ69mOqzXbrPjfHdg83LavQvh2faFny2GOPtd3T\nb/3Wb7F3794272yj6VBh69atLf8r+chHPkKSJC33wu/atavlwUgzMzMkScLhw7PbUalUWLeutR0j\nIyMcPDg740OHDpEkLcOP2LBhQ0s7qtUqSZK0dJLatWNqaqqjdtx888190Q7o7PO4+eab+6IddZ20\n4+abb+6LdkBnn0f9mCh6O+rm045KpUKSJAwPD7Ny5UqSJGFsbKzlezLl7l37ItzTmDS8vri27J1N\n620HHlvkPgYBhwkHd/i0z37tDvubljW/LvM6vdz3hAM+MTHhdRMTE11ZR0REFi7995VB7+Lv/7m+\nsj6TMQ28AqxoWr4CeD7jfYuIiEhEmXYy3P1lwkX1a+rLzMxqrx/Nct/l8IPYBeSGnn0SKIdAOaSU\nRaAc4ujGPBlLzexyM3t7bdGltddvqL2+DfiomV1vZm8hDHAYYO5BEfM0RhgT8Uxnmym0345dQG6s\nX9/uZqXyUQ6Bckgpi6DsOdTHZ/R6TEY35sl4B/Ag4RqPk44ivBNY7+5fNbPlwC2EyyRHgGvd/Xud\n7XYnYXjGZ4CvdbapwvolWgeTlkfjXBojIyNMTU2Vfi6Nbdu2xS4hF5RDSlkEZc9hdHSU0dFRqtUq\nQ0NDPdtvx50Md3+Ic5wRcfc9wJ5O9yXNLoldQDT1uTTCra7BkiUDPPvs0VJ3NAYHB8+9Ugkoh5Sy\nCJRDHHp2iWSu8RHwC3sc/Nxmz6WxBjjKqVPX8cgjj7BmTfr4+KLNFNo80ykUrw0iInXqZEiG0sfB\nZ6f+gLb2+yrS2Y12Z2egWG0QEWmUm0e9L5wGfsIfxS7gHHr5OPiDbfZ17plC86R1ptOFt6H9hGbl\noxxSyiIoew6xBn4WuJOxExgHLo9dSETPxS5gnupnGwaZaxzJ0aNHqVarVKvVRV5Sea7NvtbMuXa+\nLb4N1Wo1i4IKRzmklEVQ9hxGR0cZHx9n586dPd2vLpcU2ocJj4Epsm5dUvkwxc+ic7t3745dQi4o\nh5SyCJRDHAU+kyH9oZeXVEREpJd0JkNyon6JAKA7d6CIiEhc6mRIYWRxK+x8Nd9a2q3bShu32+s2\niYhkrcCdjDFgGbAkdiERzfWI9n4zn3Eb2WWR1cRfc92y2okkSRgfH+/a9opKOaSURVD2HCqVCpVK\nhZMnT/Z0vwUek6G7S2Bt7AJ6ZD7jNrLLovXW0u7cGtu63c7HomzcuLHjbfQD5ZBSFkHZc9DdJbII\nb4tdQI+dbdxGL7Jo3H8W2+38csnatWXpeJ6dckgpi0A5xFHgMxkiIiKSZzqTIX2vcUBluwGbWQ3q\nFBEpO53JKLSnYheQI+2ySAeMDg0NMTQ0xOrVa5iamjqzRn3wZf39dusUycGDB2OXkAvKIaUsAuUQ\nhzoZhfZY7AJypF0WzQNGWwdsZjWoM5ZKpRK7hFxQDillESiHONTJKLRNsQvIkbNlUR9YebbngMxn\nnfw7cOBA7BJyQTmklEWgHOJQJ0NEREQyoU6GiIiIZEJ3l0jp5GV68oXsu3Hdl156iQsvvHDW+7oj\n5uya7yBaTIbN25jP94iUnToZhXZH7AJyZD5ZdOux8ouzuGnE29V8PvDKrLXq05xv3bqVL33pS12o\nttjWrVt3Jof2uc+dYbtOw1yfXTeml89aYxZlphziKPDlkjEgAZ6JXUhEZZvx82zmk0Xcx8ovbhrx\n5po/Rfjl2NiG9I4YzWoYNObQPve5M2yndRvFuRNJx0RQ9hwqlQpJkjA2NtbT/Ra4k6Fnl8DPxC4g\nRxaSRf1OkkHgkmzKmdf+F7Lv5u9pbEN6R8zo6Gh3Siy49jnML8OzW8z3xKVjIih7DrGeXVLgToaI\niIjkmToZIiIikolcdDLM7B+a2aSZPWtmH4ldT3E8G7uAHFEWAIcPH45dQi4oh5SyCJRDHNE7GWZ2\nPnAr8B5gCPi4mf21qEUVxjdjF5AjygJgx44dsUvIBeWQUhaBcogjeicD+DvAf3X35939L4HfB8o9\nDHjeNsYuIEeUBcDdd98du4RcUA4pZREohzjy0Mn468DxhtfHgb8RqZaCufDcq5SGsgAYGBiIXUIu\nKIeUsgiUQxwddTLM7CozGzez42Z22sySNutsMLNjZvaimT1uZld2sk8REREphk5n/FwKHAH2Al9v\nftPMRgjjLT4GPEmYQes+M3uzu9dnsPku8JMN3/Y3gCc6rEukI4uZevxcU1dnPYV54/ZjT3fdnMVi\n65nPdrq1r8WKlbumOe9//fAZd9TJcPd7gXsBzMzarDIG3OHud9XWuQH4BWA9UB+F8yTwVjO7GPgB\n8PPALZ3UVR5fiV1AjnQri8VNPT7fqauz0VpzzOmu22WxmHrms5251rn++uu4446sp92Pl/tCpjnf\nvHkzn/3sZzOtpwiKlkORp7JvlNmYDDO7gHC3yAP1Ze7uwP3AcMOyV4D/D/gjoAr8a3f/flZ19Zfl\nsQvIkW5lsbipx+c3dXVWU5g31ryZ2NNdt2axuHrms5251lm2bFmXWnM2zcdK73JfyDTnRflllLWi\n5VDkqewbZTnwcznhv3InmpafAFY2LnD3b7r7and/s7vvnd/m30t4dsn+2usxQt/lYNN6hwhXbJrt\nm2O7Y0DzB/gFYHvTsqna/r/bZn/NXqr9+XTT8nuBdW3WHwGearPd5nbUb8JpbjO0b8dW4Pealk21\n2W7d5+bYbvP95hXat2NXm2X/ZY59/Rbhqlujo4SMf9C0vF07Bmt/Hmuz7eZ2vFjbbrt21P/32zh9\ndPvbY9s/A+AbhM+5cepqgG20doR+p+12Q8aTTcvuJnQgGs0Q2lGfI2QN4QTh/2671ZGREQ4enH2s\nHDp0iCRpGUrFhg0b2Lt39udRrVZJkqTlH7itW7eyfXvzzwfAbwMDNE6/vWvXLjZvnt2OmZkZkiRp\nmcfg3nvvbWhXOo33Jz7xiZZ2hF/4286s88EPfvBMO1rXrR8jrf+X2bdv36zXU1NTJEnCsWPNx9Uu\n0rNn9freBMDTT8/+Oa9UKqxb1/rz0ennEfw2sIrGfL7whS/M+jw2bdp0ph2Tk7OPq4V8Hlm1YyHH\nVSft2LRpUyHbEY6rbYSf9/RnaT7tqD+vZHh4mJUrV0Z5dgnu3pUvQpc+aXh9cW3ZO5vW2w481sF+\nBgGHCQd3+LTPfu0O+5uWNb8u8zp5r68I60w44BMTE143MTGRo8+mtb5eas1icfXMZzuLW6ddhmev\nsXUbcXNvX0/cz126K6vPON0ug96l3/9n+8ryTMY04XzxiqblK4DnM9yviIiI5EBmnQx3f5lwEema\n+rLa4NBrgEc734Me9d56qabMlEXQfJmlnFovb5RX8yn5sip7DoV81LuZLTWzy83s7bVFl9Zev6H2\n+jbgo2Z2vZm9hTC4YYC5B0QsgB71HsYQSKAsgi2xC8iFz3/+87FLyI0tW3RMgHKI9aj3TufJeAfw\nIOH6jpOOILwTWO/uXzWz5YRbUlcQ5tS41t2/1+F+BYB/Rutg0rJSFsHttA74LZ+y/0JpdPvtt8cu\nIReUQxydzpPxEOc4G+Lue4A9nexH5qJbWFPKIliFOhlw8cUXxy4hN4p262ZWlEMceXh2iYiIiPSh\nTi+XRDQGLAOWxC5EREQk1yqVCpVKhZMnT/Z0vwU+k6GBn60TUpWZsgjaTYpVPs2TapVZ+4nSyqfs\nOcQa+FngTobAj2IXkCPKIpg59yolcOrUqdgl5MbMjI4JUA6xqJNRaL8cu4AcURbBzbELyIUbbrgh\ndgm5cfPNOiZAOcSiToaIiIhkQp0MERERyYQ6GYXW/HTSMlMWgebIAPj+91ufsFpWRXoseJaUQxwF\n7mTo2SXhMc8SKItgfewCcuGWW26JXUJurF+vYwKUQyGfXRKXbmGFX4pdQI4oi2Bb7AJy4WMf+1js\nEnJj27ZtsUvIhbLnoFtYZREuiV1AjiiLYDB2AbmwZs2a2CXkxuCgjglQDrGokyEiIiKZUCdDRERE\nMqFORqH9UewCcuSPYheQE3tjF5ALBw8ejF1Cbuzdq2MClEMs6mQU2nOxC8iR52IXkBPV2AXkwuTk\nZOwScqNa1TEByiEWdTIK7cOxC8iRD8cuICd2xy4gFz7xiU/ELiE3du/WMQHKIRZ1MkRERCQT6mSI\niIhIJtTJEBERkUyok1Fot8YuIEeURZDELiAXej11cp4liY4JUA6xvCp2AYs3BiwDlsQuJKK1wNOx\ni8gJZRFsjF1ALnzgAx+IXUJubNyoYwKUQ6VSoVKpcPLkyZ7ut8BnMvTsEnhb7AJyRFkEa2MXkAvD\nw8OxS8iNtWt1TIBy0LNLREREpK+okyEiIiKZyEUnw8y+bmYvmNlXY9dSLE/FLiBHlEWg6bQBHnzw\nwdgl5IamWA+UQxy56GQAnwN+JXYRxfN7sQvIEWURbI9dQC7s27cvdgm5sX27jglQDrHkopPh7g8D\nfxm7juJ5TewCckRZBK+LXUAuvPa1r41dQm687nU6JkA5xJKLToaIiIj0nwV3MszsKjMbN7PjZnba\nzFpmODGzDWZ2zMxeNLPHzezK7pQrIiIiRbGYMxlLgSPAjYA3v2lmI4TpF7cCVwDPAPeZ2fKGdW40\ns6fNrGpmFy6qchEREcm1Bc/46e73AvcCmJm1WWUMuMPd76qtcwPwC8B6YEdtG3uAPU3fZ7Wvc6lN\n8fl1wh0FT9YW3wMcrf39W03Lml/3yzr/fRHbyVsbYmax2HWOhVf33MPRo2GdY8eOdWFf3ajvW7U/\nZ9cHcN5553H69Ok5X3drndYsWvPq1nbmWufIkSN8+ctfnmOddhm2bruxntZt0GY7i2vnYtZpX0/7\nNnzrW986k0VW9RRhneYc8lZf87KzfcaNx9dCNXxvT6bLNveWkxHz/2az08D73H289voCYAb45fqy\n2vJ9wDJ3/8dzbOcPgZ8mnCV5AXi/uz8xx7r/FPhyu/dERERkXj7k7l/JeifdfnbJcuB84ETT8hPA\n6rm+yd1/bgH7uA/4EPAccGqB9YmIiJTZEuBNhN+lmSvcA9Lc/c+AzHtfIiIiferRXu2o27ewTgOv\nACualq8Anu/yvkRERCTHutrJcPeXgQngmvqy2uDQa+hhz0lERETiW/DlEjNbClxGeifIpWZ2OfCC\nu38HuA3YZ2YThFs/xoABYF9XKhYREZFCWPDdJWb2buBBWufIuNPd19fWuRHYQrhMcgTY5O56gpWI\niEiJLPhyibs/5O7nufv5TV/rG9bZ4+5vcveL3H24Wx2Mfp9J1My21mZRbfz6b03r3GJm3zWzGTP7\nQzO7rOn9C81st5lNm9kPzOw/mtnre9uShZnnLLIdt9vM/pqZfdnMTprZ983si7Uzc7lxrizM7Ett\njpF7mtYpfBZm9utm9qSZ/YWZnTCz3zWzN7dZr6+Pi/nkUKJj4gYze6ZW30kze9TMfr5pnb4+HuDc\nOeTueHD3QnwBI4RbVq8H3gLcQZhTY3ns2rrYxq3AfyY85er1ta/XNrz/8Vqb/yHwU4Tnev8v4Mca\n1vm3hNt7302YcfVR4JHYbTtHu38euAX4RcLA4aTp/a60G/gDoAq8A/gZwgxe+2O3f4FZfAn4/aZj\nZFnTOoXPgjAD0a8Aa4C3Ad+stemiMh0X88yhLMfEL9R+Pv4m4ZL9p4GXgDVlOR7mmUOujofogS0g\n2MeBf9Pw2oD/A2yJXVsX27gVqJ7l/e8CYw2vXwO8CHyg4fVLwD9uWGc1cBr4O7HbN88MTtP6i7Xj\ndhP+kT4NXNGwzrXAXwErY7d7AVl8Cfj6Wb6nX7NYXqv5XWU+LubIoZTHRK3GPwPWlfV4mCOHXB0P\nhXgKq4WZRIeAB+rLPLT6fmA4Vl0Z+Vu1U+X/y8z2m9kbAMzsEmAlszP4C+AJ0gzeQRjM27jOs8AU\nBc2pi+3+u8D33f3phs3fTxhb9M6s6s/Ie2qnzifNbI+ZNT7XfIj+zOLHCfW9AKU+Lmbl0KBUx4SZ\nnWdmHyTcVPBoWY+H5hwa3srN8VCUybgWNZNoAT0OfBh4FrgY2AY8bGY/RfgBctpnsLL29xXAj2o/\nXHOtUzTdavdK4P9vfNPdXzGzFyhWNn8A/A7hIQZ/E/hXwD1mNlzreK+kz7IwMwM+Bxx29/oYpdId\nF3PkACU6Jmr/Fj5GmLXyB4T/jT9rZsOU6HiYK4fa27k6HorSySgFd2+c5vW/mtmTwP8GPgBMxqlK\n8sTdv9rw8ttm9l8I153fQ7jrqx/tAf428LOxC4msbQ4lOyYmgcuBZcA/Ae4ys6vjlhRF2xzcfTJv\nx0MhLpdQ0plE3f0kYbDNZYR2GmfP4Hngx8zsNWdZp2i61e7nCQOgzjCz84HXUtxscPdjhJ+P+ij6\nvsrCzG4H3gu8x93/tOGtUh0XZ8mhRT8fE+7+V+7+J+7+tLv/C+AZ4Fcp2fFwlhzarRv1eChEJ8NL\nOpOomb2acGB8t3agPM/sDF5DuD5Wz2CCMDCncZ3VwCrCqbXC6WK7HwN+3MyuaNj8NYR/mNo+8bcI\nzOwngZ8A6r94+iaL2i/WXwT+nrtPNb5XpuPibDnMsX7fHhNtnAdcWKbjYQ7nARe2eyP68RB7VOx8\nvwiXDGaYfQvrnwGvi11bF9v4WeBq4I2EW4b+kHCd7Cdq72+ptfkfEW5nOwj8D2bforWHcC3uPYQB\nPt8i/7ewLiWc+ns7YUTz/1t7/YZutptwO+BTwJWEU87PAv8hdvvnm0XtvR2EfzjfWPuhfwo4ClzQ\nT1nU2vB94CrC/7DqX0sa1un74+JcOZTsmPjNWg5vJNyi+q8Ivyz/flmOh3PlkMfjIXpgCwz3RsK9\nvS8SelrviF1Tl9tXIdyW+yJhpO9XgEua1tlGuFVrhvCo3sua3r8Q2EU4PfYD4GvA62O37Rztfjfh\nF+orTV//vpvtJozM3w+cJPzD/e+Agdjtn28WhEFe9xL+x3YK+BPC/e6va9pG4bOYI4NXgOu7/fOQ\n5yzOlUPJjokv1tr3Yq29h6h1MMpyPJwrhzweDwueVlxERERkPgoxJkNERESKR50MERERyYQ6GSIi\nIpIJdTJEREQkE+pkiIiISCbUyRAREZFMqJMhIiIimVAnQ0RERDKhToaIiIhkQp0MERERyYQ6GSIi\nIpIJdTJEREQkE/8XtMJ420hKs1MAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841726250>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_histogram_scalar(all_pings, \"browser.engagement.window_open_event_count\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many windows are being opened by the clients, per day?"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 3.014427e+06\n",
"mean 8.774754e+00\n",
"std 2.738133e+01\n",
"min 1.000000e+00\n",
"50% 3.000000e+00\n",
"75% 7.000000e+00\n",
"95% 3.100000e+01\n",
"99% 9.800000e+01\n",
"99.5% 1.490000e+02\n",
"max 3.751000e+03\n",
"dtype: float64"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nRK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841907750>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"daily_win_opens_per_user = values_per_day(all_pings, \"browser.engagement.window_open_event_count\")\\\n",
" .map(lambda x: np.sum(x[1]))\n",
"plot_series(pd.Series(daily_win_opens_per_user.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compare window open event and the maximum window count, over a subsession:\n",
"* Get the maximum among all the fragments for the concurrent windows\n",
"* Sum the open events for each fragment"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def map_to_win_measurements(p):\n",
" scalars = p[\"payload/processes/parent/scalars\"]\n",
" max_cnt = scalars.get(\"browser.engagement.max_concurrent_window_count\", 0)\n",
" open_cnt = scalars.get(\"browser.engagement.window_open_event_count\", 0)\n",
" return ((p[\"meta/clientId\"], p[\"payload/info/sessionId\"]), (open_cnt, max_cnt))\n",
"\n",
"per_session_win = latest_pings.filter(lambda p: p[\"payload/processes/parent/scalars\"])\\\n",
" .map(map_to_win_measurements)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"combined_per_session_win = per_session_win.combineByKey(lambda x: x,\n",
" lambda acc, x: (acc[0] + x[0], max(acc[1], x[1])),\n",
" lambda x, y: (x[0] + y[0], max(x[1], y[1])))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot and describe the number of window open events per client session."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 2.634302e+07\n",
"mean 1.004094e+00\n",
"std 7.746904e+00\n",
"min 0.000000e+00\n",
"50% 0.000000e+00\n",
"75% 0.000000e+00\n",
"95% 4.000000e+00\n",
"99% 1.800000e+01\n",
"99.5% 3.000000e+01\n",
"max 4.103000e+03\n",
"dtype: float64"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n92ctT5HyRMoC8fIUSZ0MydleyutkzF9FtH97gT0r+opeD3aD8lc0vfHGG5mYeHheXXAm8OJL7xar\nM6Vse/fuDfU//kh5ImWBeHmKVOHbJSNADS0rnpp7Smy7e2bIJPDBPo+58jzzZ32ksaLpnj17etT1\nQbIOxvJmqKSU7Z57yvxZy1+kPJGyQIw8jUaDWq3GyMhIoe1W+ErGGNmI+mHgayXXIqes/NZC/jpn\nW/R7u6SfPGmtZvqKV7yi9ade35+V1lp+tjVrUvhZy0+kPJGyQIw89Xqder1Os9lkaGiosHaTuJJh\nZr9gZlNm9rSZ/R9l1yMiIiL9K/1KhpmdCdwM/AzwN0DTzD7h7n9ZbmUiIiLSjxSuZPwD4E/c/Tl3\n/xvg0xS5bKTkbGfZBeQsTp4Pf/jDZZeQq50745wbiJUnUhaIl6dIKXQy/jfgSMf7I8CPlFSL9C3a\nw7ni5Nm4cWPZJeQq2oPgIuWJlAXi5SlSX50MM7vEzMbN7IiZnTSzWo99dpjZM2Z23MweNbOL+2lT\nUndD2QXkLE6ed7/73WWXkKsbbohzbiBWnkhZIF6eIvV7JWMt8BRwHeDdH5rZVrLxFruBC4EvAQ+Y\n2fqO3b4J/GjH+x9pbRMREZEK62vgp7vfD9wPYGbWY5cR4A53v7u1z7XA24HtZKscATwO/H0zOwf4\nDvDzwE391CWxtVfx7H81z9W1C/mscNm9cuYgVs3sbGO136/lHqPzs5WuIrpUu8s9RhHfU+lfGedp\nECvVprL6bcoGNrvEzM4ChoAPtbe5u5vZg2SLW7S3vWhm/xfw3wADRjWzpMqmgDcM6NiDWNFzKVM9\n2+13hcteK2fmvWrmQqtz5n+MXudl+auILrfd7mNMTU3xhje8YUVfk7LuPFW2WJYyzlO/K9X2ypPS\n6rcpG+TAz/Vk/6c52rX9KDBnBJq7/6G7n+/uP+Hu+5d3+CvJVvx8uvV+hKzv8kTXfl9Z5BgHu94f\nbh3zO13b/6DH17Z7r890bb+H+TMSZsnuGnV7eIG63t+jtkMLHOPOBY4xwvzVUHcDn+raNr3AcQG6\nZyMcZ+73vK0zx66uzz7X9f6R1jG6/c68Laf+Zdzuc7ZX9PwlsrESnat5LpTjUI9tkH1/Jrq2NYA7\nurbtarXTuZJotsLlNddcM++oO3bs4ODB7nPXbLV3yqmVM7fOOeZXvvIVarUaU1NTc/bft2/fvBHu\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841f67590>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"per_session_win_open_events = combined_per_session_win.map(lambda x: x[1][0])\n",
"plot_series(pd.Series(per_session_win_open_events.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot and describe the number of maximum concurrent windows per client session."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 2.634302e+07\n",
"mean 1.382264e+00\n",
"std 1.109372e+00\n",
"min 0.000000e+00\n",
"50% 1.000000e+00\n",
"75% 1.000000e+00\n",
"95% 3.000000e+00\n",
"99% 5.000000e+00\n",
"99.5% 7.000000e+00\n",
"max 1.880000e+02\n",
"dtype: float64"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nu7u//PLLvmrVQG2/+LVq1YC//PLLLiIivTM1NVX/d3iDZ/j7v/7q9p2KWeANYE2ifQ1atKNg6n0s\nNtT++7xYY9XRAAAXF0lEQVTZ2VlOn55jvs6d7aptyS/ls1iUT0mjq30q3P11M5sCriVeqKPemfNa\n4AudHV0LiuVP+86dmrGvWJTPYlE+iyE3C4qZ2Woze7eZvafWdFltu77S153Ap8zsk2Z2BfBFYID2\nD/dT0IJiRTE2NhY6BMmQ8lksymcx5GlBsauAJzj/vLzek+8+YLO7P1ibk+J24sceR4Hr3P0HGZxb\nRERE+kQW81Q8ySJ3PNx9L7C303OJiIhI/+p2R02ReU1PT1OpVNi3bx+VSqWjqb6lfySHvkm+KZ+S\nRt8tKLZ06qiZX62LlEHrQmVnzpzh4osvPve+JtTKh507d3L11VeHDkMyonwWQ686aua4qNhFPJLg\nRuD5wLFIOo2LlK0nnhzsBc6c+XVuuOGGhv0uJB6RHFu1aoCXXppWYdHnDhw4EDoEyZDyWQxjY2OM\njY1RqVQYHh7u2nn0+EMCqg8xfT+tC5V9lrigyG7hMumNgYGB0CFIhpRPSSPHdyqk39XXA0muC7Kw\neqExndhemmq12lJ46LGJiEhvqKiQLmjfZ6IbGouI73//+9x448c5c+ZU0z56bCIi0ht6/CFd0Nhn\nov4oYyHJhcvmVx8xUqlU+PrXv84733nFuUXMbrjhhlpBUT+vHpuEkFwQSfJN+ZQ0cnynQqM/+l/y\nUcZ8lnIHYaG7H/UOn48AnyHtIxPJlu4IFYvyWQy5maY7HE3TXRxbl7BP8u5H4x2QehHxjq5EJ+ls\n3bqUfEpeKJ/FkKdpukV6qPEuRJoOoCIi0m0qKmRFaByBotEgIiLdoaJC+sBMF4/d2hdDo0G6a2Zm\nhiuuuCJ0GJIR5VPSyHGfCimOW7t47GRfDI0G6bZbb+1mPqXXlE9JQ3cqpA/sAZ7q8jk6GxGSnFRL\nj1Dmt2fPntAhSIaUT0lDRYX0gf7+5VytVlm3bj2nT8+da9MjlPnpZ1IsyqekoaJCVrzFpvaenZ2t\nFRT1+TCmOX36JmZnZ/UProhIAxUVsqK1uwsB892JWPgRih6RiMhKl+OOmiUgAo6HDkQ6tiPYmZvv\nQix/au96cVKfMnx4eJh169ZTrVa7FHn/2rEjXD4le8pnMZTLZaIoolQqdfU8OS4qNKNmccwtvkvX\n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\nbXpurAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb84161c890>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"per_session_max_windows = combined_per_session_win.map(lambda x: x[1][1])\n",
"plot_series(pd.Series(per_session_max_windows.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many subsessions don't include a window open event? The statistics below point out that most of the subsessions have 0 window open events."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 2.943029e+07\n",
"mean 8.987630e-01\n",
"std 6.916697e+00\n",
"min 0.000000e+00\n",
"50% 0.000000e+00\n",
"75% 0.000000e+00\n",
"95% 4.000000e+00\n",
"99% 1.600000e+01\n",
"99.5% 2.700000e+01\n",
"max 3.372000e+03\n",
"dtype: float64"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nqhoovwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841559610>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"subsessions_with_window_open = all_pings.filter(lambda p: p[\"payload/processes/parent/scalars\"])\\\n",
" .map(lambda p: p[\"payload/processes/parent/scalars\"]\\\n",
" .get(\"browser.engagement.window_open_event_count\", 0))\n",
"\n",
"scalar_series = pd.Series(subsessions_with_window_open.collect())\n",
"plot_series(scalar_series)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Dig deeper into the window open events.\n",
"When analysing Beta data, we found that:\n",
"\n",
"* The 50% of **subsession** have two window open events.\n",
"* The 50% of **full sessions** have *zero* window open events.\n",
"\n",
"It could be possible in an example like this (see [bug 1303044](https://bugzilla.mozilla.org/show_bug.cgi?id=1303044#c10) for context):\n",
"- 90% of sessions have only one subsession, and those sessions also have 0 window open events.\n",
"- The remaining 10% of sessions have 10 subsessions each, and each of those subsessions has two window open events"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def aggregate_subsession_openevents(p):\n",
" scalars = p[\"payload/processes/parent/scalars\"]\n",
" # Create a tuple like ((client_id, session_id), (1, window_open_event)). We'll\n",
" # use the unit to ease the count of subsessions per session.\n",
" return ((p[\"meta/clientId\"], p[\"payload/info/sessionId\"]),\n",
" (1, scalars.get(\"browser.engagement.window_open_event_count\", 0)))\n",
"\n",
"# Compute, for each session, the number of window open events and the number of\n",
"# considered subsessions.\n",
"agg_openevent_ssc = latest_pings.filter(lambda p: p[\"payload/processes/parent/scalars\"])\\\n",
" .map(aggregate_subsession_openevents)\\\n",
" .combineByKey(lambda x: x,\n",
" lambda acc, x: (acc[0] + x[0], acc[1] + x[1]),\n",
" lambda x, y: (x[0] + y[0], x[1] + y[1]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We've got our aggregated data now: the number of subsessions and the number of window open event count per session. Group the open event count by subsession count."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"only_ssl_woe = agg_openevent_ssc.map(lambda r: r[1])\n",
"woe = only_ssl_woe\\\n",
" .map(lambda x: (x[0], [x[1]]))\\\n",
" .reduceByKey(lambda x,y: x + y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then compute a representative value for each subsession group, i.e. the percentile value of all the window open event count for a particular number of subsessions."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Compute the 95 percentile for each subsession length.\n",
"woe_summary = woe.map(lambda r: (r[0], np.percentile(r[1], 95.0))).collect()\n",
"# Sort the data by the number of subessions, so we can\n",
"# plot a line.\n",
"woe_sorted = sorted(woe_summary, key=lambda x: x[0])\n",
"x_ss_per_session = [d[0] for d in woe_sorted]\n",
"y_woe_per_session = [d[1] for d in woe_sorted]"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\niYx7772XvLy8nVuvXr044ogjKCkp4Y477uD999/P+tx/+MMfmDFjBps2bcphxZ0jLy8PM8vqZ//z\nP/+Te++9N8cViexenCYrUdboiUtOiFfWIGlSDxGJFDPjpptu4uijj+af//wnb731Fk8++SRXX301\nt99+OwsXLuT4449v93mfffZZbrzxRiZMmMABBxzQCZXnziuvvEJeXnbft82dO5dDDjmEr3/96zmu\nSkRERFqjDpmI5ExDQwMNDQ0cccQR5Ofnh1ZHSUlJs1npvv/97/Pkk09y9tlnc+6557JixQr23nvv\ndp3T3XNdZqfp2bNn2CWIiIhIG2nIooh02Ntvv82FF36Vgw46mKOOOopPfepofvnLX4ZdVjOnnXYa\n119/Pa+99hoVFRU721966SUmTJjA4MGD6dWrF4cddhjf+MY32LBhw85jZsyYwdSpU4HU81l5eXnk\n5+ezbt06AO655x7OPPNM+vfvzz777MO//Mu/cNddd7WprvHjx7P//vuzdu1aiouL2W+//TjiiCO4\n6aabWhy7ZcsWvvvd7zJw4ED22WcfPv3pT3Pbbbe1OC7zGbLGoZzPPvss3/nOdzj00EPZb7/9OP/8\n86mvr9953KBBg3j55Zd58skndw77POOMMwDYtm0bM2bMoLCwkF69etGvXz9GjBjB448/3qacIruz\nfPnysEsIjLJGT1xyQryyBkl3yESkVevXr+cXv/gFL730Ep/61Kf45je/ybHHHtviuG3btnHGGaN5\n5ZW32LHjdmAwb72V5NJLL6VHjx6MHz8+8Np3Zdy4cVxzzTUsXbqUb3zjGwAsW7aMtWvXMnHiRAYM\nGMDLL7/M3Xffzd/+9jf+8Ic/AHDBBRdQW1vL/fffz89+9jMOPvhgAA455BAA7rrrLj7zmc9w7rnn\n0qNHDx599FEuv/xy3J1vf/vbu63JzNixYwclJSUMHz6cW265hSVLljBt2jS2b9/O9OnTdx77la98\nhaeeeopvfvObnHjiiVRWVjJlyhTefPPNZh2zXT0/NnnyZA466CCmT5/Oq6++yuzZs5k8eTLJZBKA\nn/3sZ1xxxRXsv//+XHfddbg7/fv3B2DatGn85Cc/4Vvf+hYnnXQSmzZt4s9//jM1NTWceeaZWfxt\nSFvFYWHoWbNm8aUvfSnsMgKhrNETl5wQ/axhLQyNu8d+A4YBXl1d7SJRV11d7Xv6fX/hhRe8T5+D\n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\n6cBFIYTHi+UzgdMl/Y144/LaxJueNwoh9I9ENeiQ1VXaz2ZV5rppcK6bXDfRhvvZRs4Nsvr6ErFC\neaEyCSHcrTj07eeBLwL/S6xABrqq8sKqLcwLxJGujiVWQH8C9g4hPFls+xFJuwKzid1W1iaeMK8o\nVXitVnxnABsAXyOewO4qtvXnQWIu+xuxr/ani/d6APhsCOGqYvl3iF1YziV2K5hDrAgbcz6FeKKe\nRfzyMCOEcHWx/K/E/XEK8aR8B/C+8OKzZw4iHoevAa8B+oj3OlxaLB9PPHluVsR7ObHyhXjF9ETi\nyEvPEEdq6m6Wfwjh4aLy/m/il4QniaM7faVZ+QEMlkszfySOsHYZ8PIir8NLcc2V9DRwNHHUsaeL\n9y0PWdzKZ6JK+9ms6lw3rZnrJtdN7bifbYQ0tIs7ZmYjp/j8kn1CCFNzx2JmZgaumywf30NmZmZm\nZmaWiRtkZmZmZmZmmbjLopmZmZmZWSb+hczMzMzMzCwTN8jMzMzMzMwycYPMzMzMzMwsEzfIzMzM\nzMzMMnGDzMzMzMzMLBM3yMzMzMzMzDJxg8zMzMzMzCwTN8jMzMzMzMwycYPMzMzMzMwsk/8P4Kis\nkUXGR+8AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841712910>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"subsession_count_series = pd.Series(only_ssl_woe.map(lambda r: r[0]).collect())\n",
"subsession_count_series.describe()\n",
"\n",
"fig = plt.figure(figsize=(10, 6))\n",
"\n",
"# Plot the number of window open vs number of subsessions\n",
"ax = fig.add_subplot(1, 2, 1)\n",
"ax.scatter(x_ss_per_session, y_woe_per_session, label='Data points')\n",
"#ax.plot(x_ss_per_session, reg_y, label='Regression Line', c='r')\n",
"ax.set_xlabel('Number of subsessions per session')\n",
"ax.set_ylabel('Number of window open events per session (95p)')\n",
"ax.legend()\n",
"\n",
"# Plot the histogram of subsession length.\n",
"ax2 = fig.add_subplot(1, 2, 2)\n",
"subsession_count_series.hist(ax=ax2, bins=20, bottom=0.1)\n",
"ax2.set_xlabel('Number of subsessions per session')\n",
"ax2.set_ylabel('Frequency')\n",
"ax2.set_yscale('log')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's dig into this a bit more and find how sessions with few subsessions behave."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.75 1.0\n",
"0.95 2.0\n",
"0.99 3.0\n",
"dtype: float64"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get the p95 percentile for the number of subsessions within sessions.\n",
"subsession_count_series.quantile([.75, .95, .99])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The vast majority of subsession have 2 subsessions only. **What's the 95 percentile window open count for these subsession counts? **"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>No. Subsessions</th>\n",
" <th>Window Open Events (p95)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>11.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" No. Subsessions Window Open Events (p95)\n",
"0 1 3.0\n",
"2 2 11.0"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"woe_summary_df = pd.DataFrame(woe_summary, columns=['No. Subsessions', 'Window Open Events (p95)'])\n",
"woe_summary_df[(woe_summary_df['No. Subsessions'] == 1) | (woe_summary_df['No. Subsessions'] == 2)]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compute the descriptive statistics to describe the window open event count for each session having 1 or 2 subsessions at most."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from scipy import stats\n",
"woe_few_subsessions = woe.filter(lambda r: r[0] in [1, 2])\n",
"woe_few_subs_stats = woe_few_subsessions.map(lambda r: (r[0], stats.describe(r[1]))).collect()"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[(1,\n",
" DescribeResult(nobs=24562063, minmax=(0, 2442), mean=0.87221663750312828, variance=46.305368791897457, skewness=50.44020227545996, kurtosis=6806.623672286897)),\n",
" (2,\n",
" DescribeResult(nobs=1435449, minmax=(0, 3572), mean=2.5117485887690889, variance=185.61722898769222, skewness=46.64862290668513, kurtosis=6252.636188292095))]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"woe_few_subs_stats"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"See how many sessions with 1 or 2 subsessions have a window open event count of 0, how many of 1, etc..."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"defaultdict(int,\n",
" {0: 21403542,\n",
" 1: 1951365,\n",
" 2: 800326,\n",
" 3: 437519,\n",
" 4: 281305,\n",
" 5: 192551,\n",
" 6: 144640,\n",
" 7: 107703,\n",
" 8: 86241,\n",
" 9: 68376,\n",
" 10: 56897,\n",
" 11: 46435,\n",
" 12: 40131,\n",
" 13: 33367,\n",
" 14: 29188,\n",
" 15: 25102,\n",
" 16: 22302,\n",
" 17: 19157,\n",
" 18: 17299,\n",
" 19: 15288,\n",
" 20: 13981,\n",
" 21: 12249,\n",
" 22: 11311,\n",
" 23: 9939,\n",
" 24: 9343,\n",
" 25: 8429,\n",
" 26: 7824,\n",
" 27: 7070,\n",
" 28: 6659,\n",
" 29: 5997,\n",
" 30: 5529,\n",
" 31: 5146,\n",
" 32: 4879,\n",
" 33: 4468,\n",
" 34: 4228,\n",
" 35: 3970,\n",
" 36: 3778,\n",
" 37: 3519,\n",
" 38: 3292,\n",
" 39: 3040,\n",
" 40: 3018,\n",
" 41: 2778,\n",
" 42: 2644,\n",
" 43: 2573,\n",
" 44: 2296,\n",
" 45: 2304,\n",
" 46: 2161,\n",
" 47: 2004,\n",
" 48: 1988,\n",
" 49: 1832,\n",
" 50: 1734,\n",
" 51: 1674,\n",
" 52: 1594,\n",
" 53: 1501,\n",
" 54: 1426,\n",
" 55: 1460,\n",
" 56: 1379,\n",
" 57: 1344,\n",
" 58: 1246,\n",
" 59: 1186,\n",
" 60: 1152,\n",
" 61: 1062,\n",
" 62: 1084,\n",
" 63: 999,\n",
" 64: 987,\n",
" 65: 916,\n",
" 66: 947,\n",
" 67: 962,\n",
" 68: 843,\n",
" 69: 829,\n",
" 70: 800,\n",
" 71: 778,\n",
" 72: 716,\n",
" 73: 747,\n",
" 74: 704,\n",
" 75: 676,\n",
" 76: 653,\n",
" 77: 652,\n",
" 78: 590,\n",
" 79: 586,\n",
" 80: 597,\n",
" 81: 585,\n",
" 82: 584,\n",
" 83: 548,\n",
" 84: 565,\n",
" 85: 486,\n",
" 86: 504,\n",
" 87: 491,\n",
" 88: 480,\n",
" 89: 446,\n",
" 90: 441,\n",
" 91: 454,\n",
" 92: 399,\n",
" 93: 404,\n",
" 94: 414,\n",
" 95: 386,\n",
" 96: 386,\n",
" 97: 372,\n",
" 98: 329,\n",
" 99: 339,\n",
" 100: 364,\n",
" 101: 373,\n",
" 102: 320,\n",
" 103: 337,\n",
" 104: 330,\n",
" 105: 288,\n",
" 106: 288,\n",
" 107: 249,\n",
" 108: 276,\n",
" 109: 271,\n",
" 110: 285,\n",
" 111: 253,\n",
" 112: 273,\n",
" 113: 259,\n",
" 114: 240,\n",
" 115: 268,\n",
" 116: 231,\n",
" 117: 246,\n",
" 118: 230,\n",
" 119: 231,\n",
" 120: 225,\n",
" 121: 224,\n",
" 122: 210,\n",
" 123: 214,\n",
" 124: 201,\n",
" 125: 259,\n",
" 126: 262,\n",
" 127: 228,\n",
" 128: 196,\n",
" 129: 209,\n",
" 130: 192,\n",
" 131: 191,\n",
" 132: 195,\n",
" 133: 163,\n",
" 134: 172,\n",
" 135: 167,\n",
" 136: 152,\n",
" 137: 147,\n",
" 138: 145,\n",
" 139: 152,\n",
" 140: 167,\n",
" 141: 154,\n",
" 142: 136,\n",
" 143: 150,\n",
" 144: 145,\n",
" 145: 122,\n",
" 146: 119,\n",
" 147: 116,\n",
" 148: 136,\n",
" 149: 148,\n",
" 150: 129,\n",
" 151: 113,\n",
" 152: 124,\n",
" 153: 121,\n",
" 154: 124,\n",
" 155: 103,\n",
" 156: 106,\n",
" 157: 89,\n",
" 158: 112,\n",
" 159: 78,\n",
" 160: 119,\n",
" 161: 96,\n",
" 162: 104,\n",
" 163: 91,\n",
" 164: 81,\n",
" 165: 98,\n",
" 166: 97,\n",
" 167: 87,\n",
" 168: 94,\n",
" 169: 82,\n",
" 170: 93,\n",
" 171: 61,\n",
" 172: 84,\n",
" 173: 74,\n",
" 174: 78,\n",
" 175: 68,\n",
" 176: 77,\n",
" 177: 73,\n",
" 178: 87,\n",
" 179: 81,\n",
" 180: 67,\n",
" 181: 70,\n",
" 182: 77,\n",
" 183: 79,\n",
" 184: 62,\n",
" 185: 62,\n",
" 186: 61,\n",
" 187: 63,\n",
" 188: 51,\n",
" 189: 62,\n",
" 190: 70,\n",
" 191: 61,\n",
" 192: 47,\n",
" 193: 64,\n",
" 194: 63,\n",
" 195: 51,\n",
" 196: 43,\n",
" 197: 51,\n",
" 198: 58,\n",
" 199: 58,\n",
" 200: 63,\n",
" 201: 53,\n",
" 202: 63,\n",
" 203: 54,\n",
" 204: 47,\n",
" 205: 55,\n",
" 206: 55,\n",
" 207: 46,\n",
" 208: 46,\n",
" 209: 55,\n",
" 210: 44,\n",
" 211: 41,\n",
" 212: 45,\n",
" 213: 39,\n",
" 214: 49,\n",
" 215: 48,\n",
" 216: 45,\n",
" 217: 36,\n",
" 218: 31,\n",
" 219: 39,\n",
" 220: 41,\n",
" 221: 42,\n",
" 222: 38,\n",
" 223: 32,\n",
" 224: 30,\n",
" 225: 42,\n",
" 226: 43,\n",
" 227: 44,\n",
" 228: 45,\n",
" 229: 32,\n",
" 230: 30,\n",
" 231: 32,\n",
" 232: 32,\n",
" 233: 29,\n",
" 234: 55,\n",
" 235: 32,\n",
" 236: 33,\n",
" 237: 24,\n",
" 238: 31,\n",
" 239: 33,\n",
" 240: 34,\n",
" 241: 38,\n",
" 242: 23,\n",
" 243: 29,\n",
" 244: 35,\n",
" 245: 28,\n",
" 246: 24,\n",
" 247: 34,\n",
" 248: 25,\n",
" 249: 22,\n",
" 250: 61,\n",
" 251: 50,\n",
" 252: 57,\n",
" 253: 65,\n",
" 254: 35,\n",
" 255: 48,\n",
" 256: 31,\n",
" 257: 25,\n",
" 258: 28,\n",
" 259: 30,\n",
" 260: 39,\n",
" 261: 11,\n",
" 262: 26,\n",
" 263: 29,\n",
" 264: 24,\n",
" 265: 34,\n",
" 266: 18,\n",
" 267: 33,\n",
" 268: 15,\n",
" 269: 22,\n",
" 270: 27,\n",
" 271: 27,\n",
" 272: 23,\n",
" 273: 29,\n",
" 274: 27,\n",
" 275: 18,\n",
" 276: 19,\n",
" 277: 26,\n",
" 278: 19,\n",
" 279: 24,\n",
" 280: 20,\n",
" 281: 27,\n",
" 282: 24,\n",
" 283: 23,\n",
" 284: 15,\n",
" 285: 20,\n",
" 286: 17,\n",
" 287: 17,\n",
" 288: 19,\n",
" 289: 14,\n",
" 290: 16,\n",
" 291: 11,\n",
" 292: 6,\n",
" 293: 20,\n",
" 294: 10,\n",
" 295: 16,\n",
" 296: 16,\n",
" 297: 9,\n",
" 298: 11,\n",
" 299: 11,\n",
" 300: 11,\n",
" 301: 12,\n",
" 302: 18,\n",
" 303: 22,\n",
" 304: 13,\n",
" 305: 18,\n",
" 306: 11,\n",
" 307: 8,\n",
" 308: 13,\n",
" 309: 10,\n",
" 310: 12,\n",
" 311: 16,\n",
" 312: 11,\n",
" 313: 7,\n",
" 314: 11,\n",
" 315: 15,\n",
" 316: 13,\n",
" 317: 11,\n",
" 318: 14,\n",
" 319: 10,\n",
" 320: 9,\n",
" 321: 11,\n",
" 322: 11,\n",
" 323: 11,\n",
" 324: 15,\n",
" 325: 10,\n",
" 326: 14,\n",
" 327: 12,\n",
" 328: 10,\n",
" 329: 8,\n",
" 330: 14,\n",
" 331: 14,\n",
" 332: 14,\n",
" 333: 13,\n",
" 334: 11,\n",
" 335: 5,\n",
" 336: 21,\n",
" 337: 18,\n",
" 338: 10,\n",
" 339: 12,\n",
" 340: 15,\n",
" 341: 8,\n",
" 342: 7,\n",
" 343: 10,\n",
" 344: 11,\n",
" 345: 6,\n",
" 346: 8,\n",
" 347: 14,\n",
" 348: 7,\n",
" 349: 12,\n",
" 350: 10,\n",
" 351: 9,\n",
" 352: 8,\n",
" 353: 6,\n",
" 354: 14,\n",
" 355: 5,\n",
" 356: 12,\n",
" 357: 11,\n",
" 358: 10,\n",
" 359: 11,\n",
" 360: 13,\n",
" 361: 13,\n",
" 362: 9,\n",
" 363: 5,\n",
" 364: 9,\n",
" 365: 10,\n",
" 366: 6,\n",
" 367: 7,\n",
" 368: 7,\n",
" 369: 9,\n",
" 370: 6,\n",
" 371: 9,\n",
" 372: 3,\n",
" 373: 14,\n",
" 374: 8,\n",
" 375: 11,\n",
" 376: 8,\n",
" 377: 8,\n",
" 378: 13,\n",
" 379: 8,\n",
" 380: 7,\n",
" 381: 9,\n",
" 382: 6,\n",
" 383: 9,\n",
" 384: 8,\n",
" 385: 4,\n",
" 386: 8,\n",
" 387: 10,\n",
" 388: 7,\n",
" 389: 6,\n",
" 390: 7,\n",
" 391: 5,\n",
" 392: 4,\n",
" 393: 3,\n",
" 394: 7,\n",
" 395: 5,\n",
" 396: 5,\n",
" 397: 3,\n",
" 398: 7,\n",
" 399: 5,\n",
" 400: 4,\n",
" 401: 11,\n",
" 402: 5,\n",
" 403: 8,\n",
" 404: 6,\n",
" 405: 8,\n",
" 406: 5,\n",
" 407: 4,\n",
" 408: 7,\n",
" 409: 10,\n",
" 410: 4,\n",
" 411: 6,\n",
" 412: 3,\n",
" 413: 5,\n",
" 414: 8,\n",
" 415: 7,\n",
" 416: 7,\n",
" 417: 6,\n",
" 418: 8,\n",
" 419: 7,\n",
" 420: 4,\n",
" 421: 7,\n",
" 422: 6,\n",
" 423: 4,\n",
" 424: 3,\n",
" 425: 3,\n",
" 426: 3,\n",
" 427: 6,\n",
" 428: 4,\n",
" 429: 6,\n",
" 430: 2,\n",
" 431: 4,\n",
" 432: 6,\n",
" 433: 3,\n",
" 434: 4,\n",
" 435: 6,\n",
" 436: 4,\n",
" 437: 4,\n",
" 438: 5,\n",
" 439: 5,\n",
" 440: 7,\n",
" 441: 2,\n",
" 442: 3,\n",
" 443: 1,\n",
" 444: 5,\n",
" 445: 3,\n",
" 446: 7,\n",
" 447: 7,\n",
" 448: 1,\n",
" 449: 6,\n",
" 450: 2,\n",
" 451: 3,\n",
" 452: 6,\n",
" 453: 6,\n",
" 454: 4,\n",
" 455: 2,\n",
" 456: 5,\n",
" 457: 1,\n",
" 458: 8,\n",
" 459: 1,\n",
" 460: 2,\n",
" 461: 3,\n",
" 462: 3,\n",
" 463: 1,\n",
" 464: 3,\n",
" 465: 4,\n",
" 466: 5,\n",
" 467: 4,\n",
" 468: 4,\n",
" 469: 5,\n",
" 470: 5,\n",
" 471: 7,\n",
" 472: 5,\n",
" 473: 2,\n",
" 474: 3,\n",
" 475: 4,\n",
" 477: 4,\n",
" 478: 4,\n",
" 479: 7,\n",
" 480: 4,\n",
" 481: 3,\n",
" 482: 3,\n",
" 483: 1,\n",
" 484: 2,\n",
" 485: 5,\n",
" 486: 1,\n",
" 487: 1,\n",
" 488: 3,\n",
" 489: 1,\n",
" 490: 5,\n",
" 491: 5,\n",
" 492: 1,\n",
" 493: 5,\n",
" 494: 4,\n",
" 495: 2,\n",
" 496: 3,\n",
" 497: 2,\n",
" 498: 1,\n",
" 499: 1,\n",
" 500: 2,\n",
" 501: 6,\n",
" 502: 5,\n",
" 503: 1,\n",
" 504: 3,\n",
" 505: 4,\n",
" 506: 8,\n",
" 507: 2,\n",
" 509: 1,\n",
" 510: 1,\n",
" 511: 4,\n",
" 512: 6,\n",
" 513: 6,\n",
" 514: 2,\n",
" 515: 3,\n",
" 516: 3,\n",
" 517: 3,\n",
" 518: 2,\n",
" 519: 3,\n",
" 520: 2,\n",
" 521: 4,\n",
" 523: 3,\n",
" 524: 5,\n",
" 525: 6,\n",
" 526: 3,\n",
" 527: 4,\n",
" 528: 2,\n",
" 529: 2,\n",
" 530: 1,\n",
" 531: 1,\n",
" 532: 2,\n",
" 533: 1,\n",
" 534: 2,\n",
" 536: 2,\n",
" 537: 4,\n",
" 538: 3,\n",
" 539: 2,\n",
" 540: 2,\n",
" 542: 2,\n",
" 543: 1,\n",
" 544: 1,\n",
" 545: 3,\n",
" 546: 2,\n",
" 548: 4,\n",
" 549: 3,\n",
" 550: 1,\n",
" 551: 1,\n",
" 553: 1,\n",
" 554: 3,\n",
" 555: 1,\n",
" 556: 1,\n",
" 557: 2,\n",
" 558: 1,\n",
" 561: 2,\n",
" 562: 3,\n",
" 563: 4,\n",
" 564: 4,\n",
" 565: 2,\n",
" 567: 1,\n",
" 568: 3,\n",
" 569: 2,\n",
" 570: 1,\n",
" 571: 1,\n",
" 572: 1,\n",
" 573: 1,\n",
" 574: 2,\n",
" 575: 2,\n",
" 576: 1,\n",
" 577: 3,\n",
" 578: 2,\n",
" 579: 2,\n",
" 580: 1,\n",
" 581: 2,\n",
" 582: 2,\n",
" 583: 3,\n",
" 584: 3,\n",
" 585: 3,\n",
" 587: 4,\n",
" 588: 1,\n",
" 589: 5,\n",
" 590: 7,\n",
" 591: 3,\n",
" 592: 1,\n",
" 593: 1,\n",
" 594: 2,\n",
" 595: 1,\n",
" 596: 4,\n",
" 597: 1,\n",
" 598: 2,\n",
" 599: 1,\n",
" 600: 1,\n",
" 601: 2,\n",
" 602: 2,\n",
" 603: 1,\n",
" 604: 1,\n",
" 605: 1,\n",
" 606: 4,\n",
" 607: 1,\n",
" 608: 1,\n",
" 609: 2,\n",
" 610: 3,\n",
" 611: 1,\n",
" 612: 4,\n",
" 613: 1,\n",
" 614: 3,\n",
" 615: 3,\n",
" 616: 2,\n",
" 617: 2,\n",
" 618: 1,\n",
" 620: 2,\n",
" 621: 1,\n",
" 624: 2,\n",
" 625: 1,\n",
" 629: 2,\n",
" 631: 3,\n",
" 632: 1,\n",
" 634: 2,\n",
" 638: 1,\n",
" 639: 1,\n",
" 640: 2,\n",
" 643: 1,\n",
" 644: 1,\n",
" 645: 1,\n",
" 646: 1,\n",
" 648: 1,\n",
" 649: 3,\n",
" 653: 2,\n",
" 654: 1,\n",
" 655: 2,\n",
" 656: 1,\n",
" 657: 1,\n",
" 658: 2,\n",
" 660: 2,\n",
" 661: 1,\n",
" 662: 2,\n",
" 663: 1,\n",
" 665: 1,\n",
" 666: 1,\n",
" 667: 2,\n",
" 669: 3,\n",
" 670: 2,\n",
" 672: 1,\n",
" 673: 1,\n",
" 675: 1,\n",
" 676: 1,\n",
" 677: 1,\n",
" 678: 1,\n",
" 679: 1,\n",
" 680: 2,\n",
" 683: 2,\n",
" 686: 1,\n",
" 693: 1,\n",
" 694: 1,\n",
" 696: 1,\n",
" 698: 2,\n",
" 699: 2,\n",
" 700: 1,\n",
" 701: 1,\n",
" 703: 1,\n",
" 704: 1,\n",
" 708: 3,\n",
" 709: 1,\n",
" 711: 1,\n",
" 717: 1,\n",
" 718: 1,\n",
" 719: 1,\n",
" 723: 1,\n",
" 724: 2,\n",
" 725: 2,\n",
" 726: 1,\n",
" 727: 1,\n",
" 729: 1,\n",
" 731: 1,\n",
" 732: 1,\n",
" 733: 1,\n",
" 737: 2,\n",
" 740: 1,\n",
" 742: 1,\n",
" 744: 2,\n",
" 745: 1,\n",
" 749: 1,\n",
" 750: 2,\n",
" 752: 1,\n",
" 753: 1,\n",
" 754: 1,\n",
" 755: 1,\n",
" 756: 1,\n",
" 759: 3,\n",
" 760: 1,\n",
" 765: 2,\n",
" 770: 1,\n",
" 771: 1,\n",
" 777: 2,\n",
" 782: 2,\n",
" 783: 1,\n",
" 784: 1,\n",
" 785: 1,\n",
" 786: 2,\n",
" 787: 2,\n",
" 788: 1,\n",
" 789: 1,\n",
" 791: 3,\n",
" 792: 1,\n",
" 793: 2,\n",
" 798: 1,\n",
" 803: 1,\n",
" 804: 1,\n",
" 807: 1,\n",
" 808: 1,\n",
" 815: 2,\n",
" 823: 1,\n",
" 828: 1,\n",
" 832: 1,\n",
" 833: 1,\n",
" 845: 1,\n",
" 846: 1,\n",
" 848: 1,\n",
" 849: 1,\n",
" 850: 1,\n",
" 853: 2,\n",
" 854: 1,\n",
" 859: 1,\n",
" 861: 2,\n",
" 864: 1,\n",
" 865: 1,\n",
" 867: 1,\n",
" 868: 1,\n",
" 877: 1,\n",
" 881: 1,\n",
" 882: 1,\n",
" 884: 1,\n",
" 895: 1,\n",
" 904: 1,\n",
" 909: 1,\n",
" 913: 1,\n",
" 916: 1,\n",
" 917: 1,\n",
" 924: 1,\n",
" 926: 1,\n",
" 927: 1,\n",
" 928: 1,\n",
" 932: 1,\n",
" 935: 1,\n",
" 938: 2,\n",
" 943: 2,\n",
" 949: 1,\n",
" 957: 1,\n",
" 958: 1,\n",
" 959: 2,\n",
" 969: 1,\n",
" 984: 1,\n",
" 985: 1,\n",
" 989: 1,\n",
" 992: 1,\n",
" 996: 1,\n",
" 1000: 1,\n",
" 1004: 1,\n",
" 1007: 1,\n",
" 1022: 1,\n",
" 1023: 1,\n",
" 1025: 1,\n",
" 1026: 1,\n",
" 1028: 1,\n",
" 1030: 1,\n",
" 1042: 1,\n",
" 1048: 1,\n",
" 1055: 1,\n",
" 1058: 2,\n",
" 1084: 1,\n",
" 1087: 1,\n",
" 1105: 1,\n",
" 1107: 1,\n",
" 1110: 1,\n",
" 1133: 1,\n",
" 1146: 1,\n",
" 1193: 1,\n",
" 1195: 1,\n",
" 1196: 1,\n",
" 1211: 1,\n",
" 1303: 1,\n",
" 1311: 1,\n",
" 1321: 1,\n",
" 1361: 2,\n",
" 1380: 1,\n",
" 1385: 1,\n",
" 1387: 1,\n",
" 1398: 1,\n",
" 1406: 1,\n",
" 1412: 1,\n",
" 1413: 1,\n",
" 1420: 1,\n",
" 1422: 1,\n",
" 1441: 1,\n",
" 1466: 1,\n",
" 1470: 1,\n",
" 1504: 1,\n",
" 1645: 1,\n",
" 1754: 1,\n",
" 1894: 1,\n",
" 1900: 1,\n",
" 1974: 1,\n",
" 2029: 1,\n",
" 2057: 1,\n",
" 2079: 1,\n",
" 2174: 1,\n",
" 2185: 1,\n",
" 2193: 1,\n",
" 2442: 1,\n",
" 2565: 1,\n",
" 3572: 1})"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"woe_few_subsessions.flatMap(lambda r: r[1]).countByValue()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Total count of URIs"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 2.423036e+07\n",
"mean 5.138956e+01\n",
"std 6.712903e+02\n",
"min 1.000000e+00\n",
"50% 1.600000e+01\n",
"75% 4.700000e+01\n",
"95% 1.960000e+02\n",
"99% 4.790000e+02\n",
"99.5% 6.600000e+02\n",
"max 7.437360e+05\n",
"dtype: float64"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nRhEoZ1yUMy6p5IS0shaJGiKLqjQ8Xt3xI2/btq3jxwxBOeOinHFJJSeklbVIdGumSZU+JBWt7MB6\n0003tWRrnoP5AAAZLElEQVQ/RaeccVHOuKSSE9LKWiRqiCxZ+6eFT6XviXLGRTnjkkpOSCtrkejW\nzJJpWngREZFm6YpI0zQtvIiIyFJ18RWRISAj5plVh4eHQ5fQEcoZF+WMSyo5Ie6spVKJLMsYGhoK\nXUqdLr4iMsKJmVUfC1zL/JqZjXV2drZdZRWKcsZFOeOSSk6IO2t/fz/9/f3VM6sWRhc3RIqrVbOx\nXnvttW2rsUiUMy7KGZdUckJaWYukMA0RM/sM8MvA3e5+eeBylujkZmO97777WLv2xIRoemaNiIik\nqjANEeAGYA/w/4QuZOmqR9KsBe4APsiJDq2NGypnnfUi/uzP/pTVq1cDapiIiEg6CtNZ1d3vBb4f\nuo7WmG821kZDfm/gued+yFvf+lbWr1/P+vXrOe+8tXV9S2KmnHFRzrikkhPSylokhWmIpKXSUFkH\nrGRu4+TEXCQDAwPz7mF6eprJycnjr+np6U4U3hYL5YyJcsZFOeOTUtYiafrWjJldDGwF1gOrgbe7\n+1jNNoPA+4Ee8iEu73X3rzZ77LjUz0eyY8eOhltOT09z3nlrefbZEz28Wzmja6fNlzM2yhkX5YxP\nSlmLpBV9RJYD+8n7d3ym9otm1gdcD/w28DD5BCB3mdnPuLuug83jwIEDrF27lsnJybo+IzMzM+VG\nyNxOsDMzM8e3a3Rrp6h9T9atS2NCOOWMi3LGJ6WsRdJ0Q8Td7wTuBDAza7DJEHCzu99a3uZq4C3A\nALCzZlsrvxJW36F1/qsdc6+iLDRseOH9iIiIhNHWUTNmdib5LZsPV9a5u5vZ3UBvzbZfAF4HLDez\naeBd7v5QO+srptqRN/VXO+otNmyYk9yPiIhIZ7W7s+pK4HTgcM36w+T9RY5z9ze5+yp3P8fd1yze\nCLmMfIr3ifLyEHnb5pGa7faR3xlqZLRm+UB5n7V3jLYDn61ZV9nmYIP93lCzfLS83ydq1peAm+ep\n7WngUSoNiQceeIAsyxpsN0ieo7rD678uf62HE51i8/3s3bt3zrunp6fJsoypqak563ft2sXWrVvn\nrJudnSXLMsbHx+emKJXYvHlzXWV9fX2Mjs79N963b19djj179jA4OMiePXvmrJ+cnCTLsrpbTNu3\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb84161f290>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_histogram_scalar(latest_pings, \"browser.engagement.total_uri_count\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many URIs are the clients opening, per day?"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 6.906070e+06\n",
"mean 1.803034e+02\n",
"std 1.786286e+03\n",
"min 1.000000e+00\n",
"50% 8.800000e+01\n",
"75% 2.080000e+02\n",
"95% 5.880000e+02\n",
"99% 1.198000e+03\n",
"99.5% 1.601000e+03\n",
"max 1.229006e+06\n",
"dtype: float64"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb841b40ad0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"daily_uris_per_user = values_per_day(latest_pings, \"browser.engagement.total_uri_count\")\\\n",
" .map(lambda x: np.sum(x[1]))\n",
"plot_series(pd.Series(daily_uris_per_user.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Take a look at the clients opening more than > 10k URIs per subsession."
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"URI_THRESHOLD = 10000 # 10k uris\n",
"pings_many_uris = latest_pings.filter(lambda p: p[\"payload/processes/parent/scalars\"])\\\n",
" .filter(lambda p: p[\"payload/processes/parent/scalars\"].get(\"browser.engagement.total_uri_count\", 0) > URI_THRESHOLD)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What's the distribution of their subsession lengths?"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 1236.000000\n",
"mean 30637.906149\n",
"std 25885.066475\n",
"min 157.000000\n",
"50% 23221.500000\n",
"75% 43840.750000\n",
"95% 86399.000000\n",
"99% 86538.000000\n",
"99.5% 86646.100000\n",
"max 177738.000000\n",
"dtype: float64"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb8297b2390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pings_many_uris_ssl = pings_many_uris.map(lambda p: p.get(\"payload/info/subsessionLength\"))\n",
"plot_series(pd.Series(pings_many_uris_ssl.collect()), 15, 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And what about their session lengths?"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 625.000000\n",
"mean 27932.601600\n",
"std 35211.213091\n",
"min 158.000000\n",
"50% 18558.000000\n",
"75% 35326.000000\n",
"95% 78701.600000\n",
"99% 165147.320000\n",
"99.5% 198978.000000\n",
"max 486035.000000\n",
"dtype: float64"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nKwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb82ca499d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pings_many_uris_sl = pings_many_uris.filter(lambda p: p.get(\"payload/info/reason\") == \"shutdown\")\\\n",
" .map(lambda p: p.get(\"payload/info/sessionLength\"))\n",
"plot_series(pd.Series(pings_many_uris_sl.collect()), 10, 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many clients are acting like that?"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"heavy_uri_loaders_clients = pings_many_uris.map(lambda p: p[\"meta/clientId\"]).distinct().collect()\n",
"heavy_uri_loaders = len(heavy_uri_loaders_clients)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ratio of clients opening more than 10k URIs:\t0.0\n"
]
}
],
"source": [
"print \"Ratio of clients opening more than 10k URIs:\\t{}\"\\\n",
" .format(pct(heavy_uri_loaders, total_clients))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Do these clients always behave the same?"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"uri_behaviour = latest_pings.filter(lambda p: p[\"meta/clientId\"] in heavy_uri_loaders_clients)\\\n",
" .filter(lambda p: p[\"payload/processes/parent/scalars\"] and \\\n",
" p[\"payload/processes/parent/scalars\"].get(\"browser.engagement.total_uri_count\", False))\\\n",
" .map(lambda p: (p[\"meta/clientId\"], [ p[\"payload/processes/parent/scalars\"].get(\"browser.engagement.total_uri_count\", 0)]))\\\n",
" .reduceByKey(lambda x,y: x + y)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th># URIs min</th>\n",
" <th># URIs max</th>\n",
" <th>p75</th>\n",
" <th>p95</th>\n",
" <th>Samples</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>13</td>\n",
" <td>32827</td>\n",
" <td>17426.00</td>\n",
" <td>27604.65</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>15</td>\n",
" <td>48552</td>\n",
" <td>36947.00</td>\n",
" <td>47613.30</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>48823</td>\n",
" <td>85032</td>\n",
" <td>65568.75</td>\n",
" <td>81139.35</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>183154</td>\n",
" <td>23536.00</td>\n",
" <td>132099.50</td>\n",
" <td>34</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>14727</td>\n",
" <td>6796.50</td>\n",
" <td>14118.00</td>\n",
" <td>11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>4</td>\n",
" <td>27367</td>\n",
" <td>3355.25</td>\n",
" <td>22448.10</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>111</td>\n",
" <td>11202</td>\n",
" <td>2986.50</td>\n",
" <td>9558.90</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1</td>\n",
" <td>10326</td>\n",
" <td>2681.50</td>\n",
" <td>8126.70</td>\n",
" <td>28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2</td>\n",
" <td>12452</td>\n",
" <td>6462.75</td>\n",
" <td>8830.85</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>35</td>\n",
" <td>43953</td>\n",
" <td>32973.50</td>\n",
" <td>41757.10</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1</td>\n",
" <td>42838</td>\n",
" <td>391.00</td>\n",
" <td>742.30</td>\n",
" <td>27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2</td>\n",
" <td>18536</td>\n",
" <td>636.75</td>\n",
" <td>10499.90</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>45</td>\n",
" <td>21080</td>\n",
" <td>10589.00</td>\n",
" <td>18981.80</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2</td>\n",
" <td>281583</td>\n",
" <td>60958.75</td>\n",
" <td>246403.65</td>\n",
" <td>38</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>1</td>\n",
" <td>17545</td>\n",
" <td>58.00</td>\n",
" <td>227.40</td>\n",
" <td>25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>1</td>\n",
" <td>13089</td>\n",
" <td>91.00</td>\n",
" <td>10489.40</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>826</td>\n",
" <td>19670</td>\n",
" <td>19361.50</td>\n",
" <td>19603.75</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>13219</td>\n",
" <td>16002</td>\n",
" <td>15743.25</td>\n",
" <td>15950.25</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>3</td>\n",
" <td>28165</td>\n",
" <td>18060.25</td>\n",
" <td>22940.00</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>1</td>\n",
" <td>15619</td>\n",
" <td>34.50</td>\n",
" <td>10947.10</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>77</td>\n",
" <td>17825</td>\n",
" <td>4303.50</td>\n",
" <td>14626.40</td>\n",
" <td>19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>164</td>\n",
" <td>48356</td>\n",
" <td>5512.50</td>\n",
" <td>39957.35</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>27</td>\n",
" <td>13712</td>\n",
" <td>6289.75</td>\n",
" <td>11288.25</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>795</td>\n",
" <td>44971</td>\n",
" <td>42565.00</td>\n",
" <td>43863.50</td>\n",
" <td>11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>3</td>\n",
" <td>117351</td>\n",
" <td>52235.00</td>\n",
" <td>104690.00</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>1</td>\n",
" <td>10108</td>\n",
" <td>531.75</td>\n",
" <td>1967.50</td>\n",
" <td>46</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>1</td>\n",
" <td>29046</td>\n",
" <td>297.00</td>\n",
" <td>23296.20</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>1</td>\n",
" <td>20265</td>\n",
" <td>8275.25</td>\n",
" <td>15666.75</td>\n",
" <td>36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>28</td>\n",
" <td>19000</td>\n",
" <td>12520.00</td>\n",
" <td>17617.25</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>1514</td>\n",
" <td>15990</td>\n",
" <td>13380.00</td>\n",
" <td>15468.00</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>491</th>\n",
" <td>1</td>\n",
" <td>11591</td>\n",
" <td>57.00</td>\n",
" <td>2448.60</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>492</th>\n",
" <td>284</td>\n",
" <td>15058</td>\n",
" <td>14227.50</td>\n",
" <td>14893.30</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>493</th>\n",
" <td>1</td>\n",
" <td>17744</td>\n",
" <td>68.00</td>\n",
" <td>403.20</td>\n",
" <td>53</td>\n",
" </tr>\n",
" <tr>\n",
" <th>494</th>\n",
" <td>7</td>\n",
" <td>11265</td>\n",
" <td>644.50</td>\n",
" <td>7347.10</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>495</th>\n",
" <td>1</td>\n",
" <td>17173</td>\n",
" <td>2188.50</td>\n",
" <td>12970.90</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>496</th>\n",
" <td>1</td>\n",
" <td>42650</td>\n",
" <td>20.75</td>\n",
" <td>100.30</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>497</th>\n",
" <td>10</td>\n",
" <td>20503</td>\n",
" <td>87.50</td>\n",
" <td>14382.40</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>498</th>\n",
" <td>33</td>\n",
" <td>14636</td>\n",
" <td>705.00</td>\n",
" <td>10456.70</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>499</th>\n",
" <td>1</td>\n",
" <td>10960</td>\n",
" <td>3282.50</td>\n",
" <td>7070.20</td>\n",
" <td>19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>500</th>\n",
" <td>3</td>\n",
" <td>99160</td>\n",
" <td>14554.00</td>\n",
" <td>80771.35</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>501</th>\n",
" <td>19</td>\n",
" <td>21800</td>\n",
" <td>12448.00</td>\n",
" <td>19929.60</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>502</th>\n",
" <td>1</td>\n",
" <td>11089</td>\n",
" <td>18.50</td>\n",
" <td>1129.60</td>\n",
" <td>19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>503</th>\n",
" <td>4</td>\n",
" <td>22964</td>\n",
" <td>40.00</td>\n",
" <td>12682.85</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>504</th>\n",
" <td>2</td>\n",
" <td>11933</td>\n",
" <td>1349.00</td>\n",
" <td>5868.75</td>\n",
" <td>26</td>\n",
" </tr>\n",
" <tr>\n",
" <th>505</th>\n",
" <td>31</td>\n",
" <td>11756</td>\n",
" <td>7896.50</td>\n",
" <td>10882.40</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>506</th>\n",
" <td>29</td>\n",
" <td>22537</td>\n",
" <td>11425.75</td>\n",
" <td>20314.75</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>507</th>\n",
" <td>1</td>\n",
" <td>33752</td>\n",
" <td>81.00</td>\n",
" <td>13602.80</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>508</th>\n",
" <td>2</td>\n",
" <td>13996</td>\n",
" <td>10000.00</td>\n",
" <td>13196.80</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>509</th>\n",
" <td>1</td>\n",
" <td>23713</td>\n",
" <td>32.75</td>\n",
" <td>329.85</td>\n",
" <td>142</td>\n",
" </tr>\n",
" <tr>\n",
" <th>510</th>\n",
" <td>3</td>\n",
" <td>73102</td>\n",
" <td>106.00</td>\n",
" <td>377.00</td>\n",
" <td>41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>511</th>\n",
" <td>1</td>\n",
" <td>12449</td>\n",
" <td>104.00</td>\n",
" <td>6984.60</td>\n",
" <td>55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>512</th>\n",
" <td>1</td>\n",
" <td>65582</td>\n",
" <td>128.50</td>\n",
" <td>31601.90</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>513</th>\n",
" <td>1</td>\n",
" <td>65227</td>\n",
" <td>323.50</td>\n",
" <td>45757.60</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>514</th>\n",
" <td>27241</td>\n",
" <td>66281</td>\n",
" <td>50519.00</td>\n",
" <td>63128.60</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>515</th>\n",
" <td>34</td>\n",
" <td>198662</td>\n",
" <td>81605.00</td>\n",
" <td>175250.60</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>516</th>\n",
" <td>1</td>\n",
" <td>13143</td>\n",
" <td>20.25</td>\n",
" <td>63.00</td>\n",
" <td>56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>517</th>\n",
" <td>1578</td>\n",
" <td>17229</td>\n",
" <td>7904.25</td>\n",
" <td>14911.00</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>518</th>\n",
" <td>4</td>\n",
" <td>21149</td>\n",
" <td>8000.50</td>\n",
" <td>19358.25</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>519</th>\n",
" <td>695</td>\n",
" <td>30811</td>\n",
" <td>16642.75</td>\n",
" <td>29864.45</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>520</th>\n",
" <td>1</td>\n",
" <td>10077</td>\n",
" <td>937.25</td>\n",
" <td>8270.25</td>\n",
" <td>10</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>521 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" # URIs min # URIs max p75 p95 Samples\n",
"0 13 32827 17426.00 27604.65 8\n",
"1 15 48552 36947.00 47613.30 7\n",
"2 48823 85032 65568.75 81139.35 4\n",
"3 1 183154 23536.00 132099.50 34\n",
"4 1 14727 6796.50 14118.00 11\n",
"5 4 27367 3355.25 22448.10 8\n",
"6 111 11202 2986.50 9558.90 4\n",
"7 1 10326 2681.50 8126.70 28\n",
"8 2 12452 6462.75 8830.85 14\n",
"9 35 43953 32973.50 41757.10 2\n",
"10 1 42838 391.00 742.30 27\n",
"11 2 18536 636.75 10499.90 10\n",
"12 45 21080 10589.00 18981.80 5\n",
"13 2 281583 60958.75 246403.65 38\n",
"14 1 17545 58.00 227.40 25\n",
"15 1 13089 91.00 10489.40 5\n",
"16 826 19670 19361.50 19603.75 6\n",
"17 13219 16002 15743.25 15950.25 4\n",
"18 3 28165 18060.25 22940.00 12\n",
"19 1 15619 34.50 10947.10 7\n",
"20 77 17825 4303.50 14626.40 19\n",
"21 164 48356 5512.50 39957.35 22\n",
"22 27 13712 6289.75 11288.25 8\n",
"23 795 44971 42565.00 43863.50 11\n",
"24 3 117351 52235.00 104690.00 6\n",
"25 1 10108 531.75 1967.50 46\n",
"26 1 29046 297.00 23296.20 5\n",
"27 1 20265 8275.25 15666.75 36\n",
"28 28 19000 12520.00 17617.25 6\n",
"29 1514 15990 13380.00 15468.00 3\n",
".. ... ... ... ... ...\n",
"491 1 11591 57.00 2448.60 17\n",
"492 284 15058 14227.50 14893.30 7\n",
"493 1 17744 68.00 403.20 53\n",
"494 7 11265 644.50 7347.10 15\n",
"495 1 17173 2188.50 12970.90 7\n",
"496 1 42650 20.75 100.30 22\n",
"497 10 20503 87.50 14382.40 7\n",
"498 33 14636 705.00 10456.70 7\n",
"499 1 10960 3282.50 7070.20 19\n",
"500 3 99160 14554.00 80771.35 8\n",
"501 19 21800 12448.00 19929.60 5\n",
"502 1 11089 18.50 1129.60 19\n",
"503 4 22964 40.00 12682.85 10\n",
"504 2 11933 1349.00 5868.75 26\n",
"505 31 11756 7896.50 10882.40 7\n",
"506 29 22537 11425.75 20314.75 4\n",
"507 1 33752 81.00 13602.80 13\n",
"508 2 13996 10000.00 13196.80 5\n",
"509 1 23713 32.75 329.85 142\n",
"510 3 73102 106.00 377.00 41\n",
"511 1 12449 104.00 6984.60 55\n",
"512 1 65582 128.50 31601.90 15\n",
"513 1 65227 323.50 45757.60 7\n",
"514 27241 66281 50519.00 63128.60 4\n",
"515 34 198662 81605.00 175250.60 5\n",
"516 1 13143 20.25 63.00 56\n",
"517 1578 17229 7904.25 14911.00 6\n",
"518 4 21149 8000.50 19358.25 14\n",
"519 695 30811 16642.75 29864.45 12\n",
"520 1 10077 937.25 8270.25 10\n",
"\n",
"[521 rows x 5 columns]"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"uri_behaviour_rdd = uri_behaviour.map(lambda x: (np.min(x[1]),\\\n",
" np.max(x[1]),\\\n",
" np.percentile(x[1], 75),\\\n",
" np.percentile(x[1], 95),\\\n",
" len(x[1])))\n",
"uri_behaviour_df = pd.DataFrame(uri_behaviour_rdd.collect())\n",
"uri_behaviour_df.columns = [\"# URIs min\", \"# URIs max\", \"p75\", \"p95\", \"Samples\"]\n",
"uri_behaviour_df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Inspect other field to try to figure out if super high URI counts come from some automated instance of Firefox:\n",
"\n",
"* either a new or constantly resetting profile\n",
"* low session counts (1 or \"few\", profileSubsessionCounter as a proxy?)\n",
"* lower session lengths\n",
"* submit high counts with each session.\n",
"* Maybe a proxy is \"for pathological clients, the uri counts p25 is pretty close to p90\"?"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1236"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"UNIX_EPOCH_DAY = datetime.datetime.utcfromtimestamp(0)\n",
"\n",
"def get_session_info(p):\n",
" return {\n",
" \"submissionDate\": p.get(\"meta/submissionDate\"),\n",
" \"profileCreationDate\": UNIX_EPOCH_DAY + datetime.timedelta(days=p.get(\"environment/profile/creationDate\")),\n",
" \"reason\": p.get(\"payload/info/reason\"),\n",
" \"profileSubsessionCounter\": p.get(\"payload/info/profileSubsessionCounter\"),\n",
" \"sessionLength\": p.get(\"payload/info/sessionLength\"),\n",
" \"subsessionLength\": p.get(\"payload/info/subsessionLength\")\n",
" }\n",
"\n",
"many_uris_session = pings_many_uris.map(get_session_info)\n",
"many_uris_session.count()"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>profileCreationDate</th>\n",
" <th>profileSubsessionCounter</th>\n",
" <th>reason</th>\n",
" <th>sessionLength</th>\n",
" <th>submissionDate</th>\n",
" <th>subsessionLength</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2015-08-05</td>\n",
" <td>365</td>\n",
" <td>aborted-session</td>\n",
" <td>12867</td>\n",
" <td>20160928</td>\n",
" <td>12864</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2016-09-16</td>\n",
" <td>96</td>\n",
" <td>aborted-session</td>\n",
" <td>1704</td>\n",
" <td>20160929</td>\n",
" <td>1703</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2015-10-08</td>\n",
" <td>423</td>\n",
" <td>environment-change</td>\n",
" <td>6782</td>\n",
" <td>20160925</td>\n",
" <td>6712</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2014-08-10</td>\n",
" <td>1934</td>\n",
" <td>environment-change</td>\n",
" <td>28274</td>\n",
" <td>20160927</td>\n",
" <td>28271</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2016-06-01</td>\n",
" <td>141</td>\n",
" <td>shutdown</td>\n",
" <td>13811</td>\n",
" <td>20160926</td>\n",
" <td>13798</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2015-09-07</td>\n",
" <td>208</td>\n",
" <td>aborted-session</td>\n",
" <td>9582</td>\n",
" <td>20160927</td>\n",
" <td>9581</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2016-05-25</td>\n",
" <td>127</td>\n",
" <td>shutdown</td>\n",
" <td>2671</td>\n",
" <td>20160927</td>\n",
" <td>2669</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2015-11-01</td>\n",
" <td>2188</td>\n",
" <td>shutdown</td>\n",
" <td>8796</td>\n",
" <td>20160925</td>\n",
" <td>8795</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2016-06-02</td>\n",
" <td>467</td>\n",
" <td>shutdown</td>\n",
" <td>23701</td>\n",
" <td>20160928</td>\n",
" <td>23685</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2016-08-08</td>\n",
" <td>86</td>\n",
" <td>shutdown</td>\n",
" <td>19661</td>\n",
" <td>20160928</td>\n",
" <td>19557</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2016-03-13</td>\n",
" <td>99</td>\n",
" <td>shutdown</td>\n",
" <td>7399</td>\n",
" <td>20160928</td>\n",
" <td>7397</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2016-08-28</td>\n",
" <td>55</td>\n",
" <td>daily</td>\n",
" <td>1536</td>\n",
" <td>20160927</td>\n",
" <td>1534</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>2015-12-21</td>\n",
" <td>46</td>\n",
" <td>daily</td>\n",
" <td>57215</td>\n",
" <td>20160925</td>\n",
" <td>57212</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2014-12-16</td>\n",
" <td>780</td>\n",
" <td>shutdown</td>\n",
" <td>57708</td>\n",
" <td>20160925</td>\n",
" <td>32822</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2015-11-01</td>\n",
" <td>2178</td>\n",
" <td>aborted-session</td>\n",
" <td>17231</td>\n",
" <td>20160925</td>\n",
" <td>17231</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2015-05-17</td>\n",
" <td>585</td>\n",
" <td>daily</td>\n",
" <td>56073</td>\n",
" <td>20160926</td>\n",
" <td>56071</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2015-04-03</td>\n",
" <td>676</td>\n",
" <td>shutdown</td>\n",
" <td>40059</td>\n",
" <td>20160927</td>\n",
" <td>40050</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>2016-09-06</td>\n",
" <td>103</td>\n",
" <td>daily</td>\n",
" <td>310614</td>\n",
" <td>20160929</td>\n",
" <td>86399</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>2014-05-10</td>\n",
" <td>674</td>\n",
" <td>daily</td>\n",
" <td>56670</td>\n",
" <td>20160923</td>\n",
" <td>56670</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>2015-12-17</td>\n",
" <td>372</td>\n",
" <td>shutdown</td>\n",
" <td>36684</td>\n",
" <td>20160928</td>\n",
" <td>36683</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>2016-02-15</td>\n",
" <td>1086</td>\n",
" <td>shutdown</td>\n",
" <td>23895</td>\n",
" <td>20160929</td>\n",
" <td>23892</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>2016-08-15</td>\n",
" <td>159</td>\n",
" <td>shutdown</td>\n",
" <td>13595</td>\n",
" <td>20160929</td>\n",
" <td>13590</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>2015-12-29</td>\n",
" <td>130</td>\n",
" <td>shutdown</td>\n",
" <td>18582</td>\n",
" <td>20160928</td>\n",
" <td>18571</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>2016-08-04</td>\n",
" <td>79</td>\n",
" <td>aborted-session</td>\n",
" <td>31556</td>\n",
" <td>20160929</td>\n",
" <td>31546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>2015-06-19</td>\n",
" <td>512</td>\n",
" <td>daily</td>\n",
" <td>326672</td>\n",
" <td>20160927</td>\n",
" <td>86514</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>2015-11-05</td>\n",
" <td>393</td>\n",
" <td>daily</td>\n",
" <td>281211</td>\n",
" <td>20160929</td>\n",
" <td>86351</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>2015-12-21</td>\n",
" <td>48</td>\n",
" <td>daily</td>\n",
" <td>57103</td>\n",
" <td>20160926</td>\n",
" <td>57099</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>2016-05-25</td>\n",
" <td>1</td>\n",
" <td>shutdown</td>\n",
" <td>4616</td>\n",
" <td>20160929</td>\n",
" <td>4614</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>2016-06-10</td>\n",
" <td>110</td>\n",
" <td>shutdown</td>\n",
" <td>53564</td>\n",
" <td>20160926</td>\n",
" <td>53561</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>2016-05-25</td>\n",
" <td>105</td>\n",
" <td>shutdown</td>\n",
" <td>24094</td>\n",
" <td>20160926</td>\n",
" <td>24091</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1206</th>\n",
" <td>2016-07-11</td>\n",
" <td>166</td>\n",
" <td>shutdown</td>\n",
" <td>3121</td>\n",
" <td>20160925</td>\n",
" <td>3117</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1207</th>\n",
" <td>2014-10-17</td>\n",
" <td>215</td>\n",
" <td>daily</td>\n",
" <td>88273</td>\n",
" <td>20160927</td>\n",
" <td>86497</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1208</th>\n",
" <td>2015-07-30</td>\n",
" <td>53</td>\n",
" <td>shutdown</td>\n",
" <td>16768</td>\n",
" <td>20160926</td>\n",
" <td>16756</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1209</th>\n",
" <td>2015-05-20</td>\n",
" <td>1042</td>\n",
" <td>shutdown</td>\n",
" <td>48359</td>\n",
" <td>20160929</td>\n",
" <td>48353</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1210</th>\n",
" <td>2016-06-06</td>\n",
" <td>62</td>\n",
" <td>daily</td>\n",
" <td>31270</td>\n",
" <td>20160924</td>\n",
" <td>31267</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1211</th>\n",
" <td>2014-08-16</td>\n",
" <td>1373</td>\n",
" <td>shutdown</td>\n",
" <td>22900</td>\n",
" <td>20160928</td>\n",
" <td>22898</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1212</th>\n",
" <td>2013-09-19</td>\n",
" <td>572</td>\n",
" <td>shutdown</td>\n",
" <td>26357</td>\n",
" <td>20160928</td>\n",
" <td>26356</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1213</th>\n",
" <td>2011-01-29</td>\n",
" <td>498</td>\n",
" <td>shutdown</td>\n",
" <td>4548</td>\n",
" <td>20160926</td>\n",
" <td>4543</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1214</th>\n",
" <td>2015-05-04</td>\n",
" <td>564</td>\n",
" <td>shutdown</td>\n",
" <td>6354</td>\n",
" <td>20160927</td>\n",
" <td>6339</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1215</th>\n",
" <td>2016-08-17</td>\n",
" <td>76</td>\n",
" <td>daily</td>\n",
" <td>55269</td>\n",
" <td>20160928</td>\n",
" <td>55269</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1216</th>\n",
" <td>2015-11-05</td>\n",
" <td>392</td>\n",
" <td>daily</td>\n",
" <td>194859</td>\n",
" <td>20160928</td>\n",
" <td>86197</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1217</th>\n",
" <td>2016-09-18</td>\n",
" <td>85</td>\n",
" <td>daily</td>\n",
" <td>119284</td>\n",
" <td>20160927</td>\n",
" <td>86411</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1218</th>\n",
" <td>2016-02-25</td>\n",
" <td>586</td>\n",
" <td>shutdown</td>\n",
" <td>13905</td>\n",
" <td>20160928</td>\n",
" <td>13903</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1219</th>\n",
" <td>2016-09-15</td>\n",
" <td>16</td>\n",
" <td>shutdown</td>\n",
" <td>30888</td>\n",
" <td>20160924</td>\n",
" <td>30885</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1220</th>\n",
" <td>2016-08-20</td>\n",
" <td>111</td>\n",
" <td>shutdown</td>\n",
" <td>90161</td>\n",
" <td>20160924</td>\n",
" <td>57540</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1221</th>\n",
" <td>2015-01-06</td>\n",
" <td>733</td>\n",
" <td>shutdown</td>\n",
" <td>81899</td>\n",
" <td>20160927</td>\n",
" <td>61261</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1222</th>\n",
" <td>2016-02-22</td>\n",
" <td>79</td>\n",
" <td>shutdown</td>\n",
" <td>8571</td>\n",
" <td>20160927</td>\n",
" <td>8569</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1223</th>\n",
" <td>2016-06-29</td>\n",
" <td>92</td>\n",
" <td>aborted-session</td>\n",
" <td>8786</td>\n",
" <td>20160928</td>\n",
" <td>8762</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1224</th>\n",
" <td>2016-08-18</td>\n",
" <td>172</td>\n",
" <td>aborted-session</td>\n",
" <td>6275</td>\n",
" <td>20160923</td>\n",
" <td>6271</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1225</th>\n",
" <td>2014-05-10</td>\n",
" <td>683</td>\n",
" <td>daily</td>\n",
" <td>127343</td>\n",
" <td>20160929</td>\n",
" <td>86399</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1226</th>\n",
" <td>2016-05-28</td>\n",
" <td>107</td>\n",
" <td>shutdown</td>\n",
" <td>7781</td>\n",
" <td>20160928</td>\n",
" <td>7779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1227</th>\n",
" <td>2016-07-04</td>\n",
" <td>38</td>\n",
" <td>shutdown</td>\n",
" <td>27293</td>\n",
" <td>20160929</td>\n",
" <td>27290</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1228</th>\n",
" <td>2016-09-12</td>\n",
" <td>84</td>\n",
" <td>shutdown</td>\n",
" <td>6242</td>\n",
" <td>20160924</td>\n",
" <td>6241</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1229</th>\n",
" <td>2016-07-31</td>\n",
" <td>21</td>\n",
" <td>shutdown</td>\n",
" <td>44221</td>\n",
" <td>20160928</td>\n",
" <td>44123</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1230</th>\n",
" <td>2012-12-18</td>\n",
" <td>68</td>\n",
" <td>aborted-session</td>\n",
" <td>8233</td>\n",
" <td>20160928</td>\n",
" <td>8198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1231</th>\n",
" <td>2016-06-01</td>\n",
" <td>145</td>\n",
" <td>shutdown</td>\n",
" <td>29044</td>\n",
" <td>20160928</td>\n",
" <td>29042</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1232</th>\n",
" <td>2016-08-18</td>\n",
" <td>129</td>\n",
" <td>aborted-session</td>\n",
" <td>54716</td>\n",
" <td>20160929</td>\n",
" <td>54716</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1233</th>\n",
" <td>2016-07-17</td>\n",
" <td>129</td>\n",
" <td>shutdown</td>\n",
" <td>16103</td>\n",
" <td>20160925</td>\n",
" <td>16101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1234</th>\n",
" <td>2015-08-05</td>\n",
" <td>346</td>\n",
" <td>aborted-session</td>\n",
" <td>3064</td>\n",
" <td>20160924</td>\n",
" <td>3061</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1235</th>\n",
" <td>2016-08-28</td>\n",
" <td>51</td>\n",
" <td>daily</td>\n",
" <td>20672</td>\n",
" <td>20160926</td>\n",
" <td>20669</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1236 rows × 6 columns</p>\n",
"</div>"
],
"text/plain": [
" profileCreationDate profileSubsessionCounter reason \\\n",
"0 2015-08-05 365 aborted-session \n",
"1 2016-09-16 96 aborted-session \n",
"2 2015-10-08 423 environment-change \n",
"3 2014-08-10 1934 environment-change \n",
"4 2016-06-01 141 shutdown \n",
"5 2015-09-07 208 aborted-session \n",
"6 2016-05-25 127 shutdown \n",
"7 2015-11-01 2188 shutdown \n",
"8 2016-06-02 467 shutdown \n",
"9 2016-08-08 86 shutdown \n",
"10 2016-03-13 99 shutdown \n",
"11 2016-08-28 55 daily \n",
"12 2015-12-21 46 daily \n",
"13 2014-12-16 780 shutdown \n",
"14 2015-11-01 2178 aborted-session \n",
"15 2015-05-17 585 daily \n",
"16 2015-04-03 676 shutdown \n",
"17 2016-09-06 103 daily \n",
"18 2014-05-10 674 daily \n",
"19 2015-12-17 372 shutdown \n",
"20 2016-02-15 1086 shutdown \n",
"21 2016-08-15 159 shutdown \n",
"22 2015-12-29 130 shutdown \n",
"23 2016-08-04 79 aborted-session \n",
"24 2015-06-19 512 daily \n",
"25 2015-11-05 393 daily \n",
"26 2015-12-21 48 daily \n",
"27 2016-05-25 1 shutdown \n",
"28 2016-06-10 110 shutdown \n",
"29 2016-05-25 105 shutdown \n",
"... ... ... ... \n",
"1206 2016-07-11 166 shutdown \n",
"1207 2014-10-17 215 daily \n",
"1208 2015-07-30 53 shutdown \n",
"1209 2015-05-20 1042 shutdown \n",
"1210 2016-06-06 62 daily \n",
"1211 2014-08-16 1373 shutdown \n",
"1212 2013-09-19 572 shutdown \n",
"1213 2011-01-29 498 shutdown \n",
"1214 2015-05-04 564 shutdown \n",
"1215 2016-08-17 76 daily \n",
"1216 2015-11-05 392 daily \n",
"1217 2016-09-18 85 daily \n",
"1218 2016-02-25 586 shutdown \n",
"1219 2016-09-15 16 shutdown \n",
"1220 2016-08-20 111 shutdown \n",
"1221 2015-01-06 733 shutdown \n",
"1222 2016-02-22 79 shutdown \n",
"1223 2016-06-29 92 aborted-session \n",
"1224 2016-08-18 172 aborted-session \n",
"1225 2014-05-10 683 daily \n",
"1226 2016-05-28 107 shutdown \n",
"1227 2016-07-04 38 shutdown \n",
"1228 2016-09-12 84 shutdown \n",
"1229 2016-07-31 21 shutdown \n",
"1230 2012-12-18 68 aborted-session \n",
"1231 2016-06-01 145 shutdown \n",
"1232 2016-08-18 129 aborted-session \n",
"1233 2016-07-17 129 shutdown \n",
"1234 2015-08-05 346 aborted-session \n",
"1235 2016-08-28 51 daily \n",
"\n",
" sessionLength submissionDate subsessionLength \n",
"0 12867 20160928 12864 \n",
"1 1704 20160929 1703 \n",
"2 6782 20160925 6712 \n",
"3 28274 20160927 28271 \n",
"4 13811 20160926 13798 \n",
"5 9582 20160927 9581 \n",
"6 2671 20160927 2669 \n",
"7 8796 20160925 8795 \n",
"8 23701 20160928 23685 \n",
"9 19661 20160928 19557 \n",
"10 7399 20160928 7397 \n",
"11 1536 20160927 1534 \n",
"12 57215 20160925 57212 \n",
"13 57708 20160925 32822 \n",
"14 17231 20160925 17231 \n",
"15 56073 20160926 56071 \n",
"16 40059 20160927 40050 \n",
"17 310614 20160929 86399 \n",
"18 56670 20160923 56670 \n",
"19 36684 20160928 36683 \n",
"20 23895 20160929 23892 \n",
"21 13595 20160929 13590 \n",
"22 18582 20160928 18571 \n",
"23 31556 20160929 31546 \n",
"24 326672 20160927 86514 \n",
"25 281211 20160929 86351 \n",
"26 57103 20160926 57099 \n",
"27 4616 20160929 4614 \n",
"28 53564 20160926 53561 \n",
"29 24094 20160926 24091 \n",
"... ... ... ... \n",
"1206 3121 20160925 3117 \n",
"1207 88273 20160927 86497 \n",
"1208 16768 20160926 16756 \n",
"1209 48359 20160929 48353 \n",
"1210 31270 20160924 31267 \n",
"1211 22900 20160928 22898 \n",
"1212 26357 20160928 26356 \n",
"1213 4548 20160926 4543 \n",
"1214 6354 20160927 6339 \n",
"1215 55269 20160928 55269 \n",
"1216 194859 20160928 86197 \n",
"1217 119284 20160927 86411 \n",
"1218 13905 20160928 13903 \n",
"1219 30888 20160924 30885 \n",
"1220 90161 20160924 57540 \n",
"1221 81899 20160927 61261 \n",
"1222 8571 20160927 8569 \n",
"1223 8786 20160928 8762 \n",
"1224 6275 20160923 6271 \n",
"1225 127343 20160929 86399 \n",
"1226 7781 20160928 7779 \n",
"1227 27293 20160929 27290 \n",
"1228 6242 20160924 6241 \n",
"1229 44221 20160928 44123 \n",
"1230 8233 20160928 8198 \n",
"1231 29044 20160928 29042 \n",
"1232 54716 20160929 54716 \n",
"1233 16103 20160925 16101 \n",
"1234 3064 20160924 3061 \n",
"1235 20672 20160926 20669 \n",
"\n",
"[1236 rows x 6 columns]"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(many_uris_session.collect())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Total unique domains count"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 2.370397e+07\n",
"mean 4.424598e+00\n",
"std 6.079232e+00\n",
"min 1.000000e+00\n",
"50% 2.000000e+00\n",
"75% 5.000000e+00\n",
"95% 1.400000e+01\n",
"99% 3.000000e+01\n",
"99.5% 3.800000e+01\n",
"max 1.000000e+02\n",
"dtype: float64"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n34/1NG8KtY/WP/PZfkCSy7x+rMo5diXwcKatVT+g+d9SvR/ZNSnWA9lNmFr1Y0eLa+X14y7a78eO\nFteD/NHCYZr7kfd+tY+kz9/LuV7WgfTzIzlf25DTtjIntlb92JrT9uvp57m872b7Udb7bqvfH6He\nd6Gz9936MR8g+ZVba3Gu4nTd0x/tuvPOOxkbG+PSSy9NWz5P8gvrrMyRy0mWJs36YE5bfRbyz2Xa\nL6B5t8hj0/OenGlfC7w/0zaP1kujbshpu5zmfiwlvx/XAr+RaWvVD8jv9wj5/fhUpq1VP96e01b3\nm5nXc+nHQIvrnd3iWnn9OIf8fowBizPtQ8Aftjh3th/162VdAnwo0zaQXu9nM+15/ahPNcqbEf+R\nzOuj0/O+M9Peqh9rc9remNMG+f1YQn4/NgK/nWk7jtY/89l+QJLLvH58NufYbcBpmbZW/YDmf0v1\nfizItG+k+d95q34sb3GtvH68h/b7sbzF9aC5H/XrZfuR9351HEmfX5dzvawj08+n5nxtQ07btpzY\nWvXjgzlth/K+m+1HWe+7rX5/9Mr7bv2YG4Gn6YdluieBl4CFmfaFJD0UERGRPlFqUeHuL5LsanJ6\nvc3MLH0909iNiIiI9JiOtz43s2OAE3jlyY/jzewU4Fl3/y5wFbDVzMaBh0huJM0j/yZT27T1eWjD\nwP2xg6iYGvlDr1KeGskcAQmn3Hv8Utc7W5+fRjKjZ5xknYorSWambQRw91uBj5JsHvEI8CbgDHf/\nficX1dbnob0vdgAVdFHsACpIOQ+v1fwUKVaYrc87Hqlw9/uZpThx9+uA6zq9lsS0dPZDpGB6sw1v\nOcmkbwlnpkm20mt69ukPERER6S4qKkRERKQQHd/+iEUTNUO7D+3gGNp28tcmkPJoOfrwsguASTl6\nZ6JmFJqoGdrdsQOooNHYAVSQch7eg7EDqIgwEzV7tqiQ0C6PHUAFbYsdQAUp5+HlrfQqvUpFhYiI\niBRCRYWIiIgUQkWFiIiIFEJFhbRpQ+wAKihvu2wpl3Ie3vWxA5AC6ZFSadPbYgdQQVpRM7zlwMHY\nQVTMG4GdsYOoAD1SOiM9Uhrae2IHUEFDsQOoIOU8vLfHDqAi9EipiIiI9BAVFSIiIlIIFRXSpkdi\nB1BBu2IHUEHKeXiPxw5ACqSiQtp0U+wAKuiK2AFUkHIe3ldiByAFUlEhbdoUO4AKuiV2ABWknId3\n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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb82caafdd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_histogram_scalar(latest_pings, \"browser.engagement.unique_domains_count\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"What's the percentage of session fragments which exactly recorded >= 100 unique domains?"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"29537831"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"num_latest_pings = latest_pings.count()\n",
"num_latest_pings"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def hit_upper_domain_bound(p):\n",
" if not p[\"payload/processes/parent/scalars\"]:\n",
" return False\n",
" \n",
" domain_count = \\\n",
" p[\"payload/processes/parent/scalars\"].get(\"browser.engagement.unique_domains_count\", False)\n",
" if domain_count is False:\n",
" return False\n",
" \n",
" return domain_count >= 100 # 100 is the upper bound, we should never go beyond that.\n",
"\n",
"pings_hitting_domain_bounds = latest_pings.filter(hit_upper_domain_bound)\n",
"domain_count_upper_bounds = pings_hitting_domain_bounds.count()"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Subsessions with >= unique domains: 7141 - 0.0\n"
]
}
],
"source": [
"print \"Subsessions with >= unique domains: {} - {}\".format(domain_count_upper_bounds,\n",
" pct(domain_count_upper_bounds, num_latest_pings))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many clients?"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ratio of clients opening more than 100 unique domains:\t0.002\n"
]
}
],
"source": [
"clients_unique_domains = pings_hitting_domain_bounds.map(lambda p: p[\"meta/clientId\"]).distinct().collect()\n",
"print \"Ratio of clients opening more than 100 unique domains:\\t{}\"\\\n",
" .format(pct(len(clients_unique_domains), total_clients))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many heavy URI loaders are also hitting the 100 unique domains?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"12"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len([clientId for clientId in heavy_uri_loaders_clients if clientId in clients_unique_domains])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many unique domains (maximum among all the session fragments) is each user visiting, per day?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"daily_domains_per_user = values_per_day(latest_pings, \"browser.engagement.unique_domains_count\")\\\n",
" .map(lambda x: np.max(x[1]))\n",
"plot_series(pd.Series(daily_domains_per_user.collect()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many unique domains (p95 among all the session fragments) is each user visiting, per day?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"daily_domains_per_user = values_per_day(latest_pings, \"browser.engagement.unique_domains_count\")\\\n",
" .map(lambda x: np.percentile(x[1], 95))\n",
"plot_series(pd.Series(daily_domains_per_user.collect()))"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [default]",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
# coding: utf-8
# ## Bug 1303044 - Validate engagement measurements on Beta
# In[1]:
import ujson as json
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import plotly.plotly as py
import datetime as dt
from uuid import UUID
from moztelemetry import get_pings, get_pings_properties, get_one_ping_per_client, get_clients_history
get_ipython().magic(u'pylab inline')
# We get all the pings on Beta, after bug 1293222 landed.
# In[2]:
def dedupe(pings):
return pings.map(lambda p: (p["meta/documentId"], p)) .reduceByKey(lambda a, b: a) .values()
def filter(pings):
subset = get_pings_properties(pings, ["meta/clientId",
"meta/documentId",
"meta/submissionDate",
"environment/profile/creationDate",
"environment/profile/resetDate",
"environment/build",
"environment/partner",
"environment/system",
"payload/info/reason",
"payload/info/sessionId",
"payload/info/subsessionLength",
"payload/info/sessionLength",
"payload/info/profileSubsessionCounter",
"payload/processes/parent/scalars"])
return dedupe(subset)
latest_pings = filter(get_pings(sc,
app="Firefox",
channel="beta",
doc_type="main",
schema="v4",
submission_date=("20160926", "20161002"),
build_id=("20160920000000", "20160929999999"), # Post bug 1293222
fraction=1.0))
all_pings = latest_pings
# In[3]:
total_clients = latest_pings.map(lambda p: p["meta/clientId"]).distinct().count()
# ### Helper functions for plotting and analysing.
# In[4]:
def plot_series(series, graph_bins=100, graph_min=0.1):
# Plot to an histogram.
fig, ax = plt.subplots()
series.hist(ax=ax, bins=graph_bins, bottom=graph_min)
ax.set_yscale('log')
# Return some descriptive statistics.
return series.describe(percentiles=[.5, .75, .95, .99, .995])
def plot_histogram_scalar(pings, scalar_name):
scalar_values = pings.filter(lambda p: p["payload/processes/parent/scalars"] and p["payload/processes/parent/scalars"].get(scalar_name, False)) .map(lambda p: p["payload/processes/parent/scalars"][scalar_name])
scalar_series = pd.Series(scalar_values.collect())
return plot_series(scalar_series)
def values_per_day(pings, scalar):
# Each entry in the |daily_per_user| RDD is like:
# (("date", "clientId"), [ ... scalar values for the client, date ... ])
daily_per_user = pings.filter(lambda p: p["payload/processes/parent/scalars"] and p["payload/processes/parent/scalars"].get(scalar, False)) .map(lambda p: ((p["meta/submissionDate"], p["meta/clientId"]), [ p["payload/processes/parent/scalars"].get(scalar) ])) .reduceByKey(lambda a,b: a + b)
return daily_per_user
def pct(a, b):
return round(float(a) / b, 3)
# Make sure each ping has a scalar section and the contained engagament measurements scalar have the right formats.
# In[5]:
def engagement_measurements_check(p):
known_engagement_scalars = {
"browser.engagement.max_concurrent_tab_count": int,
"browser.engagement.max_concurrent_window_count": int,
"browser.engagement.tab_open_event_count": int,
"browser.engagement.total_uri_count": int,
"browser.engagement.unique_domains_count": int,
"browser.engagement.window_open_event_count": int,
}
# We know these scalars must be there for the referenced timeframe.
expected_scalars = [
"browser.engagement.max_concurrent_tab_count",
"browser.engagement.max_concurrent_window_count"
]
scalars = p["payload/processes/parent/scalars"]
if scalars is None:
return ("scalars section is None", p)
# We don't expect all the engagement measurements to be there but,
# if they are, make sure they have the correct format.
for k, v in known_engagement_scalars.iteritems():
if k in scalars:
if type(scalars[k]) != v:
return ("wrong type: " + k, p)
if scalars[k] < 0:
return ("check failed: " + k + " < 1", p)
# We're not expecting other scalars from these builds.
for k in scalars:
if k not in known_engagement_scalars:
return ("unexpected scalar: " + k, p)
for s in expected_scalars:
if s not in scalars:
return ("{} not reported".format(s), p)
return ("", p)
checked_pings = all_pings.map(engagement_measurements_check)
result_counts = checked_pings.countByKey()
result_counts
# ### Let's dig into the pings with missing engagement measurements.
# Report the counts as ratios for beter readability.
# In[6]:
total_pings = sum(result_counts.values())
{key: pct(value, total_pings) for (key, value) in result_counts.iteritems()}
# In[7]:
missing_eng = latest_pings.filter(lambda p: (p["payload/processes/parent/scalars"] != None) and (len(p["payload/processes/parent/scalars"].keys()) == 0))
# How many clients are sending an empy scalars section?
# In[8]:
num_clients_no_eng = len(missing_eng.map(lambda p: p["meta/clientId"]).distinct().collect())
print "Ratio of clients not sending engagement measurements:\t{}" .format(pct(num_clients_no_eng, total_clients))
# Let's check the distribution of the subsession lengths.
# In[9]:
missing_ssl = missing_eng.map(lambda p: p["payload/info/subsessionLength"]).collect()
plot_series(pd.Series(missing_ssl), 30, 0)
# ### Maximum Concurrent Tab Count
# In[10]:
plot_histogram_scalar(all_pings, "browser.engagement.max_concurrent_tab_count")
# What's the maximum number of concurrent tabs each user has, per day?
# In[11]:
daily_max_tabs_per_user = values_per_day(all_pings, "browser.engagement.max_concurrent_tab_count") .map(lambda x: np.max(x[1]))
plot_series(pd.Series(daily_max_tabs_per_user.collect()))
# ### Maximum Concurrent Window Count
# In[12]:
plot_histogram_scalar(all_pings, "browser.engagement.max_concurrent_window_count")
# What's the maximum number of concurrent windows each user has, per day?
# In[13]:
daily_max_wins_per_user = values_per_day(all_pings, "browser.engagement.max_concurrent_window_count") .map(lambda x: np.max(x[1]))
plot_series(pd.Series(daily_max_wins_per_user.collect()))
# ### Tab Open Event Count
# In[14]:
plot_histogram_scalar(all_pings, "browser.engagement.tab_open_event_count")
# How many tabs are being opened by each user, per day?
# In[15]:
daily_tab_opens_per_user = values_per_day(all_pings, "browser.engagement.tab_open_event_count") .map(lambda x: np.sum(x[1]))
plot_series(pd.Series(daily_tab_opens_per_user.collect()))
# Compare tab open event and the maximum tab count, over a subsession:
# * Get the maximum among all the fragments for the concurrent tabs
# * Sum the open events for each fragment
# In[16]:
def map_to_tab_measurements(p):
scalars = p["payload/processes/parent/scalars"]
max_cnt = scalars.get("browser.engagement.max_concurrent_tab_count", 0)
open_cnt = scalars.get("browser.engagement.tab_open_event_count", 0)
return ((p["meta/clientId"], p["payload/info/sessionId"]), (open_cnt, max_cnt))
per_session_tab = latest_pings.filter(lambda p: p["payload/processes/parent/scalars"]) .map(map_to_tab_measurements)
# In[17]:
combined_per_session_tab = per_session_tab.combineByKey(lambda x: x,
lambda acc, x: (acc[0] + x[0], max(acc[1], x[1])),
lambda x, y: (x[0] + y[0], max(x[1], y[1])))
# Plot and describe the number of tab open events per client session.
# In[18]:
per_session_tab_open_events = combined_per_session_tab.map(lambda x: x[1][0])
plot_series(pd.Series(per_session_tab_open_events.collect()))
# Plot and describe the maximum number of concurrent tabs per client session.
# In[19]:
per_session_max_tabs = combined_per_session_tab.map(lambda x: x[1][1])
plot_series(pd.Series(per_session_max_tabs.collect()))
# ### Window Open Event Count
# In[20]:
plot_histogram_scalar(all_pings, "browser.engagement.window_open_event_count")
# How many windows are being opened by the clients, per day?
# In[21]:
daily_win_opens_per_user = values_per_day(all_pings, "browser.engagement.window_open_event_count") .map(lambda x: np.sum(x[1]))
plot_series(pd.Series(daily_win_opens_per_user.collect()))
# Compare window open event and the maximum window count, over a subsession:
# * Get the maximum among all the fragments for the concurrent windows
# * Sum the open events for each fragment
# In[22]:
def map_to_win_measurements(p):
scalars = p["payload/processes/parent/scalars"]
max_cnt = scalars.get("browser.engagement.max_concurrent_window_count", 0)
open_cnt = scalars.get("browser.engagement.window_open_event_count", 0)
return ((p["meta/clientId"], p["payload/info/sessionId"]), (open_cnt, max_cnt))
per_session_win = latest_pings.filter(lambda p: p["payload/processes/parent/scalars"]) .map(map_to_win_measurements)
# In[23]:
combined_per_session_win = per_session_win.combineByKey(lambda x: x,
lambda acc, x: (acc[0] + x[0], max(acc[1], x[1])),
lambda x, y: (x[0] + y[0], max(x[1], y[1])))
# Plot and describe the number of window open events per client session.
# In[24]:
per_session_win_open_events = combined_per_session_win.map(lambda x: x[1][0])
plot_series(pd.Series(per_session_win_open_events.collect()))
# Plot and describe the number of maximum concurrent windows per client session.
# In[25]:
per_session_max_windows = combined_per_session_win.map(lambda x: x[1][1])
plot_series(pd.Series(per_session_max_windows.collect()))
# How many subsessions don't include a window open event? The statistics below point out that most of the subsessions have 0 window open events.
# In[26]:
subsessions_with_window_open = all_pings.filter(lambda p: p["payload/processes/parent/scalars"]) .map(lambda p: p["payload/processes/parent/scalars"] .get("browser.engagement.window_open_event_count", 0))
scalar_series = pd.Series(subsessions_with_window_open.collect())
plot_series(scalar_series)
# ### Dig deeper into the window open events.
# When analysing Beta data, we found that:
#
# * The 50% of **subsession** have two window open events.
# * The 50% of **full sessions** have *zero* window open events.
#
# It could be possible in an example like this (see [bug 1303044](https://bugzilla.mozilla.org/show_bug.cgi?id=1303044#c10) for context):
# - 90% of sessions have only one subsession, and those sessions also have 0 window open events.
# - The remaining 10% of sessions have 10 subsessions each, and each of those subsessions has two window open events
# In[27]:
def aggregate_subsession_openevents(p):
scalars = p["payload/processes/parent/scalars"]
# Create a tuple like ((client_id, session_id), (1, window_open_event)). We'll
# use the unit to ease the count of subsessions per session.
return ((p["meta/clientId"], p["payload/info/sessionId"]),
(1, scalars.get("browser.engagement.window_open_event_count", 0)))
# Compute, for each session, the number of window open events and the number of
# considered subsessions.
agg_openevent_ssc = latest_pings.filter(lambda p: p["payload/processes/parent/scalars"]) .map(aggregate_subsession_openevents) .combineByKey(lambda x: x,
lambda acc, x: (acc[0] + x[0], acc[1] + x[1]),
lambda x, y: (x[0] + y[0], x[1] + y[1]))
# We've got our aggregated data now: the number of subsessions and the number of window open event count per session. Group the open event count by subsession count.
# In[28]:
only_ssl_woe = agg_openevent_ssc.map(lambda r: r[1])
woe = only_ssl_woe .map(lambda x: (x[0], [x[1]])) .reduceByKey(lambda x,y: x + y)
# Then compute a representative value for each subsession group, i.e. the percentile value of all the window open event count for a particular number of subsessions.
# In[29]:
# Compute the 95 percentile for each subsession length.
woe_summary = woe.map(lambda r: (r[0], np.percentile(r[1], 95.0))).collect()
# Sort the data by the number of subessions, so we can
# plot a line.
woe_sorted = sorted(woe_summary, key=lambda x: x[0])
x_ss_per_session = [d[0] for d in woe_sorted]
y_woe_per_session = [d[1] for d in woe_sorted]
# In[31]:
subsession_count_series = pd.Series(only_ssl_woe.map(lambda r: r[0]).collect())
subsession_count_series.describe()
fig = plt.figure(figsize=(10, 6))
# Plot the number of window open vs number of subsessions
ax = fig.add_subplot(1, 2, 1)
ax.scatter(x_ss_per_session, y_woe_per_session, label='Data points')
#ax.plot(x_ss_per_session, reg_y, label='Regression Line', c='r')
ax.set_xlabel('Number of subsessions per session')
ax.set_ylabel('Number of window open events per session (95p)')
ax.legend()
# Plot the histogram of subsession length.
ax2 = fig.add_subplot(1, 2, 2)
subsession_count_series.hist(ax=ax2, bins=20, bottom=0.1)
ax2.set_xlabel('Number of subsessions per session')
ax2.set_ylabel('Frequency')
ax2.set_yscale('log')
plt.show()
# Let's dig into this a bit more and find how sessions with few subsessions behave.
# In[32]:
# Get the p95 percentile for the number of subsessions within sessions.
subsession_count_series.quantile([.75, .95, .99])
# The vast majority of subsession have 2 subsessions only. **What's the 95 percentile window open count for these subsession counts? **
# In[38]:
woe_summary_df = pd.DataFrame(woe_summary, columns=['No. Subsessions', 'Window Open Events (p95)'])
woe_summary_df[(woe_summary_df['No. Subsessions'] == 1) | (woe_summary_df['No. Subsessions'] == 2)]
# Compute the descriptive statistics to describe the window open event count for each session having 1 or 2 subsessions at most.
# In[39]:
from scipy import stats
woe_few_subsessions = woe.filter(lambda r: r[0] in [1, 2])
woe_few_subs_stats = woe_few_subsessions.map(lambda r: (r[0], stats.describe(r[1]))).collect()
# In[40]:
woe_few_subs_stats
# See how many sessions with 1 or 2 subsessions have a window open event count of 0, how many of 1, etc...
# In[41]:
woe_few_subsessions.flatMap(lambda r: r[1]).countByValue()
# ### Total count of URIs
# In[42]:
plot_histogram_scalar(latest_pings, "browser.engagement.total_uri_count")
# How many URIs are the clients opening, per day?
# In[43]:
daily_uris_per_user = values_per_day(latest_pings, "browser.engagement.total_uri_count") .map(lambda x: np.sum(x[1]))
plot_series(pd.Series(daily_uris_per_user.collect()))
# Take a look at the clients opening more than > 10k URIs per subsession.
# In[44]:
URI_THRESHOLD = 10000 # 10k uris
pings_many_uris = latest_pings.filter(lambda p: p["payload/processes/parent/scalars"]) .filter(lambda p: p["payload/processes/parent/scalars"].get("browser.engagement.total_uri_count", 0) > URI_THRESHOLD)
# What's the distribution of their subsession lengths?
# In[45]:
pings_many_uris_ssl = pings_many_uris.map(lambda p: p.get("payload/info/subsessionLength"))
plot_series(pd.Series(pings_many_uris_ssl.collect()), 15, 0)
# And what about their session lengths?
# In[46]:
pings_many_uris_sl = pings_many_uris.filter(lambda p: p.get("payload/info/reason") == "shutdown") .map(lambda p: p.get("payload/info/sessionLength"))
plot_series(pd.Series(pings_many_uris_sl.collect()), 10, 0)
# How many clients are acting like that?
# In[47]:
heavy_uri_loaders_clients = pings_many_uris.map(lambda p: p["meta/clientId"]).distinct().collect()
heavy_uri_loaders = len(heavy_uri_loaders_clients)
# In[48]:
print "Ratio of clients opening more than 10k URIs:\t{}" .format(pct(heavy_uri_loaders, total_clients))
# Do these clients always behave the same?
# In[49]:
uri_behaviour = latest_pings.filter(lambda p: p["meta/clientId"] in heavy_uri_loaders_clients) .filter(lambda p: p["payload/processes/parent/scalars"] and p["payload/processes/parent/scalars"].get("browser.engagement.total_uri_count", False)) .map(lambda p: (p["meta/clientId"], [ p["payload/processes/parent/scalars"].get("browser.engagement.total_uri_count", 0)])) .reduceByKey(lambda x,y: x + y)
# In[50]:
uri_behaviour_rdd = uri_behaviour.map(lambda x: (np.min(x[1]), np.max(x[1]), np.percentile(x[1], 75), np.percentile(x[1], 95), len(x[1])))
uri_behaviour_df = pd.DataFrame(uri_behaviour_rdd.collect())
uri_behaviour_df.columns = ["# URIs min", "# URIs max", "p75", "p95", "Samples"]
uri_behaviour_df
# Inspect other field to try to figure out if super high URI counts come from some automated instance of Firefox:
#
# * either a new or constantly resetting profile
# * low session counts (1 or "few", profileSubsessionCounter as a proxy?)
# * lower session lengths
# * submit high counts with each session.
# * Maybe a proxy is "for pathological clients, the uri counts p25 is pretty close to p90"?
# In[51]:
UNIX_EPOCH_DAY = datetime.datetime.utcfromtimestamp(0)
def get_session_info(p):
return {
"submissionDate": p.get("meta/submissionDate"),
"profileCreationDate": UNIX_EPOCH_DAY + datetime.timedelta(days=p.get("environment/profile/creationDate")),
"reason": p.get("payload/info/reason"),
"profileSubsessionCounter": p.get("payload/info/profileSubsessionCounter"),
"sessionLength": p.get("payload/info/sessionLength"),
"subsessionLength": p.get("payload/info/subsessionLength")
}
many_uris_session = pings_many_uris.map(get_session_info)
many_uris_session.count()
# In[52]:
pd.DataFrame(many_uris_session.collect())
# ### Total unique domains count
# In[53]:
plot_histogram_scalar(latest_pings, "browser.engagement.unique_domains_count")
# What's the percentage of session fragments which exactly recorded >= 100 unique domains?
# In[54]:
num_latest_pings = latest_pings.count()
num_latest_pings
# In[55]:
def hit_upper_domain_bound(p):
if not p["payload/processes/parent/scalars"]:
return False
domain_count = p["payload/processes/parent/scalars"].get("browser.engagement.unique_domains_count", False)
if domain_count is False:
return False
return domain_count >= 100 # 100 is the upper bound, we should never go beyond that.
pings_hitting_domain_bounds = latest_pings.filter(hit_upper_domain_bound)
domain_count_upper_bounds = pings_hitting_domain_bounds.count()
# In[56]:
print "Subsessions with >= unique domains: {} - {}".format(domain_count_upper_bounds,
pct(domain_count_upper_bounds, num_latest_pings))
# How many clients?
# In[57]:
clients_unique_domains = pings_hitting_domain_bounds.map(lambda p: p["meta/clientId"]).distinct().collect()
print "Ratio of clients opening more than 100 unique domains:\t{}" .format(pct(len(clients_unique_domains), total_clients))
# How many heavy URI loaders are also hitting the 100 unique domains?
# In[ ]:
len([clientId for clientId in heavy_uri_loaders_clients if clientId in clients_unique_domains])
# How many unique domains (maximum among all the session fragments) is each user visiting, per day?
# In[ ]:
daily_domains_per_user = values_per_day(latest_pings, "browser.engagement.unique_domains_count") .map(lambda x: np.max(x[1]))
plot_series(pd.Series(daily_domains_per_user.collect()))
# How many unique domains (p95 among all the session fragments) is each user visiting, per day?
# In[ ]:
daily_domains_per_user = values_per_day(latest_pings, "browser.engagement.unique_domains_count") .map(lambda x: np.percentile(x[1], 95))
plot_series(pd.Series(daily_domains_per_user.collect()))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment