feat: align with upstream 1.5.9.9
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import { getInstanceId } from '~~/server/utils/instance-id'
|
||||
import { isTelemetryEnabled } from '~~/server/utils/telemetry'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
setHeader(event, 'Cache-Control', 'no-store')
|
||||
|
||||
const instanceId = await getInstanceId()
|
||||
const telemetryEnabled = await isTelemetryEnabled()
|
||||
|
||||
return {
|
||||
success: true,
|
||||
data: {
|
||||
instanceId,
|
||||
telemetryEnabled
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,12 @@
|
||||
import { getServerLocation } from '../../utils/geo'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
// 缓存 1 小时,避免频繁请求外部 IP 服务
|
||||
setHeader(event, 'Cache-Control', 'public, max-age=3600, s-maxage=3600')
|
||||
|
||||
const location = await getServerLocation()
|
||||
return {
|
||||
success: true,
|
||||
data: location
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,40 @@
|
||||
import { defineEventHandler } from 'h3'
|
||||
import { databaseManager } from '~~/server/utils/database-manager'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
console.log('[Reconnect API] 收到强制重连请求')
|
||||
|
||||
// 测试数据库连接
|
||||
const connectionStatus = await databaseManager.getConnectionStatus()
|
||||
const poolStatus = await databaseManager.getConnectionPoolStatus()
|
||||
|
||||
if (connectionStatus.connected) {
|
||||
console.log('[Reconnect API] 数据库连接正常')
|
||||
return {
|
||||
success: true,
|
||||
message: '数据库连接正常',
|
||||
connectionStatus,
|
||||
poolStatus,
|
||||
timestamp: new Date().toISOString()
|
||||
}
|
||||
} else {
|
||||
console.log('[Reconnect API] 数据库连接异常')
|
||||
return {
|
||||
success: false,
|
||||
message: '数据库连接异常',
|
||||
connectionStatus,
|
||||
poolStatus,
|
||||
timestamp: new Date().toISOString()
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('[Reconnect API] 重连过程中出错:', error)
|
||||
return {
|
||||
success: false,
|
||||
message: '重连过程中出错: ' + error.message,
|
||||
error: error.message,
|
||||
timestamp: new Date().toISOString()
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,66 @@
|
||||
import { defineEventHandler } from 'h3'
|
||||
import { databaseManager } from '~~/server/utils/database-manager'
|
||||
import { getInstanceId } from '~~/server/utils/instance-id'
|
||||
import { isTelemetryEnabled } from '~~/server/utils/telemetry'
|
||||
|
||||
export default defineEventHandler(async () => {
|
||||
try {
|
||||
const instanceId = await getInstanceId()
|
||||
const telemetryEnabled = await isTelemetryEnabled()
|
||||
|
||||
// 获取数据库连接状态
|
||||
const dbStatus = await databaseManager.getConnectionStatus()
|
||||
let poolStatus = null
|
||||
try {
|
||||
poolStatus = await databaseManager.getConnectionPoolStatus()
|
||||
} catch (poolError) {
|
||||
console.warn('[System Status] Failed to get database pool status:', poolError)
|
||||
}
|
||||
|
||||
// 数据库连接测试结果
|
||||
const dbTestResult = dbStatus.connected
|
||||
const dbError = dbStatus.connected ? null : dbStatus.error
|
||||
|
||||
// 获取系统信息
|
||||
const systemInfo = {
|
||||
timestamp: new Date().toISOString(),
|
||||
uptime: process.uptime(),
|
||||
nodeVersion: process.version,
|
||||
platform: process.platform,
|
||||
arch: process.arch,
|
||||
memory: {
|
||||
used: Math.round(process.memoryUsage().heapUsed / 1024 / 1024),
|
||||
total: Math.round(process.memoryUsage().heapTotal / 1024 / 1024),
|
||||
external: Math.round(process.memoryUsage().external / 1024 / 1024)
|
||||
}
|
||||
}
|
||||
|
||||
// 返回完整的系统状态
|
||||
return {
|
||||
status: 'ok',
|
||||
instance: {
|
||||
instanceId,
|
||||
telemetryEnabled
|
||||
},
|
||||
database: {
|
||||
connected: dbTestResult,
|
||||
poolStatus: poolStatus,
|
||||
connectionInfo: dbStatus,
|
||||
error: dbError
|
||||
},
|
||||
system: systemInfo
|
||||
}
|
||||
} catch (error) {
|
||||
const errorMessage = error instanceof Error ? error.message : 'Unknown error'
|
||||
|
||||
return {
|
||||
status: 'error',
|
||||
error: errorMessage,
|
||||
database: {
|
||||
connected: false,
|
||||
poolStatus: null,
|
||||
error: errorMessage
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user