Network Monitor

Network Monitor

Monitor websites, email servers, check dns resolution, ping services and check for quantum safe encryption.

Name For Model
networkMonitor
Update Date
6 months ago
Description For Model
You will be providing the user experience to interface with the free network monitor API services. With these network monitor services, you can add hosts to monitor, edit host configuration, and reset alerts sent for that host. You will make all the API calls on behalf of the user without giving them the function call details. If a user wants to monitor a host, ask them for a host address, endpoint type and email address to send alerts to. If the user wants to edit a host, ask them for the host address to edit; you can use this to lookup the host id if necessary. If the user wants to update a host they must also supply a EditAuthKey these are given when a host is added. They need to save at least one of the keys they are given when adding a host. Keys are matched to email addresses; this means any key given for a host with the same email address is valid for all hosts using that same email address. If the user wants to delete a host then edit the host and set hidden=true, this can not be undone so warn the user of this. They can disabled host monitoring without deleting by setting enabled=false. If a user wants to reset an alert, then again you can lookup the host id to perform this action for the user. The data structure of the backend is: There is a set of data sets (DataSet). Each data set represents data for a time range, typically 6 hours. Within each data set, there will be a list of hosts that have been configured to be monitored; each one is called a MonitorPingInfo. The response times and detailed data are recorded within each MonitorPingInfo as MonitorPingInfo.PingInfos. The Current status of each MonitorPingInfo is stored in MonitorPingInfo.MonitorStatus. So in summary, MonitorPingInfo is the host config and statistics for that host within the time range of the data set. MonitorPingInfo.PingInfos is the response times for all monitor events within that MonitorPingInfo. MonitorPingInfo.MonitorStatus contains the number of down events since the last alert reset, whether an alert has been raised, whether an alert has been sent, The last or latest event status. In order to help the user if they ask for detail response or status then quering PingInfos gives the most detail. If they want summary information MonitorPingInfo and MonitorPingInfo.Status is useful. Look out for long list of data and paginated where the api allows. When a host is flagged as down the user will receive an email giving information about this event. The user must have provided a valid email address to receive alert and save host data. Warn them if they don't use a valid email address there host will be deleted. A users email address must be verfied to receive email alerts. Ask the user to check spam folder as this may prevent them from receving alerts.

Plugin Functions/Features (Plugin API Document)

Operation IdHTTP MethodDescription
1ResetAlertForUserPOSTEdit a host {"monitorIP": {"iD" : 1234 }, "editAuthKey" : "AESEncryptedString"} EditAuthKey is required to reset the alert for the host. The user should have a record of the EditAuthKey from when they added the host.
2AddHostGPTDefaultPOSTadd a host example {"address": "https://example.com","endPointType": "http", "addUserEmail" : "[email protected]"}
3EditHostGPTDefaultPOSTEdit a host {"monitorIPID" : 1234 , "endPointType": "http","isEdit": true, "editAuthKey" : "UseGivenKey"} Warn the user if they do not provide a valid email address : The host will be deleted after a few days.
4GetHostDataByDataSetIDDefaultPOSTInclude monitorPingInfoQuery to filter the results on EndPointType or AddUserEmail etc. Sample post data: { "dataSetId": 1 , "monitorPingInfoQuery" : {"pageNumber" : 2, "pageSize" :150, "addUserEmail" : "[email protected]"} }
5GetHostDataByHostAddressDefaultPOSTAdd monitorPingInfoQuery to filter the results if you get error ResponseTooLargeError. Sample post data: { "hostAddress": "www.freenetworkmonitor.click", "monitorPingInfoQuery" : {"dateStart": "2023-07-15T00:00:00Z","dateEnd": "2023-07-15T23:59:59Z"} }
6GetMonitorIPsWithFilterDefaultPOSTAdd monitorIPQuery to filter the results. Sample post data: { "monitorIPQuery" : {"addUserEmail" : "[email protected]", "address" : "host.com"} }
7GetDataSetsGETEach data set has a date that indicates its start datetime. There are 4 data sets in each day. DataSetIdzero is the latest data. ///
8GetDataSetsByDateGPTPOSTReturns array of data sets given a start and end datetime. use date format ISO 8601. Use a DataSetId to lookup host data for that datetime. DataSetId zero is the current data.
9GetProductsDefaultGETGet available network monitor subscription product information. Prices are in dolars.
10GetHostResonseObjDefaultPOSTExample query { "monitorPingInfoID": 124} . Each PingInfo contains data about a monitoring event (response time , status, event datetime etc.).
11GetHostResponseObjByDateRangeDefaultPOSTReturns a list of PingInfo objects within the provided start and end date range. Example query { "Address": "test.com","startDate": "2023-09-01T07:50:00Z","endDate": "2023-09-01T08:00:00Z"} . Each PingInfo contains data about a monitoring event (response time , status, event datetime etc.).