You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Required equipment's:


  • Raspberry pi device

  • Ethernet cable

  • SD card

  • Standard USB keyboard

  • TV/Monitor with HDMI input

Telemetry:


Telemetry is the automatic recording and transmission of data from remote or inaccessible sources to an IT system in a different location for monitoring and analysis.

Telemetry Components:


  • Xconf Server
  • Rpi Board with RDK Broadband image
  • Tftp Server

Steps to build code:


  • repo init -u https://code.rdkcentral.com/r/manifests -b rdk-next -m rdkb-extsrc.xml
  • repo sync -j4 --no-clone-bundle
  • source meta-cmf-raspberrypi/setup-environment
  • choose option 8: meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-broadband.conf
  • bitbake rdk-generic-broadband-image

Steps to flash image:


  • The image will be available under build-raspberrypi-rdk-broadband/tmp/deploy/images/raspberrypi-rdk-broadband
  • Copy the image rdkb-generic-broadband-image_default_<xx>.rootfs.rpi-sdimg to your server.
  • To flash the image
        dmesg
        mount
        umount <partition-mountpoint>
        sudo dd if=<rpi sdimg> of=/dev/sdb bs=1M
  • Remove the SD card and insert it to the Raspberry Pi SD card slot
  • Bring up the device

Xconf server:


                           

                 3.  Define MAC List
                            a. URL : http://35.155.171.121:9093/admin/ux/#/namespacedlist/MAC_LIST
                            b. Flow : Xconf-server -> Common -> MAC Lists -> Select the Id -> Add your MAC                            

Configuring Telemetry on Xconf server:


Log upload

  • Change Application to stb in top right corner of the window
         
  • Defining the formula

URL

http://35.155.171.121:9093/admin/ux/#/formulas/all

Flow

Xconf-server ->DCM -> Formulas -> Create

Name

<Unique name  for log upload >

Description

<Enter a short description>

Percentage

100

Priority

4

Build condition

estbMacAddress is <MAC-Address> 


Sample 
    
    

  • As soon as the formula is saved , displays the device settings and Log upload settings options
       
  • Device settings

    Name

    RDKB_telemetry

    CheckOnReboot

    true

    Are active

    true

    Expression

    2 1 2 1 1

      

  • Defining the Upload repositories

    URL

    http://35.155.171.121:9093/admin/ux/#/uploadrepository

    Flow

    Xconf-server ->DCM -> Upload repositories

    Name

    RDKB_telemetry

    Description

    RDKB_telemetry

    URL

    tftp    : 35.155.171.121

    HTTP :  http://35.155.171.121/xconf/logupload.php

  • Log upload settings

    Name

    <Enter the name given during Log upload formula creation>

    Upload On Reboot

    true

    Number of Days

    1

    Are settings active

    true

    Upload Repository

    RDKB_telemetry

    Cron Expression

    2 1 1 1 1

  • Test Page

URL

http://35.155.171.121:9093/admin/ux/#/formulas/all

Path

Xconf-server-> DCM -> Test Page

          

Telemetry

  • Defining Telemetry profile

URL

http://35.155.171.121:9093/admin/ux/#/formulas/all

Path

Xconf-server-> Telemetry->Permanent Profiles -> Create

                Sample :
               

               

  • Create Targeting rule       

    URL

    http://35.155.171.121:9093/admin/ux/#/formulas/all

    Path

    Xconf-server-> Telemetry->Targeting rule -> Create


    1. Give the Unique rule name
    2. Select the rule. Here , used estbMacAddress as the rule
    3. Select the Bound profile (Telemetry Permanent Profile Name)

             Sample

        

  • Test Page

    URL

    http://35.155.171.121:9093/admin/ux/#/formulas/all

    Path

    Xconf-server-> Telemetry->Test Page

    1. To test whether the configured profile details are retrieved properly from xconf-server
    2. Give the rule specified in “Targeting Rule” section i.e., estbMacAddress here

                 

  • Sample:

Configuring Telemetry on Raspberry pi


  • Once the board is up , go to /etc/dcm.properties and add the below details

LOG_SERVER=35.155.171.121

DCM_LOG_SERVER=http://35.155.171.121/xconf/logupload.php

DCM_LOG_SERVER_URL=http://35.155.171.121:9092/loguploader/getSettings

DCM_SCP_SERVER=35.155.171.121

DCM_HTTP_SERVER_URL=http://35.155.171.121/xconf/telemetry_upload.php

DCM_LA_SERVER_URL=http://35.155.171.121/xconf/logupload.php

  • Restart the dcm-log service using “systemctl restart dcm-log
  • To check the status of the service “systemctl status dcm-log
  • By triggering the service , rpi starts uploading the logs to the xconf-server
  • The log upload and Telemetry markers can be uploaded via tftp and http
  • The profile can be verified using curl, conf file , through logs and in server as below
    1. CURL

    • Syntax : curl -i 'http://<ip>:9092/loguploader/getSettings?estbMacAddress=<MAC>’

    Sample:  
    TFTP

    root@RaspberryPi-Gateway:~# ifconfig erouter0

    erouter0  Link encap:Ethernet  HWaddr B8:27:EB:22:16:36

              inet addr:192.168.30.125  Bcast:0.0.0.0  Mask:255.255.255.0

              inet6 addr: fe80::ba27:ebff:fe22:1636/64 Scope:Link

              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

              RX packets:18748 errors:0 dropped:0 overruns:0 frame:0

              TX packets:3081 errors:0 dropped:0 overruns:0 carrier:0

              collisions:0 txqueuelen:1000

              RX bytes:2614475 (2.4 MiB)  TX bytes:590848 (577.0 KiB)


    root@RaspberryPi-Gateway:~# curl -i 'http://35.155.171.121:9092/loguploader/getSettings?estbMacAddress=B8:27:EB:22:16:36'

    HTTP/1.1 200 OK

    Date: Fri, 31 Jan 2020 10:59:09 GMT

    Content-Type: application/json

    Transfer-Encoding: chunked

    Server: Jetty(9.2.1.v20140609)


    {"urn:settings:GroupName":"RDKB_telemetry","urn:settings:CheckOnReboot":true,"urn:settings:CheckSchedule:cron":"2 1 2 1 1","urn:settings:CheckSchedule:DurationMinutes":0,"urn:settings:LogUploadSettings:Message":null,"urn:settings:LogUploadSettings:Name":"RDKB_telemetry","urn:settings:LogUploadSettings:NumberOfDays":0,"urn:settings:LogUploadSettings:UploadRepositoryName":"RDKB_telemetry","urn:settings:LogUploadSettings:RepositoryURL":"tftp://35.155.171.121","urn:settings:LogUploadSettings:UploadOnReboot":true,"urn:settings:LogUploadSettings:UploadImmediately":false,"urn:settings:LogUploadSettings:upload":true,"urn:settings:LogUploadSettings:UploadSchedule:cron":"2 1 1 1 1","urn:settings:LogUploadSettings:UploadSchedule:levelone:cron":null,"urn:settings:LogUploadSettings:UploadSchedule:leveltwo:cron":null,"urn:settings:LogUploadSettings:UploadSchedule:levelthree:cron":null,"urn:settings:LogUploadSettings:UploadSchedule:DurationMinutes":0,"urn:settings:VODSettings:Name":null,"urn:settings:VODSettings:LocationsURL":null,"urn:settings:VODSettings:SRMIPList":null,"urn:settings:TelemetryProfile":{"id":"72ac2ca9-b248-4a5e-b120-27ff37382564","telemetryProfile":[{"header":"Firewall","content":"starting firewall service","type":"FirewallDebug.txt","pollingFrequency":"1"}],"schedule":"3","expires":0,"telemetryProfile:name":"RDKB_tele","uploadRepository:URL":"35.155.171.121","uploadRepository:uploadProtocol":"TFTP"}}

    Sample:
    HTTP

    root@RaspberryPi-Gateway:~# curl -i 'http://35.155.171.121:9092/loguploader/getSettings?estbMacAddress=B8:27:EB:22:16:36'

    HTTP/1.1 200 OK

    Date: Fri, 31 Jan 2020 12:15:26 GMT

    Content-Type: application/json

    Transfer-Encoding: chunked

    Server: Jetty(9.2.1.v20140609)


    {"urn:settings:GroupName":"RDKB_telemetry","urn:settings:CheckOnReboot":true,"urn:settings:CheckSchedule:cron":"2 1 2 1 1","urn:settings:CheckSchedule:DurationMinutes":0,"urn:settings:LogUploadSettings:Message":null,"urn:settings:LogUploadSettings:Name":"RDKB_telemetry","urn:settings:LogUploadSettings:NumberOfDays":0,"urn:settings:LogUploadSettings:UploadRepositoryName":"RDKB_telemetry","urn:settings:LogUploadSettings:RepositoryURL":"http://35.155.171.121/xconf/logupload.php","urn:settings:LogUploadSettings:UploadOnReboot":true,"urn:settings:LogUploadSettings:UploadImmediately":false,"urn:settings:LogUploadSettings:upload":true,"urn:settings:LogUploadSettings:UploadSchedule:cron":"2 1 1 1 1","urn:settings:LogUploadSettings:UploadSchedule:levelone:cron":null,"urn:settings:LogUploadSettings:UploadSchedule:leveltwo:cron":null,"urn:settings:LogUploadSettings:UploadSchedule:levelthree:cron":null,"urn:settings:LogUploadSettings:UploadSchedule:DurationMinutes":0,"urn:settings:VODSettings:Name":null,"urn:settings:VODSettings:LocationsURL":null,"urn:settings:VODSettings:SRMIPList":null,"urn:settings:TelemetryProfile":{"id":"72ac2ca9-b248-4a5e-b120-27ff37382564","telemetryProfile":[{"header":"Firewall","content":"starting firewall service","type":"FirewallDebug.txt","pollingFrequency":"1"}],"schedule":"3","expires":0,"telemetryProfile:name":"RDKB_tele","uploadRepository:URL":"http://35.155.171.121/xconf/telemetry_upload.php","uploadRepository:uploadProtocol":"HTTP"}}


    2. Configuration file

    • Once the profile details are successfully retrieved , the conf file will be created under /tmp which has the server configurations
    • The telemetry markers are compared with the corresponding log files and if the match is found then the markers are uploaded to the http://35.155.171.121/xconf/upload/
  • Sample :

    tftp
    root@RaspberryPi-Gateway:~# cat /tmp/DCMSettings.conf

    urn:settings:GroupName=RDKB_telemetry

    urn:settings:CheckOnReboot=true

    urn:settings:CheckSchedule:cron=2 1 2 1 1

    urn:settings:CheckSchedule:DurationMinutes=0

    urn:settings:LogUploadSettings:Message=null

    urn:settings:LogUploadSettings:Name=RDKB_telemetry

    urn:settings:LogUploadSettings:NumberOfDays=0

    urn:settings:LogUploadSettings:UploadRepositoryName=RDKB_telemetry

    urn:settings:LogUploadSettings:RepositoryURL=tftp://35.155.171.121

    urn:settings:LogUploadSettings:UploadOnReboot=true

    urn:settings:LogUploadSettings:UploadImmediately=false

    urn:settings:LogUploadSettings:upload=true

    urn:settings:LogUploadSettings:UploadSchedule:cron=2 1 1 1 1

    urn:settings:LogUploadSettings:UploadSchedule:levelone:cron=null

    urn:settings:LogUploadSettings:UploadSchedule:leveltwo:cron=null

    urn:settings:LogUploadSettings:UploadSchedule:levelthree:cron=null

    urn:settings:LogUploadSettings:UploadSchedule:DurationMinutes=0

    urn:settings:VODSettings:Name=null

    urn:settings:VODSettings:LocationsURL=null

    urn:settings:VODSettings:SRMIPList=null

    "urn:settings:TelemetryProfile":{"id":"72ac2ca9-b248-4a5e-b120-27ff37382564","telemetryProfile":[{"header" : "Firewall","content" : "staring firewall service","type" : "FirewallDebug.txt","pollingFrequency":"1"}],"schedule":"3","expires":0,"telemetryProfile:name":"RDKB_tele,"uploadRepository:URL":"35.155.171.121","uploadRepository:uploadProtocol":"TFTP"}


    http

    root@RaspberryPi-Gateway:~# cat /tmp/DCMSettings.conf

    urn:settings:GroupName=RDKB_telemetry

    urn:settings:CheckOnReboot=true

    urn:settings:CheckSchedule:cron=2 1 2 1 1

    urn:settings:CheckSchedule:DurationMinutes=0

    urn:settings:LogUploadSettings:Message=null

    urn:settings:LogUploadSettings:Name=RDKB_telemetry

    urn:settings:LogUploadSettings:NumberOfDays=0

    urn:settings:LogUploadSettings:UploadRepositoryName=RDKB_telemetry

    urn:settings:LogUploadSettings:RepositoryURL=http://35.155.171.121/xconf/logupload.php

    urn:settings:LogUploadSettings:UploadOnReboot=true

    urn:settings:LogUploadSettings:UploadImmediately=false

    urn:settings:LogUploadSettings:upload=true

    urn:settings:LogUploadSettings:UploadSchedule:cron=2 1 1 1 1

    urn:settings:LogUploadSettings:UploadSchedule:levelone:cron=null

    urn:settings:LogUploadSettings:UploadSchedule:leveltwo:cron=null

    urn:settings:LogUploadSettings:UploadSchedule:levelthree:cron=null

    urn:settings:LogUploadSettings:UploadSchedule:DurationMinutes=0

    urn:settings:VODSettings:Name=null

    urn:settings:VODSettings:LocationsURL=null

    urn:settings:VODSettings:SRMIPList=null

    "urn:settings:TelemetryProfile":{"id":"72ac2ca9-b248-4a5e-b120-27ff37382564","telemetryProfile":[{"header" : "Firewall","content" : "starting firewall service","type" : "FirewallDebug.txt","pollingFrequency":"1"}],"schedule":"3","expires":0,"telemetryProfile:name":"RDKB_tele","uploadRepository:URL":"http://35.155.171.121/xconf/telemetry_upload.php","uploadRepository:uploadProtocol":"HTTP"}

3. Logs

    • Log file to monitor and analyze the files which are uploaded to server - /rdklogs/logs/dcmscript.log

    TFTP


    HTTP


    • /rdklogs/logs/telemetry.log




    TFTP:


    HTTP:

    1. Xconf server
    • The tar file (of all logs) and JSON file of telemetry will be uploaded

                               Sample:

                                  TFTP:



  • No labels