From f0750cdfb543faf77a8d9c58b7d67def21db6131 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Wed, 20 Dec 2023 14:05:18 -0500 Subject: [PATCH] otel-ocurl: some self-tracing --- src/client-ocurl/opentelemetry_client_ocurl.ml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/client-ocurl/opentelemetry_client_ocurl.ml b/src/client-ocurl/opentelemetry_client_ocurl.ml index 9c01109d..47466f23 100644 --- a/src/client-ocurl/opentelemetry_client_ocurl.ml +++ b/src/client-ocurl/opentelemetry_client_ocurl.ml @@ -5,6 +5,7 @@ module OT = Opentelemetry module Config = Config +module Trace' = Opentelemetry.Trace open Opentelemetry include Common_ @@ -120,9 +121,17 @@ end = struct let send_http_ ~stop ~config (client : Curl.t) encoder ~path ~encode x : unit = - Pbrt.Encoder.reset encoder; - encode x encoder; - let data = Pbrt.Encoder.to_string encoder in + let@ _sc = + Trace'.with_ ~kind:Span.Span_kind_producer "otel-ocurl.send-http" + in + + let data = + let@ _sc = Trace'.with_ ~kind:Span.Span_kind_internal "encode-proto" in + Pbrt.Encoder.reset encoder; + encode x encoder; + Pbrt.Encoder.to_string encoder + in + let url = let url = config.Config.url in if url <> "" && String.get url (String.length url - 1) = '/' then