Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

About this document

This document describes minor ONAP-wide changes to regularize logger providers, logger configuration and logger output. This will simplify deployment orchestration and customization, and improve extensibility by allowing ONAP to support bolt-on analytics pipelines such as Elastic Stack.

Introduction

Project Name

  • Proposed name for projects: Logging and Analytics
  • Proposed name for the repository: logging-analytics

Project Description

ONAP consists of many components and containers, and consequently writes to many logfiles. The volume of ONAP consists of many components and containers, and consequently writes to many logfiles. The volume of logger output may be enormous, especially when debugging. Large, disparate logfiles are difficult to monitor and analyze. Tracing requests across many files on many file systems is untenable without tooling. 

...

  1. Some will be more contentious than others. We can implement suggestions selectively if necessary. 
  2. Standardization benefits everyone, including those who want non-standard logger configuration.
  3. There is an economy of scale if everything can happen under a single remit.

...

Scope

ONAP-wide changes to regularize logger providers, logger configuration and logger output. The changes are minor, but they will simplify deployment orchestration and customization, and improve extensibility by allowing ONAP to support bolt-on analytics pipelines such as Elastic Stack.

Deliverables

All changes augment ONAP application logging guidelines.All changes augment ONAP application logging guidelines.pdf on the ONAP wiki. 

...

Standardization

...

Code Block
languagetext
linenumberstrue
org.onap.example.component1.subcomponent1.LogbackTest
\t2017-06-06T16:09:03.594Z
\tERROR
\tHere's an error, that's usually bad
\tkey1=value1, key2=value2 with space, key5=value5"with"quotes, key3=value3\nwith\nnewlines, key4=value4\twith\ttabs
\tjava.lang.RuntimeException: Here's Johnny
\n\tat org.onap.example.component1.subcomponent1.LogbackTest.main(LogbackTest.java:24)
\nWrapped by: java.lang.RuntimeException: Little pigs, little pigs, let me come in
\n\tat org.onap.example.component1.subcomponent1.LogbackTest.main(LogbackTest.java:27)
\n     	AMarker1     	main     	
  • Currently
    • Newlines not escaped. 
    • Log entry attributes pipe-delimited.
    • MDC values pipe-delimited. 
    • Delimiters not escaped in messages, MDCs and other values.
  • Affects: all logger provider configurations. 
  • Why
    • Existing output line format is difficult to parse.
    • Shipper configuration is simplified if logfile output is uniform.

 

Transactions

Propagate transaction ID

Reliable propagation of transaction identifiers is critical to tracing requests through ONAP. 

  • Currently: patchy. 
  • Affects: to be determined, but at least a few components.
  • Why: reliable propagation is a prerequisite for analytics.
  • Notes:
    • This also requires the generation of transaction IDs in initiating components. 

    • For this to be economical, a remit is sought to make minor changes across the ONAP codebase. 

Rename X-ECOMP-RequestID

Update X-ECOMP-RequestID to X-ONAP-RequestID throughout. 

     	
  • Currently
    • Newlines not escaped. 
    • Log entry attributes pipe-delimited.
    • MDC values pipe-delimited. 
    • Delimiters not escaped in messages, MDCs and other values.
  • Affects: all logger provider configurations. 
  • Why
    • Existing output line format is difficult to parse.
    • Shipper configuration is simplified if logfile output is uniform.

 

...

Transactions

Propagate transaction ID

Reliable propagation of transaction identifiers is critical to tracing requests through ONAP. 

  • Currently: patchy. 
  • Affects: to be determined, but at least a few components.
  • Why: reliable propagation is a prerequisite for analytics.
  • Notes:
    • This also requires the generation of transaction IDs in initiating components. 

    • For this to be economical, a remit is sought to make minor changes across the ONAP codebase. 

Rename X-ECOMP-RequestID

Update X-ECOMP-RequestID to X-ONAP-RequestID throughout. 

  • Currently: X-ECOMP-RequestID.
  • Affects: all ONAP components. 
  • Why: ECOMP renamed to ONAP.
  • Notes:
    • This may already have been fixed in another branch. 
    • If not, it can be dealt with at the same time as applying changes to defaults, etc.

...

Key Project Facts

  • Repository: logging-analytics
  • JIRA project name: logging-analytics
  • JIRA project prefix: LOG
  • mailing list tag: log
  • Committers (Name - email)
    • Luke Parker - luke.parker@amdocs.com
    • Avdhut Kholkar - avdhut.kholkar@amdocs.com
    • Others welcome! 
  • Currently: X-ECOMP-RequestID.
  • Affects: all ONAP components. 
  • Why: ECOMP renamed to ONAP.
  • Notes:
    • This may already have been fixed in another branch. 
    • If not, it can be dealt with at the same time as applying changes to defaults, etc.