@@ -230,10 +230,10 @@ module Log =
230230 let internal event ( value : Metric ) ( log : ILogger ) =
231231 let enrich ( e : Serilog.Events.LogEvent ) =
232232 e.AddPropertyIfAbsent( Serilog.Events.LogEventProperty( PropertyTag, Serilog.Events.ScalarValue( value)))
233- log.ForContext({ new Serilog.Core.ILogEventEnricher with member _ . Enrich( evt, _) = enrich evt })
233+ log.ForContext({ new Serilog.Core.ILogEventEnricher with member __ . Enrich( evt,_) = enrich evt })
234234 let internal (| BlobLen |) ( x : EventBody ) = if x.ValueKind = JsonValueKind.Null then 0 else x.GetRawText() .Length
235- let internal (| EventLen |) ( x : #IEventData<_> ) = let BlobLen bytes , BlobLen metaBytes = x.Data, x.Meta in bytes + metaBytes + 80
236- let internal (| BatchLen |) = Seq.sumBy (| EventLen |)
235+ let internal eventLen ( x : #IEventData<_> ) = let BlobLen bytes , BlobLen metaBytes = x.Data, x.Meta in bytes + metaBytes + 80
236+ let internal batchLen = Seq.sumBy eventLen
237237 let internal (| SerilogScalar | _ |) : Serilog.Events.LogEventPropertyValue -> obj option = function
238238 | :? Serilog.Events.ScalarValue as x -> Some x.Value
239239 | _ -> None
@@ -479,11 +479,12 @@ module internal Sync =
479479 let private logged ( container , stream ) ( maxEventsInTip , maxStringifyLen ) ( exp : SyncExp , req : Tip ) ( log : ILogger )
480480 : Async < Result > = async {
481481 let! t , ( ru , result ) = run ( container, stream) ( maxEventsInTip, maxStringifyLen) ( exp, req) |> Stopwatch.Time
482- let Log.BatchLen bytes , count = Enum.Events req, req.e.Length
482+ let verbose = log.IsEnabled Serilog.Events.LogEventLevel.Debug
483+ let count , bytes = req.e.Length, if verbose then Enum.Events req |> Log.batchLen else 0
483484 let log =
484- let inline mkMetric ru : Log.Measurement = { database = container.Database.Id; container = container.Id; stream = stream; interval = t; bytes = bytes; count = count; ru = ru }
485+ let inline mkMetric ru : Log.Measurement =
486+ { database = container.Database.Id; container = container.Id; stream = stream; interval = t; bytes = bytes; count = count; ru = ru }
485487 let inline propConflict log = log |> Log.prop " conflict" true |> Log.prop " eventTypes" ( Seq.truncate 5 ( seq { for x in req.e -> x.c }))
486- let verbose = log.IsEnabled Events.LogEventLevel.Debug
487488 if verbose then log |> Log.propEvents ( Enum.Events req) |> Log.propDataUnfolds req.u else log
488489 |> match exp with
489490 | SyncExp.Etag et -> Log.prop " expectedEtag" et
@@ -612,7 +613,7 @@ module internal Tip =
612613 ( log 0 0 Log.Metric.TipNotFound) .Information( " EqxCosmos {action:l} {stream} {res} {ms}ms rc={ru}" , " Tip" , stream, 404 , ( let e = t.Elapsed in e.TotalMilliseconds), ru)
613614 | ReadResult.Found tip ->
614615 let log =
615- let Log.BatchLen bytes , count = Enum.Unfolds tip.u, tip.u.Length
616+ let count , bytes = tip.u.Length , if verbose then Enum.Unfolds tip.u |> Log.batchLen else 0
616617 log bytes count Log.Metric.Tip
617618 let log = if verbose then log |> Log.propDataUnfolds tip.u else log
618619 let log = match maybePos with Some p -> log |> Log.propStartPos p |> Log.propStartEtag p | None -> log
@@ -675,10 +676,10 @@ module internal Query =
675676 Enum.Events( b, ?minIndex = minIndex, ?maxIndex = maxIndex)
676677 |> if direction = Direction.Backward then System.Linq.Enumerable.Reverse else id
677678 let events = batches |> Seq.collect unwrapBatch |> Array.ofSeq
678- let Log.BatchLen bytes , count = events, events.Length
679+ let verbose = log.IsEnabled Events.LogEventLevel.Debug
680+ let count , bytes = events.Length, if verbose then events |> Log.batchLen else 0
679681 let reqMetric : Log.Measurement = { database = container.Database.Id; container = container.Id; stream = streamName; interval = t; bytes = bytes; count = count; ru = ru }
680682 let log = let evt = Log.Metric.QueryResponse ( direction, reqMetric) in log |> Log.event evt
681- let verbose = log.IsEnabled Events.LogEventLevel.Debug
682683 let log = if verbose then log |> Log.propEvents events else log
683684 let index = if count = 0 then Nullable () else Nullable <| Seq.min ( seq { for x in batches -> x.i })
684685 ( log|> Log.prop " bytes" bytes
@@ -690,7 +691,8 @@ module internal Query =
690691 events, maybePosition, ru
691692
692693 let private logQuery direction queryMaxItems ( container : Container , streamName ) interval ( responsesCount , events : ITimelineEvent < EventBody >[]) n ( ru : float ) ( log : ILogger ) =
693- let Log.BatchLen bytes , count = events, events.Length
694+ let verbose = log.IsEnabled Events.LogEventLevel.Debug
695+ let count , bytes = events.Length, if verbose then events |> Log.batchLen else 0
694696 let reqMetric : Log.Measurement = { database = container.Database.Id; container = container.Id; stream = streamName; interval = interval; bytes = bytes; count = count; ru = ru }
695697 let evt = Log.Metric.Query ( direction, responsesCount, reqMetric)
696698 let action = match direction with Direction.Forward -> " QueryF" | Direction.Backward -> " QueryB"
@@ -702,7 +704,7 @@ module internal Query =
702704 let mutable used , dropped = 0 , 0
703705 let mutable found = false
704706 for x in xs do
705- let ( Log.EventLen bytes) = x
707+ let bytes = Log.eventLen x
706708 if found then dropped <- dropped + bytes
707709 else used <- used + bytes
708710 if x.Index = stopIndex then found <- true
0 commit comments