`
);
- await page.click('button[type=submit]');
+ await page.$eval('button[type=submit]', e => e.click());
await page.waitForSelector('#save-btn');
};
@@ -181,7 +183,9 @@ describe('Incident Timeline API', () => {
expect(resolveTextSelector).not.toBeNull();
await page.waitForSelector(`#incident_${projectMonitorName}_0`);
- await page.click(`#incident_${projectMonitorName}_0`);
+ await page.$eval(`#incident_${projectMonitorName}_0`, e =>
+ e.click()
+ );
await page.waitFor(5000);
const incidentTimelineRows = await page.$$(
@@ -442,7 +446,9 @@ describe('Incident Timeline API', () => {
await page.waitForSelector(`#componentResource_0`);
await page.click(`#componentResource_0`);
await page.waitForSelector(`#incident_${projectMonitorName}_0`);
- await page.click(`#incident_${projectMonitorName}_0`);
+ await page.$eval(`#incident_${projectMonitorName}_0`, e =>
+ e.click()
+ );
for (let i = 0; i < 10; i++) {
// add internal note
diff --git a/dashboard/src/test/puppeteer/MonitorDetail.test.js b/dashboard/src/test/puppeteer/MonitorDetail.test.js
index fffd23b412..4a83f60a89 100644
--- a/dashboard/src/test/puppeteer/MonitorDetail.test.js
+++ b/dashboard/src/test/puppeteer/MonitorDetail.test.js
@@ -91,10 +91,12 @@ describe('Monitor Detail API', () => {
);
await page.waitForSelector(`#createIncident_${monitorName}`);
- await page.click(`#createIncident_${monitorName}`);
+ await page.$eval(`#createIncident_${monitorName}`, e =>
+ e.click()
+ );
await page.waitForSelector('#createIncident');
await init.selectByText('#incidentType', 'Offline', page);
- await page.click('#createIncident');
+ await page.$eval('#createIncident', e => e.click());
const selector = 'tr.incidentListItem';
await page.waitForSelector(selector);
@@ -120,7 +122,9 @@ describe('Monitor Detail API', () => {
await page.waitForSelector(
`#monitorCreateIncident_${monitorName}`
);
- await page.click(`#monitorCreateIncident_${monitorName}`);
+ await page.$eval(`#monitorCreateIncident_${monitorName}`, e =>
+ e.click()
+ );
await page.waitForSelector('#incidentTitleLabel');
let spanElement = await page.waitForSelector(
`#incidentTitleLabel`
@@ -178,15 +182,15 @@ describe('Monitor Detail API', () => {
await page.waitFor(5000);
const selector = 'tr.incidentListItem';
await page.waitForSelector(selector);
- await page.click(selector);
+ await page.$eval(selector, e => e.click());
await page.waitFor(5000);
await page.waitForSelector('button[id=deleteIncidentButton]');
- await page.click('#deleteIncidentButton');
+ await page.$eval('#deleteIncidentButton', e => e.click());
await page.waitFor(5000);
await page.waitForSelector('button[id=confirmDeleteIncident]', {
visible: true,
});
- await page.click('#confirmDeleteIncident');
+ await page.$eval('#confirmDeleteIncident', e => e.click());
await page.waitForNavigation();
const incidentList = 'tr.incidentListItem';
@@ -213,17 +217,19 @@ describe('Monitor Detail API', () => {
const addButtonSelector = '#addScheduledEventButton';
await page.waitForSelector(addButtonSelector);
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('form input[name=startDate]');
- await page.click('input[name=startDate]');
- await page.click(
- 'div.MuiDialogActions-root button:nth-child(2)'
+ await page.$eval('input[name=startDate]', e => e.click());
+ await page.$eval(
+ 'div.MuiDialogActions-root button:nth-child(2)',
+ e => e.click()
);
- await page.click('input[name=endDate]');
- await page.click(
- 'div.MuiDialogActions-root button:nth-child(2)'
+ await page.$eval('input[name=endDate]', e => e.click());
+ await page.$eval(
+ 'div.MuiDialogActions-root button:nth-child(2)',
+ e => e.click()
);
await page.type('input[name=name]', utils.scheduledEventName);
@@ -238,17 +244,13 @@ describe('Monitor Detail API', () => {
.click();
});
- const createScheduledEventPromise = page.waitForResponse(
- response => response.url().includes('/scheduledEvent/')
- );
-
- await Promise.all([
- createScheduledEventPromise,
- page.click('#createScheduledEventButton'),
- ]);
+ await page.$eval('#createScheduledEventButton', e => e.click()),
+ await page.waitForResponse(response =>
+ response.url().includes('/scheduledEvent/')
+ );
const createdScheduledEventSelector = '.scheduled-event-name';
- await page.waitFor(5000);
+ await page.waitForSelector(createdScheduledEventSelector);
const createdScheduledEventName = await page.$eval(
createdScheduledEventSelector,
@@ -277,17 +279,19 @@ describe('Monitor Detail API', () => {
const addButtonSelector = '#addScheduledEventButton';
await page.waitForSelector(addButtonSelector);
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('form input[name=startDate]');
- await page.click('input[name=startDate]');
- await page.click(
- 'div.MuiDialogActions-root button:nth-child(2)'
+ await page.$eval('input[name=startDate]', e => e.click());
+ await page.$eval(
+ 'div.MuiDialogActions-root button:nth-child(2)',
+ e => e.click()
);
- await page.click('input[name=endDate]');
- await page.click(
- 'div.MuiDialogActions-root button:nth-child(2)'
+ await page.$eval('input[name=endDate]', e => e.click());
+ await page.$eval(
+ 'div.MuiDialogActions-root button:nth-child(2)',
+ e => e.click()
);
await page.type(
@@ -305,18 +309,14 @@ describe('Monitor Detail API', () => {
.click();
});
- const createScheduledEventPromise = page.waitForResponse(
- response => response.url().includes('/scheduledEvent/')
- );
-
- await Promise.all([
- createScheduledEventPromise,
- page.click('#createScheduledEventButton'),
- ]);
+ await page.$eval('#createScheduledEventButton', e => e.click()),
+ await page.waitForResponse(response =>
+ response.url().includes('/scheduledEvent/')
+ );
const createdScheduledEventSelector =
'#scheduledEventsList .scheduled-event-name';
- await page.waitFor(5000);
+ await page.waitForSelector(createdScheduledEventSelector);
const scheduledEventRows = await page.$$(
createdScheduledEventSelector
@@ -343,13 +343,13 @@ describe('Monitor Detail API', () => {
const addButtonSelector = '#addSubscriberButton';
await page.waitForSelector(addButtonSelector);
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('#alertViaId');
await init.selectByText('#alertViaId', 'email', page);
await page.type('input[name=email]', subscriberEmail);
- await page.click('#createSubscriber');
+ await page.$eval('#createSubscriber', e => e.click());
const createdSubscriberSelector =
'#subscribersList > tbody > tr.subscriber-list-item .contact';
@@ -383,14 +383,14 @@ describe('Monitor Detail API', () => {
await page.waitForSelector(addButtonSelector);
for (let i = 0; i < 5; i++) {
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('#alertViaId');
await init.selectByText('#alertViaId', 'email', page);
await page.type(
'input[name=email]',
utils.generateRandomBusinessEmail()
);
- await page.click('#createSubscriber');
+ await page.$eval('#createSubscriber', e => e.click());
await page.waitFor(1000);
}
@@ -442,7 +442,7 @@ describe('Monitor Detail API', () => {
const addButtonSelector = '#addMsTeamsButton';
await page.waitForSelector(addButtonSelector);
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('#endpoint');
@@ -457,7 +457,7 @@ describe('Monitor Detail API', () => {
const createdWebhookSelector =
'#msteamsWebhookList > tbody > tr.webhook-list-item > td:nth-child(1) > div > span > div > span';
- await page.click('#createMsTeams');
+ await page.$eval('#createMsTeams', e => e.click());
await page.waitForSelector(createdWebhookSelector);
const createdWebhookEndpoint = await page.$eval(
@@ -497,13 +497,12 @@ describe('Monitor Detail API', () => {
const editWebhookButtonSelector =
'#msteamsWebhookList > tbody > tr.webhook-list-item > td:nth-child(2) > div > span > div > button:nth-child(1)';
- await page.click(editWebhookButtonSelector);
+ await page.$eval(editWebhookButtonSelector, e => e.click());
const newWebhookEndpoint = utils.generateRandomWebsite();
await page.click('#endpoint', { clickCount: 3 });
- await page.keyboard.press('Backspace');
await page.type('#endpoint', newWebhookEndpoint);
- await page.click('#msteamsUpdate');
+ await page.$eval('#msteamsUpdate', e => e.click());
await page.waitFor(1000);
const updatedWebhookEndpoint = await page.$eval(
existingWebhookSelector,
@@ -537,10 +536,10 @@ describe('Monitor Detail API', () => {
const deleteWebhookButtonSelector =
'#msteamsWebhookList > tbody > tr.webhook-list-item > td:nth-child(2) > div > span > div > button:nth-child(2)';
- await page.click(deleteWebhookButtonSelector);
+ await page.$eval(deleteWebhookButtonSelector, e => e.click());
await page.waitForSelector('#msteamsDelete');
- await page.click('#msteamsDelete');
+ await page.$eval('#msteamsDelete', e => e.click());
await page.waitFor(1000);
webhookRows = await page.$$(createdWebhookSelector);
@@ -567,7 +566,7 @@ describe('Monitor Detail API', () => {
await page.waitForSelector(addButtonSelector);
for (let i = 0; i < 11; i++) {
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('#endpoint');
await page.type('#endpoint', utils.generateRandomWebsite());
@@ -576,7 +575,7 @@ describe('Monitor Detail API', () => {
.querySelector('input[name=incidentCreated]')
.click();
});
- await page.click('#createMsTeams');
+ await page.$eval('#createMsTeams', e => e.click());
await page.waitFor(1000);
}
@@ -630,7 +629,7 @@ describe('Monitor Detail API', () => {
const addButtonSelector = '#addSlackButton';
await page.waitForSelector(addButtonSelector);
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('#endpoint');
@@ -645,7 +644,7 @@ describe('Monitor Detail API', () => {
const createdWebhookSelector =
'#slackWebhookList > tbody > tr.webhook-list-item > td:nth-child(1) > div > span > div > span';
- await page.click('#createSlack');
+ await page.$eval('#createSlack', e => e.click());
await page.waitForSelector(createdWebhookSelector);
const createdWebhookEndpoint = await page.$eval(
@@ -684,13 +683,12 @@ describe('Monitor Detail API', () => {
const editWebhookButtonSelector =
'#slackWebhookList > tbody > tr.webhook-list-item > td:nth-child(2) > div > span > div > button:nth-child(1)';
- await page.click(editWebhookButtonSelector);
+ await page.$eval(editWebhookButtonSelector, e => e.click());
const newWebhookEndpoint = utils.generateRandomWebsite();
await page.click('#endpoint', { clickCount: 3 });
- await page.keyboard.press('Backspace');
await page.type('#endpoint', newWebhookEndpoint);
- await page.click('#slackUpdate');
+ await page.$eval('#slackUpdate', e => e.click());
await page.waitFor(1000);
const updatedWebhookEndpoint = await page.$eval(
existingWebhookSelector,
@@ -724,10 +722,10 @@ describe('Monitor Detail API', () => {
const deleteWebhookButtonSelector =
'#slackWebhookList > tbody > tr.webhook-list-item > td:nth-child(2) > div > span > div > button:nth-child(2)';
- await page.click(deleteWebhookButtonSelector);
+ await page.$eval(deleteWebhookButtonSelector, e => e.click());
await page.waitForSelector('#slackDelete');
- await page.click('#slackDelete');
+ await page.$eval('#slackDelete', e => e.click());
await page.waitFor(1000);
webhookRows = await page.$$(createdWebhookSelector);
@@ -754,7 +752,7 @@ describe('Monitor Detail API', () => {
await page.waitForSelector(addButtonSelector);
for (let i = 0; i < 11; i++) {
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('#endpoint');
await page.type('#endpoint', utils.generateRandomWebsite());
@@ -763,7 +761,7 @@ describe('Monitor Detail API', () => {
.querySelector('input[name=incidentCreated]')
.click();
});
- await page.click('#createSlack');
+ await page.$eval('#createSlack', e => e.click());
await page.waitFor(1000);
}
@@ -816,7 +814,7 @@ describe('Monitor Detail API', () => {
const addButtonSelector = '#addWebhookButton';
await page.waitForSelector(addButtonSelector);
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('#endpoint');
@@ -832,7 +830,7 @@ describe('Monitor Detail API', () => {
const createdWebhookSelector =
'#webhookList > tbody > tr.webhook-list-item > td:nth-child(1) > div > span > div > span';
- await page.click('#createWebhook');
+ await page.$eval('#createWebhook', e => e.click());
await page.waitForSelector(createdWebhookSelector);
const createdWebhookEndpoint = await page.$eval(
@@ -862,7 +860,7 @@ describe('Monitor Detail API', () => {
await page.waitForSelector(addButtonSelector);
for (let i = 0; i < 10; i++) {
- await page.click(addButtonSelector);
+ await page.$eval(addButtonSelector, e => e.click());
await page.waitForSelector('#endpoint');
await page.type('#endpoint', utils.generateRandomWebsite());
@@ -873,7 +871,7 @@ describe('Monitor Detail API', () => {
.querySelector('input[name=incidentCreated]')
.click();
});
- await page.click('#createWebhook');
+ await page.$eval('#createWebhook', e => e.click());
await page.waitFor(1000);
}
@@ -919,13 +917,13 @@ describe('Monitor Detail API', () => {
await init.navigateToComponentDetails(componentName, page);
await page.waitForSelector('#form-new-monitor');
- await page.click('input[id=name]');
+ await page.$eval('input[id=name]', e => e.click());
await page.type('input[id=name]', urlMonitorName);
await init.selectByText('#type', 'url', page);
await page.waitForSelector('#url');
- await page.click('#url');
+ await page.$eval('#url', e => e.click());
await page.type('#url', 'https://google.com');
- await page.click('button[type=submit]');
+ await page.$eval('button[type=submit]', e => e.click());
// Navigate to Monitor details
await init.navigateToMonitorDetails(
@@ -963,12 +961,14 @@ describe('Monitor Detail API', () => {
);
await page.waitForSelector(`#addSiteUrl_${urlMonitorName}`);
- await page.click(`#addSiteUrl_${urlMonitorName}`);
+ await page.$eval(`#addSiteUrl_${urlMonitorName}`, e =>
+ e.click()
+ );
await page.waitForSelector('input[id=siteUrl]');
- await page.click('input[id=siteUrl]');
+ await page.$eval('input[id=siteUrl]', e => e.click());
await page.type('input[id=siteUrl]', 'http://localhost:3010');
- await page.click('#addSiteUrlButton');
+ await page.$eval('#addSiteUrlButton', e => e.click());
await page.waitFor(5000);
const createdLighthouseLogsSelector =
@@ -1000,9 +1000,11 @@ describe('Monitor Detail API', () => {
await page.waitForSelector(
`#removeSiteUrl_${urlMonitorName}_0`
);
- await page.click(`#removeSiteUrl_${urlMonitorName}_0`);
+ await page.$eval(`#removeSiteUrl_${urlMonitorName}_0`, e =>
+ e.click()
+ );
await page.waitForSelector('#websiteUrlDelete');
- await page.click('#websiteUrlDelete');
+ await page.$eval('#websiteUrlDelete', e => e.click());
await page.waitFor(5000);
const createdLighthouseLogsSelector =
@@ -1032,7 +1034,9 @@ describe('Monitor Detail API', () => {
);
await page.waitForSelector(`#scanWebsites_${urlMonitorName}`);
- await page.click(`#scanWebsites_${urlMonitorName}`);
+ await page.$eval(`#scanWebsites_${urlMonitorName}`, e =>
+ e.click()
+ );
await page.waitFor(200000);
@@ -1099,7 +1103,7 @@ describe('Monitor Detail API', () => {
const createdLighthouseLogsSelector =
'#lighthouseLogsList > tbody > tr.lighthouseLogsListItem > td:nth-child(1) > div > span > div > span';
await page.waitForSelector(createdLighthouseLogsSelector);
- await page.click(createdLighthouseLogsSelector);
+ await page.$eval(createdLighthouseLogsSelector, e => e.click());
await page.waitFor(5000);
let lighthousePerformanceElement = await page.waitForSelector(
@@ -1172,13 +1176,12 @@ describe('Monitor Detail API', () => {
);
const editButtonSelector = `#edit_${monitorName}`;
- await page.click(editButtonSelector);
+ await page.$eval(editButtonSelector, e => e.click());
await page.waitForSelector('#form-new-monitor');
await page.click('input[id=name]', { clickCount: 3 });
- await page.keyboard.press('Backspace');
await page.type('input[id=name]', newMonitorName);
- await page.click('button[type=submit]');
+ await page.$eval('button[type=submit]', e => e.click());
const selector = `span#monitor-title-${newMonitorName}`;
@@ -1205,11 +1208,11 @@ describe('Monitor Detail API', () => {
);
const deleteButtonSelector = `#delete_${newMonitorName}`;
- await page.click(deleteButtonSelector);
+ await page.$eval(deleteButtonSelector, e => e.click());
const confirmDeleteButtonSelector = '#deleteMonitor';
await page.waitForSelector(confirmDeleteButtonSelector);
- await page.click(confirmDeleteButtonSelector);
+ await page.$eval(confirmDeleteButtonSelector, e => e.click());
await page.waitFor(5000);
const selector = `span#monitor-title-${newMonitorName}`;
diff --git a/dashboard/src/test/puppeteer/NewMonitor.test.js b/dashboard/src/test/puppeteer/NewMonitor.test.js
index f99651670c..79e93c6499 100644
--- a/dashboard/src/test/puppeteer/NewMonitor.test.js
+++ b/dashboard/src/test/puppeteer/NewMonitor.test.js
@@ -54,7 +54,7 @@ describe('New Monitor API', () => {
// Redirects automatically component to details page
await init.addComponent(componentName, page);
- for (let i = 0; i <= 5; i++) {
+ for (let i = 0; i < 5; i++) {
const monitorName = utils.generateRandomString();
await init.addMonitorToComponent(null, monitorName, page);
@@ -87,7 +87,7 @@ describe('New Monitor API', () => {
// Redirects automatically component to details page
await init.addComponent(componentName, page);
- for (let i = 0; i <= 10; i++) {
+ for (let i = 0; i < 10; i++) {
const monitorName = utils.generateRandomString();
await init.addMonitorToComponent(null, monitorName, page);
@@ -120,7 +120,7 @@ describe('New Monitor API', () => {
// Redirects automatically component to details page
await init.addComponent(componentName, page);
- for (let i = 0; i <= 15; i++) {
+ for (let i = 0; i < 15; i++) {
const monitorName = utils.generateRandomString();
await init.addMonitorToComponent(null, monitorName, page);
diff --git a/dashboard/src/test/puppeteer/test-init.js b/dashboard/src/test/puppeteer/test-init.js
index a00f867ef0..e64c245b26 100644
--- a/dashboard/src/test/puppeteer/test-init.js
+++ b/dashboard/src/test/puppeteer/test-init.js
@@ -136,7 +136,7 @@ module.exports = {
// Navigate to details page of component assumed created
await page.waitForSelector(`#more-details-${component}`);
- await page.click(`#more-details-${component}`);
+ await page.$eval(`#more-details-${component}`, e => e.click());
},
navigateToMonitorDetails: async function(component, monitor, page) {
// Navigate to Components page
@@ -144,7 +144,7 @@ module.exports = {
// Navigate to details page of monitor assumed created
await page.waitForSelector(`#more-details-${monitor}`);
- await page.click(`#more-details-${monitor}`);
+ await page.$eval(`#more-details-${monitor}`, e => e.click());
await page.waitForSelector(`#monitor-title-${monitor}`, {
visible: true,
});
@@ -313,7 +313,7 @@ module.exports = {
addMonitorToComponent: async function(component, monitorName, page) {
component && (await this.addComponent(component, page));
- await page.waitForSelector('#form-new-monitor');
+ await page.waitForSelector('input[id=name]');
await page.click('input[id=name]');
await page.type('input[id=name]', monitorName);
await this.selectByText('#type', 'device', page);
diff --git a/docs/introduction.md b/docs/introduction.md
index 13f085bc2e..0e71b29bf5 100644
--- a/docs/introduction.md
+++ b/docs/introduction.md
@@ -1,6 +1,6 @@
# Introduction
-Fyipe is one complete SRE and IT Ops platform.
+Fyipe is one complete SRE and DevOps platform.
Fyipe lets you do:
diff --git a/helm-chart/public/fyipe/Chart.yaml b/helm-chart/public/fyipe/Chart.yaml
index e23330e332..aac7c1921e 100644
--- a/helm-chart/public/fyipe/Chart.yaml
+++ b/helm-chart/public/fyipe/Chart.yaml
@@ -1,11 +1,11 @@
apiVersion: v2
name: Fyipe
version: 3.0.0
-description: One complete DevOps and IT Ops platform.
+description: One complete DevOps and DevOps platform.
keywords:
- DevOps
- IT DevOps
- - IT Ops
+ - DevOps
- Monitoring
- Status Page
- On-Call
diff --git a/helm-chart/public/fyipe/README.md b/helm-chart/public/fyipe/README.md
index e3a0c2ecd9..b765887eb9 100644
--- a/helm-chart/public/fyipe/README.md
+++ b/helm-chart/public/fyipe/README.md
@@ -1,6 +1,6 @@
# Fyipe
-Fyipe is one complete SRE and IT Ops platform.
+Fyipe is one complete SRE and DevOps platform.
Fyipe lets you do:
diff --git a/helm-chart/public/index.yaml b/helm-chart/public/index.yaml
index 6e808332fe..ad5f7dc1ba 100644
--- a/helm-chart/public/index.yaml
+++ b/helm-chart/public/index.yaml
@@ -13,14 +13,14 @@ entries:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 10.5.11
- description: One complete SRE and IT Ops platform.
+ description: One complete SRE and DevOps platform.
digest: 5c154b61becf64c877080c8106539ddf28988f57361c8d96fc98d721df250899
home: https://fyipe.com
icon: https://fyipe.com/img/Fyipe.svg
keywords:
- DevOps
- IT DevOps
- - IT Ops
+ - DevOps
- Monitoring
- Status Page
- On-Call
diff --git a/home/config/product-compare.js b/home/config/product-compare.js
index ad5ddef6d4..a50fa0c4cc 100644
--- a/home/config/product-compare.js
+++ b/home/config/product-compare.js
@@ -13,7 +13,7 @@ module.exports = product => {
{
question: 'How does Fyipe compare with PagerDuty?',
answer:
- 'PagerDuty is an incident management and on call tool whereas Fyipe is a complete SRE and IT Ops platform. Fyipe offers mostly everything that PagerDuty offers, but a lot more like monitoring, status-page, security, performance-monitoring and more. Please check detailed comparision above for more info.',
+ 'PagerDuty is an incident management and on call tool whereas Fyipe is a complete SRE and DevOps platform. Fyipe offers mostly everything that PagerDuty offers, but a lot more like monitoring, status-page, security, performance-monitoring and more. Please check detailed comparision above for more info.',
},
{
question:
@@ -175,7 +175,7 @@ module.exports = product => {
{
question: 'How does Fyipe compare with StatusPage.io?',
answer:
- 'StatusPage.io is a status page tool whereas Fyipe is a complete SRE and IT Ops platform. Fyipe offers mostly everything that StatusPage.io offers, but a lot more like monitoring, incident management, on-call scheduling, security, performance-monitoring and more. Please check detailed comparision above for more info.',
+ 'StatusPage.io is a status page tool whereas Fyipe is a complete SRE and DevOps platform. Fyipe offers mostly everything that StatusPage.io offers, but a lot more like monitoring, incident management, on-call scheduling, security, performance-monitoring and more. Please check detailed comparision above for more info.',
},
{
question:
@@ -337,7 +337,7 @@ module.exports = product => {
{
question: 'How does Fyipe compare with Pingdom?',
answer:
- 'Pingdom is an monitoring tool whereas Fyipe is a complete SRE and IT Ops platform. Fyipe offers mostly everything that Pingdom offers, but a lot more like monitoring, status-page, security, performance-monitoring and more. Please check detailed comparision above for more info.',
+ 'Pingdom is an monitoring tool whereas Fyipe is a complete SRE and DevOps platform. Fyipe offers mostly everything that Pingdom offers, but a lot more like monitoring, status-page, security, performance-monitoring and more. Please check detailed comparision above for more info.',
},
{
question:
diff --git a/home/views/cta.ejs b/home/views/cta.ejs
index 0ecb26b75e..27a68f6b7b 100755
--- a/home/views/cta.ejs
+++ b/home/views/cta.ejs
@@ -3,7 +3,7 @@
- One Complete Platform for all your IT Ops and SRE needs.
+ One Complete Platform for all your DevOps and SRE needs.
diff --git a/home/views/customers.ejs b/home/views/customers.ejs
index 6d05b15d16..63a7cae8b6 100755
--- a/home/views/customers.ejs
+++ b/home/views/customers.ejs
@@ -5,7 +5,7 @@
- Fyipe | Status Page and On-call made simple.
+ Fyipe | One Complete SRE and DevOps platform.
<% include ./head %>
diff --git a/home/views/enterprise-overview.ejs b/home/views/enterprise-overview.ejs
index b6aa3b126b..613e134318 100755
--- a/home/views/enterprise-overview.ejs
+++ b/home/views/enterprise-overview.ejs
@@ -106,7 +106,7 @@
Trains team on Best Practices.
-
Our dedicated engineer is a SRE and IT Ops expert and will train your team on
+
Our dedicated engineer is a SRE and DevOps expert and will train your team on
best practices and processes to follow to eliminate downtime.
@@ -118,7 +118,7 @@
Our Customers
-
Organizations all over the world cut downtime and run IT Ops efficiently with
+
Organizations all over the world cut downtime and run DevOps efficiently with
Fyipe.
@@ -155,7 +155,7 @@
More Enterprise Features.
Efficient
- IT Ops management depends on the right information being shared with the right people at
+ DevOps management depends on the right information being shared with the right people at
the right time and knowing it’s shared securely.
Fyipe ensures sensitive
company and customer information remains secure with enterprise-ready security features and
compliance with various industry and cloud service standards.
@@ -184,7 +184,7 @@
-
Mobile apps for IT Ops management.
+
Mobile apps for DevOps management.
diff --git a/home/views/head.ejs b/home/views/head.ejs
index 591ea9946d..5f3b44c803 100755
--- a/home/views/head.ejs
+++ b/home/views/head.ejs
@@ -51,7 +51,7 @@
-
+
-
+
diff --git a/home/views/index.ejs b/home/views/index.ejs
index d1469f5627..915309daa5 100755
--- a/home/views/index.ejs
+++ b/home/views/index.ejs
@@ -4,7 +4,7 @@
- Fyipe | Status Page and On-call made simple.
+ Fyipe | One Complete SRE and DevOps platform.
<% include ./head %>
@@ -36,7 +36,7 @@
- One Complete SRE and IT Ops
+ One Complete SRE and DevOps
platform.
With Fyipe, you get a complete SRE toolchain out-of-the-box. One interface.
@@ -202,7 +202,7 @@
- Complete end-to-end real time visibility of all projects on more activities across the expanded IT Ops and
+ Complete end-to-end real time visibility of all projects on more activities across the expanded DevOps and
SRE
processes.
diff --git a/http-test-server/views/head.ejs b/http-test-server/views/head.ejs
index c152d7cdec..58ca173496 100755
--- a/http-test-server/views/head.ejs
+++ b/http-test-server/views/head.ejs
@@ -45,14 +45,14 @@
-
+
-
+
diff --git a/licensing/views/head.ejs b/licensing/views/head.ejs
index 90a2123142..4c66c36705 100755
--- a/licensing/views/head.ejs
+++ b/licensing/views/head.ejs
@@ -47,12 +47,12 @@
-
+
-
+
diff --git a/log-js/package-lock.json b/log-js/package-lock.json
index 8a9be0e5ca..0a474a2530 100644
--- a/log-js/package-lock.json
+++ b/log-js/package-lock.json
@@ -2573,9 +2573,9 @@
"dev": true
},
"elliptic": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
- "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
"dev": true,
"requires": {
"bn.js": "^4.4.0",
@@ -3804,9 +3804,9 @@
}
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"dev": true
},
"log-symbols": {
diff --git a/marketing/README.md b/marketing/README.md
index d5a954907b..c10c99e70d 100644
--- a/marketing/README.md
+++ b/marketing/README.md
@@ -29,7 +29,7 @@ Fyipe is a Status Page, Monitoring and On-call software all combined into one. T
### More detailed description
-Fyipe is one complete SRE and IT Ops platform.
+Fyipe is one complete SRE and DevOps platform.
Fyipe lets you do:
diff --git a/marketing/wikipedia.txt b/marketing/wikipedia.txt
index 19641505b4..7fcac31f79 100644
--- a/marketing/wikipedia.txt
+++ b/marketing/wikipedia.txt
@@ -12,7 +12,7 @@
| num_employees=52 (2019)
}}
-'''Fyipe''' is a [[cloud computing]] company that produces a [[Software as a service|SaaS]] incident response platform for Enterprise IT departments.{{Cite web|url=https://fyipe.com|website=www.fyipe.com|title=Fyipe - Status page, monitoring and on-call made simple.}}
+'''Fyipe''' is a [[cloud computing]] company that produces a [[Software as a service|SaaS]] incident response platform for Enterprise IT departments.{{Cite web|url=https://fyipe.com|website=www.fyipe.com|title=Fyipe - One Complete SRE and DevOps platform.}}
Fyipe is headquartered in [[New York, NY]] {{Cite web|url=https://www.crunchbase.com/organization/fyipe|website=www.crunchbase.com|title=Fyipe, Crunchbase}} with operations in [[Hyderabad, India]]. Its platform is designed to alert clients to disruptions and outages through [[machine learning]] and automation.
diff --git a/package.json b/package.json
index d87a31d29a..4723b07a35 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "app",
"version": "3.0.0",
- "description": "One Complete SRE and IT Ops platform.",
+ "description": "One Complete SRE and DevOps platform.",
"main": "index.js",
"dependencies": {
"prismjs": "^1.20.0",
diff --git a/probe/workers/apiMonitors.js b/probe/workers/apiMonitors.js
index d48315e011..448f63ace4 100755
--- a/probe/workers/apiMonitors.js
+++ b/probe/workers/apiMonitors.js
@@ -24,19 +24,31 @@ module.exports = {
? 'text'
: 'formData'
);
- const { res, resp } = await pingfetch(
- monitor.data.url,
- monitor.method,
- body,
- headers
- );
- await ApiService.ping(monitor._id, {
- monitor,
- res,
- resp,
- type: monitor.type,
- });
+ let retry = true;
+ let retryCount = 0;
+ while (retry) {
+ const { res, resp } = await pingfetch(
+ monitor.data.url,
+ monitor.method,
+ body,
+ headers
+ );
+
+ const response = await ApiService.ping(monitor._id, {
+ monitor,
+ res,
+ resp,
+ type: monitor.type,
+ retryCount,
+ });
+
+ if (response && !response.retry) {
+ retry = false;
+ } else {
+ retryCount++;
+ }
+ }
}
}
} catch (error) {
diff --git a/probe/workers/urlMonitors.js b/probe/workers/urlMonitors.js
index 14f1edc7f5..4788648e39 100755
--- a/probe/workers/urlMonitors.js
+++ b/probe/workers/urlMonitors.js
@@ -14,7 +14,25 @@ module.exports = {
try {
if (monitor && monitor.type) {
if (monitor.data.url) {
- const { res, resp } = await pingfetch(monitor.data.url);
+ let retry = true;
+ let retryCount = 0;
+ while (retry) {
+ const { res, resp } = await pingfetch(monitor.data.url);
+
+ const response = await ApiService.ping(monitor._id, {
+ monitor,
+ res,
+ resp,
+ type: monitor.type,
+ retryCount,
+ });
+
+ if (response && !response.retry) {
+ retry = false;
+ } else {
+ retryCount++;
+ }
+ }
const now = new Date().getTime();
const scanIntervalInDays = monitor.lighthouseScannedAt
@@ -70,13 +88,6 @@ module.exports = {
},
});
}
-
- await ApiService.ping(monitor._id, {
- monitor,
- res,
- resp,
- type: monitor.type,
- });
}
}
} catch (error) {