@cryptotaxi247 / netdata-1 / commits / 26f35c8a7

do not really delete a chart just suppress it if it's not updated

lgz committed Oct 22, 2017 at 00:35 UTC 26f35c8a75a58e936ec24fce49553f7f44c7cbb1
2 files changed +13 -2
python.d/python_modules/bases/FrameworkServices/SimpleService.py
+3 -1
@@ -211,10 +211,12 @@ class SimpleService(Thread, PythonDLimitedLogger, OldVersionCompatibility, objec
211
212 for chart in self.charts.penalty_exceeded(penalty_max=CHART_OBSOLETE_PENALTY):
213 safe_print(chart.obsolete())
214 - del self.charts[chart.params['id']]
214 + chart.suppress()
215 self.error("chart '{0}' was removed due to non updating".format(chart.name))
216
217 for chart in self.charts:
218 + if not chart.alive:
219 + continue
220 dimension_updated, variables_updated = str(), str()
221
222 for dimension in chart:
python.d/python_modules/bases/charts.py
+10 -1
@@ -111,7 +111,7 @@ class Charts:
111 :param penalty_max: <int>
112 :return:
113 """
114 - return (chart for chart in self if chart.penalty > penalty_max)
114 + return (chart for chart in self if chart.penalty > penalty_max and chart.alive)
115
116 def add_chart(self, params):
117 """
@@ -153,6 +153,7 @@ class Chart:
153
154 self.dimensions = list()
155 self.variables = set()
156 + self.alive = True
157 self.penalty = 0
158
159 def __repr__(self):
@@ -167,6 +168,13 @@ class Chart:
168 def __contains__(self, item):
169 return item in [repr(d) for d in self.dimensions]
170
171 + def suppress(self):
172 + self.alive = False
173 +
174 + def unsuppress(self):
175 + self.penalty = 0
176 + self.alive = True
177 +
178 def add_variable(self, variable):
179 """
180 :param variable: <list>
@@ -193,6 +201,7 @@ class Chart:
201 :return:
202 """
203 dim = self.add_dimension(dimension)
204 + self.unsuppress()
205 safe_print(self.create(dim))
206
207 def create(self, dimension=None):