|
39 | 39 | transform_perf_key, |
40 | 40 | transform_das_key, |
41 | 41 | json_array_to_csv, |
| 42 | + json_array_to_markdown, |
42 | 43 | get_rds_client, |
43 | 44 | get_vpc_client, |
44 | 45 | get_bill_client, get_das_client, convert_datetime_to_timestamp, current_request_headers) |
@@ -1449,18 +1450,26 @@ async def describe_monitor_metrics( |
1449 | 1450 | response = client.call_api(params, req, util_models.RuntimeOptions()) |
1450 | 1451 | response_data = response['body']['Data'] |
1451 | 1452 | timestamp_map = {} |
| 1453 | + resp_metrics_list = set() |
1452 | 1454 | for metric in response_data: |
1453 | 1455 | name = metric["Name"] |
1454 | 1456 | values = metric["Value"] |
1455 | 1457 | timestamps = metric["Timestamp"] |
| 1458 | + resp_metrics_list.add(name) |
1456 | 1459 | for timestamp, value in zip(timestamps, values): |
1457 | 1460 | dt = transform_timestamp_to_datetime(timestamp) |
1458 | 1461 | if dt not in timestamp_map: |
1459 | 1462 | timestamp_map[dt] = {} |
1460 | 1463 | timestamp_map[dt][name] = value |
1461 | 1464 |
|
1462 | | - timestamp_list = [{"datetime": dt, **values} for dt, values in timestamp_map.items()] |
1463 | | - return json_array_to_csv(timestamp_list) |
| 1465 | + headers = sorted(list(resp_metrics_list)) |
| 1466 | + datas = [] |
| 1467 | + for dt in sorted(timestamp_map.keys()): |
| 1468 | + value_map = timestamp_map[dt] |
| 1469 | + value_map["datetime"] = dt |
| 1470 | + datas.append(value_map) |
| 1471 | + headers.insert(0, "datetime") |
| 1472 | + return json_array_to_markdown(headers, datas) |
1464 | 1473 | except Exception as e: |
1465 | 1474 | logger.error(f"Error occurred: {str(e)}") |
1466 | 1475 | raise e |
|
0 commit comments