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

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 :
    • 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 :
    • pidof telemetry2_0
      8939
  • set Multiprofile using rbuscli (sample given below)
    • 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/xconf/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

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



  • No labels