优化项目整合内容
This commit is contained in:
@@ -13,11 +13,13 @@ from .config_manager import (
|
||||
get_config_group_by_id, delete_config_group,
|
||||
save_query_history, get_query_history,
|
||||
get_query_history_by_id, delete_query_history,
|
||||
batch_delete_query_history,
|
||||
# Redis配置管理
|
||||
REDIS_DEFAULT_CONFIG, save_redis_config_group, get_redis_config_groups,
|
||||
get_redis_config_group_by_id, delete_redis_config_group,
|
||||
save_redis_query_history, get_redis_query_history,
|
||||
get_redis_query_history_by_id, delete_redis_query_history,
|
||||
batch_delete_redis_query_history,
|
||||
parse_redis_config_from_yaml
|
||||
)
|
||||
from .cassandra_client import create_connection
|
||||
@@ -38,15 +40,26 @@ def setup_routes(app, query_log_collector):
|
||||
def index():
|
||||
return render_template('index.html')
|
||||
|
||||
@app.route('/test-config-load')
|
||||
def test_config_load():
|
||||
"""配置加载测试页面"""
|
||||
return send_from_directory('.', 'test_config_load.html')
|
||||
|
||||
@app.route('/db-compare')
|
||||
def db_compare():
|
||||
"""Cassandra数据库比对工具页面"""
|
||||
return render_template('db_compare.html')
|
||||
|
||||
@app.route('/redis-compare')
|
||||
def redis_compare():
|
||||
"""Redis数据比对工具页面"""
|
||||
return render_template('redis_compare.html')
|
||||
|
||||
@app.route('/redis-js-test')
|
||||
def redis_js_test():
|
||||
return render_template('redis_js_test.html')
|
||||
|
||||
@app.route('/redis-test')
|
||||
def redis_test():
|
||||
return render_template('redis_test.html')
|
||||
|
||||
# 基础API
|
||||
@app.route('/api/default-config')
|
||||
@@ -593,6 +606,41 @@ def setup_routes(app, query_log_collector):
|
||||
else:
|
||||
return jsonify({'success': False, 'error': '查询历史记录删除失败'}), 500
|
||||
|
||||
@app.route('/api/query-history/batch-delete', methods=['POST'])
|
||||
def api_batch_delete_query_history():
|
||||
"""批量删除Cassandra查询历史记录"""
|
||||
try:
|
||||
data = request.get_json()
|
||||
if not data:
|
||||
return jsonify({'success': False, 'error': '请求数据格式错误'}), 400
|
||||
|
||||
history_ids = data.get('history_ids', [])
|
||||
|
||||
# 验证参数
|
||||
if not history_ids:
|
||||
return jsonify({'success': False, 'error': '请提供要删除的历史记录ID列表'}), 400
|
||||
|
||||
if not isinstance(history_ids, list):
|
||||
return jsonify({'success': False, 'error': 'history_ids必须是数组'}), 400
|
||||
|
||||
# 验证所有ID都是整数
|
||||
try:
|
||||
history_ids = [int(id) for id in history_ids]
|
||||
except (ValueError, TypeError):
|
||||
return jsonify({'success': False, 'error': '历史记录ID必须是整数'}), 400
|
||||
|
||||
# 调用批量删除函数
|
||||
result = batch_delete_query_history(history_ids)
|
||||
|
||||
if result['success']:
|
||||
return jsonify(result)
|
||||
else:
|
||||
return jsonify(result), 500
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"批量删除Cassandra查询历史记录异常: {e}")
|
||||
return jsonify({'success': False, 'error': f'服务器内部错误: {str(e)}'}), 500
|
||||
|
||||
# 查询日志管理API
|
||||
@app.route('/api/query-logs', methods=['GET'])
|
||||
def api_get_query_logs():
|
||||
@@ -1087,22 +1135,89 @@ def setup_routes(app, query_log_collector):
|
||||
else:
|
||||
return jsonify({'success': False, 'error': 'Redis查询历史记录删除失败'}), 500
|
||||
|
||||
@app.route('/api/redis/query-history/batch-delete', methods=['POST'])
|
||||
def api_batch_delete_redis_query_history():
|
||||
"""批量删除Redis查询历史记录"""
|
||||
try:
|
||||
data = request.get_json()
|
||||
if not data or 'history_ids' not in data:
|
||||
return jsonify({'success': False, 'error': '请提供要删除的历史记录ID列表'}), 400
|
||||
|
||||
history_ids = data['history_ids']
|
||||
if not isinstance(history_ids, list):
|
||||
return jsonify({'success': False, 'error': '历史记录ID列表格式错误'}), 400
|
||||
|
||||
if not history_ids:
|
||||
return jsonify({'success': False, 'error': '没有要删除的记录'}), 400
|
||||
|
||||
# 验证ID都是整数
|
||||
try:
|
||||
history_ids = [int(id) for id in history_ids]
|
||||
except (ValueError, TypeError):
|
||||
return jsonify({'success': False, 'error': '历史记录ID格式错误'}), 400
|
||||
|
||||
result = batch_delete_redis_query_history(history_ids)
|
||||
|
||||
if result['success']:
|
||||
return jsonify(result)
|
||||
else:
|
||||
return jsonify(result), 500
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"批量删除Redis历史记录异常: {e}")
|
||||
return jsonify({'success': False, 'error': f'批量删除失败: {str(e)}'}), 500
|
||||
|
||||
# Redis查询日志API
|
||||
@app.route('/api/redis/query-logs', methods=['GET'])
|
||||
def api_get_redis_query_logs():
|
||||
"""获取Redis查询日志"""
|
||||
"""获取Redis查询日志,支持分组显示"""
|
||||
try:
|
||||
limit = request.args.get('limit', 100, type=int)
|
||||
# 获取最新的查询日志
|
||||
logs = query_log_collector.get_logs(limit=limit)
|
||||
|
||||
# 过滤Redis相关的日志
|
||||
redis_logs = []
|
||||
for log in logs:
|
||||
if (log.get('message') and 'redis' in log.get('message', '').lower()) or log.get('query_type') == 'redis':
|
||||
redis_logs.append(log)
|
||||
|
||||
return jsonify({'success': True, 'data': redis_logs})
|
||||
limit = request.args.get('limit', 1000, type=int)
|
||||
grouped = request.args.get('grouped', 'true').lower() == 'true' # 默认分组显示
|
||||
from_db = request.args.get('from_db', 'true').lower() == 'true' # 默认从数据库获取
|
||||
|
||||
if grouped:
|
||||
# 返回分组日志
|
||||
grouped_logs = query_log_collector.get_logs_grouped_by_batch(limit, from_db)
|
||||
# 过滤出Redis相关的日志组
|
||||
redis_grouped_logs = []
|
||||
for batch_id, logs in grouped_logs:
|
||||
# 过滤每个批次中的日志,只保留Redis相关的
|
||||
redis_logs = [
|
||||
log for log in logs
|
||||
if log.get('query_type') == 'redis' or
|
||||
(log.get('message') and 'redis' in log.get('message', '').lower())
|
||||
]
|
||||
if redis_logs: # 只有当批次中有Redis日志时才添加
|
||||
redis_grouped_logs.append([batch_id, redis_logs])
|
||||
|
||||
# 获取总数(用于统计)
|
||||
total_logs = sum(len(logs) for _, logs in redis_grouped_logs)
|
||||
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'data': redis_grouped_logs,
|
||||
'grouped': True,
|
||||
'total_logs': total_logs,
|
||||
'from_db': from_db
|
||||
})
|
||||
else:
|
||||
# 返回平铺日志
|
||||
logs = query_log_collector.get_logs(limit, from_db)
|
||||
# 过滤Redis相关的日志
|
||||
redis_logs = [
|
||||
log for log in logs
|
||||
if log.get('query_type') == 'redis' or
|
||||
(log.get('message') and 'redis' in log.get('message', '').lower())
|
||||
]
|
||||
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'data': redis_logs,
|
||||
'grouped': False,
|
||||
'total_logs': len(redis_logs),
|
||||
'from_db': from_db
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"获取Redis查询日志失败: {e}")
|
||||
return jsonify({'success': False, 'error': str(e)}), 500
|
||||
|
Reference in New Issue
Block a user