Skip to content

Commit 5e32661

Browse files
seolminseolmin@megazone.com
authored andcommitted
feat: apply unary stream in cloud logging connector
Signed-off-by: seolmin@megazone.com <seolmin@mz.co.kr>
1 parent 0c4310b commit 5e32661

2 files changed

Lines changed: 20 additions & 17 deletions

File tree

src/cloudforet/monitoring/connector/cloud_logging_connector.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,46 +12,49 @@ def __init__(self, **kwargs):
1212
super().__init__(**kwargs)
1313

1414
def list_log_entries(self, params):
15-
print(params)
1615
query = params['query']
17-
start = params['start']
18-
end = params['end']
16+
start = params['start'].strftime("%Y-%m-%dT%H:%M:%SZ")
17+
end = params['end'].strftime("%Y-%m-%dT%H:%M:%SZ")
1918

20-
_query = {
19+
body = {
20+
'resource_names': f'projects/{self.project_id}',
2121
'filter': self._generate_logging_filter(query, start, end),
2222
'orderBy': 'timestamp desc'
2323
}
24-
print(_query)
25-
request = self.client.entries().list(**_query)
2624

27-
logs = []
25+
request = self.client.entries().list(body=body)
26+
2827
while request is not None:
2928
response = request.execute()
3029
logs = [log for log in response.get('entries', [])]
30+
yield logs
3131
request = self.client.entries().list_next(previous_request=request, previous_response=response)
32-
return logs
3332

3433
@staticmethod
3534
def _generate_logging_filter(query, start, end):
3635
logging_filter = ''
37-
log_filters = query.get('filters', [])
36+
log_filters = query.get('filter', [])
3837
for log_filter in log_filters:
38+
3939
_filter = []
4040
resource_type = log_filter.get('resource_type')
4141
labels = log_filter.get('labels', {})
42+
4243
if resource_type:
43-
_filter.append(f'resource.type={resource_type}')
44+
_filter.append(f'resource.type="{resource_type}"')
45+
4446
if labels:
45-
for key, value in labels.items():
46-
_filter.append(f'{key}={value}')
47+
for label in labels:
48+
_filter.append(f'{label["key"]}="{label["value"]}"')
49+
4750
if logging_filter:
4851
logging_filter += f' OR ({" AND ".join(_filter)})'
4952
else:
5053
logging_filter += f'({" AND ".join(_filter)})'
5154

5255
if logging_filter:
53-
logging_filter += f' AND timestamp >= "{start}" AND timestamp <= "{end}"'
56+
logging_filter += f' AND timestamp>="{start}" AND timestamp<="{end}"'
5457
else:
55-
logging_filter += f'timestamp >= "{start}" AND timestamp <= "{end}"'
58+
logging_filter += f'timestamp>="{start}" AND timestamp<="{end}"'
5659

5760
return logging_filter

src/cloudforet/monitoring/manager/monitoring_manager.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def __init__(self, transaction):
1010
super().__init__(transaction)
1111

1212
def list_logs(self, params):
13-
cloud_logging_conn: CloudLoggingConnector = self.locator.get_connector(CloudLoggingConnector, **params)
13+
cloud_logging_conn: CloudLoggingConnector = self.locator.get_connector('CloudLoggingConnector', **params)
1414

15-
logs = cloud_logging_conn.list_log_entries(params)
16-
print(logs)
15+
for logs in cloud_logging_conn.list_log_entries(params):
16+
print(logs)

0 commit comments

Comments
 (0)