Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: remove 18-25 optional/redundant fields

...

Log message orderMDCDescription

Associated with

markers

Required

Y/N/C (C= context dependent)

N = not required


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

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyLOG-232


Y-20180412




InvocationID

See above.

UUID only


Y-20180412




InstanceUUID







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




StatusCode







ResponseCode







ResponseDescription







Severity







ServerFQDN







ClientIPAddress






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




TargetEntity







TargetServiceName







TargetElement








fields below are not required





3ElapsedTime

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



4ServiceInstanceID

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
identify/reference it via a unique “serviceInstanceID” value. This value can be used as a primary key for
obtaining or updating additional detailed data about that specific service instance from the inventory
(e.g., AAI). In other words:

  • In the case of processing/logging a transaction request for creating a new service instance, the serviceInstanceID value is determined by either a) the MSO client and passed to MSO or b) by MSO itself upon receipt of a such a request.
  • In other cases, the serviceInstanceID value can be used to reference a specific instance of a service as would happen in a “MACD”-type request.
  • ServiceInstanceID is associated with a requestID in log records to facilitate tracing its processing over multiple requests and for a specific service instance. Its value may be left “empty” in subsequent record to the 1 st record where a requestID value is associated with the serviceInstanceID value.

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)





5VirtualServerName

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





6StatusCode

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



7ResponseCode

This field contains application-specific error codes. For consistency, common error categorizations should be used.


Y-20180412

*Note: 1





8ResponseDescription

This field contains a human readable description of the ResponseCode.


Y-20180412

*Note: 1




11
9InstanceUUID

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



10Severity

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



11TargetEntity

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


C-20180412



12TargetServiceName

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


C-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


Y-20180412/20180419






16ClientIPAddress

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





17ProcessKey

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.






TargetElementVNF/PNF context dependent - on CRUD operations of VNF/PNFs
C-2018042618RemoteHostUnknown.19AlertSeverityUnknown.20TargetVirtualEntityUnknown21ClassNameDefunct. Doesn't require an MDC.22ThreadIDDefunct. Doesn't require an MDC.23CustomField1(Defunct now that MDCs are serialized as NVPs.(Name Value Pairs)24CustomField2(Defunct now that MDCs are serialized as NVPs.)25CustomField3(Defunct now that MDCs are serialized as NVPs.)26CustomField4(Defunct now that MDCs are serialized as NVPs.)



Deprecation

Indexing makes many of the remaining attributes redundant. So for example:

...