feat: add extraction monitoring and metrics logging

This commit is contained in:
2026-01-22 19:52:39 -05:00
parent 5871644e8b
commit 9edafc88c8

View File

@@ -554,6 +554,41 @@ function extractFacebookMarketplaceData(
return marketplaceData.feed_units.edges.map((edge) => ({ node: edge.node })); return marketplaceData.feed_units.edges.map((edge) => ({ node: edge.node }));
} }
/**
* Monitor API extraction success/failure for detecting changes
*/
let extractionStats = {
totalExtractions: 0,
successfulExtractions: 0,
failedExtractions: 0,
lastApiChangeDetected: null as Date | null,
};
/**
* Log extraction metrics for monitoring API stability
*/
function logExtractionMetrics(success: boolean, itemId?: string) {
extractionStats.totalExtractions++;
if (success) {
extractionStats.successfulExtractions++;
} else {
extractionStats.failedExtractions++;
}
// Log warning if extraction success rate drops below 80%
const successRate = extractionStats.successfulExtractions / extractionStats.totalExtractions;
if (extractionStats.totalExtractions > 10 && successRate < 0.8 && !extractionStats.lastApiChangeDetected) {
console.warn("⚠️ Facebook Marketplace API extraction success rate dropped below 80%. This may indicate API changes.");
extractionStats.lastApiChangeDetected = new Date();
}
if (success) {
console.log(`📊 Facebook API extraction stats: ${extractionStats.successfulExtractions}/${extractionStats.totalExtractions} successful`);
} else {
console.warn(`❌ Facebook API extraction failed for item ${itemId || 'unknown'}`);
}
}
/** /**
* Turns cents to localized currency string. * Turns cents to localized currency string.
*/ */