@@ -59,33 +59,33 @@ void Connection::UpdateConnState(struct conn_ctrl_event_t* event) {
59
59
}
60
60
}
61
61
62
- void Connection::UpdateRole (enum support_role_e role) {
63
- if (!IsL7MetaAttachReady ()) {
64
- // WriteLock lock(mProtocolAndRoleLock);
65
- if (mRole != IsUnknown && mRole != role) {
66
- LOG_WARNING (
67
- sLogger ,
68
- (" role change!! last role" , magic_enum::enum_name (mRole ))(" new role" , magic_enum::enum_name (role)));
69
- } else {
70
- mRole = role;
71
- TryUpdateProtocolAttr ();
72
- }
73
- }
74
- }
75
-
76
- void Connection::UpdateProtocol (support_proto_e protocol) {
77
- if (!IsL7MetaAttachReady ()) {
78
- // WriteLock lock(mProtocolAndRoleLock);
79
- if (mProtocol != support_proto_e::ProtoUnknown && mProtocol != protocol) {
80
- LOG_WARNING (sLogger ,
81
- (" protocol change!! last protocol" ,
82
- magic_enum::enum_name (mProtocol ))(" new protocol" , magic_enum::enum_name (protocol)));
83
- } else {
84
- mProtocol = protocol;
85
- TryUpdateProtocolAttr ();
86
- }
87
- }
88
- }
62
+ // void Connection::UpdateRole(enum support_role_e role) {
63
+ // if (!IsL7MetaAttachReady()) {
64
+ // // WriteLock lock(mProtocolAndRoleLock);
65
+ // if (mRole != IsUnknown && mRole != role) {
66
+ // LOG_WARNING(
67
+ // sLogger,
68
+ // ("role change!! last role", magic_enum::enum_name(mRole))("new role", magic_enum::enum_name(role)));
69
+ // } else {
70
+ // mRole = role;
71
+ // TryAttachL7Meta ();
72
+ // }
73
+ // }
74
+ // }
75
+
76
+ // void Connection::UpdateProtocol(support_proto_e protocol) {
77
+ // if (!IsL7MetaAttachReady()) {
78
+ // // WriteLock lock(mProtocolAndRoleLock);
79
+ // if (mProtocol != support_proto_e::ProtoUnknown && mProtocol != protocol) {
80
+ // LOG_WARNING(sLogger,
81
+ // ("protocol change!! last protocol",
82
+ // magic_enum::enum_name(mProtocol))("new protocol", magic_enum::enum_name(protocol)));
83
+ // } else {
84
+ // mProtocol = protocol;
85
+ // TryAttachL7Meta ();
86
+ // }
87
+ // }
88
+ // }
89
89
90
90
// only called by poller thread ...
91
91
void Connection::UpdateConnStats (struct conn_stats_event_t * event) {
@@ -101,12 +101,26 @@ void Connection::UpdateConnStats(struct conn_stats_event_t* event) {
101
101
}
102
102
103
103
this ->mLastUpdateTs = eventTs;
104
+ // if (IsL4MetaAttachReady()) {
105
+ // LOG_DEBUG(sLogger, ("netMeta already attached", ""));
106
+ // UpdateL4Meta(event);
107
+ // MarkXXX();
108
+ // TryAttachSelf();
109
+ // }
110
+ if (!IsL4MetaAttachReady ()) {
111
+ LOG_DEBUG (sLogger , (" netMeta already attached" , " " ));
112
+ UpdateL4Meta (event);
113
+ MarkL4MetaAttached ();
114
+ TryAttachPeerMeta (true , event->si .family , event->si .ap .daddr );
115
+ TryAttachSelfMeta ();
116
+ }
104
117
105
- UpdateRole (event->role );
118
+ TryAttachL7Meta (event->role , event-> protocol );
106
119
107
- UpdateProtocol (event->protocol );
120
+ // 合并成 L7 meta
121
+ // UpdateRole(event->role);
108
122
109
- UpdateNetMetaAttr (event);
123
+ // UpdateProtocol (event->protocol );
110
124
111
125
mCurrStats .mSendBytes = event->wr_bytes ;
112
126
mCurrStats .mRecvBytes = event->rd_bytes ;
@@ -117,6 +131,7 @@ void Connection::UpdateConnStats(struct conn_stats_event_t* event) {
117
131
mLastStats .mRecvBytes = event->last_output_rd_bytes ;
118
132
mLastStats .mSendPackets = event->last_output_wr_pkts ;
119
133
mLastStats .mRecvPackets = event->last_output_rd_pkts ;
134
+
120
135
LOG_DEBUG (sLogger ,
121
136
(" stage" , " updateConnStates" )(" mSendBytes" , event->wr_bytes )(" mRecvBytes" , event->rd_bytes )(
122
137
" mSendPackets" , event->wr_pkts )(" mRecvPackets" , event->rd_pkts )(" last" , " " )(
@@ -151,31 +166,86 @@ bool Connection::GenerateConnStatsRecord(const std::shared_ptr<AbstractRecord>&
151
166
return true ;
152
167
}
153
168
154
- void Connection::TryUpdateProtocolAttr () {
155
- if (mProtocol == support_proto_e::ProtoUnknown || IsL7MetaAttachReady ()) {
169
+ // void Connection::TryAttachL7Meta() {
170
+ // if (mProtocol == support_proto_e::ProtoUnknown || IsL7MetaAttachReady()) {
171
+ // return;
172
+ // }
173
+
174
+ // mTags.Set<kProtocol>(std::string(magic_enum::enum_name(mProtocol)));
175
+ // if (mRole == support_role_e::IsClient) {
176
+ // mTags.SetNoCopy<kRpcType>(RPC_25_STR);
177
+ // mTags.SetNoCopy<kCallKind>(HTTP_CLIENT_STR);
178
+ // mTags.SetNoCopy<kCallType>(HTTP_CLIENT_STR);
179
+ // MarkL7MetaAttached();
180
+ // } else if (mRole == support_role_e::IsServer) {
181
+ // mTags.SetNoCopy<kRpcType>(RPC_0_STR);
182
+ // mTags.SetNoCopy<kCallKind>(HTTP_STR);
183
+ // mTags.SetNoCopy<kCallType>(HTTP_STR);
184
+ // MarkL7MetaAttached();
185
+ // }
186
+ // }
187
+
188
+ void Connection::TryAttachL7Meta (support_role_e role, support_proto_e protocol) {
189
+ if (IsL7MetaAttachReady ()) {
156
190
return ;
157
191
}
158
192
159
- mTags .Set <kProtocol >(std::string (magic_enum::enum_name (mProtocol )));
160
- if (mRole == support_role_e::IsClient) {
161
- mTags .SetNoCopy <kRpcType >(RPC_25_STR);
162
- mTags .SetNoCopy <kCallKind >(HTTP_CLIENT_STR);
163
- mTags .SetNoCopy <kCallType >(HTTP_CLIENT_STR);
164
- MarkL7MetaAttached ();
165
- } else if (mRole == support_role_e::IsServer) {
166
- mTags .SetNoCopy <kRpcType >(RPC_0_STR);
167
- mTags .SetNoCopy <kCallKind >(HTTP_STR);
168
- mTags .SetNoCopy <kCallType >(HTTP_STR);
169
- MarkL7MetaAttached ();
193
+ // update role
194
+ if (mRole == IsUnknown && role != IsUnknown) {
195
+ mRole = role;
170
196
}
171
- }
172
197
173
- void Connection::UpdateNetMetaAttr (struct conn_stats_event_t * event) {
174
- if (IsL4MetaAttachReady ()) {
175
- LOG_DEBUG (sLogger , (" netMeta already attached" , " " ));
176
- return ;
198
+ if (mProtocol == support_proto_e::ProtoUnknown && protocol != support_proto_e::ProtoUnknown) {
199
+ mProtocol = protocol;
200
+ mTags .Set <kProtocol >(std::string (magic_enum::enum_name (mProtocol )));
201
+ }
202
+
203
+ LOG_INFO (sLogger ,
204
+ (" protocol" , magic_enum::enum_name (protocol))(" role" , magic_enum::enum_name (role))(
205
+ " mprotocol" , magic_enum::enum_name (mProtocol ))(" mrole" , magic_enum::enum_name (mRole )));
206
+
207
+ if (mProtocol == support_proto_e::ProtoHTTP) {
208
+ if (mRole == support_role_e::IsClient) {
209
+ mTags .SetNoCopy <kRpcType >(RPC_25_STR);
210
+ mTags .SetNoCopy <kCallKind >(HTTP_CLIENT_STR);
211
+ mTags .SetNoCopy <kCallType >(HTTP_CLIENT_STR);
212
+ MarkL7MetaAttached ();
213
+ } else if (mRole == support_role_e::IsServer) {
214
+ mTags .SetNoCopy <kRpcType >(RPC_0_STR);
215
+ mTags .SetNoCopy <kCallKind >(HTTP_STR);
216
+ mTags .SetNoCopy <kCallType >(HTTP_STR);
217
+ MarkL7MetaAttached ();
218
+ }
177
219
}
178
220
221
+ // MarkL7MetaAttached();
222
+
223
+ // if (!IsL7MetaAttachReady()) {
224
+ // // WriteLock lock(mProtocolAndRoleLock);
225
+ // if (mRole != IsUnknown && mRole != role) {
226
+ // LOG_WARNING(
227
+ // sLogger,
228
+ // ("role change!! last role", magic_enum::enum_name(mRole))("new role", magic_enum::enum_name(role)));
229
+ // } else {
230
+ // mRole = role;
231
+ // TryAttachL7Meta();
232
+ // }
233
+ // }
234
+
235
+ // if (!IsL7MetaAttachReady()) {
236
+ // // WriteLock lock(mProtocolAndRoleLock);
237
+ // if (mProtocol != support_proto_e::ProtoUnknown && mProtocol != protocol) {
238
+ // LOG_WARNING(sLogger,
239
+ // ("protocol change!! last protocol",
240
+ // magic_enum::enum_name(mProtocol))("new protocol", magic_enum::enum_name(protocol)));
241
+ // } else {
242
+ // mProtocol = protocol;
243
+ // TryAttachL7Meta();
244
+ // }
245
+ // }
246
+ }
247
+
248
+ void Connection::UpdateL4Meta (struct conn_stats_event_t * event) {
179
249
MarkConnStatsEventReceived ();
180
250
181
251
// handle container id ...
@@ -213,16 +283,15 @@ void Connection::UpdateNetMetaAttr(struct conn_stats_event_t* event) {
213
283
mTags .Set <kIp >(sip);
214
284
mTags .Set <kRemoteIp >(dip);
215
285
216
- MarkL4MetaAttached ();
217
-
286
+ // MarkL4MetaAttached();
218
287
219
288
// for peer meta
220
- LOG_DEBUG (sLogger , (" try attach peer meta" , GetRemoteIp ()));
221
- TryAttachPeerMeta (true , si.family , si.ap .daddr );
289
+ // LOG_DEBUG(sLogger, ("try attach peer meta", GetRemoteIp()));
290
+ // TryAttachPeerMeta(true, si.family, si.ap.daddr);
222
291
223
- // for self meta
224
- LOG_DEBUG (sLogger , (" try attach self meta" , GetContainerId ()));
225
- TryAttachSelfMeta ();
292
+ // // for self meta
293
+ // LOG_DEBUG(sLogger, ("try attach self meta", GetContainerId()));
294
+ // TryAttachSelfMeta();
226
295
}
227
296
228
297
void Connection::UpdateSelfPodMeta (const std::shared_ptr<K8sPodInfo>& pod) {
0 commit comments