add a fail fast watermark so we can see if a response is fail fast
Some checks failed
Build and push image for doorman-homeassistant / docker (push) Successful in 7s
Build and push Doorman UI / API / docker (push) Has been cancelled
Build and push image for doorman-homeassistant / deploy-gitainer (push) Successful in 5s

This commit is contained in:
Martin Dimitrov 2025-10-11 15:45:03 -07:00
parent 97956e376e
commit abf9d43a8c

View File

@ -19,6 +19,8 @@ import { getMetricFromRegistry, withMetrics } from '../../../doorman-api/src/com
import { Counter, Summary } from 'prom-client'; import { Counter, Summary } from 'prom-client';
import { BuzzerActivatedMetrics, registerMetrics } from '../metrics/BuzzerActivatedMetrics'; import { BuzzerActivatedMetrics, registerMetrics } from '../metrics/BuzzerActivatedMetrics';
const XML_FAIL_FAST_CALLBACK_COMMENT = "<!-- This response is from a fail fast callback -->";
export const handler: ServerlessFunctionSignature<TwilioContext, BuzzerDialEvent> = withMetrics('buzzer-activated', async function (context, event, callback, metricsRegistry, logger, failFastCallback) { export const handler: ServerlessFunctionSignature<TwilioContext, BuzzerDialEvent> = withMetrics('buzzer-activated', async function (context, event, callback, metricsRegistry, logger, failFastCallback) {
// metrics // metrics
registerMetrics(metricsRegistry); registerMetrics(metricsRegistry);
@ -74,6 +76,7 @@ export const handler: ServerlessFunctionSignature<TwilioContext, BuzzerDialEvent
await notifyDiscord(context, msgs, config.discordUsers, config.discordUsers.map(() => ""), metricsRegistry); await notifyDiscord(context, msgs, config.discordUsers, config.discordUsers.map(() => ""), metricsRegistry);
// set me to true to simulate a timeout
let responseLock = false; let responseLock = false;
let intervals: Timer[] = []; let intervals: Timer[] = [];
let timeouts: Timer[] = []; let timeouts: Timer[] = [];
@ -167,6 +170,7 @@ export const handler: ServerlessFunctionSignature<TwilioContext, BuzzerDialEvent
console.log( console.log(
invokeId + " UngracefulFallback: Cutting it too close to timeout! Skipping notifying users and responding fallback" invokeId + " UngracefulFallback: Cutting it too close to timeout! Skipping notifying users and responding fallback"
); );
twiml.play(XML_FAIL_FAST_CALLBACK_COMMENT);
return [null, twiml]; return [null, twiml];
}); });