From a00951fdd79161f6670a334ef870c6f33038c87e Mon Sep 17 00:00:00 2001 From: "M. Mert Yildiran" Date: Fri, 17 Sep 2021 09:42:08 +0300 Subject: [PATCH] Populate `Request` and `Response` fields of `MizuEntry` --- agent/pkg/controllers/entries_controller.go | 2 + tap/api/api.go | 46 ++++++++++----------- tap/extensions/amqp/main.go | 2 + tap/extensions/http/main.go | 2 + tap/extensions/kafka/main.go | 2 + 5 files changed, 31 insertions(+), 23 deletions(-) diff --git a/agent/pkg/controllers/entries_controller.go b/agent/pkg/controllers/entries_controller.go index 68ad8a70f..45d21d310 100644 --- a/agent/pkg/controllers/entries_controller.go +++ b/agent/pkg/controllers/entries_controller.go @@ -151,6 +151,8 @@ func GetEntry(c *gin.Context) { ReferenceLink: entry["proto"].(map[string]interface{})["referenceLink"].(string), Priority: uint8(entry["proto"].(map[string]interface{})["priority"].(float64)), }, + Request: entry["request"].(map[string]interface{}), + Response: entry["response"].(map[string]interface{}), EntryId: entry["entryId"].(string), Entry: entry["entry"].(string), Url: entry["url"].(string), diff --git a/tap/api/api.go b/tap/api/api.go index 8de7f6b60..cb9313264 100644 --- a/tap/api/api.go +++ b/tap/api/api.go @@ -102,29 +102,29 @@ func (e *Emitting) Emit(item *OutputChannelItem) { } type MizuEntry struct { - Id uint `json:"id"` - Protocol Protocol `json:"proto"` - Timestamp int64 `json:"timestamp"` - Request interface{} `json:"request"` - Response interface{} `json:"response"` - Summary *BaseEntryDetails `json:"summary"` - Entry string `json:"entry,omitempty"` - EntryId string `json:"entryId" gorm:"column:entryId"` - Url string `json:"url" gorm:"column:url"` - Method string `json:"method" gorm:"column:method"` - Status int `json:"status" gorm:"column:status"` - RequestSenderIp string `json:"requestSenderIp" gorm:"column:requestSenderIp"` - Service string `json:"service" gorm:"column:service"` - ElapsedTime int64 `json:"elapsedTime" gorm:"column:elapsedTime"` - Path string `json:"path" gorm:"column:path"` - ResolvedSource string `json:"resolvedSource,omitempty" gorm:"column:resolvedSource"` - ResolvedDestination string `json:"resolvedDestination,omitempty" gorm:"column:resolvedDestination"` - SourceIp string `json:"sourceIp,omitempty" gorm:"column:sourceIp"` - DestinationIp string `json:"destinationIp,omitempty" gorm:"column:destinationIp"` - SourcePort string `json:"sourcePort,omitempty" gorm:"column:sourcePort"` - DestinationPort string `json:"destinationPort,omitempty" gorm:"column:destinationPort"` - IsOutgoing bool `json:"isOutgoing,omitempty" gorm:"column:isOutgoing"` - EstimatedSizeBytes int `json:"-" gorm:"column:estimatedSizeBytes"` + Id uint `json:"id"` + Protocol Protocol `json:"proto"` + Timestamp int64 `json:"timestamp"` + Request map[string]interface{} `json:"request"` + Response map[string]interface{} `json:"response"` + Summary *BaseEntryDetails `json:"summary"` + Entry string `json:"entry,omitempty"` + EntryId string `json:"entryId" gorm:"column:entryId"` + Url string `json:"url" gorm:"column:url"` + Method string `json:"method" gorm:"column:method"` + Status int `json:"status" gorm:"column:status"` + RequestSenderIp string `json:"requestSenderIp" gorm:"column:requestSenderIp"` + Service string `json:"service" gorm:"column:service"` + ElapsedTime int64 `json:"elapsedTime" gorm:"column:elapsedTime"` + Path string `json:"path" gorm:"column:path"` + ResolvedSource string `json:"resolvedSource,omitempty" gorm:"column:resolvedSource"` + ResolvedDestination string `json:"resolvedDestination,omitempty" gorm:"column:resolvedDestination"` + SourceIp string `json:"sourceIp,omitempty" gorm:"column:sourceIp"` + DestinationIp string `json:"destinationIp,omitempty" gorm:"column:destinationIp"` + SourcePort string `json:"sourcePort,omitempty" gorm:"column:sourcePort"` + DestinationPort string `json:"destinationPort,omitempty" gorm:"column:destinationPort"` + IsOutgoing bool `json:"isOutgoing,omitempty" gorm:"column:isOutgoing"` + EstimatedSizeBytes int `json:"-" gorm:"column:estimatedSizeBytes"` } type MizuEntryWrapper struct { diff --git a/tap/extensions/amqp/main.go b/tap/extensions/amqp/main.go index b7f08768b..ad6c5b8ee 100644 --- a/tap/extensions/amqp/main.go +++ b/tap/extensions/amqp/main.go @@ -268,6 +268,8 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, entryId string, resolve entryBytes, _ := json.Marshal(item.Pair) return &api.MizuEntry{ Protocol: protocol, + Request: reqDetails, + Response: item.Pair.Response.Payload.(map[string]interface{})["details"].(map[string]interface{}), EntryId: entryId, Entry: string(entryBytes), Url: fmt.Sprintf("%s%s", service, summary), diff --git a/tap/extensions/http/main.go b/tap/extensions/http/main.go index 94307bd42..636db2744 100644 --- a/tap/extensions/http/main.go +++ b/tap/extensions/http/main.go @@ -175,6 +175,8 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, entryId string, resolve _protocol.Version = item.Protocol.Version return &api.MizuEntry{ Protocol: _protocol, + Request: reqDetails, + Response: resDetails, EntryId: entryId, Entry: string(entryBytes), Url: fmt.Sprintf("%s%s", service, path), diff --git a/tap/extensions/kafka/main.go b/tap/extensions/kafka/main.go index 21b5ebdab..91c889347 100644 --- a/tap/extensions/kafka/main.go +++ b/tap/extensions/kafka/main.go @@ -143,6 +143,8 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, entryId string, resolve entryBytes, _ := json.Marshal(item.Pair) return &api.MizuEntry{ Protocol: _protocol, + Request: reqDetails, + Response: item.Pair.Response.Payload.(map[string]interface{})["details"].(map[string]interface{}), EntryId: entryId, Entry: string(entryBytes), Url: fmt.Sprintf("%s%s", service, summary),