Skip to content

Instantly share code, notes, and snippets.

@rameshdharan
Created November 14, 2016 22:10
Show Gist options
  • Save rameshdharan/c0194f51aff4094bf1b9304e5ddec64d to your computer and use it in GitHub Desktop.
Save rameshdharan/c0194f51aff4094bf1b9304e5ddec64d to your computer and use it in GitHub Desktop.
Patch to backport noNullPoints support to Graphite webapp 0.9.15
diff --git a/webapp/graphite/render/views.py b/webapp/graphite/render/views.py
index 62ad20e..b15b012 100644
--- a/webapp/graphite/render/views.py
+++ b/webapp/graphite/render/views.py
@@ -153,6 +153,15 @@ def renderView(request):
timestamps = range(int(series.start), int(series.end) + 1, int(series.step))
datapoints = zip(series, timestamps)
series_data.append(dict(target=series.name, datapoints=datapoints))
+ elif 'noNullPoints' in requestOptions and any(data):
+ for series in data:
+ values = []
+ for (index,v) in enumerate(series):
+ if v is not None:
+ timestamp = series.start + (index * series.step)
+ values.append((v,timestamp))
+ if len(values) > 0:
+ series_data.append(dict(target=series.name, datapoints=values))
else:
for series in data:
timestamps = range(int(series.start), int(series.end) + 1, int(series.step))
@@ -264,6 +273,8 @@ def parseOptions(request):
requestOptions['noCache'] = True
if 'maxDataPoints' in queryParams and queryParams['maxDataPoints'].isdigit():
requestOptions['maxDataPoints'] = int(queryParams['maxDataPoints'])
+ if 'noNullPoints' in queryParams:
+ requestOptions['noNullPoints'] = True
requestOptions['localOnly'] = queryParams.get('local') == '1'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment