diff --git a/main.go b/main.go index 838eae4d..897c59e2 100644 --- a/main.go +++ b/main.go @@ -102,21 +102,28 @@ func handleHttpEvents(events chan assemblers.HttpEvent, client *kubernetes.Clien select { case event := <-events: + // create libhoney event ev := libhoney.NewEvent() + + // common attributes ev.AddField("duration_ms", event.Duration.Microseconds()) ev.AddField(string(semconv.NetSockHostAddrKey), event.SrcIp) ev.AddField("destination.address", event.DstIp) + + // request attributes if event.Request != nil { ev.AddField("name", fmt.Sprintf("HTTP %s", event.Request.Method)) ev.AddField(string(semconv.HTTPMethodKey), event.Request.Method) ev.AddField(string(semconv.HTTPURLKey), event.Request.RequestURI) ev.AddField("http.request.body", fmt.Sprintf("%v", event.Request.Body)) ev.AddField("http.request.headers", fmt.Sprintf("%v", event.Request.Header)) + ev.AddField(string(semconv.UserAgentOriginalKey), event.Request.Header.Get("User-Agent")) } else { ev.AddField("name", "HTTP") ev.AddField("http.request.missing", "no request on this event") } + // response attributes if event.Response != nil { ev.AddField(string(semconv.HTTPStatusCodeKey), event.Response.StatusCode) ev.AddField("http.response.body", event.Response.Body) @@ -125,7 +132,7 @@ func handleHttpEvents(events chan assemblers.HttpEvent, client *kubernetes.Clien ev.AddField("http.response.missing", "no response on this event") } - // k8s metadata + // k8s attributes k8sEventAttrs := utils.GetK8sEventAttrs(client, event.SrcIp, event.DstIp) ev.Add(k8sEventAttrs)