Coffee journaling on ATProto (alpha) alpha.arabica.social
coffee

feat: improved otel tracing #18

merged opened by pdewey.com targeting main from push-yxlyzwontrtr
Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:plc:hm5f3dnm6jdhrc55qp2npdja/sh.tangled.repo.pull/3mgcwjfy6p622
+20 -1
Diff #0
+16
internal/atproto/client.go
··· 4 4 "context" 5 5 "errors" 6 6 "fmt" 7 + "net/http" 7 8 8 9 "arabica/internal/metrics" 9 10 "arabica/internal/tracing" ··· 11 12 "github.com/bluesky-social/indigo/atproto/atclient" 12 13 "github.com/bluesky-social/indigo/atproto/syntax" 13 14 "github.com/rs/zerolog/log" 15 + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" 14 16 ) 15 17 16 18 // ErrSessionExpired is returned when the OAuth session cannot be resumed, ··· 42 44 // This client automatically handles DPOP signing and token refresh 43 45 apiClient := session.APIClient() 44 46 47 + // Wrap the HTTP transport with OpenTelemetry instrumentation so outbound PDS 48 + // HTTP calls appear as child spans under the existing pds.* semantic spans. 49 + // We create a new http.Client rather than mutating the shared session client. 50 + baseTransport := apiClient.Client.Transport 51 + if baseTransport == nil { 52 + baseTransport = http.DefaultTransport 53 + } 54 + apiClient.Client = &http.Client{ 55 + Transport: otelhttp.NewTransport(baseTransport), 56 + Timeout: apiClient.Client.Timeout, 57 + CheckRedirect: apiClient.Client.CheckRedirect, 58 + Jar: apiClient.Client.Jar, 59 + } 60 + 45 61 return apiClient, nil 46 62 } 47 63
+4 -1
internal/atproto/public_client.go
··· 12 12 "strings" 13 13 "sync" 14 14 "time" 15 + 16 + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" 15 17 ) 16 18 17 19 const ( ··· 100 102 return &PublicClient{ 101 103 baseURL: PublicAPIBaseURL, 102 104 httpClient: &http.Client{ 103 - Timeout: 30 * time.Second, 105 + Timeout: 30 * time.Second, 106 + Transport: otelhttp.NewTransport(http.DefaultTransport), 104 107 }, 105 108 pdsCache: make(map[string]string), 106 109 }

History

1 round 0 comments
sign up or login to add to the discussion
pdewey.com submitted #0
1 commit
expand
feat: improved otel tracing
expand 0 comments
pull request successfully merged