Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wlach/b26b59bd71ece458eeaf886354548863 to your computer and use it in GitHub Desktop.
Save wlach/b26b59bd71ece458eeaf886354548863 to your computer and use it in GitHub Desktop.
One day of beta crash pings and their display versions
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"from moztelemetry import get_pings_properties, get_one_ping_per_client\n",
"from moztelemetry.dataset import Dataset\n",
"import csv\n",
"import json"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"32"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Dataset.from_source(\"telemetry\").schema\n",
"sc.defaultParallelism"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"fetching 1175.06469MB in 19528 files...\n"
]
}
],
"source": [
"pings = Dataset.from_source(\"telemetry\") \\\n",
" .select( \\\n",
" displayVersion='application.displayVersion',\n",
" pingSenderVersion='meta.\"X-PingSender-Version\"',\n",
" processType='payload.processType',\n",
" osName='environment.system.os.name') \\\n",
" .where(docType='crash') \\\n",
" .where(submissionDate=\"20180401\") \\\n",
" .where(appUpdateChannel=\"beta\") \\\n",
" .records(sc)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"Darwin\": {\n",
" \"53.0b10/none\": 4,\n",
" \"54.0/1.0\": 2,\n",
" \"55.0/1.0\": 2,\n",
" \"55.0b9/none\": 2,\n",
" \"56.0/1.0\": 7,\n",
" \"56.0b3/none\": 2,\n",
" \"56.0b9/none\": 7,\n",
" \"57.0/1.0\": 1,\n",
" \"57.0b11/none\": 1,\n",
" \"58.0/1.0\": 7,\n",
" \"58.0b12/none\": 1,\n",
" \"58.0b14/none\": 1,\n",
" \"59.0/1.0\": 28,\n",
" \"59.0/none\": 7,\n",
" \"59.0b5/none\": 1,\n",
" \"60.0/1.0\": 170,\n",
" \"60.0/none\": 10,\n",
" \"60.0b4/none\": 2,\n",
" \"60.0b6/none\": 2,\n",
" \"60.0b7/none\": 4,\n",
" \"60.0b8/none\": 8\n",
" },\n",
" \"Linux\": {\n",
" \"53.0b1/none\": 2,\n",
" \"53.0b10/none\": 1,\n",
" \"53.0b3/none\": 1,\n",
" \"54.0/1.0\": 1,\n",
" \"54.0/none\": 1,\n",
" \"55.0/none\": 5,\n",
" \"56.0/1.0\": 1,\n",
" \"57.0/none\": 2,\n",
" \"58.0/none\": 6,\n",
" \"59.0/1.0\": 3,\n",
" \"59.0/none\": 26,\n",
" \"59.0b6/none\": 1,\n",
" \"60.0/1.0\": 47,\n",
" \"60.0/none\": 3804,\n",
" \"60.0b4/none\": 17,\n",
" \"60.0b6/none\": 2,\n",
" \"60.0b7/none\": 1,\n",
" \"60.0b8/none\": 11\n",
" },\n",
" \"Windows_NT\": {\n",
" \"53.0.3/none\": 1,\n",
" \"53.0/none\": 6,\n",
" \"53.0b1/none\": 5,\n",
" \"53.0b10/none\": 10,\n",
" \"53.0b2/none\": 3,\n",
" \"53.0b3/none\": 2,\n",
" \"53.0b4/none\": 3,\n",
" \"53.0b5/none\": 6,\n",
" \"53.0b6/none\": 14,\n",
" \"53.0b7/none\": 3,\n",
" \"53.0b8/none\": 7,\n",
" \"53.0b9/none\": 11,\n",
" \"54.0.1/1.0\": 1,\n",
" \"54.0/1.0\": 100,\n",
" \"54.0/none\": 34,\n",
" \"54.0b1/none\": 5,\n",
" \"54.0b11/none\": 2,\n",
" \"54.0b13/none\": 1,\n",
" \"54.0b2/none\": 2,\n",
" \"54.0b3/none\": 2,\n",
" \"54.0b5/none\": 1,\n",
" \"54.0b7/none\": 2,\n",
" \"54.0b9/none\": 2,\n",
" \"55.0.3/1.0\": 6,\n",
" \"55.0.3/none\": 2,\n",
" \"55.0/1.0\": 199,\n",
" \"55.0/none\": 89,\n",
" \"55.0b1/none\": 7,\n",
" \"55.0b10/none\": 12,\n",
" \"55.0b11/none\": 15,\n",
" \"55.0b12/none\": 1,\n",
" \"55.0b13/none\": 3,\n",
" \"55.0b2/none\": 5,\n",
" \"55.0b3/none\": 1,\n",
" \"55.0b4/none\": 5,\n",
" \"55.0b5/none\": 2,\n",
" \"55.0b6/none\": 11,\n",
" \"55.0b7/none\": 35,\n",
" \"55.0b8/none\": 1,\n",
" \"55.0b9/none\": 23,\n",
" \"56.0.2/1.0\": 1,\n",
" \"56.0/1.0\": 915,\n",
" \"56.0/none\": 304,\n",
" \"56.0b10/none\": 5,\n",
" \"56.0b11/none\": 1,\n",
" \"56.0b12/none\": 14,\n",
" \"56.0b2/none\": 2,\n",
" \"56.0b3/none\": 208,\n",
" \"56.0b4/none\": 3,\n",
" \"56.0b5/none\": 6,\n",
" \"56.0b6/none\": 4,\n",
" \"56.0b7/none\": 2,\n",
" \"56.0b8/none\": 19,\n",
" \"56.0b9/none\": 87,\n",
" \"57.0.3/1.0\": 1,\n",
" \"57.0/1.0\": 154,\n",
" \"57.0/none\": 75,\n",
" \"57.0b10/none\": 8,\n",
" \"57.0b11/none\": 5,\n",
" \"57.0b12/none\": 2,\n",
" \"57.0b13/none\": 1,\n",
" \"57.0b14/none\": 9,\n",
" \"57.0b3/none\": 22,\n",
" \"57.0b5/none\": 5,\n",
" \"57.0b7/none\": 2,\n",
" \"57.0b8/none\": 4,\n",
" \"57.0b9/none\": 27,\n",
" \"58.0.2/1.0\": 7,\n",
" \"58.0.2/none\": 1,\n",
" \"58.0/1.0\": 365,\n",
" \"58.0/none\": 144,\n",
" \"58.0b10/none\": 4,\n",
" \"58.0b11/none\": 24,\n",
" \"58.0b12/none\": 30,\n",
" \"58.0b13/none\": 4,\n",
" \"58.0b14/none\": 41,\n",
" \"58.0b15/none\": 6,\n",
" \"58.0b16/none\": 15,\n",
" \"58.0b3/none\": 1,\n",
" \"58.0b4/none\": 20,\n",
" \"58.0b5/none\": 1,\n",
" \"58.0b6/none\": 20,\n",
" \"58.0b7/none\": 2,\n",
" \"58.0b8/none\": 1,\n",
" \"58.0b9/none\": 9,\n",
" \"59.0.1/1.0\": 7,\n",
" \"59.0.1/none\": 3,\n",
" \"59.0.2/1.0\": 1,\n",
" \"59.0/1.0\": 657,\n",
" \"59.0/none\": 311,\n",
" \"59.0b10/none\": 12,\n",
" \"59.0b11/none\": 4,\n",
" \"59.0b12/none\": 11,\n",
" \"59.0b13/none\": 5,\n",
" \"59.0b14/none\": 22,\n",
" \"59.0b3/none\": 4,\n",
" \"59.0b4/none\": 4,\n",
" \"59.0b5/none\": 2,\n",
" \"59.0b6/none\": 21,\n",
" \"59.0b7/none\": 6,\n",
" \"59.0b8/none\": 11,\n",
" \"59.0b9/none\": 2,\n",
" \"60.0/1.0\": 7133,\n",
" \"60.0/none\": 1359,\n",
" \"60.0b3/none\": 19,\n",
" \"60.0b4/none\": 53,\n",
" \"60.0b5/none\": 100,\n",
" \"60.0b6/none\": 101,\n",
" \"60.0b7/none\": 317,\n",
" \"60.0b8/none\": 1324\n",
" }\n",
"}\n"
]
}
],
"source": [
"versions = {}\n",
"pingsender_versions = set()\n",
"for p in pings.collect():\n",
" pingsender_version = p['pingSenderVersion'] or 'none'\n",
" osname = p['osName']\n",
" version = str(p['displayVersion']) + '/' + pingsender_version\n",
" if p['processType'] != 'main':\n",
" continue\n",
" if not versions.get(osname):\n",
" versions[osname] = {}\n",
" if not versions[osname].get(version):\n",
" versions[osname][version] = 0\n",
" versions[osname][version] += 1\n",
"print json.dumps(versions, sort_keys=True,\n",
" indent=4, separators=(',', ': '))\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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": 1
}
# coding: utf-8
# In[7]:
from moztelemetry import get_pings_properties, get_one_ping_per_client
from moztelemetry.dataset import Dataset
import csv
import json
# In[2]:
Dataset.from_source("telemetry").schema
sc.defaultParallelism
# In[25]:
pings = Dataset.from_source("telemetry") .select( displayVersion='application.displayVersion',
pingSenderVersion='meta."X-PingSender-Version"',
processType='payload.processType',
osName='environment.system.os.name') \
.where(docType='crash') \
.where(submissionDate="20180401") \
.where(appUpdateChannel="beta") \
.records(sc)
# In[26]:
versions = {}
pingsender_versions = set()
for p in pings.collect():
pingsender_version = p['pingSenderVersion'] or 'none'
osname = p['osName']
version = str(p['displayVersion']) + '/' + pingsender_version
if p['processType'] != 'main':
continue
if not versions.get(osname):
versions[osname] = {}
if not versions[osname].get(version):
versions[osname][version] = 0
versions[osname][version] += 1
print json.dumps(versions, sort_keys=True,
indent=4, separators=(',', ': '))
# In[ ]:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment