fix: widen observe navigation retry budget
This commit is contained in:
@@ -29,6 +29,7 @@ const authLoginMaxAttempts = boundedInteger(process.env.UNIDESK_WEB_OBSERVE_AUTH
|
|||||||
const authLoginRequestTimeoutMs = boundedInteger(process.env.UNIDESK_WEB_OBSERVE_AUTH_LOGIN_REQUEST_TIMEOUT_MS, 30000, 1000, 120000);
|
const authLoginRequestTimeoutMs = boundedInteger(process.env.UNIDESK_WEB_OBSERVE_AUTH_LOGIN_REQUEST_TIMEOUT_MS, 30000, 1000, 120000);
|
||||||
const authLoginInitialDelayMs = boundedInteger(process.env.UNIDESK_WEB_OBSERVE_AUTH_LOGIN_INITIAL_DELAY_MS, 500, 0, 60000);
|
const authLoginInitialDelayMs = boundedInteger(process.env.UNIDESK_WEB_OBSERVE_AUTH_LOGIN_INITIAL_DELAY_MS, 500, 0, 60000);
|
||||||
const authLoginMaxDelayMs = boundedInteger(process.env.UNIDESK_WEB_OBSERVE_AUTH_LOGIN_MAX_DELAY_MS, 10000, 0, 120000);
|
const authLoginMaxDelayMs = boundedInteger(process.env.UNIDESK_WEB_OBSERVE_AUTH_LOGIN_MAX_DELAY_MS, 10000, 0, 120000);
|
||||||
|
const navigationMaxAttempts = boundedInteger(process.env.UNIDESK_WEB_OBSERVE_NAVIGATION_MAX_ATTEMPTS, 4, 1, 10);
|
||||||
const alertThresholds = parseAlertThresholds(process.env.UNIDESK_WEB_OBSERVE_ALERT_THRESHOLDS_JSON);
|
const alertThresholds = parseAlertThresholds(process.env.UNIDESK_WEB_OBSERVE_ALERT_THRESHOLDS_JSON);
|
||||||
const projectManagement = parseProjectManagementConfig(process.env.UNIDESK_WEB_OBSERVE_PROJECT_MANAGEMENT_JSON);
|
const projectManagement = parseProjectManagementConfig(process.env.UNIDESK_WEB_OBSERVE_PROJECT_MANAGEMENT_JSON);
|
||||||
const playwrightProxy = proxyConfigFromEnv(baseUrl);
|
const playwrightProxy = proxyConfigFromEnv(baseUrl);
|
||||||
@@ -179,6 +180,7 @@ async function writeManifest(extra = {}) {
|
|||||||
baseUrl,
|
baseUrl,
|
||||||
targetPath,
|
targetPath,
|
||||||
network: publicNetwork(playwrightProxy),
|
network: publicNetwork(playwrightProxy),
|
||||||
|
navigation: { maxAttempts: navigationMaxAttempts, valuesRedacted: true },
|
||||||
pageAuthority: { browser: "chromium", context: "shared-auth", pageMode: "dual-control-observer", controlPageId: pageId, observerPageId, continuityBreaksRecorded: true },
|
pageAuthority: { browser: "chromium", context: "shared-auth", pageMode: "dual-control-observer", controlPageId: pageId, observerPageId, continuityBreaksRecorded: true },
|
||||||
pageProvenance: compactPageProvenance(currentPageProvenance),
|
pageProvenance: compactPageProvenance(currentPageProvenance),
|
||||||
sampling: { mode: "passive", sampleIntervalMs, screenshotIntervalMs, maxSamples, observerRefreshIntervalMs, observerInitiatedDefault: false, responseBodyReadDefault: false },
|
sampling: { mode: "passive", sampleIntervalMs, screenshotIntervalMs, maxSamples, observerRefreshIntervalMs, observerInitiatedDefault: false, responseBodyReadDefault: false },
|
||||||
@@ -1035,7 +1037,7 @@ async function gotoTarget(rawTarget) {
|
|||||||
const target = new URL(String(rawTarget || targetPath), baseUrl).toString();
|
const target = new URL(String(rawTarget || targetPath), baseUrl).toString();
|
||||||
const beforeUrl = currentPageUrl();
|
const beforeUrl = currentPageUrl();
|
||||||
const attempts = [];
|
const attempts = [];
|
||||||
for (let attempt = 1; attempt <= 2; attempt += 1) {
|
for (let attempt = 1; attempt <= navigationMaxAttempts; attempt += 1) {
|
||||||
try {
|
try {
|
||||||
const response = await page.goto(target, { waitUntil: "domcontentloaded", timeout: 45000 });
|
const response = await page.goto(target, { waitUntil: "domcontentloaded", timeout: 45000 });
|
||||||
await page.waitForTimeout(1000).catch(() => {});
|
await page.waitForTimeout(1000).catch(() => {});
|
||||||
@@ -1060,7 +1062,7 @@ async function gotoTarget(rawTarget) {
|
|||||||
return { beforeUrl, afterUrl: currentPageUrl(), httpStatus: null, pageId, pageProvenance: compactPageProvenance(pageProvenance), readiness: lateReadiness, attempts };
|
return { beforeUrl, afterUrl: currentPageUrl(), httpStatus: null, pageId, pageProvenance: compactPageProvenance(pageProvenance), readiness: lateReadiness, attempts };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (attempt >= 2 || !isRetryableNavigationError(message)) {
|
if (attempt >= navigationMaxAttempts || !isRetryableNavigationError(message)) {
|
||||||
throw Object.assign(new Error(message), { attempts, target });
|
throw Object.assign(new Error(message), { attempts, target });
|
||||||
}
|
}
|
||||||
if (!observerPage) {
|
if (!observerPage) {
|
||||||
|
|||||||
Reference in New Issue
Block a user