Annex B LogObject Client Examples (Informative)
B.1 LogObject Client examples
This section provides some examples of clients that could be using the LogObject. The first example is a possible standard diagnostic Client, the second example is of a possible analytic engine.
B.2 Diagnostic client
The diagnostic Client may monitor the general health of a system through status summary information that is outside of the scope of a LogObject. This might be HealthStatus information defined in the DI specification, or diagnostic information define in the UAFX specifications.
When a maintenance worker or engineer discover some problem, they can access a diagnostic Client to trouble shoot the issue. The diagnostic Client can call GetRecords from the Server(s) that are reporting an issue. The LogRecords should provide detailed information allowing the maintenance worker / engineer to diagnose and correct the issue. Typically, this Client would filter and/or sort the information provided by the GetRecords Calls. It might also combine information from multiple Servers. The Client might allow the maintenance worker / engineer to search for specific information.
The Client would only connect to a Server when there is something to troubleshoot.

If a system contains very small devices (with minimum storage), the diagnostic Client might periodically connect the small devices and collect the LogRecords. As an alternative the small device might just generate Events for the LogRecords and let some larger device or the diagnostic Client collect them. The diagnostic Client could store the collected records for a longer period, allowing the maintenance worker / engineer to review a longer history.
Note: Time Syncing functionality is required in OPC UA products, but end users might not enable it, in which case any dianostic Client or analytical engine should check the time on devices to which they are communicating and validate the time on that device.
B.3 Analytic engine
An analytic engine would periodically collect all LogRecords and store them for analytics.
The diagnostic information may be collected in a cloud environment, where it can be analysed. This may be for predictive maintenance or for process optimization. The LogRecord Structure provides fields that can help an analytics engine, by providing correlation information between various Servers (TraceContext), and also the support for the grouping of information inside of a Server (TraceContext).
