Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save squarewave/96385908ef2d045be577398becfe6afb to your computer and use it in GitHub Desktop.
Save squarewave/96385908ef2d045be577398becfe6afb to your computer and use it in GitHub Desktop.
Plugin Safety install count
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unable to parse whitelist: /mnt/anaconda2/lib/python2.7/site-packages/moztelemetry/histogram-whitelists.json.\n",
"Assuming all histograms are acceptable.\n"
]
},
{
"data": {
"text/plain": [
"32"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from moztelemetry import get_pings_properties, get_one_ping_per_client\n",
"from moztelemetry.dataset import Dataset\n",
"\n",
"sc.defaultParallelism"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"fetching 3673.13278MB in 22176 files...\n"
]
}
],
"source": [
"start_date_str = '20170504'\n",
"\n",
"pings = Dataset.from_source(\"telemetry\") \\\n",
" .where(docType='shield_study') \\\n",
" .where(submissionDate=lambda b: (b == start_date_str or b > start_date_str)) \\\n",
" .where(appUpdateChannel=\"release\") \\\n",
" .records(sc, sample=1.0)\n",
"pings_props = get_pings_properties(pings, [\"clientId\", \"payload/study_state\", \"environment/addons/activeAddons/@plugin-safety\"])\n",
"filtered = pings_props.filter(lambda p: p['environment/addons/activeAddons/@plugin-safety'] is not None)",
"(filtered\n",
" .filter(lambda p: p['payload/study_state'] == 'install')\n",
" .groupBy(lambda p: p['clientId'])\n",
" .count()\n",
") - (filtered\n",
" .filter(lambda p: p['payload/study_state'] == 'user-ended-study')\n",
" .groupBy(lambda p: p['clientId'])\n",
" .count()\n",
")"
]
}
],
"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
# In[ ]:
from moztelemetry import get_pings_properties, get_one_ping_per_client
from moztelemetry.dataset import Dataset
sc.defaultParallelism
# In[ ]:
start_date_str = '20170504'
pings = Dataset.from_source("telemetry") .where(docType='shield_study') .where(submissionDate=lambda b: (b == start_date_str or b > start_date_str)) .where(appUpdateChannel="release") .records(sc, sample=1.0)
pings_props = get_pings_properties(pings, ["clientId", "payload/study_state"])
filtered = pings_props.filter(lambda p: p['environment/addons/activeAddons/@plugin-safety'] is not None)
(filtered
.filter(lambda p: p['payload/study_state'] == 'install')
.groupBy(lambda p: p['clientId'])
.count()
) - (filtered
.filter(lambda p: p['payload/study_state'] == 'user-ended-study')
.groupBy(lambda p: p['clientId'])
.count()
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment