From 663602fc910074664f50877630a051d04a5920e8 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Sun, 27 Jun 2021 13:33:30 +0100 Subject: [PATCH] :memo: Updates docs with new features for status checking header and url --- docs/status-indicators.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/status-indicators.md b/docs/status-indicators.md index 1e91af06..8f2a8469 100644 --- a/docs/status-indicators.md +++ b/docs/status-indicators.md @@ -48,10 +48,29 @@ appConfig: statusCheckInterval: 20 ``` +## Using a Different Endpoint +By default, the status checker will use the URL of each application being checked. In some situations, you may want to use a different endpoint for status checking. Similarly, some services provide a dedicated path for uptime monitoring. + +You can set the `statusCheckUrl` property on any given item in order to do this. The status checker will then ping that endpoint, instead of the apps main `url` property. + +## Setting Custom Headers +If your service is responding with an error, despite being up and running, it is most likely because custom headers for authentication, authorization or encoding are required. You can define these headers under the `statusCheckHeaders` property for any service. It should be defined as an object format, with the name of header as the key, and header content as the value. +For example, `statusCheckHeaders: { 'X-Custom-Header': 'foobar' }` + +## Troubleshooting Failing Status Checks +If the status is always returning an error, despite the service being online, then it is most likely an issue with access control, and should be fixed with the correct headers. Hover over the failing status to see the error code and response, in order to know where to start with addressing it. +If your service requires requests to include any authorization in the headers, then use the `statusCheckHeaders` property, as described above. +If you are still having issues, it may be because your target application is blocking requests from Dashy's IP. This is a [CORS error](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS), and can be fixed by setting the headers on your target app, to include: +``` +Access-Control-Allow-Origin: https://location-of-dashy/ +Vary: Origin +``` +For further troubleshooting, use an application like [Postman](https://postman.com) to diagnose the issue. + ## How it Works When Dashy is loaded, items with `statusCheck` enabled will make a request, to `https://[your-host-name]/ping?url=[address-or-servce]`, which in turn will ping that running service, and respond with a status code. Response time is calculated from the difference between start and end time of the request. -An indicator will display next to each item, and will be yellow while waiting for the response to return, green if request was successful, red if it failed, and grey if it was unable to make the request all together. +When the response completes, an indicator will display next to each item. The color denotes the status: Yellow while waiting for the response to return, green if request was successful, red if it failed, and grey if it was unable to make the request all together. -All requests are made straight from your server, there is no intermediary. So providing you are hosting Dashy yourself, and are checking the status of other self-hosted services, there shouldn't be any privacy concerns. +All requests are made straight from your server, there is no intermediary. So providing you are hosting Dashy yourself, and are checking the status of other self-hosted services, there shouldn't be any privacy concerns. Requests are made asynchronously, so this won't have any impact on page load speeds. However recurring requests (using `statusCheckInterval`) may run more slowly if the interval between requests is very short.