Telemetry

Overview

NSP Telemetry Collection provides access to network device telemetry through generic YANG modelled interfaces that abstract device details.

For customers to migrate the existing networks currently managed by NFM-P to the Model Driven networks, MDM supports the ability to discover SR OS network elements in 'classic' mode, as well as in 'model-driven' mode.  Customers may choose to continue to manage classic network elements using NFM-P, however may also wish to leverage advanced telemetry collection using MDM, during the transition to model driven networks. These network elements are known as "Dual Managed", where the classic mode SR OS network elements may be managed by NFM-P, and discovered within MDM solely for telemetry collection.

Subscriptions are managed via RESTCONF API requests.  Once the subscription is established telemetry data may be sent via Kafka Notifications to the API client and/or stored in the telemetry data store for future processing.

NSP generates predefined OAM-related telemetry subscriptions in systems where MD-OAM is deployed. OAM subscriptions appear in the Telemetry subscriptions list in Insights Administrator and are prefixed with TestSuiteEx_OAM. Predefined OAM subscriptions should not be edited. OAMPM telemetry contains "oampm" string in the telemetry type, for example: telemetry:/base/oam-pm/*. For how to create OAMPM telemetry and retrieve result, you can refer to the OAM/OAMPM tutorial. OAM/OAMPM tutorial

To collect non OAMPM performance statistics, here are few steps to verify:

1) setup FTP mediation

2) configure file policy and accounting policy on node

Prerequisites

This tutorial requires at least two model driven SROS based network elements that have been discovered by NSP. The node has the right telemetry type configured for collecting stats.

Release

This tutorial has been tested with and is supported in NSP 22.11.

Disclaimer

This tutorial is meant as a proof of concept and as an example method for configuring a service. It is not designed to be implemented, and must not be used as is, in a production network. It is intended to guide development of an OSS.

Test Cases:

1: FTP mediation policy

In this postman collection, it creats a new FTP mediation policy to a discovered NE and then apply the policy to all SRs in your system that want to collect stats.

Create a new FTP mediation policy:

POST https://{{server}}:8548/mdm-necontrol-rest-api-app/api/v1/restconf/data/nsp-mediation:mediation-policy
{
    "ftp-mediation:ftp": [
        {
            "name": "ftp-policy-testSample",
            "description": "new-ftp-policy",
            "user-name": "admin",
            "password": "admin",
            "port": 22,
            "connect-timeout": 30,
            "read-timeout": 30,
            "secure": "true"
        }
    ]
}

Before apply the FTP policy to a NE, use the GET discover policy API to retrieve all the existing polices. In your PUT API, you have to copy down all the existing policies on the NE, and only add the FTP policy to the end. For example, The fdn:model:necontrol:DiscoveredNe:14860 is the FDN of the specific NE that you want to apply; copy it down all the existing policies and only add the last FTP policy to the existing polices.

PUT  https://{{server}}:8548/mdm-necontrol-rest-api-app/api/v1/neControl/discoveryrule/fdn:model:necontrol:DiscoveredNe:14860
{
"type" : "DiscoveredNe",
"dto": {
"neId": "10.10.10.1",
"cliProfile": "sr-7750",
"neName": "SR1",
"adminState" : "up",
            "neROMedPolicies": [
                "fdn:model:mediationpolicy:NeMediationPolicy:14602",
                "fdn:model:mediationpolicy:NeMediationPolicy:14603",
                "fdn:model:mediationpolicy:NeMediationPolicy:14604",
                "fdn:model:mediationpolicy:NeMediationPolicy:14605",
"fdn:yang:nsp-mediation:/nsp-mediation:mediation-policy/ftp-mediation:ftp[name='ftp-policy-testSample']"
            ]
}
}

2: Accounting Policy & File Policy

Currently there is no API for creating accounting policy or file policy yet. However, you can create the policy from NSP GUI.

Create the File policy.

Here is the attributes defines in the YANG model for file policy:

File Policy:


1) File Policy “Name” (but not sent down to the node)


2) “File ID” : a number


3) “Location” : Drop down for : CF1 or CF2 (this may be different in model world)


4) “Rollover” : Number


5) “Retention” : Number

In NSP GUI, go to the Model Device Configurator, choose the NE that you want to configure, select Nokia-conf:/configure.

FilePolicy

Accounting policy will have the following information:

1) Accounting Policy “Name” (but not sent down to the node)


2) “Policy ID” : a number


3) “Description” for the policy


4) Admin State : Released/Locked


5) Choose the telemetry type

6) “Collection Interval” : a user needs to define a number (default 15)


7) “File” : user inputs file policy ID (number)

AccountingPolicy

3: Create Telemetry Subscription

A subscription represents a request for statistics information management. When you configure a telemetry subscription, you specify a set of statistics data and notification and storage options for the data. To configure the data set, you select the type of statistics you are interested in, the frequency of collection, and configure filtering by NE and counters as needed.

NSP generates predefined OAM-related telemetry subscriptions in systems where MD-OAM is deployed. OAM subscriptions appear in the Telemetry subscriptions list in Insights Administrator and are prefixed with TestSuiteEx_OAM. Predefined OAM subscriptions should not be edited. All the telemetry subscription with OAM PM has telemetry:/base/oam-pm/ prefix.

Other telemetry subscription has telemetry:/base prefix. You can use the postman collection API to create telemetry subscription.

Here is an example of how to create telemetry:/base/interfaces/interface with a filter on a SR1 and port 1

POST  https://{{server}}:8545/restconf/data/md-subscription:/subscriptions/subscription
{
    "subscription": [
        {
            "name": "interface_filter_port_single_0",
            "description": "single port",
            "period": 30,
            "sync-time": "00:00",
            "state": "enabled",
            "type": "telemetry:/base/interfaces/interface",
            "filter": "/nsp-equipment:network/network-element[ne-id='10.10.10.1']/hardware-component/port[component-id='shelf=1/card=1/mda=1/port=1/1/1']",
            "notification": "enabled",
            "db": "enabled"
        }
    ]
}

In this tutorial, there are a few examples with different filters on different telemetry types. See postman collection for more detail samples.

4. Test Results

For OAMPM, once each OAM PM test is created, you can execute the test and start to collect the result. In the OAM/OAMPM tutorial, you can use the get results API to see the test results.

Link to OAM/OAM-PM tutorial

For other telemetry performance test result, you can use kafka to see the test result. For example, once the telemetry subscription is created, you can use the GET subscription API to receive the notification topic.

GET: https://{{server}}:8545/restconf/data/md-subscription:/subscriptions

{
                "name": "interface_filter_ne_0",
                "description": "equal",
                "site-selector": null,
                "filter": "/nsp-equipment:network/network-element[ne-id='10.10.10.1']",
                "type": "telemetry:/base/interfaces/interface",
                "period": 10,
                "state": "enabled",
                "sync-time": "00:00",
                "db": "enabled",
                "notification": "enabled",
                "rta-notification": "disabled",
                "rta-indicator-notification": "disabled",
                "fields": [],
                "notif-topic": "ns-eg-687d79fa-710d-4349-a5f4-7c22d1ebf6cc",
                "client-id": "687d79fa-710d-4349-a5f4-7c22d1ebf6cc"
            }

Then you can run kafka command with the notif-topic to see the test result:

/opt/bitnami/kafka/bin/kafka-console-consumer.sh --bootstrap-server nspos-kafka-0.nspos-kafka-headless.default.svc.cluster.local:9192 --consumer.config /opt/bitnami/kafka/config/consumer.properties --topic ns-eg-687d79fa-710d-4349-a5f4-7c22d1ebf6cc

{
   "data": {
      "ietf-restconf:notification": {
         "eventTime": "2023-04-12T21:47:10Z",
         "nsp-kpi:real_time_kpi-event": {
            "received-broadcast-packets": 0,
            "received-multicast-packets": 0,
            "received-octets": 0,
            "received-unicast-packets": 0,
            "transmitted-broadcast-packets": 0,
            "transmitted-multicast-packets": 0,
            "transmitted-octets": 0,
            "transmitted-unicast-packets": 0,
            "name": "1/2/1",
            "speed": 1000,
            "system-id": "10.10.10.1",
            "time-captured": 1681336030794,
            "time-captured-periodic": 10017,
            "received-octets-periodic": 0,
            "received-multicast-packets-periodic": 0,
            "transmitted-broadcast-packets-periodic": 0,
            "transmitted-multicast-packets-periodic": 0,
            "received-unicast-packets-periodic": 0,
            "transmitted-octets-periodic": 0,
            "received-broadcast-packets-periodic": 0,
            "transmitted-unicast-packets-periodic": 0,
            "neId": "10.10.10.1",
            "kpiType": "telemetry:/base/interfaces/interface",
            "objectId": "fdn:app:mdm-ami-cmodel:10.10.10.1:equipment:Equipment:/port[port-id='1/1/1']",
            "dataType": 1
         }
      }
   }
}

Reference:

OAM/OAM-PM tutorial:

OAM/OAMPM Tutorial

End to End VPRN Service Configuration

End to End VPRN Service Configuration

On this page