Skip to content

Commit

Permalink
Now start and stop for queries support both date str and datetime.
Browse files Browse the repository at this point in the history
  • Loading branch information
tsileo committed Oct 1, 2013
1 parent 8341c5e commit 9f84dd6
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 21 deletions.
47 changes: 27 additions & 20 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Overview
>>> c.event('sample_data')
[{u'time': u'2012-10-01T13:04:04.453Z'}, {u'time': u'2012-10-01T13:04:39.725Z'}]
>>> c.event('sample_data(myval)'')
>>> c.event('sample_data(myval)')
[{u'data': {u'myval': 10}, u'time': u'2012-10-01T13:04:04.453Z'}, {u'data': {u'myval': 20}, u'time': u'2012-10-01T13:04:39.725Z'}]
>>> c.metric('sum(sample_data)', step=ONE_HOUR, start='2012-10-01')
Expand Down Expand Up @@ -91,7 +91,7 @@ Usage
# Request metrics
cube.metric('sum(myevent(temp))', step='36e5', start='2013-9-01'))
# or
cube.metric('sum(myevent(temp))', step=ONE_HOUR, start='2013-9-01'))
cube.metric('sum(myevent(temp))', step=ONE_HOUR, start=datetime(2013, 9, 1))
# Request known event types
cube.types()
Expand All @@ -105,24 +105,6 @@ Usage
cube.metric(Sum(temp), step=ONE_HOUR, start='2013-10-1')
Metric resolutions shortcut
---------------------------

- **TEN_SECOND** for **1e4** - 10-second
- **ONE_MINUTE** for **6e4** - 1-minute
- **FIVE_MINUTE** for **3e5** - 5-minute
- **ONE_HOUR** for **36e5** - 1-hour
- **ONE_DAY** for **864e5** - 1-day

::

from cube import ONE_HOUR, FIVE_MINUTE

Time utils
----------



Event helper
------------

Expand Down Expand Up @@ -151,6 +133,31 @@ Event helper
# => my_event.metric('sum(myevent(temp).gt(temp, 15))')
Metric resolutions shortcut
---------------------------

- **TEN_SECOND** for **1e4** - 10-second
- **ONE_MINUTE** for **6e4** - 1-minute
- **FIVE_MINUTE** for **3e5** - 5-minute
- **ONE_HOUR** for **36e5** - 1-hour
- **ONE_DAY** for **864e5** - 1-day

::

from cube import ONE_HOUR, FIVE_MINUTE

Time utils
----------

::

from cube import ONE_HOUR
from cube.time_utils import timeago


c.metric('sum(myevent(key))', step=ONE_HOUR, start=timeago('6h'))


Changelog
=========

Expand Down
14 changes: 13 additions & 1 deletion cube/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,21 @@ def put(self, event_type, event_data={}, **kwargs):
return [event]

def make_query(self, query_type, expression, **kwargs):
"""
Actually perform the query,
try to convert datetime to isoformat on the fly
"""
data = dict(expression=str(expression),
stop=kwargs.get('stop', datetime.utcnow().isoformat()))
stop=kwargs.get('stop', datetime.utcnow()))
data.update(kwargs)

for k in ['start', 'stop']:
if k in data:
try:
data[k] = data[k].isoformat()
except AttributeError:
pass

r = requests.get(self.evaluator_url + query_type, params=data)
r.raise_for_status()

Expand Down

0 comments on commit 9f84dd6

Please sign in to comment.