vrk-kpa / xroad-joint-development

Unmaintained repository. Development moved to: https://github.com/nordic-institute/X-Road-development
19 stars 8 forks source link

BUG: NFR 5.3.3 - Output security server and central server status using json format #43

Closed VitaliStupin closed 6 years ago

VitaliStupin commented 8 years ago

Affected components: - Affected documentation: - Estimated delivery: - External reference: -

Problem Source code must conform to NFR (https://github.com/vrk-kpa/xroad-joint-development/blob/master/NFR.md)

Acceptance criteria

ToomasMolder commented 7 years ago

Security server environmental monitoring status is available through JMXMP (see also https://github.com/ria-ee/X-Road/blob/develop/xtee6/doc/EnvironmentalMonitoring/Monitoring-architecture.md, getSecurityServerMetrics). Convertible into JSON.

Security server operational monitoring status is available over X-road messages (see also https://github.com/ria-ee/X-Road/blob/develop/xtee6/doc/OperationalMonitoring/Protocols/pr-opmon_x-road_operational_monitoring_protocol_Y-1096-2.md, methods getSecurityServerOperationalData and getSecurityServerHealthData) or JMXMP (see also https://github.com/ria-ee/X-Road/blob/develop/xtee6/doc/OperationalMonitoring/Protocols/pr-opmonjmx_x-road_operational_monitoring_jmx_protocol_Y-1096-3.md, method getSecurityServerHealthData only). Convertible into JSON.

Central server status using similar methods is not available as far as I know.

iluwatar commented 7 years ago

The proposed functionality is closely related to health check implemented in external load balancing project. Here is additional information about the health check that we have already implemented.

Health check service The health check service is a new feature of xroad-proxy for load balancing support. It is disabled by default but can be configured and enabled via configuration options under [Proxy]:

The service can be accessed using plain HTTP. It will return HTTP 200 OK if the proxy should be able to process messages and HTTP 500 Internal Server Error otherwise. An error condition will add a short message about the failure reason to the body of the response.

The health checks currently checks that:

Each of these checks currently has a separate timeout of 5 seconds. If the check fails to produce a response in this time, it will be considered as a health check failure and will cause a HTTP 500.

Each of the results of the above listed separate checks will be cached for a short while to avoid excess resource usage by the health check. The results are cached for a short time, though:

Known check result inconsistencies vs. actual state:

iluwatar commented 7 years ago

The functionality is also related to diagnostics offered by the security server UI.

JyrgenSuvalov commented 7 years ago

Thanks for the info. And I agree that this is closely related to the diagnostics page. Reusing existing resources is definitely planned. And I do think the output should be available in both human-readable form in the diagnostics section as well as machine-readable in the intended /heartbeat.json form.

JyrgenSuvalov commented 6 years ago

Transferred to X-Road Service Desk as an enhancement request. Can be closed.