Skip to content

Commit 7dd3cb9

Browse files
authored
Merge pull request #1490 from rafaelweingartner/fix_execessive_warning_logs
Clean excessive warnings logs
2 parents 897b85c + 5d3b549 commit 7dd3cb9

2 files changed

Lines changed: 17 additions & 8 deletions

File tree

gnocchi/indexer/sqlalchemy.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@ def list_metrics(self, details=False, status='active',
814814
if policy_filter or resource_policy_filter:
815815
q = q.filter(sqlalchemy.or_(policy_f, resource_policy_f))
816816

817-
sort_keys, sort_dirs = self._build_sort_keys(sorts, ['id'])
817+
sort_keys, sort_dirs = self._build_sort_keys(sorts, ['id', 'name', 'resource_id'])
818818

819819
if marker:
820820
metric_marker = self.list_metrics(
@@ -1234,15 +1234,23 @@ def _get_history_result_mapper(self, session, resource_type,
12341234
union_stmt = sqlalchemy.union(s1, s2)
12351235
stmt = union_stmt.alias("result")
12361236

1237+
stmt.info = {'oslodb_unique_keys': [set(['id', 'revision'])]}
1238+
12371239
class Result(base.ResourceJsonifier, base.GnocchiBase):
12381240
def __iter__(self):
12391241
return iter((key, getattr(self, key)) for key in stmt.c.keys())
12401242

1243+
# We are always registering a new mapper for the same Class.
1244+
# Therefore, a lot of warnings are generated in SQLalchemy.
1245+
# To avoid such issues, and also a memory leak, we can clean
1246+
# the previously registered ones.
1247+
mapper_reg.dispose()
12411248
mapper_reg.map_imperatively(
12421249
Result, stmt, primary_key=[stmt.c.id, stmt.c.revision],
12431250
properties={
12441251
'metrics': sqlalchemy.orm.relationship(
12451252
Metric,
1253+
overlaps="metrics,resource",
12461254
primaryjoin=sqlalchemy.and_(
12471255
Metric.resource_id == stmt.c.id,
12481256
Metric.status == 'active'),

gnocchi/rest/aggregates/api.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,8 @@ def add_measure(self, measure, date_map, start, stop):
211211
self.measures.append(measure)
212212

213213
def join_sequential_groups(self, group):
214-
group.sort(key=lambda key: key['search_start'])
214+
group.sort(key=lambda key: utils.to_timestamp(key['search_start']) if key['search_start'] else None)
215+
215216
new_group = []
216217
last_it = None
217218
for it in group:
@@ -360,17 +361,17 @@ def truncate_resource_time_window(self, value, is_first=False):
360361
value['search_start'] = self.start
361362
elif self.start:
362363
if value['search_start']:
363-
search_start = numpy.datetime64(value['search_start'])
364-
value['search_start'] = max(search_start, self.start)
364+
search_start = utils.to_timestamp(value['search_start'])
365+
value['search_start'] = max(search_start, utils.to_timestamp(self.start))
365366
else:
366-
value['search_start'] = self.start
367+
value['search_start'] = utils.to_timestamp(self.start)
367368

368369
if self.end:
369370
if value['search_end']:
370-
search_end = numpy.datetime64(value['search_end'])
371-
value['search_end'] = min(search_end, self.end)
371+
search_end = utils.to_timestamp(value['search_end'])
372+
value['search_end'] = min(search_end, utils.to_timestamp(self.end))
372373
else:
373-
value['search_end'] = self.end
374+
value['search_end'] = utils.to_timestamp(self.end)
374375

375376
LOG.debug("Timewindow of object [%s] after truncating.", value)
376377

0 commit comments

Comments
 (0)