Versions Compared

Key

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

 

Table of Contents

XConf server configuration procedure:

XConf server URL: https://xconf.rdkcentral.com:19093/admin/ux/

Refer Xconf Reference Setup Credentials for server credentials

Create Formula

  • Login to Xconf Server, go to DCM menu item ,click on the “Formulas” sub menu, and create Formula.


Create Device settings

  • Make the Device setting inside the formula we've created.
  • Check if these settings are now present: Xconf Server → DCM → Device Settings.

Create Upload repository

Create Log upload settings

  • Check this inside: Xconf Server → DCM → LogUpload Settings


Create Permanent profiles

Xconf Server → Telemetry → Permanent Profiles

  • Once you save the permanent profile, you will get a message overlay ‘Profile added to the pending changes’.
  • Then go to Changes → select the profile you create → Click on "Approve selected changes".
  • Then the permanent profile will be listed under Telemetry → Permanent profiles.

Create Targeting rules

  • Create targeting rule via Telemetry -> Targeting rules. Targeting rules is to map the profiles with rules

Client(device) side verification

Configure the below details to dcm.properties and comment out the other details

Code Block
languagebash
themeMidnight
cat /etc/dcm.properties
---------------------------
#BD-1004 : Removed IP/Links for open sourcing
# DCM properties file
# Log server details
LOG_SERVER=xconf.rdkcentral.com
# Log upload server details
DCM_LOG_SERVER=https://xconf.rdkcentral.com/xconf/logupload.php
DCM_LOG_SERVER_URL=https://xconf.rdkcentral.com:19092/loguploader/getT2Settings
# SCP server details
DCM_SCP_SERVER=xconf.rdkcentral.com
# LA server details
DCM_LA_SERVER_URL=https://xconf.rdkcentral.com/xconf/logupload.php

The above configuration is a set of properties that are used to configure the Device Configuration Manager (DCM), which is a system used for managing the configuration of devices on a network.

Here is a brief explanation of each property:

  • LOG_SERVER: The hostname or IP address of the server where log messages generated by the DCM will be sent.
  • DCM_LOG_SERVER: The URL of the server where log messages will be uploaded.
  • DCM_LOG_SERVER_URL: The URL of the server that provides settings for the log uploader.
  • DCM_SCP_SERVER: The hostname or IP address of the server where files will be uploaded via SCP (Secure Copy Protocol).
  • DCM_LA_SERVER_URL: The URL of the server where logs will be uploaded.

Steps for enabling Telemetry 2.0 in device

  • tr181 -s -t boolean -v true Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Telemetry.Enable
  • tr181 -s -t string -v 2.0.1 Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Telemetry.Version
  • tr181 -s -t string -v https://xconf.rdkcentral.com:19092/loguploader/getT2Settings Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Telemetry.ConfigURL
  • Checking if RFCs are loaded :
    • Code Block
      languagebash
      themeMidnight
      tr181 Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Telemetry.Enable
      true
      tr181 Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Telemetry.Version
      2.0.1
      tr181 Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.Telemetry.ConfigURL
      https://xconf.rdkcentral.com:9092/loguploader/getT2Settings

Steps after setting RFCs

  • Sync and reboot the device

  • Check the pid of telemetry2_0 to see if it is up :
    • Code Block
      languagebash
      themeMidnight
      pidof telemetry2_0
      8939
  • set Multiprofile using rbuscli (sample given below)
    • Code Block
      languagebash
      themeMidnight
      rbuscli setvalues Device.X_RDKCENTRAL-COM_T2.ReportProfiles string '{
          "profiles": [
              {
                  "name": "RDKV_FASIL_Profile",
                  "hash": "hash1",
                  "value": {
                      "Name": "RDKV_FASIL_Profile",
                      "Description": "Report to check Eth Parameters",
                      "Version": "1",
                      "Protocol": "HTTP",
                      "EncodingType": "JSON",
                      "ReportingInterval": 60,
                      "TimeReference": "0001-01-01T00:00:00Z",
                      "Parameter": [
                          {
                              "type": "event",
                              "eventName": "FREE_MEM_split",
                              "component": "sysint",
                              "use": "absolute"
                          },
                          {
                              "type": "dataModel",
                              "name": "CmMac",
                              "reference": "Device.DeviceInfo.X_COMCAST-COM_CM_MAC"
                          },
                          {
                              "type": "dataModel",
                              "name": "ClearResetCount",
                              "reference": "Device.DeviceInfo.ClearResetCount"
                          },
                          {
                              "type": "dataModel",
                              "name": "Desc",
                              "reference": "Device.DeviceInfo.Description"
                          },
                          {
                              "type": "dataModel",
                              "reference": "Device.DeviceInfo.FactoryResetCount"
                          },
                          {
                              "type": "dataModel",
                              "name": "MemFree",
                              "reference": "Device.DeviceInfo.Hardware_MemFree"
                          },
                          {
                              "type": "dataModel",
                              "name": "MemUsed",
                              "reference": "Device.DeviceInfo.Hardware_MemUsed"
                          },
                          {
                              "type": "dataModel",
                              "name": "HwVer",
                              "reference": "Device.DeviceInfo.HardwareVersion"
                          },
                          {
                              "type": "dataModel",
                              "name": "MemStatFree",
                              "reference": "Device.DeviceInfo.MemoryStatus.Free"
                          },
                          {
                              "type": "dataModel",
                              "name": "MemStatTotal",
                              "reference": "Device.DeviceInfo.MemoryStatus.Total"
                          },
                          {
                              "type": "dataModel",
                              "name": "MemStatUsed",
                              "reference": "Device.DeviceInfo.MemoryStatus.Used"
                          },
                          {
                              "type": "dataModel",
                              "name": "FrMemThrshld",
                              "reference": "Device.DeviceInfo.MemoryStatus.X_RDKCENTRAL-COM_FreeMemThreshold"
                          },
                          {
                              "type": "dataModel",
                              "name": "CpuUsage",
                              "reference": "Device.DeviceInfo.ProcessStatus.CPUUsage"
                          },
                          {
                              "type": "dataModel",
                              "name": "Uptime",
                              "reference": "Device.DeviceInfo.UpTime"
                          },
                          {
                              "type": "event",
                              "eventName": "FREE_MEM_split",
                              "component": "sysint",
                              "use": "absolute"
                          },
                          {
                              "type": "event",
                              "eventName": "USED_MEM_split",
                              "component": "sysint",
                              "use": "absolute"
                          },
                          {
                              "type": "event",
                              "eventName": "cpuinfo_split",
                              "component": "sysint",
                              "use": "absolute"
                          },
                          {
                              "type": "event",
                              "eventName": "vmstats_split",
                              "component": "sysint",
                              "use": "absolute"
                          },
                          {
                              "type": "grep",
                              "marker": "USED_MEM_split",
                              "search": "USED_MEM:",
                              "logFile": "messages.txt"
                          },
                          {
                              "type": "grep",
                              "marker": "prev_reboot_split",
                              "search": "PreviousRebootInfo:",
                              "logFile": "parodus.log"
                          },
                          {
                              "type": "grep",
                              "marker": "Load_Average",
                              "search": "load average: ",
                              "logFile": "messages.txt"
                          },
                          {
                              "type": "dataModel",
                              "name": "mac",
                              "reference": "Device.DeviceInfo.X_COMCAST-COM_STB_MAC"
                          },
                          {
                              "type": "dataModel",
                              "name": "Time",
                              "reference": "Device.Time.X_RDK_CurrentUTCTime"
                          }
                      ],
                      "HTTP": {
                          "URL": "https://xconf.rdkcentral.com:19092/telemetry-collector/rdkv-collectorxconf/logupload.php",
                          "Compression": "None",
                          "Method": "POST",
                          "RequestURIParameter": [
                              {
                                  "Name": "deviceId",
                                  "Reference": "Device.DeviceInfo.MACAddress"
                              },
                              {
                                  "Name": "reportName",
                                  "Reference": "Profile.Name"
                              }
                          ]
                      },
                      "JSONEncoding": {
                          "ReportFormat": "NameValuePair",
                          "ReportTimestamp": "Unix-Epoch"
                      }
                  }
              }
          ]
      }'

Telemetry sample logs

Code Block
languagebash
themeMidnight
2024-11-08T08:32:16.065Z telemetry2_0[5432]:  241108-08:32:16.060279 [mod=T2, lvl=DEBUG] [tid=11624] return value of system command to remove /tmp/.t2toplog is success with code 0
2024-11-08T08:32:16.065Z telemetry2_0[5432]:  241108-08:32:16.060340 [mod=T2, lvl=DEBUG] [tid=11624] removeTopOutput --out
2024-11-08T08:32:16.065Z telemetry2_0[5432]:  241108-08:32:16.060365 [mod=T2, lvl=DEBUG] [tid=11624] updateLogSeek ++in
2024-11-08T08:32:16.065Z telemetry2_0[5432]:  241108-08:32:16.060388 [mod=T2, lvl=DEBUG] [tid=11624] Adding seekvalue of 21525 for parodus.log to logSeekMap
2024-11-08T08:32:16.065Z telemetry2_0[5432]:  241108-08:32:16.060413 [mod=T2, lvl=DEBUG] [tid=11624] updateLogSeek --out
2024-11-08T08:32:16.065Z telemetry2_0[5432]:  241108-08:32:16.060435 [mod=T2, lvl=DEBUG] [tid=11624] Execution Count = 7
2024-11-08T08:32:16.065Z telemetry2_0[5432]:  241108-08:32:16.060456 [mod=T2, lvl=DEBUG] [tid=11624] parseMarkerList --out
2024-11-08T08:32:16.065Z telemetry2_0[5432]:  241108-08:32:16.060477 [mod=T2, lvl=DEBUG] [tid=11624] getDCAResultsInVector --out
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060500 [mod=T2, lvl=DEBUG] [tid=11624] getGrepResults --out
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060523 [mod=T2, lvl=DEBUG] [tid=11624] encodeGrepResultInJSON ++in
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060544 [mod=T2, lvl=DEBUG] [tid=11624] encodeGrepResultInJSON --Out
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060588 [mod=T2, lvl=DEBUG] [tid=11624] encodeEventMarkersInJSON ++in
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060611 [mod=T2, lvl=DEBUG] [tid=11624] encodeEventMarkersInJSON --Out
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060631 [mod=T2, lvl=DEBUG] [tid=11624] prepareJSONReport ++in
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060661 [mod=T2, lvl=DEBUG] [tid=11624] prepareJSONReport --Out
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060693 [mod=T2, lvl=INFO] [tid=11624] cJSON Report = {"Report":[{"Desc":"TR-181, TR-135 and Comcast specific Datamodel Configuration"},{"MemStatFree":"695728"},{"MemStatTotal":"1961476"},{"CpuUsage":"22"},{"Uptime":"808"},{"mac":"00:10:18:65:EA:0E"}]}
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060732 [mod=T2, lvl=INFO] [tid=11624] Report Size = 198
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060766 [mod=T2, lvl=DEBUG] [tid=11624] prepareHttpUrl: Default URL: http://52.0.158.162:8080/telemetry-collector/rdkv-collector
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060791 [mod=T2, lvl=DEBUG] [tid=11624] getParameterValue ++in
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060811 [mod=T2, lvl=DEBUG] [tid=11624] getRbusParameterVal ++in
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.060851 [mod=T2, lvl=DEBUG] [tid=11624] rbus.c:3305 Calling rbus_invokeRemoteMethod2 for [Device.DeviceInfo.MACAddress]
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.061253 [mod=T2, lvl=DEBUG] [tid=11624] rbuscore.c:1143 Cannot reach object Device.DeviceInfo.MACAddress.
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.061290 [mod=T2, lvl=ERROR] [tid=11624] rbus.c:3317 get by telemetry2_0 failed; Received error 17 from RBUS Daemon for the object Device.DeviceInfo.MACAddress
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.061315 [mod=T2, lvl=ERROR] [tid=11624] Unable to get Device.DeviceInfo.MACAddress
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.061337 [mod=T2, lvl=DEBUG] [tid=11624] getParameterValue --out
2024-11-08T08:32:16.078Z telemetry2_0[5432]:  241108-08:32:16.061358 [mod=T2, lvl=ERROR] [tid=11624] Failed to retrieve param : Device.DeviceInfo.MACAddress
2024-11-08T08:32:16.083Z telemetry2_0[5432]:  241108-08:32:16.061418 [mod=T2, lvl=DEBUG] [tid=11624] prepareHttpUrl: Modified URL: https://xconf.rdkcentral.com:19092/telemetry-collector/rdkv-collector?reportName=RDKV_FASIL_Profile
2024-11-08T08:32:16.083Z telemetry2_0[5432]:  241108-08:32:16.061442 [mod=T2, lvl=DEBUG] [tid=11624] sendReportOverHTTP ++in
2024-11-08T08:32:16.083Z telemetry2_0[5432]:  241108-08:32:16.061509 [mod=T2, lvl=DEBUG] [tid=11624] getParameterValue ++in
2024-11-08T08:32:16.083Z telemetry2_0[5432]:  241108-08:32:16.061532 [mod=T2, lvl=DEBUG] [tid=11624] getRbusParameterVal ++in
2024-11-08T08:32:16.083Z telemetry2_0[5432]:  241108-08:32:16.061569 [mod=T2, lvl=DEBUG] [tid=11624] rbus.c:3305 Calling rbus_invokeRemoteMethod2 for [Device.DeviceInfo.X_RDKCENTRAL-COM_Syndication.PartnerId]
2024-11-08T08:32:16.100Z telemetry2_0[5432]:  241108-08:32:16.100461 [mod=T2, lvl=DEBUG] [tid=11624] rbus.c:3325 Received response for remote method invocation!
2024-11-08T08:32:16.100Z telemetry2_0[5432]:  241108-08:32:16.100582 [mod=T2, lvl=DEBUG] [tid=11624] rbus.c:3329 Response from the remote method is [0]!
2024-11-08T08:32:16.100Z telemetry2_0[5432]:  241108-08:32:16.100617 [mod=T2, lvl=DEBUG] [tid=11624] rbus.c:3336 Received valid response!
2024-11-08T08:32:16.100Z telemetry2_0[5432]:  241108-08:32:16.100670 [mod=T2, lvl=DEBUG] [tid=11624] Device.DeviceInfo.X_RDKCENTRAL-COM_Syndication.PartnerId = community
2024-11-08T08:32:16.102Z telemetry2_0[5432]:  241108-08:32:16.100697 [mod=T2, lvl=DEBUG] [tid=11624] getRbusParameterVal --out
2024-11-08T08:32:16.102Z telemetry2_0[5432]:  241108-08:32:16.100719 [mod=T2, lvl=DEBUG] [tid=11624] getParameterValue --out
2024-11-08T08:32:16.102Z telemetry2_0[5432]:  241108-08:32:16.100747 [mod=T2, lvl=ERROR] [tid=11624] getParameterValue partner id failed
2024-11-08T08:32:16.608Z telemetry2_0[5432]:  241108-08:32:16.608618 [mod=T2, lvl=INFO] [tid=11624] The return status from the child with pid 18127 is CurlStatus : 1
2024-11-08T08:32:16.608Z telemetry2_0[5432]:  241108-08:32:16.608721 [mod=T2, lvl=INFO] [tid=11624] The return status from the child with pid 18127 SetopCode: No error; ResponseCode : No error; HTTP_CODE : 200; Line Number : 424
2024-11-08T08:32:16.608Z telemetry2_0[5432]:  241108-08:32:16.608752 [mod=T2, lvl=INFO] [tid=11624] Report Sent Successfully over HTTP : 200
2024-11-08T08:32:16.608Z telemetry2_0[5432]:  241108-08:32:16.608776 [mod=T2, lvl=DEBUG] [tid=11624] sendReportOverHTTP --out
2024-11-08T08:32:16.609Z telemetry2_0[5432]:  241108-08:32:16.608805 [mod=T2, lvl=INFO] [tid=11624] Elapsed Time for : RDKV_FASIL_Profile = 1.607921134 (Sec.NanoSec)
2024-11-08T08:32:16.609Z telemetry2_0[5432]:  241108-08:32:16.608828 [mod=T2, lvl=DEBUG] [tid=11624]  profile->triggerReportOnCondition is not set
2024-11-08T08:32:16.609Z telemetry2_0[5432]:  241108-08:32:16.608849 [mod=T2, lvl=INFO] [tid=11624] CollectAndReport while Loop -- END; wait for restart event
2024-11-08T08:32:16.609Z telemetry2_0[5432]:  241108-08:32:16.608870 [mod=T2, lvl=INFO] [tid=11624] CollectAndReport --out