...
Log message order | MDC | Description | Associated with markers | Required Y/N/C (C= context dependent) | EELF Audit | EELF Metric | EELF Error | EELF Debug | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
RequestID | See above. UUID only To Confirm TransactionID rename from RequestID before 20180419 - for now still RequestID see | Y-20180412 | ||||||||||||||
InvocationID | See above. UUID only | Y-20180412 | ||||||||||||||
ServiceName | See above. The service inside the partner doing the call - includes API name | Y-20180412 | ||||||||||||||
PartnerName | See above. MDC-PartnerName (the larger component doing the call) for example SDC-BE instead of just SDC for the overall pods possibly rename "subComponent" of calling entity | Y-20180412 | ||||||||||||||
1 | EntryTimestamp (previously BeginTimestamp) | Date-time that processing activities being logged begins. The value should be represented in UTC and formatted per ISO 8601, such as “2015-06-03T13:21:58+00:00”. The time should be shown with the maximum resolution available to the logging component (e.g., milliseconds, microseconds) by including the appropriate number of decimal digits. For example, when millisecond precision is available, the date-time value would be presented as, as “2015-06-03T13:21:58.340+00:00”. Context dependent on whether part of an ENTRY marker | C-20180419 | |||||||||||||
2 | InvokeTimestamp (prevously EndTimestamp) | Timestamp on invocation start Context dependent on whether part of an INVOKE marker | C-20180426 | |||||||||||||
3 | ElapsedTime | This field contains the elapsed time to complete processing of an API call or transaction request (e.g., processing of a message that was received). This value should be the difference between. EndTimestamp and BeginTimestamp fields and must be expressed in milliseconds. How: exit record records either the diff or both the entry/exit times field will be empty for entry records otherwise we will need to rely on the elk stack to derive the duration see entry/exit markers - Marker-EXIT How to correlate TX retry to exit logs - either timestamp or invocationID or both | N-20180419 | |||||||||||||
4 | ServiceInstanceID | This field is optional and should only be included if the information is readily available to the logging component. Transaction requests that create or operate on a particular instance of a service/resource can
NOTE: AAI won’t have a serviceInstanceUUID for every service instance. For example, no serviceInstanceUUID is available when the request is coming from an application that may import inventory data. | N-20180412 If the component supplies it (The fields specific to certain components should be clearly identified. For example, ServiceInstanceID does not apply to SDC) | |||||||||||||
5 | VirtualServerName | Physical/virtual server/K8S-container name. Optional: empty if determined that its value can be added by the agent that collects the log files collecting. Upgrade for kubernetes namespace, host affinity supports hybrid environments redundancy between clientIP, server, virtualServer name is OK - and helpfull for runtime OPS/Hybrid envs | N-20180419 replaced by serverFQDN | |||||||||||||
6 | StatusCode | This field indicates the high level status of the request. It must have the value COMPLETE when the request is successful and ERROR when there is a failure. Discussion: status/response/severity relationship status = global, response below is app specific Ability to render severity-like line in a non-debug log | Y-20180412 | |||||||||||||
7 | ResponseCode | This field contains application-specific error codes. For consistency, common error categorizations should be used. | Y-20180412 *Note: 1 | |||||||||||||
8 | ResponseDescription | This field contains a human readable description of the ResponseCode. | Y-20180412 *Note: 1 | 11 | ||||||||||||
9 | InstanceUUID | If known, this field contains a universally unique identifier used to differentiate between multiple instances of the same (named) log writing service/application. Its value is set at instance creation time (and read by it, e.g., at start/initialization time from the environment). This value should be picked up by the component instance from its configuration file and subsequently used to enable differentiation of log records created by multiple, locally load balanced ONAP component or subcomponent instances that are otherwise identically configured. Handles parallel threads or running across a load balanced set of microservices - for identification | Y-20180412 | |||||||||||||
10 | Severity | OPS specific Use/Map existing? https://www.slf4j.org/api/org/apache/commons/logging/Log.html ENUM is INFO/TRACE/DEBUG/WARN/ERROR/FATAL By default - align this severity with the reported log level (optionally a way to map actual level from reported level if required) | Y-20180412 | |||||||||||||
11 | TargetEntity | It contains the name of the ONAP component or sub-component, or external entity, at which the operation activities captured in this metrics log record is invoked. Example: SDC-BE | Y-20180412 | |||||||||||||
12 | TargetServiceName | It contains the name of the API or operation activities invoked at the TargetEntity. Example: Class name of rest endpoint Discussion: on building call graph vs human readable single line - keep for human readable Used as valuable URI - to annnote invoke marker Review in terms of Marker-INVOKE - possiblly add INVOKE-return - to filter reporting TBD: Coverage by log file type (debug, trace, ...) TBD: cover off discussion on reducing log files to two (DEBUG/rest) for C* release | Y-20180419 | |||||||||||||
15 | ServerFQDN (use for k8s cluster) | This field contains the Virtual Machine (VM) Fully Qualified Domain Name (FQDN) if the server is virtualized. Otherwise, it contains the host name of the logging component. (previously covered by removed "Server" field) redundancy between clientIP, server, virtualServer name is OK - and helpfull for runtime OPS/Hybrid envs superceedes virtualServerName Report what is in the http header Discussion: roll all 3 fqdn, hostname or ip into one field - do we ever need two of the 3 fields concurrently? TODO: Verify what is also available from a filebeat agent when it exists Upgrade for kubernetes namespace, host affinity | Y-20180412/20180419 | |||||||||||||
16 | ClientIPAddress | This field contains the requesting remote client application’s IP address if known. Otherwise this field can be empty. We don't differentiate between inside/outside ONAP for the IP - this supports hybrid environments Derived from the system redundancy between clientIP, server, virtualServer name is OK - and helpfull for runtime OPS/Hybrid envs Discussion: do we need both ip and fqdn fields? Report what is in the http header | Y-20180412 Ask question of OPS to remove this field - 20180419 | |||||||||||||
17 | ProcessKey | This field can be used to capture the flow of a transaction through the system by indicating the components and operations involved in processing. If present, it can be denoted by a comma separated list of components and applications. Discussion: should be redundant because of the invocationID | N-20180419 Review 1 more more time on Tue. | |||||||||||||
TargetElement | VNF/PNF context dependent - on CRUD operations of VNF/PNFs | C-20180426 | ||||||||||||||
18 | RemoteHost | Unknown. | ||||||||||||||
19 | AlertSeverity | Unknown. | ||||||||||||||
20 | TargetVirtualEntity | Unknown | ||||||||||||||
21 | ClassName | Defunct. Doesn't require an MDC. | ||||||||||||||
22 | ThreadID | Defunct. Doesn't require an MDC. | ||||||||||||||
23 | CustomField1 | (Defunct now that MDCs are serialized as NVPs.(Name Value Pairs) | ||||||||||||||
24 | CustomField2 | (Defunct now that MDCs are serialized as NVPs.) | ||||||||||||||
25 | CustomField3 | (Defunct now that MDCs are serialized as NVPs.) | ||||||||||||||
26 | CustomField4 | (Defunct now that MDCs are serialized as NVPs.) |
...