โค๏ธHealth check

This article describes the health check functionality of the PORTOS API.

Get health check

GET {{server_adddress}}/api/v2/health

This endpoint allows you to get system-wide health check.

{
    "status": "Unhealthy",
    "totalDuration": "00:00:00.7933458",
    "entries":
    {
        "diskstorage":
        {
            "data":
            {},
            "description": "Minimum configured megabytes for disk C:\\ is 512 but actual free space are 252 megabytes",
            "duration": "00:00:00.0414471",
            "status": "Degraded"
        },
        "license":
        {
            "data":
            {
                "remaningDays": 196,
                "expirationDate": "2021-05-13T00:00:00"
            },
            "description": "Licencia exspiruje za 196 dnรญ.",
            "duration": "00:00:00.0000619",
            "status": "Healthy"
        },
        "fiscalPrinters":
        {
            "data":
            {
                "entries":
                [
                    {
                        "key": "Fiscal2",
                        "result":
                        {
                            "data":
                            {},
                            "status": "Healthy"
                        }
                    },
                    {
                        "key": "eKasa",
                        "result":
                        {
                            "data":
                            {},
                            "description": "Tlaฤiareลˆ nie je pripravenรก. Skontrolujte, ฤi je tlaฤiareลˆ zapnutรก a pripojenรก do chrรกnenรฉho dรกtovรฉho รบloลพiska.",
                            "status": "Degraded"
                        }
                    },
                    {
                        "key": "Virtual",
                        "result":
                        {
                            "data":
                            {},
                            "description": "Tlaฤiareลˆ nie je zastihnuteฤพnรก na adrese 'usb-printer' (chyba: PrinterNotOpened).",
                            "status": "Unhealthy"
                        }
                    }
                ]
            },
            "duration": "00:00:00.7677499",
            "status": "Unhealthy"
        },
        "orderEndpoints":
        {
            "data":
            {
                "entries":
                [
                    {
                        "key": "Kuchyna",
                        "result":
                        {
                            "data":
                            {},
                            "description": "Tlaฤiareลˆ nie je zastihnuteฤพnรก na adrese 'usb-printer' (chyba: PrinterNotOpened).",
                            "status": "Unhealthy"
                        }
                    },
                    {
                        "key": "01",
                        "result":
                        {
                            "data":
                            {},
                            "status": "Healthy"
                        }
                    }
                ]
            },
            "duration": "00:00:00.0056070",
            "status": "Unhealthy"
        },
        "portos.Features.Qerko":
        {
            "data":
            {
                "displayName": "Qerko"
            },
            "duration": "00:00:00.0113119",
            "status": "Healthy"
        }
    }
}

The response HTTP status is always 200 for all health report status values. No authorization is required for accessing API health check.

Response payload

The response payload is based on Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions library and consists of following classes:

Health status

String enumeration of following values:

  • healthy Indicates that the health check determined that the component was healthy.

  • degraded Indicates that the health check determined that the component was in a degraded state.

  • unhealthy Indicates that the health check determined that the component was unhealthy, or an unhandled exception was thrown while executing the health check.

Health report

The response payload is represented by HealthReport class, which contains following properties:

Health report entry

The values in health report entries dictionary map are represented by the HealthReportEntry class, which contains following properties:

Health report exception

Represents information about failed health report check.

Health check result

Some health checks contains collection of inner health checks. Each element of such collection is represented by the HealthCheckResult class, which contains following properties:

Health checks

The health report's entries dictionary contains information for all API components such as:

Core health checks

There are following core health report entries:

Disk storage health check

Disk storage health check is associated with the diskstorage` identifier. This health check verifies free space on disk, on which executing assembly (the API service/deamon) is stored. Following table explains relationship between free megabytes and health status of health check.

License health check

License health check is associated with the license identifier. License health check verifies expiration date of product license. Following table explains relationship between remaining license days and health status of license health check.

The data section contains following values:

The keys may not be present, if exception property of license health report entry is set.

Fiscal printers health check

Fiscal printers health check is associated with the fiscalPrinters identifier. Checks health of every fiscal device marked as active.

The data section contains following values:

The FiscalPrintersHealthCheckResultEntry class contains following properties:

Order endpoints health check

Order endpoints health check is associated with the orderEndpoints identifier. Checks health of every order endpoint device marked as active.

The data section contains following values:

The OrderEndpointsHealthCheckResultEntry class contains following properties:

Feature health checks

If some optional features are enabled on API server, health report contains report entries for such feature. Name of health report entry is equal to feature name, that is prefixed with portos.Features prefix (e.g. Qerko feature is associated with report entry with name portos.Features.Qerko) and contains displayName property in it's data.

Last updated