feat(log): 新增 ul_debug_log_position 表(migration+scheme+model)

This commit is contained in:
augushong
2026-08-16 07:28:27 +08:00
parent 31ca29af1b
commit 7ff83587b6
3 changed files with 114 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
<?php
use think\migration\Migrator;
/**
* 调试日志 - 文件读取位置表
*
* 记录每个 debug 日志文件的 inode/offset/最近读取时间/失败计数等增量读取状态。
* 唯一键 uniq_node_file(node_id, file_path):多节点导各自文件互不覆盖。
*/
class DebugLogPosition extends Migrator
{
public function change()
{
$table = $this->table('debug_log_position', ['id' => false, 'primary_key' => ['id']])
->setComment('调试日志文件读取位置(增量读取状态)')
->addColumn('id', 'integer', ['limit' => 11, 'null' => false, 'signed' => false, 'identity' => true, 'comment' => '主键ID'])
->addColumn('node_id', 'string', ['limit' => 64, 'null' => false, 'default' => '', 'comment' => '节点ID区分不同采集节点'])
->addColumn('file_path', 'string', ['limit' => 500, 'null' => false, 'comment' => '日志文件绝对路径'])
->addColumn('inode', 'biginteger', ['default' => 0, 'comment' => '文件 inode用于检测日志轮转', 'signed' => false])
->addColumn('offset', 'biginteger', ['default' => 0, 'comment' => '上次读取到的字节偏移', 'signed' => false])
->addColumn('last_read_time', 'integer', ['limit' => 11, 'default' => 0, 'comment' => '上次读取时间戳', 'signed' => false])
->addColumn('last_line_hash', 'string', ['limit' => 32, 'default' => '', 'comment' => '上次最后一行的 md5 哈希(容错校验)'])
->addColumn('parse_fail_count', 'integer', ['limit' => 11, 'default' => 0, 'comment' => '解析失败累计次数', 'signed' => false])
->addColumn('parse_fail_samples', 'text', ['null' => true, 'comment' => '解析失败样本行(最多保留若干条)'])
->addColumn('create_time', 'integer', ['limit' => 11, 'comment' => '创建时间戳', 'signed' => false])
->addColumn('update_time', 'integer', ['limit' => 11, 'comment' => '更新时间戳', 'signed' => false])
->addIndex(['node_id', 'file_path'], ['unique' => true, 'name' => 'uniq_node_file'])
->create();
}
}