Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions plugins/UptimeRobot/v2/dataStreams/eventLogs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{
"name": "eventLogs",
"displayName": "Event Logs",
"baseDataSourceName": "httpRequestScoped",
"config": {
"httpMethod": "post",
"endpointPath": "getMonitors",
"postBody": {
"format": "json",
"monitors": "{{objects.map((n) => n.monitorId).join('-')}}",
"logs": 1
},
"postRequestScript": "eventLogs.js",
"paging": {
"mode": "offset",
"pageSize": {
"realm": "body",
"path": "limit",
"value": "50"
},
"offset": {
"rowCountIn": {
"realm": "payloadArraySize",
"path": "monitors"
},
"mode": "row",
"base": "0"
},
"out": {
"realm": "body",
"path": "offset"
}
}
},
"matches": {
"sourceType": {
"type": "oneOf",
"values": [
"UptimeRobot HTTP Monitor",
"UptimeRobot Keyword Monitor",
"UptimeRobot Ping Monitor",
"UptimeRobot Port Monitor",
"UptimeRobot Heartbeat Monitor"
]
}
},
"metadata": [
{
"name": "friendly_name",
"displayName": "Monitor",
"shape": "string",
"role": "label"
},
{
"name": "datetime",
"displayName": "Timestamp",
"shape": "date"
},
{
"name": "reason.code",
"displayName": "Code",
"shape": "string"
},
{
"name": "reason.detail",
"displayName": "Message",
"shape": "string"
},
{
"name": "duration",
"displayName": "Duration",
"shape": "seconds"
}
]
}
82 changes: 82 additions & 0 deletions plugins/UptimeRobot/v2/dataStreams/latestStates.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
{
"name": "latestStates",
"displayName": "Latest States",
"baseDataSourceName": "httpRequestScoped",
"config": {
"httpMethod": "post",
"endpointPath": "getMonitors",
"postBody": {
"format": "json",
"monitors": "{{objects.map((n) => n.monitorId).join('-')}}"
},
"postRequestScript": "latestStates.js",
"paging": {
"mode": "offset",
"pageSize": {
"realm": "body",
"path": "limit",
"value": "50"
},
"offset": {
"rowCountIn": {
"realm": "payloadArraySize",
"path": "monitors"
},
"mode": "row",
"base": "0"
},
"out": {
"realm": "body",
"path": "offset"
}
}
},
"timeframes": false,
"matches": {
"sourceType": {
"type": "oneOf",
"values": [
"UptimeRobot HTTP Monitor",
"UptimeRobot Keyword Monitor",
"UptimeRobot Ping Monitor",
"UptimeRobot Port Monitor",
"UptimeRobot Heartbeat Monitor"
]
}
},
"metadata": [
{
"name": "state",
"displayName": "State",
"shape": "state"
},
{
"name": "friendly_name",
"displayName": "Friendly Name",
"visible": false,
"shape": "string",
"role": "label"
},
{
"name": "link",
"displayName": "Monitor",
"shape": [
"url",
{
"label": "{{column.friendly_name}}"
}
]
},
{
"name": "id",
"displayName": "ID",
"shape": "string",
"role": "id"
},
{
"name": "status",
"displayName": "Status",
"shape": "string"
}
]
}
23 changes: 23 additions & 0 deletions plugins/UptimeRobot/v2/dataStreams/monitors.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "monitors",
"displayName": "Monitors",
"baseDataSourceName": "httpRequestUnscoped",
"config": {
"httpMethod": "post",
"endpointPath": "getMonitors",
"postBody": {
"format": "json"
},
"postRequestScript": "monitors.js",
"getArgs": [],
"headers": []
},
"visibility": {
"type": "hidden"
},
"manualConfigApply": true,
"matches": "none",
"rowPath": [],
"metadata": [],
"timeframes": false
}
68 changes: 68 additions & 0 deletions plugins/UptimeRobot/v2/dataStreams/responseTimes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{
"name": "responseTimes",
"displayName": "Response Times",
"baseDataSourceName": "httpRequestScoped",
"config": {
"httpMethod": "post",
"endpointPath": "getMonitors",
"postBody": {
"format": "json",
"monitors": "{{objects.map((n) => n.monitorId).join('-')}}",
"response_times_end_date": "{{timeframe.unixEnd}}",
"response_times_start_date": "{{timeframe.unixStart}}",
"response_times": 1
},
"postRequestScript": "responseTimes.js",
"paging": {
"mode": "offset",
"pageSize": {
"realm": "body",
"path": "limit",
"value": "50"
},
"offset": {
"rowCountIn": {
"realm": "payloadArraySize",
"path": "monitors"
},
"mode": "row",
"base": "0"
},
"out": {
"realm": "body",
"path": "offset"
}
}
},
"matches": {
"sourceType": {
"type": "oneOf",
"values": [
"UptimeRobot HTTP Monitor",
"UptimeRobot Keyword Monitor",
"UptimeRobot Ping Monitor",
"UptimeRobot Port Monitor",
"UptimeRobot Heartbeat Monitor"
]
}
},
"metadata": [
{
"name": "friendly_name",
"displayName": "Monitor",
"shape": "string",
"role": "label"
},
{
"name": "datetime",
"displayName": "Timestamp",
"shape": "date"
},
{
"name": "value",
"displayName": "Average Response",
"shape": "milliseconds",
"role": "value"
}
]
}
14 changes: 14 additions & 0 deletions plugins/UptimeRobot/v2/dataStreams/scripts/eventLogs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const startTime = parseInt('{{timeframe.unixStart}}');
const endTime = parseInt('{{timeframe.unixEnd}}');

const eventLogs = data.monitors
.map((result) => {
return result.logs.map((row) => ({
...row,
friendly_name: result.friendly_name
}));
})
.flat()
.filter((row) => row.datetime >= startTime && row.datetime <= endTime);

result = eventLogs;
32 changes: 32 additions & 0 deletions plugins/UptimeRobot/v2/dataStreams/scripts/latestStates.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const getType = (value) => ({
1: 'UptimeRobot HTTP Monitor',
2: 'UptimeRobot Keyword Monitor',
3: 'UptimeRobot Ping Monitor',
4: 'UptimeRobot Port Monitor',
5: 'UptimeRobot Heartbeat Monitor'
})[value];

const getStatus = (value) => ({
0: 'Paused',
1: 'Not Checked Yet',
2: 'Up',
8: 'Seems Down',
9: 'Down'
})[value];

const getState = (value) => ({
0: 'unknown',
1: 'unknown',
2: 'success',
8: 'warning',
9: 'error'
})[value];

result = data.monitors.map((result) => ({
...result,
id: result.id.toString(),
link: `https://uptimerobot.com/dashboard?ref=website-header#${result.id}`,
status: getStatus(result.status),
state: getState(result.status),
type: getType(result.type)
}));
23 changes: 23 additions & 0 deletions plugins/UptimeRobot/v2/dataStreams/scripts/monitors.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const sourceName = 'UptimeRobot';

const type = (value) => ({
1: 'UptimeRobot HTTP Monitor',
2: 'UptimeRobot Keyword Monitor',
3: 'UptimeRobot Ping Monitor',
4: 'UptimeRobot Port Monitor',
5: 'UptimeRobot Heartbeat Monitor'
})[value];

result = data.monitors.map((monitor) => ({
links: [{
label: 'View in UptimeRobot',
url: `https://uptimerobot.com/dashboard?ref=website-header#${monitor.id}`
}],
monitorUrl: monitor.url,
name: monitor.friendly_name,
sourceName: sourceName,
sourceType: type(monitor.type),
sourceId: monitor.id.toString(),
monitorId: monitor.id.toString(),
type: 'monitor'
}));
10 changes: 10 additions & 0 deletions plugins/UptimeRobot/v2/dataStreams/scripts/responseTimes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const responseTimes = (data?.monitors || [])
.map((result) => {
return result.response_times.map((row) => ({
...row,
friendly_name: result.friendly_name
}));
})
.flat();

result = responseTimes;
Loading