T2 on Video platforms
Created on November 8, 2024
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
- Xconf Server → DCM → Upload Repository
- Upload Repository: HTTPS Server
- Repository URL:https://xconf.rdkcentral.com/xconf/telemetry_upload.php
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
Go To Top