Skip to content

Commit 66e70fc

Browse files
authored
Merge pull request #6 from kang2453/master
refactor: stackdriver filter logic
2 parents 99cfeee + 29e55c6 commit 66e70fc

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

src/spaceone/monitoring/connector/google_cloud_connector/google_cloud_monitoring.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def list_metrics(self, query):
2424
'name': query['name'],
2525
'filter': self.set_metric_filter(metric_filter)
2626
}
27+
# print(f"Filter:{_query.get("filter")}")
2728

2829
for gc_metric in self.list_metric_descriptors(_query):
2930
metric_kind = gc_metric.get('metricKind', '')
@@ -108,17 +109,22 @@ def list_metrics_time_series(self, metric_query, metric, start, end, period, sta
108109
try:
109110
name = _query['name']
110111
_filter = _query['filter']
111-
_merge_filter = f"metric.type = starts_with(\"{_filter['metric_type']}\")"
112+
# _merge_filter = f"metric.type = starts_with(\"{_filter['metric_type']}\")"
113+
_merge_filter = f'metric.type = "{_filter['metric_type']}"'
112114

113115
or_filter_list = []
114116
for _label in _filter.get('labels', []):
115117
or_filter_list.append(f"{_label['key']} = \"{_label['value']}\"")
116118

117-
or_merge_filter = ' OR '.join(or_filter_list)
118-
_metric_filter = ' AND '.join([_merge_filter, or_merge_filter])
119+
# or_merge_filter = ' OR '.join(or_filter_list)
120+
# _metric_filter = ' AND '.join([_merge_filter, or_merge_filter])
121+
or_merge_filter = ' '.join(or_filter_list)
122+
_metric_filter = ' '.join([_merge_filter, or_merge_filter])
123+
119124

120125
query = self.get_metric_data_query(name, _metric_filter, metric, start, end, period, stat)
121126
_LOGGER.debug(f'[list_metrics_time_series] query: {query}')
127+
# print(f"list_metrics_time_series:{query}")
122128

123129
response = self.client.projects().timeSeries().list(**query).execute()
124130
response_data.update({'unit': response.get('unit')})
@@ -176,14 +182,18 @@ def get_metric_data_query(name, metric_filter, metric, start, end, period, stat)
176182

177183
@staticmethod
178184
def set_metric_filter(metric_filter):
179-
_metric_filter = f"metric.type = starts_with(\"{metric_filter['metric_type']}\")"
185+
# _metric_filter = f"metric.type = starts_with(\"{metric_filter['metric_type']}\")"
186+
_metric_filter = f'metric.type : "{metric_filter['metric_type']}" '
187+
180188

181189
filter_list = []
182190
for _label in metric_filter.get('labels', []):
183191
filter_list.append(f"{_label['key']} = \"{_label['value']}\"")
184192

185-
or_merge_filter = ' OR '.join(filter_list)
186-
_metric_filter = ' AND '.join([_metric_filter, or_merge_filter])
193+
# or_merge_filter = ' OR '.join(filter_list)
194+
# _metric_filter = ' AND '.join([_metric_filter, or_merge_filter])
195+
or_merge_filter = ' '.join(filter_list)
196+
_metric_filter = ' '.join([_metric_filter, or_merge_filter])
187197

188198
return _metric_filter
189199

src/spaceone/monitoring/service/metric_service.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ def list(self, params):
3333
Returns:
3434
plugin_metrics_response (dict)
3535
"""
36-
metrics_info = self.google_mgr.list_metrics(params.get('schema', DEFAULT_SCHEMA), params['options'],
37-
params['secret_data'], params['query'])
36+
metrics_info = self.google_mgr.list_metrics(
37+
params.get('schema', DEFAULT_SCHEMA), params['options'],
38+
params['secret_data'], params['query'])
3839

3940
return self.metric_mgr.make_metrics_response(metrics_info)
4041

@@ -61,9 +62,9 @@ def get_data(self, params):
6162
plugin_metric_data_response (dict)
6263
"""
6364
metric_data_info = self.google_mgr.get_metric_data(params.get('schema', DEFAULT_SCHEMA), params['options'],
64-
params['secret_data'],
65-
params['metric_query'], params['metric'],
66-
params['start'], params['end'], params.get('period'),
67-
params.get('stat'))
65+
params['secret_data'],
66+
params['metric_query'], params['metric'],
67+
params['start'], params['end'], params.get('period'),
68+
params.get('stat'))
6869

6970
return self.metric_mgr.make_metric_data_response(metric_data_info)

0 commit comments

Comments
 (0)