Skip to content

Commit

Permalink
debug: improve tracing
Browse files Browse the repository at this point in the history
  • Loading branch information
zepatrik committed Oct 23, 2023
1 parent e6aa40d commit ee7c7fd
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions persistence/sql/identity/persister_identity.go
Original file line number Diff line number Diff line change
Expand Up @@ -885,10 +885,7 @@ func (i *IdentityWithSimilarity) PageToken() keysetpagination.PageToken {

func (p *IdentityPersister) listIdentitiesFuzzy(nid uuid.UUID, identifier string, similaritySkew float64, paginator *keysetpagination.Paginator) func(context.Context, *pop.Connection) ([]identity.Identity, *keysetpagination.Paginator, error) {
return func(ctx context.Context, c *pop.Connection) ([]identity.Identity, *keysetpagination.Paginator, error) {
ctx, span := p.r.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.ListIdentitiesBySimilarIdentifier", trace.WithAttributes(
attribute.Int("identifier_length", len(identifier)),
attribute.Float64("similarity_skew", similaritySkew),
))
ctx, span := p.r.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.listIdentitiesFuzzy")
defer span.End()

// When filtering by credentials identifier, we most likely are looking for a username or email. It is therefore
Expand All @@ -912,14 +909,14 @@ func (p *IdentityPersister) listIdentitiesFuzzy(nid uuid.UUID, identifier string
}
span.SetAttributes(attribute.Float64("similarity_threshold", similarityThreashold))

if err := c.RawQuery("SET LOCAL pg_trgm.similarity_threshold = ?", strconv.FormatFloat(similarityThreashold, 'f', 2, 64)).Exec(); err != nil {
if err := c.WithContext(ctx).RawQuery("SET LOCAL pg_trgm.similarity_threshold = ?", strconv.FormatFloat(similarityThreashold, 'f', 2, 64)).Exec(); err != nil {
return nil, nil, sqlcon.HandleError(err)
}

pageTokenParts := paginator.Token().Parse("")

var results []IdentityWithSimilarity
if err := c.RawQuery(`
if err := c.WithContext(ctx).RawQuery(`
SELECT DISTINCT identities.*, SIMILARITY(ici.identifier, ?) AS identifier_similarity
FROM identities AS identities
INNER JOIN identity_credentials ic ON ic.identity_id = identities.id
Expand Down Expand Up @@ -985,12 +982,17 @@ func (p *IdentityPersister) ListIdentitiesBySimilarIdentifier(ctx context.Contex
keysetpagination.WithColumn("identities.id", "ASC"),
)...)

ctx, span := p.r.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.ListIdentitiesBySimilarIdentifier", trace.WithAttributes(attribute.Int("identifier_length", len(params.CredentialsIdentifierSimilar))))
ctx, span := p.r.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.ListIdentitiesBySimilarIdentifier", trace.WithAttributes(
attribute.Int("identifier_length", len(params.CredentialsIdentifierSimilar)),
attribute.Float64("similarity_skew", params.SimilaritySkew),
attribute.String("strategy", "like"),
))
defer otelx.End(span, &err)

strategy := p.listIdentitiesLike
switch p.GetConnection(ctx).Dialect.Name() {
case "postgres", "cockroach":
span.SetAttributes(attribute.String("strategy", "fuzzy"))
strategy = p.listIdentitiesFuzzy
}

Expand Down

0 comments on commit ee7c7fd

Please sign in to comment.