mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-09 04:17:56 -04:00
refactor
This commit is contained in:
parent
e17fb1dfb7
commit
78f2e7bde4
1 changed files with 8 additions and 6 deletions
|
|
@ -24,7 +24,7 @@ module Server : sig
|
||||||
(Otel.Trace.scope -> 'conn -> Request.t -> 'body -> (Response.t * 'body) Lwt.t) ->
|
(Otel.Trace.scope -> 'conn -> Request.t -> 'body -> (Response.t * 'body) Lwt.t) ->
|
||||||
'conn -> Request.t -> 'body -> (Response.t * 'body) Lwt.t
|
'conn -> Request.t -> 'body -> (Response.t * 'body) Lwt.t
|
||||||
end = struct
|
end = struct
|
||||||
let span_attrs (req : Request.t) =
|
let attrs_of_request (req : Request.t) =
|
||||||
let meth = req |> Request.meth |> Code.string_of_method in
|
let meth = req |> Request.meth |> Code.string_of_method in
|
||||||
let referer = Header.get (Request.headers req) "referer" in
|
let referer = Header.get (Request.headers req) "referer" in
|
||||||
let host = Header.get (Request.headers req) "host" in
|
let host = Header.get (Request.headers req) "host" in
|
||||||
|
|
@ -46,6 +46,11 @@ end = struct
|
||||||
[ ("http.request.header.referer", `String r) ] )
|
[ ("http.request.header.referer", `String r) ] )
|
||||||
]
|
]
|
||||||
|
|
||||||
|
let attrs_of_response (res : Response.t) =
|
||||||
|
let code = Response.status res in
|
||||||
|
let code = Code.code_of_status code in
|
||||||
|
[ ("http.status_code", `Int code) ]
|
||||||
|
|
||||||
let trace_context_of_req req =
|
let trace_context_of_req req =
|
||||||
let module Traceparent = Otel.Trace_context.Traceparent in
|
let module Traceparent = Otel.Trace_context.Traceparent in
|
||||||
match Header.get (Request.headers req) Traceparent.name with
|
match Header.get (Request.headers req) Traceparent.name with
|
||||||
|
|
@ -63,14 +68,11 @@ end = struct
|
||||||
~service_name
|
~service_name
|
||||||
"request"
|
"request"
|
||||||
~kind:Span_kind_server
|
~kind:Span_kind_server
|
||||||
~attrs:(attrs @ span_attrs req)
|
~attrs:(attrs @ attrs_of_request req)
|
||||||
?parent:parent_id
|
?parent:parent_id
|
||||||
?trace_id
|
?trace_id
|
||||||
(fun scope ->
|
(fun scope ->
|
||||||
let* (res, body) = callback scope conn req body in
|
let* (res, body) = callback scope conn req body in
|
||||||
Otel.Trace.add_attrs scope (fun () ->
|
Otel.Trace.add_attrs scope (fun () -> attrs_of_response res) ;
|
||||||
let code = Response.status res in
|
|
||||||
let code = Code.code_of_status code in
|
|
||||||
[ ("http.status_code", `Int code) ]) ;
|
|
||||||
Lwt.return (res, body) )
|
Lwt.return (res, body) )
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue