diff --git a/CHANGELOG.md b/CHANGELOG.md index 7520daae2..b365b10c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ### Enhancements +- Add request_tid and response_tid for trace labels.([#379](https://github.com/KindlingProject/kindling/pull/379)) - Add no_response_threshold(120s) for No response requests. ([#376](https://github.com/KindlingProject/kindling/pull/376)) - Add payload for all protocols.([#375](https://github.com/KindlingProject/kindling/pull/375)) - Add a new clustering method "blank" that is used to reduce the cardinality of metrics as much as possible. ([#372](https://github.com/KindlingProject/kindling/pull/372)) diff --git a/collector/pkg/component/analyzer/network/network_analyzer.go b/collector/pkg/component/analyzer/network/network_analyzer.go index 4213438b7..18fda6faf 100644 --- a/collector/pkg/component/analyzer/network/network_analyzer.go +++ b/collector/pkg/component/analyzer/network/network_analyzer.go @@ -505,6 +505,8 @@ func (na *NetworkAnalyzer) getConnectFailRecords(mps *messagePairs) []*model.Dat ret.UpdateAddIntMetric(constvalues.ConnectTime, int64(mps.connects.getDuration())) ret.UpdateAddIntMetric(constvalues.RequestTotalTime, int64(mps.connects.getDuration())) ret.Labels.UpdateAddIntValue(constlabels.Pid, int64(evt.GetPid())) + ret.Labels.UpdateAddIntValue(constlabels.RequestTid, 0) + ret.Labels.UpdateAddIntValue(constlabels.ResponseTid, 0) ret.Labels.UpdateAddStringValue(constlabels.Comm, evt.GetComm()) ret.Labels.UpdateAddStringValue(constlabels.SrcIp, evt.GetSip()) ret.Labels.UpdateAddStringValue(constlabels.DstIp, evt.GetDip()) @@ -532,6 +534,7 @@ func (na *NetworkAnalyzer) getRecords(mps *messagePairs, protocol string, attrib ret := na.dataGroupPool.Get() labels := ret.Labels labels.UpdateAddIntValue(constlabels.Pid, int64(evt.GetPid())) + addTid(labels, evt, mps.responses) labels.UpdateAddStringValue(constlabels.Comm, evt.GetComm()) labels.UpdateAddStringValue(constlabels.SrcIp, evt.GetSip()) labels.UpdateAddStringValue(constlabels.DstIp, evt.GetDip()) @@ -588,6 +591,7 @@ func (na *NetworkAnalyzer) getRecordWithSinglePair(mps *messagePairs, mp *messag ret := na.dataGroupPool.Get() labels := ret.Labels labels.UpdateAddIntValue(constlabels.Pid, int64(evt.GetPid())) + addTid(labels, evt, mps.responses) labels.UpdateAddStringValue(constlabels.Comm, evt.GetComm()) labels.UpdateAddStringValue(constlabels.SrcIp, evt.GetSip()) labels.UpdateAddStringValue(constlabels.DstIp, evt.GetDip()) @@ -632,10 +636,21 @@ func (na *NetworkAnalyzer) getRecordWithSinglePair(mps *messagePairs, mp *messag return ret } +func addTid(labels *model.AttributeMap, evt *model.KindlingEvent, responses *events) { + labels.UpdateAddIntValue(constlabels.RequestTid, int64(evt.GetTid())) + if responses != nil { + labels.UpdateAddIntValue(constlabels.ResponseTid, int64(responses.event.GetTid())) + } else { + labels.UpdateAddIntValue(constlabels.ResponseTid, 0) + } +} + func addProtocolPayload(protocolName string, labels *model.AttributeMap, request []byte, response []byte) { labels.UpdateAddStringValue(constlabels.RequestPayload, protocol.GetPayloadString(request, protocolName)) if response != nil { labels.UpdateAddStringValue(constlabels.ResponsePayload, protocol.GetPayloadString(response, protocolName)) + } else { + labels.UpdateAddStringValue(constlabels.ResponsePayload, "") } } diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/dns/server-trace-multi.yml b/collector/pkg/component/analyzer/network/protocol/testdata/dns/server-trace-multi.yml index 1b42e0a50..6ffe4d6b4 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/dns/server-trace-multi.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/dns/server-trace-multi.yml @@ -70,6 +70,8 @@ trace: Labels: comm: "systemd-resolve" pid: 577 + request_tid: 577 + response_tid: 577 src_ip: "127.0.0.1" src_port: 60129 dst_ip: "127.0.0.53" @@ -101,6 +103,8 @@ trace: Labels: comm: "systemd-resolve" pid: 577 + request_tid: 577 + response_tid: 577 src_ip: "127.0.0.1" src_port: 60129 dst_ip: "127.0.0.53" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/dubbo/server-trace-short.yml b/collector/pkg/component/analyzer/network/protocol/testdata/dubbo/server-trace-short.yml index 72a113951..2a0661008 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/dubbo/server-trace-short.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/dubbo/server-trace-short.yml @@ -38,6 +38,8 @@ trace: Labels: comm: "java" pid: 942 + request_tid: 954 + response_tid: 954 src_ip: "127.0.0.1" src_port: 41458 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-error.yml b/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-error.yml index be11cef85..da5d0f2ce 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-error.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-error.yml @@ -38,6 +38,8 @@ trace: Labels: comm: testdemo pid: 12345 + request_tid: 12346 + response_tid: 12346 src_ip: "127.0.0.1" src_port: 56266 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-normal.yml b/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-normal.yml index e47f20fbc..a87d76120 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-normal.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-normal.yml @@ -38,6 +38,8 @@ trace: Labels: comm: testdemo pid: 12345 + request_tid: 12346 + response_tid: 12346 src_ip: "127.0.0.1" src_port: 56266 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-slow.yml b/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-slow.yml index af4464594..a5c8414fc 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-slow.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-slow.yml @@ -38,6 +38,8 @@ trace: Labels: comm: testdemo pid: 12345 + request_tid: 12346 + response_tid: 12346 src_ip: "127.0.0.1" src_port: 56266 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-split.yml b/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-split.yml index 0b1fd8123..8448526a3 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-split.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/http/server-trace-split.yml @@ -38,6 +38,8 @@ trace: Labels: comm: testdemo pid: 12345 + request_tid: 12346 + response_tid: 12346 src_ip: "127.0.0.1" src_port: 56266 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/kafka/consumer-trace-fetch-multi-topics.yml b/collector/pkg/component/analyzer/network/protocol/testdata/kafka/consumer-trace-fetch-multi-topics.yml index 2e36409b4..752ff9f45 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/kafka/consumer-trace-fetch-multi-topics.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/kafka/consumer-trace-fetch-multi-topics.yml @@ -40,6 +40,8 @@ trace: Labels: comm: "rdk:broker1" pid: 925 + request_tid: 937 + response_tid: 937 src_ip: "127.0.0.1" src_port: 38970 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/kafka/consumer-trace-fetch-split.yml b/collector/pkg/component/analyzer/network/protocol/testdata/kafka/consumer-trace-fetch-split.yml index 83932cc61..cf7a2fff6 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/kafka/consumer-trace-fetch-split.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/kafka/consumer-trace-fetch-split.yml @@ -47,6 +47,8 @@ trace: Labels: comm: "rdk:broker1" pid: 925 + request_tid: 937 + response_tid: 937 src_ip: "127.0.0.1" src_port: 38970 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/kafka/provider-trace-produce-split.yml b/collector/pkg/component/analyzer/network/protocol/testdata/kafka/provider-trace-produce-split.yml index fb9d27c36..5dba4afa7 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/kafka/provider-trace-produce-split.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/kafka/provider-trace-produce-split.yml @@ -46,6 +46,8 @@ trace: Labels: comm: "rdk:broker1" pid: 942 + request_tid: 954 + response_tid: 954 src_ip: "127.0.0.1" src_port: 38966 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/mysql/server-trace-query-split.yml b/collector/pkg/component/analyzer/network/protocol/testdata/mysql/server-trace-query-split.yml index 172c8a0ab..d8fd5c33e 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/mysql/server-trace-query-split.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/mysql/server-trace-query-split.yml @@ -51,6 +51,8 @@ trace: Labels: comm: "mysqld" pid: 903 + request_tid: 2744 + response_tid: 2744 src_ip: "127.0.0.1" src_port: 49368 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/mysql/server-trace-query.yml b/collector/pkg/component/analyzer/network/protocol/testdata/mysql/server-trace-query.yml index 7947c8c2c..cef91505d 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/mysql/server-trace-query.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/mysql/server-trace-query.yml @@ -44,6 +44,8 @@ trace: Labels: comm: "mysqld" pid: 903 + request_tid: 2744 + response_tid: 2744 src_ip: "127.0.0.1" src_port: 49368 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/redis/server-trace-get.yml b/collector/pkg/component/analyzer/network/protocol/testdata/redis/server-trace-get.yml index b6bef6b84..b47b9e558 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/redis/server-trace-get.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/redis/server-trace-get.yml @@ -32,6 +32,8 @@ trace: Labels: comm: "redis-server" pid: 817 + request_tid: 817 + response_tid: 817 src_ip: "127.0.0.1" src_port: 39130 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-error.yml b/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-error.yml index c75da08e2..d8c9b4d2c 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-error.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-error.yml @@ -34,6 +34,8 @@ trace: Labels: comm: "rocketmq-server" pid: 12346 + request_tid: 12347 + response_tid: 12347 src_ip: "127.0.0.1" src_port: 45678 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-json.yml b/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-json.yml index c59063ef1..297ea1183 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-json.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-json.yml @@ -65,6 +65,8 @@ trace: Labels: comm: "rocketmq-server" pid: 12346 + request_tid: 12347 + response_tid: 12347 src_ip: "127.0.0.1" src_port: 45678 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-rocketmq.yml b/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-rocketmq.yml index bea407dbd..a1754e4c3 100644 --- a/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-rocketmq.yml +++ b/collector/pkg/component/analyzer/network/protocol/testdata/rocketmq/server-trace-rocketmq.yml @@ -75,6 +75,8 @@ trace: Labels: comm: "rocketmq-server" pid: 12346 + request_tid: 12347 + response_tid: 12347 src_ip: "127.0.0.1" src_port: 45678 dst_ip: "127.0.0.1" diff --git a/collector/pkg/component/consumer/exporter/tools/adapter/net_dict.go b/collector/pkg/component/consumer/exporter/tools/adapter/net_dict.go index 004e6cc25..5087757d9 100644 --- a/collector/pkg/component/consumer/exporter/tools/adapter/net_dict.go +++ b/collector/pkg/component/consumer/exporter/tools/adapter/net_dict.go @@ -105,6 +105,8 @@ var SpanDicList = []dictionary{ {constlabels.SrcNode, constlabels.SrcNode, String}, {constlabels.SrcPod, constlabels.SrcPod, String}, {constlabels.Pid, constlabels.Pid, Int64}, + {constlabels.RequestTid, constlabels.RequestTid, Int64}, + {constlabels.ResponseTid, constlabels.ResponseTid, Int64}, {constlabels.Comm, constlabels.Comm, String}, } diff --git a/collector/pkg/model/constlabels/const.go b/collector/pkg/model/constlabels/const.go index ab781009d..efd476f98 100644 --- a/collector/pkg/model/constlabels/const.go +++ b/collector/pkg/model/constlabels/const.go @@ -10,6 +10,8 @@ const ( const ( Comm = "comm" Pid = "pid" + RequestTid = "request_tid" + ResponseTid = "response_tid" Tid = "tid" Protocol = "protocol" IsError = "is_error" diff --git a/collector/pkg/model/kindling_event_helper.go b/collector/pkg/model/kindling_event_helper.go index 1fa96d0bc..644f96e33 100644 --- a/collector/pkg/model/kindling_event_helper.go +++ b/collector/pkg/model/kindling_event_helper.go @@ -126,6 +126,18 @@ func (x *KindlingEvent) GetPid() uint32 { return threadInfo.Pid } +func (x *KindlingEvent) GetTid() uint32 { + ctx := x.GetCtx() + if ctx == nil { + return 0 + } + threadInfo := ctx.GetThreadInfo() + if threadInfo == nil { + return 0 + } + return threadInfo.Tid +} + func (x *KindlingEvent) GetComm() string { ctx := x.GetCtx() if ctx == nil {