feat(users/Profpatsch/whatcd-resolver): add ToOtelJsonAttr

Small helper class for putting a json otel attribute from random
types, via Enc.

Used for the redacted requests for now.

Change-Id: I29c31de01f1f5eb3f63ce5639e5b4df4f9b0dc40
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12953
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
This commit is contained in:
Profpatsch 2025-01-04 22:35:07 +01:00
parent 722499d8a9
commit 428f574b75
4 changed files with 76 additions and 6 deletions

View file

@ -40,8 +40,9 @@ redactedSearch ::
Json.Parse ErrorTree a ->
m a
redactedSearch advanced parser =
inSpan "Redacted API Search" $
inSpan' "Redacted API Search" $ \span ->
redactedApiRequestJson
span
( T2
(label @"action" "browse")
(label @"actionArgs" ((advanced <&> second Just)))
@ -571,10 +572,11 @@ redactedApiRequestJson ::
MonadOtel m,
MonadRedacted m
) =>
Otel.Span ->
p ->
Json.Parse ErrorTree a ->
m a
redactedApiRequestJson dat parser =
do
mkRedactedApiRequest dat
redactedApiRequestJson span dat parser = do
addAttribute span "redacted.request" (toOtelJsonAttr (T2 (getLabel @"action" dat) (getLabel @"actionArgs" dat)))
mkRedactedApiRequest dat
>>= Http.httpJson defaults parser