Overview

Logging and Log Upload are two critical aspects when considering large scale RDK deployment. STB stores logs for limited number of days (~10 days). Log repository get logs for a week or so which can help in debugging deployed STBs.

Importance of Logging in RDK Deployments

More details on how logging is done in RDK can be found here: RDK Logger

RDK Log Upload Mechanism

Responsible for gathering local logs, packaging them, and uploading them to a remote URL. A client-side scheduler would control when it executes, but it could also be activated via immediate triggers from the log upload checker, SNMP MIBs, or other local actions.

The Uploader is responsible for sending STB log files to a remote file store. It performs the following:

Features

How STBs Upload Logs and Metrics

STBs check in with Xconf with the query : "Give me my logging and telemetry configuration." Part of their query string includes several (about four) parameters of this particular box. Things like MAC address, model, current firmware version, and environment.

Xconf server looks at these parameters and runs them through a rules engine that finds the closest targeting rule match to the box's profile. Once it finds a match, it retrieves the configuration for that rule.

The configuration includes things like upload schedule, repository URL, upload protocol,  path to the file server, a protocol indicator, upload time smear and more.

Once the box gets the response, it parses it. It sets the specified random schedule that delays uploading the files. At that time, the box packages up all of its log files (up to twelve of them), compresses the bundle, and uploads the archive to the destination.

Service and scripts responsible for LogUpload in STB