Problem
Noticed, that in many cases, when X-Road service call was made within the same Security Server (Client = Producer), the timesamp of Producer Security Server requestInTs is less than the timestamp of Client Security Server requestOutTs (seems like request receiver earlier than it was sent out). And the timesamp of Client Security Server responseInTs is less than the timestamp of Producer Security Server responseOutTs (seems like response received earlier than it was sent out).
Within the same Security Server (Client = Producer) means, that there must be no time synchronization problem between Security Servers.
Please review the reasonability and possibility to realize in a way that the same logic is followed to log timestamps when sending out and when receiving in the package.
Operational monitoring has to be able to answer to the administrator question, how long it took to send out request (over the network) and how long it took to receive response (over the network). When using different logic of timestamps, it is nearly impossible.
Acceptance criteria
Documentation is clarified
Same logic is followed to log timestamps when sending out and when receiving in the package
Affected components: Security Server opmonitoring Affected documentation: https://github.com/ria-ee/X-Road/blob/develop/doc/OperationalMonitoring/Protocols/pr-opmon_x-road_operational_monitoring_protocol_Y-1096-2.md#annex-b-json-schema-for-payload-of-getsecurityserveroperationaldata-response Estimated delivery: - External reference: -
Problem Noticed, that in many cases, when X-Road service call was made within the same Security Server (Client = Producer), the timesamp of Producer Security Server requestInTs is less than the timestamp of Client Security Server requestOutTs (seems like request receiver earlier than it was sent out). And the timesamp of Client Security Server responseInTs is less than the timestamp of Producer Security Server responseOutTs (seems like response received earlier than it was sent out). Within the same Security Server (Client = Producer) means, that there must be no time synchronization problem between Security Servers.
Sample: {"clientMemberClass":"GOV","clientMemberCode":"00000001","clientSecurityServerAddress":"xtee9.ci.kit","clientSubsystemCode":"Central monitoring client","clientXRoadInstance":"XTEE-CI-XM","messageId":"020215a9-9d21-4d10-bf24-4352486a2512","messageProtocolVersion":"4.0","monitoringDataTs":1503387675,"requestAttachmentCount":0,"requestInTs":1503387675556,"requestOutTs":1503387675558,"requestSoapSize":1413,"responseAttachmentCount":0,"responseInTs":1503387675716,"responseOutTs":1503387675725,"responseSoapSize":7486,"securityServerInternalIp":"10.0.24.140","securityServerType":"Client","serviceCode":"getSecurityServerHealthData","serviceMemberClass":"GOV","serviceMemberCode":"00000001","serviceSecurityServerAddress":"xtee9.ci.kit","serviceXRoadInstance":"XTEE-CI-XM","succeeded":true} {"clientMemberClass":"GOV","clientMemberCode":"00000001","clientSecurityServerAddress":"xtee9.ci.kit","clientSubsystemCode":"Central monitoring client","clientXRoadInstance":"XTEE-CI-XM","messageId":"020215a9-9d21-4d10-bf24-4352486a2512","messageProtocolVersion":"4.0","monitoringDataTs":1503387675,"requestAttachmentCount":0,"requestInTs":1503387675610,"requestOutTs":1503387675654,"requestSoapSize":1413,"responseAttachmentCount":0,"responseInTs":1503387675666,"responseOutTs":1503387675722,"responseSoapSize":7486,"securityServerInternalIp":"10.0.24.140","securityServerType":"Producer","serviceCode":"getSecurityServerHealthData","serviceMemberClass":"GOV","serviceMemberCode":"00000001","serviceSecurityServerAddress":"xtee9.ci.kit","serviceXRoadInstance":"XTEE-CI-XM","succeeded":true}
Here { "securityServerType":"Client", "responseInTs":1503387675716 } < { "securityServerType":"Producer", "responseOutTs":1503387675722 }
It seems according to: https://github.com/ria-ee/X-Road/blob/develop/src/addons/op-monitoring/src/main/java/ee/ria/xroad/proxy/serverproxy/OpMonitoringServiceHandlerImpl.java#L144 and
https://github.com/ria-ee/X-Road/blob/develop/src/addons/op-monitoring/src/main/java/ee/ria/xroad/proxy/serverproxy/OpMonitoringServiceHandlerImpl.java#L152 that:
Please confirm, that this is the case. If yes, please clarify also in documentation https://github.com/ria-ee/X-Road/blob/develop/doc/OperationalMonitoring/Protocols/pr-opmon_x-road_operational_monitoring_protocol_Y-1096-2.md#annex-b-json-schema-for-payload-of-getsecurityserveroperationaldata-response
Please review the reasonability and possibility to realize in a way that the same logic is followed to log timestamps when sending out and when receiving in the package. Operational monitoring has to be able to answer to the administrator question, how long it took to send out request (over the network) and how long it took to receive response (over the network). When using different logic of timestamps, it is nearly impossible.
Acceptance criteria