Details

    • Story Points:
      3

      Description

      Go uses Event Processing model and does not explicitly use Threads; thus making it impossible to non-intrusively maintain execution context with strands of code flow as is possible in other languages using Thread-Local-Storage. The context needs to be maintained explicitly and passed from one function call to another. One possible approach is to use context.Context already being passed across voltha methods and components; and pass this context into logger instance for each log statement as first argument.

      Aim of this task it to explore if it is feasible to Enrich context by injecting unique txid (and other attributes) for each invoked operation and then extract & use the injected context attribute in log package for inserting additional fields to log statement which would allow correlation of logs pertaining to same operation.

      Additionally, explore if log package can also stream the log output to an additional output sink over network (other than stdout) which can then be used by voltctl to on-demand generate a single stream of logs from multiple components in time-series order. Also check filtering support available in zap core library to add filters for this output stream to enable use cases like "Display Logs corresponding to Enable Device operation across voltha components in a single stream"

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            girishk Girish Kumar
            Reporter:
            girishk Girish Kumar
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes