MCPcopy Create free account
hub / github.com/devaccuracy/ledgerforge / categorizeRejectionReason

Function categorizeRejectionReason

transaction.go:1731–1745  ·  view source on GitHub ↗

categorizeRejectionReason maps a free-text rejection reason to a bounded set of metric labels to keep Prometheus cardinality under control.

(reason string)

Source from the content-addressed store, hash-verified

1729// categorizeRejectionReason maps a free-text rejection reason to a bounded set of metric labels
1730// to keep Prometheus cardinality under control.
1731func categorizeRejectionReason(reason string) string {
1732 lower := strings.ToLower(reason)
1733 switch {
1734 case strings.Contains(lower, "insufficient funds"):
1735 return "insufficient_funds"
1736 case strings.Contains(lower, "overdraft limit"):
1737 return "overdraft_limit"
1738 case hotpairs.IsLockContentionError(errors.New(reason)):
1739 return "lock_contention"
1740 case strings.Contains(lower, "exceeded max"):
1741 return "max_retries"
1742 default:
1743 return "other"
1744 }
1745}
1746
1747// prepareTransactionForQueue prepares a transaction for queueing by setting status, metadata,
1748// and resolving source/destination balances.

Callers 2

RejectTransactionMethod · 0.85

Calls 1

IsLockContentionErrorFunction · 0.92

Tested by 1