mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-29 08:42:18 +01:00
63 lines
1.8 KiB
Python
63 lines
1.8 KiB
Python
import os
|
|
import urllib
|
|
import urllib2
|
|
import sys
|
|
|
|
try:
|
|
import json
|
|
except:
|
|
import simplejson as json # need simplejson for python < 2.6
|
|
|
|
sys.path.append( "." )
|
|
sys.path.append( ".." )
|
|
sys.path.append( "../../" )
|
|
sys.path.append( "../../../" )
|
|
|
|
|
|
import settings
|
|
|
|
def machine_info(extra_info=""):
|
|
"""Get a dict representing the "machine" section of a benchmark result.
|
|
|
|
ie:
|
|
{
|
|
"os_name": "OS X",
|
|
"os_version": "10.5",
|
|
"processor": "2.4 GHz Intel Core 2 Duo",
|
|
"memory": "3 GB 667 MHz DDR2 SDRAM",
|
|
"extra_info": "Python 2.6"
|
|
}
|
|
|
|
Must have a settings.py file on sys.path that defines "processor" and "memory"
|
|
variables.
|
|
"""
|
|
machine = {}
|
|
(machine["os_name"], _, machine["os_version"], _, _) = os.uname()
|
|
machine["processor"] = settings.processor
|
|
machine["memory"] = settings.memory
|
|
machine["extra_info"] = extra_info
|
|
return machine
|
|
|
|
def post_data(data, machine_extra_info="", post_url="http://mongo-db.appspot.com/benchmark"):
|
|
"""Post a benchmark data point.
|
|
|
|
data should be a Python dict that looks like:
|
|
{
|
|
"benchmark": {
|
|
"project": "http://github.com/mongodb/mongo-python-driver",
|
|
"name": "insert test",
|
|
"description": "test inserting 10000 documents with the C extension enabled",
|
|
"tags": ["insert", "python"]
|
|
},
|
|
"trial": {
|
|
"server_hash": "4f5a8d52f47507a70b6c625dfb5dbfc87ba5656a",
|
|
"client_hash": "8bf2ad3d397cbde745fd92ad41c5b13976fac2b5",
|
|
"result": 67.5,
|
|
"extra_info": "some logs or something"
|
|
}
|
|
}
|
|
"""
|
|
data["machine"] = machine_info(machine_extra_info)
|
|
urllib2.urlopen(post_url, urllib.urlencode({"payload": json.dumps(data)}))
|
|
return data
|