链路追踪的实现

前言

使用skynet开发都会启动多个lua服务,如果加上使用远程集群调用的话,服务就更多了,如果被调用方存在多链路,出问题时,无法快速定位问题源头。链接追踪通过给处理添加全局唯一的tag标记,在链路上加上详细的日志,从而达到通过日志快速分析问题的手段。云大为skynet增加过链路追踪,通过使用者主动调用skynet.trace,从而开启一次详细的trace日志。trace_tag是服务地址加递增编号生成,trace会在call,request,response,end,resume时打印日志,trace服务间是通过发送前置的trace消息实现。cluster trace trace_tag通过 hostname pid nodename + 之前单服创建方式生成全局唯一tag(<TRACE (Ubuntu1626488-s1_center-47):00000063-7>)。那么为什么skynet已经有trace了,还需要额外实现呢。

重做原因

  1. 目前skynet的trace不太好用于生产环境,像call,request,response等等这些,生产环境开启的话,打印日志过多,而且trace会多发一个前置消息。
  2. 全局tag无法快速得知是哪个集群服务。
  3. 不适用于skynet_fly做的录像,我想生产环境不打印详细的trace,播放录像时可以打印。
  4. trace 信息不足,使用skynet大多使用lua服务,使用者大多用发送lua cmd消息,trace其实可以加上cmd打印。还有fork,timer,sleep,skynet.response,wait等等动作都需要补充tarce。

实现方案

trace_tag生成方式

直接使用之前做好的guid_util实现的fly_guid()函数,生成的guid是这样的01-0001-0000000e-6840415e-000001。服务类型-服务ID-lua服务地址-时间戳-递增编号。

1
2
3
4
5
6
7
---#desc fly风格GUID
---@return string 32字节的guid
function M.fly_guid()
assert(g_svr_type > 0 and g_svr_type <= TYPE_MAX)
assert(g_svr_id > 0 and g_svr_id <= ID_MAX)
return sformat('%02x-%04x-%s-%08x-%06x', g_svr_type, g_svr_id, g_self_address, get_time_incr())
end

通过 服务类型-服务ID-lua服务地址 能够快速得知触发来源。

tarce_tag的创建时机

一个新的执行流就创建一个新的tag,比如timer定时器到期,fork, 而对于call,send需要把tag传递。对于这些tag的创建和传递工作,已经在内部实现。tag绑定携程,传递没有继续采用skynet发送前置trace消息的方式,而是用lua消息前置参数的方式,通过重写skynet.pack,skynet.unpack,skynet.packstring,塞入和取出tag,从而做到不修改底层源码,不影响业务代码的情况下增加了tag参数的传递。用这个方式传递tag,可以做到重放录像时,开启trace。前置trace消息的方式因为生成环境一般都不会开启trace就不会记录到消息,重放录像自然也不能开启。

socket 消息的tag创建以及其他tag的创建时机

对于客户端的socket消息,skynet一般会用client自定义协议去接收处理,我们在自定义的dispatch函数头部调用skynet.set_trace_tag()即可创建tag。对于skynet_fly游戏房间架构,已经在对应的地方加上了。

未开启trace的日志展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
open log file./logs/server.log
#### # # # ### ## # ## # # #
# # # # # # # # # ##### # # # #
#### ## # # # #### # ##### # #
# # # # # # # # # # #
#### # # # # #### ### # ### #
https://github.com/huahua132/skynet_fly.git
[:00000002][20250605 10:51:15 50]LAUNCH snlua bootstrap
[:00000003][20250605 10:51:15 50]LAUNCH snlua launcher
[:00000004][20250605 10:51:15 59]LAUNCH snlua cdummy
[:00000005][20250605 10:51:15 67]LAUNCH harbor 0 4
[:00000006][20250605 10:51:15 67]LAUNCH snlua datacenterd
[:00000007][20250605 10:51:15 75]LAUNCH snlua service_mgr
[:00000008][20250605 10:51:15 87]LAUNCH snlua service_provider
[:00000009][20250605 10:51:15 95]LAUNCH snlua service_cell ltls_holder
[:0000000a][20250605 10:51:16 06]LAUNCH snlua main
[:0000000a][20250605 10:51:16 15]start AB_question!!!>>>>>>>>>>>>>>>>>
[:0000000b][20250605 10:51:16 15]LAUNCH snlua monitor_exit
[:0000000c][20250605 10:51:16 24]LAUNCH snlua contriner_mgr
[:0000000d][20250605 10:51:16 32]LAUNCH snlua debug_console 8888
[:0000000d][20250605 10:51:16 43]Start debug console at 127.0.0.1:8888
[:0000000e][20250605 10:51:16 43]LAUNCH snlua hot_container A_m 1 2025-06-05[10:51:16] 1749091876 1
[:0000000e][20250605 10:51:16 54][info][01-0001-0000000a-68410624-000000][A_m-1-1][../../service/hot_container.lua:172]"start begin"
[:0000000e][20250605 10:51:16 54][info][01-0001-0000000a-68410624-000000][A_m-1-1][../../service/hot_container.lua:255]"start end"

可以看到最下面的2条日志,tag 中有 0000000a 也就是说这两条日志 0000000a(main)服务中发起的。

开启trace的日志展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
[:00000002][20250605 19:43:50 95]LAUNCH snlua bootstrap
[:00000001][20250605 19:43:50 95]{luatrace}{01-0001-00000001-684182f6-000000}{82398200333902}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../service/log_service.lua:140 @../../skynet/lualib/skynet.lua:1208}
[:00000002][20250605 19:43:50 95]{luatrace}{01-0001-00000002-684182f6-000000}{82398205925319}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../skynet/service/bootstrap.lua:4 @../../skynet/lualib/skynet.lua:1208}
[:00000002][20250605 19:43:50 95]{luatrace}{01-0001-00000002-684182f6-000000}{82398205935019}{resume}{nil}{}
[:00000003][20250605 19:43:50 95]LAUNCH snlua launcher
[:00000002][20250605 19:43:50 95]{luatrace}{01-0001-00000002-684182f6-000000}{82398206028920}{call}{LAUNCH}{}
[:00000001][20250605 19:43:50 95]{luatrace}{01-0001-00000001-684182f6-000000}{82398206041320}{resume}{nil}{}
[:00000001][20250605 19:43:50 95]{luatrace}{01-0001-00000001-684182f6-000000}{82398206052320}{send}{LAUNCHOK}{}
[:00000001][20250605 19:43:50 95]{luatrace}{01-0001-00000001-684182f6-000000}{82398206056220}{end}{nil}{}
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000003-684182f7-000000}{82398307394642}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../skynet/service/launcher.lua:185 @../../skynet/lualib/skynet.lua:1208}
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000002-684182f6-000000}{82398307705143}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:00000004][20250605 19:43:51 05]LAUNCH snlua cdummy
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000002-684182f6-000000}{82398307722343}{end}{nil}{}
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000001-684182f6-000000}{82398308927946}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000001-684182f6-000000}{82398308945447}{end}{nil}{}
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000003-684182f7-000000}{82398309570449}{resume}{nil}{}
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000003-684182f7-000000}{82398309600449}{send}{LAUNCHOK}{}
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000003-684182f7-000000}{82398309605949}{end}{nil}{}
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000003-684182f7-000000}{82398310182750}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:51 05]{luatrace}{01-0001-00000003-684182f7-000000}{82398310187251}{end}{nil}{}
[:00000004][20250605 19:43:51 19]{luatrace}{01-0001-00000004-684182f7-000000}{82398451767002}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../skynet/service/cdummy.lua:68 @../../skynet/lualib/skynet.lua:1208}
[:00000004][20250605 19:43:51 20]{luatrace}{01-0001-00000004-684182f7-000000}{82398452823305}{resume}{nil}{}
[:00000005][20250605 19:43:51 20]LAUNCH harbor 0 4
[:00000004][20250605 19:43:51 20]{luatrace}{01-0001-00000004-684182f7-000000}{82398457761721}{send}{LAUNCHOK}{}
[:00000004][20250605 19:43:51 20]{luatrace}{01-0001-00000004-684182f7-000000}{82398457785521}{end}{nil}{}
[:00000003][20250605 19:43:51 20]{luatrace}{01-0001-00000004-684182f7-000000}{82398458213523}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:51 20]{luatrace}{01-0001-00000002-684182f6-000000}{82398458233423}{delay response}{nil}{}
[:00000003][20250605 19:43:51 20]{luatrace}{01-0001-00000004-684182f7-000000}{82398458237423}{end}{nil}{}
[:00000002][20250605 19:43:51 20]{luatrace}{01-0001-00000002-684182f6-000000}{82398458489623}{resume}{nil}{}
[:00000002][20250605 19:43:51 20]{luatrace}{01-0001-00000002-684182f6-000000}{82398458541624}{call}{LAUNCH}{ @../../skynet/service/bootstrap.lua:37 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:00000003][20250605 19:43:51 20]{luatrace}{01-0001-00000002-684182f6-000000}{82398458603424}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:00000006][20250605 19:43:51 20]LAUNCH snlua datacenterd
[:00000003][20250605 19:43:51 20]{luatrace}{01-0001-00000002-684182f6-000000}{82398458691824}{end}{nil}{}
[:00000006][20250605 19:43:51 38]{luatrace}{01-0001-00000006-684182f7-000000}{82398633542982}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../skynet/service/datacenterd.lua:96 @../../skynet/lualib/skynet.lua:1208}
[:00000006][20250605 19:43:51 38]{luatrace}{01-0001-00000006-684182f7-000000}{82398633862683}{resume}{nil}{}
[:00000006][20250605 19:43:51 38]{luatrace}{01-0001-00000006-684182f7-000000}{82398634019883}{send}{LAUNCHOK}{}
[:00000006][20250605 19:43:51 38]{luatrace}{01-0001-00000006-684182f7-000000}{82398634027983}{end}{nil}{}
[:00000003][20250605 19:43:51 38]{luatrace}{01-0001-00000006-684182f7-000000}{82398634259884}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:51 38]{luatrace}{01-0001-00000002-684182f6-000000}{82398634271584}{delay response}{nil}{}
[:00000003][20250605 19:43:51 38]{luatrace}{01-0001-00000006-684182f7-000000}{82398634274284}{end}{nil}{}
[:00000002][20250605 19:43:51 38]{luatrace}{01-0001-00000002-684182f6-000000}{82398634442384}{resume}{nil}{}
[:00000002][20250605 19:43:51 39]{luatrace}{01-0001-00000002-684182f6-000000}{82398641205706}{send}{REGISTER}{}
[:00000002][20250605 19:43:51 39]{luatrace}{01-0001-00000002-684182f6-000000}{82398641232606}{call}{LAUNCH}{ @../../skynet/service/bootstrap.lua:40 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:00000004][20250605 19:43:51 39]{luatrace}{01-0001-00000002-684182f6-000000}{82398641489507}{request}{REGISTER}{ @../../skynet/lualib/skynet.lua:1093}
[:00000004][20250605 19:43:51 39]{luatrace}{01-0001-00000002-684182f6-000000}{82398641503607}{end}{nil}{}
[:00000003][20250605 19:43:51 39]{luatrace}{01-0001-00000002-684182f6-000000}{82398641524807}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:00000007][20250605 19:43:51 39]LAUNCH snlua service_mgr
[:00000003][20250605 19:43:51 39]{luatrace}{01-0001-00000002-684182f6-000000}{82398641553807}{end}{nil}{}
[:00000007][20250605 19:43:51 52]{luatrace}{01-0001-00000007-684182f7-000000}{82398779875148}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../skynet/service/service_mgr.lua:198 @../../skynet/lualib/skynet.lua:1208}
[:00000007][20250605 19:43:51 53]{luatrace}{01-0001-00000007-684182f7-000000}{82398779956948}{resume}{nil}{}
[:00000007][20250605 19:43:51 53]{luatrace}{01-0001-00000007-684182f7-000000}{82398786878371}{send}{REGISTER}{}
[:00000007][20250605 19:43:51 53]{luatrace}{01-0001-00000007-684182f7-000000}{82398786898771}{send}{LAUNCHOK}{}
[:00000007][20250605 19:43:51 53]{luatrace}{01-0001-00000007-684182f7-000000}{82398786902271}{end}{nil}{}
[:00000004][20250605 19:43:51 53]{luatrace}{01-0001-00000007-684182f7-000000}{82398787128371}{request}{REGISTER}{ @../../skynet/lualib/skynet.lua:1093}
[:00000004][20250605 19:43:51 53]{luatrace}{01-0001-00000007-684182f7-000000}{82398787136771}{end}{nil}{}
[:00000003][20250605 19:43:51 53]{luatrace}{01-0001-00000007-684182f7-000000}{82398787149271}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:51 53]{luatrace}{01-0001-00000002-684182f6-000000}{82398787154371}{delay response}{nil}{}
[:00000003][20250605 19:43:51 53]{luatrace}{01-0001-00000007-684182f7-000000}{82398787156471}{end}{nil}{}
[:00000002][20250605 19:43:51 53]{luatrace}{01-0001-00000002-684182f6-000000}{82398787330472}{resume}{nil}{}
[:00000002][20250605 19:43:51 53]{luatrace}{01-0001-00000002-684182f6-000000}{82398787352572}{call}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1128 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:00000007][20250605 19:43:51 53]{luatrace}{01-0001-00000002-684182f6-000000}{82398787554973}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:00000007][20250605 19:43:51 53]{luatrace}{01-0001-00000002-684182f6-000000}{82398787568773}{call}{LAUNCH}{}
[:00000003][20250605 19:43:51 53]{luatrace}{01-0001-00000002-684182f6-000000}{82398787735573}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:00000008][20250605 19:43:51 53]LAUNCH snlua service_provider
[:00000003][20250605 19:43:51 53]{luatrace}{01-0001-00000002-684182f6-000000}{82398787754373}{end}{nil}{}
[:00000008][20250605 19:43:51 65]{luatrace}{01-0001-00000008-684182f7-000000}{82398902696040}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../skynet/service/service_provider.lua:104 @../../skynet/lualib/skynet.lua:1208}
[:00000008][20250605 19:43:51 65]{luatrace}{01-0001-00000008-684182f7-000000}{82398902924541}{resume}{nil}{}
[:00000008][20250605 19:43:51 65]{luatrace}{01-0001-00000008-684182f7-000000}{82398903027641}{send}{LAUNCHOK}{}
[:00000008][20250605 19:43:51 65]{luatrace}{01-0001-00000008-684182f7-000000}{82398903035141}{end}{nil}{}
[:00000003][20250605 19:43:51 65]{luatrace}{01-0001-00000008-684182f7-000000}{82398903359042}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398903367742}{delay response}{nil}{}
[:00000003][20250605 19:43:51 65]{luatrace}{01-0001-00000008-684182f7-000000}{82398903369942}{end}{nil}{}
[:00000007][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398903810143}{resume}{nil}{}
[:00000007][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398903959744}{response}{nil}{}
[:00000007][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398903984444}{end}{nil}{}
[:00000002][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398903999744}{resume}{nil}{}
[:00000002][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904046744}{call}{test}{ @../../skynet/lualib/skynet/service.lua:20 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:00000008][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904067544}{request}{test}{ @../../skynet/lualib/skynet.lua:1093}
[:00000008][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904071544}{response}{nil}{}
[:00000008][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904072844}{end}{nil}{}
[:00000002][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904076144}{resume}{nil}{}
[:00000002][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904088944}{call}{launch}{ @../../skynet/lualib/skynet/service.lua:30 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:00000008][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904096244}{request}{launch}{ @../../skynet/lualib/skynet.lua:1093}
[:00000008][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904143544}{call}{LAUNCH}{}
[:00000003][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904168045}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:00000009][20250605 19:43:51 65]LAUNCH snlua service_cell ltls_holder
[:00000003][20250605 19:43:51 65]{luatrace}{01-0001-00000002-684182f6-000000}{82398904246245}{end}{nil}{}
[:00000009][20250605 19:43:51 76]{luatrace}{01-0001-00000009-684182f7-000000}{82399018716410}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../skynet/service/service_cell.lua:20 @../../skynet/lualib/skynet.lua:1208}
[:00000009][20250605 19:43:51 76]{luatrace}{01-0001-00000009-684182f7-000000}{82399019124811}{resume}{nil}{}
[:00000009][20250605 19:43:51 76]{luatrace}{01-0001-00000009-684182f7-000000}{82399019364612}{send}{LAUNCHOK}{}
[:00000009][20250605 19:43:51 76]{luatrace}{01-0001-00000009-684182f7-000000}{82399019381312}{end}{nil}{}
[:00000003][20250605 19:43:51 76]{luatrace}{01-0001-00000009-684182f7-000000}{82399019710113}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:51 76]{luatrace}{01-0001-00000002-684182f6-000000}{82399019723413}{delay response}{nil}{}
[:00000003][20250605 19:43:51 76]{luatrace}{01-0001-00000009-684182f7-000000}{82399019727413}{end}{nil}{}
[:00000008][20250605 19:43:51 76]{luatrace}{01-0001-00000002-684182f6-000000}{82399019740613}{resume}{nil}{}
[:00000008][20250605 19:43:51 76]{luatrace}{01-0001-00000002-684182f6-000000}{82399019789713}{call}{init}{ @../../skynet/service/service_provider.lua:30 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:00000009][20250605 19:43:51 76]{luatrace}{01-0001-00000002-684182f6-000000}{82399019816713}{request}{init}{ @../../skynet/lualib/skynet.lua:1093}
[:00000009][20250605 19:43:51 80]{luatrace}{01-0001-00000002-684182f6-000000}{82399060989545}{response}{nil}{}
[:00000009][20250605 19:43:51 80]{luatrace}{01-0001-00000002-684182f6-000000}{82399061022645}{end}{nil}{}
[:00000008][20250605 19:43:51 81]{luatrace}{01-0001-00000002-684182f6-000000}{82399061305846}{resume}{nil}{}
[:00000008][20250605 19:43:51 81]{luatrace}{01-0001-00000002-684182f6-000000}{82399061333446}{response}{nil}{}
[:00000008][20250605 19:43:51 81]{luatrace}{01-0001-00000002-684182f6-000000}{82399061336446}{end}{nil}{}
[:00000002][20250605 19:43:51 81]{luatrace}{01-0001-00000002-684182f6-000000}{82399061456946}{resume}{nil}{}
[:00000002][20250605 19:43:51 81]{luatrace}{01-0001-00000002-684182f6-000000}{82399061485046}{call}{LAUNCH}{}
[:00000003][20250605 19:43:51 81]{luatrace}{01-0001-00000002-684182f6-000000}{82399061510846}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:0000000a][20250605 19:43:51 81]LAUNCH snlua main
[:00000003][20250605 19:43:51 81]{luatrace}{01-0001-00000002-684182f6-000000}{82399061619447}{end}{nil}{}
[:0000000a][20250605 19:43:51 95]{luatrace}{01-0001-0000000a-684182f7-000000}{82399202096895}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @./main.lua:4 @../../skynet/lualib/skynet.lua:1208}
[:0000000a][20250605 19:43:51 95]{luatrace}{01-0001-0000000a-684182f7-000000}{82399202496896}{resume}{nil}{}
[:0000000a][20250605 19:43:51 95]start AB_question!!!>>>>>>>>>>>>>>>>>
[:0000000a][20250605 19:43:51 95]{luatrace}{01-0001-0000000a-684182f7-000000}{82399202924997}{call}{GLAUNCH}{ @../../skynet/lualib/skynet.lua:1126 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:00000007][20250605 19:43:51 95]{luatrace}{01-0001-0000000a-684182f7-000000}{82399203243298}{request}{GLAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:00000007][20250605 19:43:51 95]{luatrace}{01-0001-0000000a-684182f7-000000}{82399203278398}{call}{LAUNCH}{}
[:00000003][20250605 19:43:51 95]{luatrace}{01-0001-0000000a-684182f7-000000}{82399203321798}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:0000000b][20250605 19:43:51 95]LAUNCH snlua monitor_exit
[:00000003][20250605 19:43:51 95]{luatrace}{01-0001-0000000a-684182f7-000000}{82399203581099}{end}{nil}{}
[:0000000b][20250605 19:43:52 08]{luatrace}{01-0001-0000000b-684182f8-000000}{82399338402132}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../service/monitor_exit.lua:47 @../../skynet/lualib/skynet.lua:1208}
[:0000000b][20250605 19:43:52 08]{luatrace}{01-0001-0000000b-684182f8-000000}{82399338744333}{resume}{nil}{}
[:0000000b][20250605 19:43:52 08]{luatrace}{01-0001-0000000b-684182f8-000000}{82399338901634}{send}{LAUNCHOK}{}
[:0000000b][20250605 19:43:52 08]{luatrace}{01-0001-0000000b-684182f8-000000}{82399338924134}{end}{nil}{}
[:00000003][20250605 19:43:52 08]{luatrace}{01-0001-0000000b-684182f8-000000}{82399339108734}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:52 08]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339127934}{delay response}{nil}{}
[:00000003][20250605 19:43:52 08]{luatrace}{01-0001-0000000b-684182f8-000000}{82399339132534}{end}{nil}{}
[:00000007][20250605 19:43:52 08]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339149634}{resume}{nil}{}
[:00000007][20250605 19:43:52 08]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339171034}{response}{nil}{}
[:00000007][20250605 19:43:52 08]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339175134}{end}{nil}{}
[:0000000a][20250605 19:43:52 08]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339186634}{resume}{nil}{}
[:0000000a][20250605 19:43:52 08]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339213435}{call}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1128 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:00000007][20250605 19:43:52 08]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339247235}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:00000007][20250605 19:43:52 08]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339260935}{call}{LAUNCH}{}
[:00000003][20250605 19:43:52 08]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339271335}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:0000000c][20250605 19:43:52 08]LAUNCH snlua contriner_mgr
[:00000003][20250605 19:43:52 09]{luatrace}{01-0001-0000000a-684182f7-000000}{82399339315035}{end}{nil}{}
[:0000000c][20250605 19:43:52 22]{luatrace}{01-0001-0000000c-684182f8-000001}{82399480866291}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../service/contriner_mgr.lua:434 @../../skynet/lualib/skynet.lua:1208}
[:0000000c][20250605 19:43:52 23]{luatrace}{01-0001-0000000c-684182f8-000001}{82399481339292}{resume}{nil}{}
[:0000000c][20250605 19:43:52 23]{luatrace}{01-0001-0000000c-684182f8-000001}{82399481531693}{send}{LAUNCHOK}{}
[:0000000c][20250605 19:43:52 23]{luatrace}{01-0001-0000000c-684182f8-000001}{82399481543693}{end}{nil}{}
[:00000003][20250605 19:43:52 23]{luatrace}{01-0001-0000000c-684182f8-000001}{82399482040594}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399482055794}{delay response}{nil}{}
[:00000003][20250605 19:43:52 23]{luatrace}{01-0001-0000000c-684182f8-000001}{82399482058794}{end}{nil}{}
[:00000007][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399482555296}{resume}{nil}{}
[:00000007][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399482580896}{response}{nil}{}
[:00000007][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399482587296}{end}{nil}{}
[:0000000a][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399483183798}{resume}{nil}{}
[:0000000a][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399483213398}{call}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1128 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:00000007][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399483246498}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:00000007][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399483262798}{call}{LAUNCH}{}
[:00000003][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399483779600}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:0000000d][20250605 19:43:52 23]LAUNCH snlua debug_console 8888
[:00000003][20250605 19:43:52 23]{luatrace}{01-0001-0000000a-684182f7-000000}{82399483818500}{end}{nil}{}
[:0000000d][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399662967877}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../skynet/service/debug_console.lua:143 @../../skynet/lualib/skynet.lua:1208}
[:0000000d][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399663290378}{resume}{nil}{}
[:0000000d][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399663695379}{sleep}{nil}{ @../../skynet/lualib/skynet/socket.lua:422 @../../skynet/lualib/skynet/socket.lua:53 @../../skynet/lualib/skynet.lua:587}
[:0000000d][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399664548382}{resume}{nil}{}
[:0000000d][20250605 19:43:52 41]Start debug console at 127.0.0.1:8888
[:0000000d][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399664617182}{sleep}{nil}{ @../../skynet/lualib/skynet/socket.lua:232 @../../skynet/lualib/skynet/socket.lua:53 @../../skynet/lualib/skynet.lua:587}
[:0000000d][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399664852683}{resume}{nil}{}
[:0000000d][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399664868483}{send}{LAUNCHOK}{}
[:0000000d][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399664894083}{end}{nil}{}
[:00000003][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399665146084}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399665172884}{delay response}{nil}{}
[:00000003][20250605 19:43:52 41]{luatrace}{01-0001-0000000d-684182f8-000000}{82399665178984}{end}{nil}{}
[:00000007][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399665511485}{resume}{nil}{}
[:00000007][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399665535685}{response}{nil}{}
[:00000007][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399665541185}{end}{nil}{}
[:0000000a][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399665775586}{resume}{nil}{}
[:0000000a][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399665819186}{call}{load_modules}{ @../../lualib/skynet-fly/contriner/contriner_launcher.lua:50 @../../skynet/lualib/skynet.lua:827 @../../skynet/lualib/skynet.lua:1401}
[:0000000c][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399666027887}{request}{load_modules}{ @../../skynet/lualib/skynet.lua:1093}
[:0000000c][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399668065193}{call}{LAUNCH}{}
[:00000003][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399668113893}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:0000000e][20250605 19:43:52 41]LAUNCH snlua hot_container A_m 1 2025-06-05[19:43:52] 1749123832 1
[:00000003][20250605 19:43:52 41]{luatrace}{01-0001-0000000a-684182f7-000000}{82399668173394}{end}{nil}{}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000000}{82399812448858}{timeout}{nil}{ @../../lualib/skynet-fly/loader.lua:78 @../../service/hot_container.lua:321 @../../skynet/lualib/skynet.lua:1208}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000000}{82399812691759}{resume}{nil}{}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000000}{82399812894559}{send}{LAUNCHOK}{}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000000}{82399812900559}{end}{nil}{}
[:00000003][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000000}{82399813170260}{request}{LAUNCHOK}{ @../../skynet/lualib/skynet.lua:1093}
[:00000003][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399813202260}{delay response}{nil}{}
[:00000003][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000000}{82399813212860}{end}{nil}{}
[:0000000c][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399813434561}{resume}{nil}{}
[:0000000c][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399813448661}{call}{start}{}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399813736462}{request}{start}{ @../../skynet/lualib/skynet.lua:1093}
[:0000000e][20250605 19:43:52 56][info][01-0001-0000000a-684182f7-000000][A_m-1-1][../../service/hot_container.lua:172]"start begin"
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000001}{82399813816262}{fork begin}{nil}{ @./module/A_m.lua:21 @../../lualib/skynet-fly/timer.lua:105 @../../skynet/lualib/skynet.lua:1018}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000002}{82399813824962}{fork begin}{nil}{ @../../lualib/skynet-fly/utils/skynet_util.lua:62 @../../service/hot_container.lua:182 @../../skynet/lualib/skynet.lua:1018}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000003}{82399813831462}{fork begin}{nil}{ @../../lualib/skynet-fly/utils/skynet_util.lua:62 @../../service/hot_container.lua:185 @../../skynet/lualib/skynet.lua:1018}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000004}{82399813844562}{fork begin}{nil}{ @../../service/hot_container.lua:246 @../../lualib/skynet-fly/client/contriner_client.lua:267 @../../skynet/lualib/skynet.lua:1018}
[:0000000e][20250605 19:43:52 56][info][01-0001-0000000a-684182f7-000000][A_m-1-1][../../service/hot_container.lua:255]"start end"
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399813851662}{response}{nil}{}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399813853562}{end}{nil}{}
[:0000000e][20250605 19:43:52 56]{luatrace}{01-0001-0000000e-684182f8-000001}{82399813864563}{sleep}{nil}{ @../../skynet/lualib/skynet.lua:1009 @../../lualib/skynet-fly/timer.lua:69 @../../skynet/lualib/skynet.lua:568}
[:0000000c][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399814209964}{resume}{nil}{}
[:0000000c][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399814254564}{call}{LAUNCH}{}
[:00000003][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399816825672}{request}{LAUNCH}{ @../../skynet/lualib/skynet.lua:1093}
[:0000000f][20250605 19:43:52 56]LAUNCH snlua hot_container B_m 1 2025-06-05[19:43:52] 1749123832 1
[:00000003][20250605 19:43:52 56]{luatrace}{01-0001-0000000a-684182f7-000000}{82399816924072}{end}{nil}{}

开启trace之后就可以看见trace的完整日志。

如何开启trace

修改 load_mods.lua中share_config_m下 server_cfg配置下trace改为1即可。


链路追踪的实现
https://huahua132.github.io/2025/06/04/skynet_fly_ss/trace/
作者
huahua132
发布于
2025年6月4日
许可协议