This article explains the API method for configuring and deploying and IOS XR or IOS XE telemetry ingestion pipeline using gNMI Dial In connectivity.
Provider Connectivity Assurance does not currently provide UI-level support for gNMI Dial In, so the provisioning must be performed using direct API calls. This document walks through the required steps to configure the Telemetry Collector, deploy it, and set up sessions to collect telemetry from devices.
1. Initial Provisioning of the Telemetry Collector
Every Telemetry Collector must have its runtime configuration pre-provisioned in Provider Connectivity Assurance before it can successfully be brought online.
At startup, the Telemetry Collector establishes its administrative connection with PCA and requests its runtime configuration. Until it receives this configuration, it cannot begin collecting or forwarding data.
Provisioning a Telemetry Collector instance to receive telemetry via gNMI Dial In involves the following steps:
Step 1: Generate the Telemetry Collector Configuration JSON
To provision a Telemetry Collector, there is a helper API that generates the required JSON configuration structure, which is used in the subsequent API call to provision a Collector.
The following information is required for the helper API call:
Parameter | Description |
---|---|
DataBrokerServer | The hostname or IP address of the Sensor Collector (e.g., Roadrunner) instance to which the Telemetry Collector will forward its data stream. |
DataBrokerPort | The port on the Sensor Collector where the data stream will be shipped. Default is 55888 . If your Sensor Collector uses a different port, this must match. |
AgentName | A unique name to identify the Telemetry Collector. |
InputType | Specify the gNMI data collection mode: |
- DialIN: Telemetry Collector subscribes to data streams from devices. | |
- DialOUT: Devices push telemetry data directly to the collector. | |
DataTypes | Specify the telemetry data transformation type: |
- XE: Use for Cisco IOS-XE telemetry. | |
- XR: Use for Cisco IOS-XR telemetry. |
Example helper API Call for generating the JSON structure
POST /api/v3/telemetry-collector-templates/build-agent-configuration
Body:
{
"DataGateway": {
"DataBrokerPort": 55888,
"DataBrokerServer": "1.2.3.4"
},
"AgentName": "my-cisco-xr-collector"
"InputType": "DialIN",
"DataTypes": "XR"
}
**Example API Response - JSON configuration available **
The API call returns a structured JSON configuration for your Telemetry Collector. Take note of this response, as it will be used in the next step. An example response is shown below:
{
"data": {
"attributes": {
"type": "agentConfigs",
"dataGateway": {
"dataBrokerSslAllowExpiredCerts": false,
"dataBrokerSslAllowInsecureCerts": false,
"dataBrokerSslAllowSelfsigned": false,
"dataBrokerSslSkipHostnameCheck": false,
"dataBrokerUseSsl": false,
"port": 55888,
"server": "1.2.3.4"
},
"identification": {
"agentName": "telem-collector-dial-in"
},
"metadata": {
"name": "telem-collector-dial-in"
},
"telemetry": {
"dataCollection": "",
"templateName": "",
"templateVersion": 0,
"dataInput": "",
"dataInputTemplateName": "",
"dataInputTemplateVersion": 0,
"dataTransformation": "REDACTED - BASE64 BLOB"
"dataTransformationTemplateName": "data-transformation-cisco-ios-xe",
"dataTransformationTemplateVersion": 1
}
}
}
}
Step 2: Provision the Telemetry Collector
Once the runtime configuration JSON has been generated, the next step is to provision the Telemetry Collector in PCA using the following API call:
POST /api/orchestrate/v3/agents/configuration
Use the response in the previous step as the body of this API call.
Example API Response - Telemetry Collector has been configured in PCA
The /api/orchestrate/v3/agents/configuration API call returns a response containing a dynamically generated agentId
. This unique identifier will be required in the following steps. Example response:
{
"data": {
"attributes": {
"_rev": "1-a7eb1648979efac37e276136494d8516",
"agentId": "ca8614c1-8ce0-4f40-b5ee-2253852fc92f",
"createdTimestamp": 1747236829611,
"dataGateway": {
"port": 55888,
"server": "1.2.3.4"
},
"identification": {
"agentName": "my-cisco-xr-collector"
},
"metadata": {
"name": "my-cisco-xr-collector"
},
"telemetry": {
"dataTransformation": "REDACTED - BASE64 BLOB",
"dataTransformationTemplateName": "data-transformation-cisco-ios-xe",
"dataTransformationTemplateVersion": 1
}
},
"id": "ca8614c1-8ce0-4f40-b5ee-2253852fc92f",
"type": "agentConfigs"
}
}
Note the agentId
field. This contains a dynamically generated identifier for your Telemetry Collector. Take note of it as it will be needed later.
At this point you have provisioned your Telemetry Collector in Provider Connectivity Assurance.
Step 3: Deploy the Telemetry Collector
At this point, your Telemetry Collector is provisioned in PCA. You can now follow the instructions in Deploying Telemetry Collector to deploy the Telemetry Collector instance. Once deployed, it will connect successfully to PCA, although it will not yet be able to produce telemetry data. To enable data collection, proceed to the next section.
**2. Provisioning the targets from which to collect Telemetry **
Now your Telemetry Collector should be running and connected to Provider Connectivity Assurance, but will not be producing any data. This is because, with gNMI Dial In collection (as opposed to the other supported mode, gNMI Dial Out), the collector must be told what data sources it is expected to subscribe to receive telemetry from and which sensor paths it is expected to subscribe to.
This is accomplished by provisioning ‘sessions’ against your collector.
A session represents an individual telemetry stream for the collector to subscribe to. Each session defines:
- The device to connect to (via gNMI Dial-In).
- The specific sensor paths to collect telemetry data from a ‘session’ defines an individual telemetry stream for the collector to subscribe to (or to put this another way, each session represents a device we want to receive telemetry from)
The following step should be executed for each data source that you want your collector to stream telemetry from:
Once the Telemetry Collector is provisioned and deployed, it must be configured with sessions to define the devices and telemetry sensor paths from which it will collect data.
Step 1: Generate a Session JSON Payload
To provision the targets, there is a helper API that generates the required JSON configuration structure, which is used in the subsequent API call. Use the following parameters to generate the session configuration JSON:
Parameter | Description |
---|---|
AgentID | The unique agentId of the Telemetry Collector (provided in Step 2). |
SessionName | A friendly name for the session (e.g., the hostname or role of the device). |
ServiceAddress | The IP address of the device to which the collector will connect via gNMI. |
SensorPathSubscriptions | A comma-separated list of sensor paths to subscribe to. Refer to the Helpful link below /v1/docs/step-3-configuration-and-deployment-gnmi-dial-in#helpful-links for details about how to retrieve the list of sensor paths support in the out-of-the-box Telemetry Collector (so that you can choose any of interest for your use case) |
Username | The username for authenticating the gNMI connection. |
Password | The password for authenticating the gNMI connection. |
TLSCertBase64 | Optional: Base64-encoded TLS client certificate for secure connections. |
TLSKeyBase64 | Optional: Base64-encoded TLS client private key for secure connections. |
TLSAllowedCACertsBase64 | Optional: Base64-encoded trusted root certificates for secure connections. |
Example API Call for generating the JSON to create sessions
POST /api/v3/telemetry-collector-sessions
Body:
{
"AgentID": "ca8614c1-8ce0-4f40-b5ee-2253852fc92f",
"SessionName": "my-router",
"ServiceAddress": "192.168.1.10",
"SensorPathSubscriptions": [
"if_stats-cisco-ios-xr",
"sla_stats-cisco-ios-xr"
],
"Username": "admin",
"Password": "nomoresecrets"
}
Example API Response
{
"data": {
"attributes": {
"agentId": "ca8614c1-8ce0-4f40-b5ee-2253852fc92f",
"session": {
"TelemetryGNMIDialInSession": {
"Password": "nomoresecrets",
"ServiceAddress": "1.2.3.4",
"Username": "admin",
"SensorPathSubscriptions": [
{
"template": "W1tpbnB1dHMuZ25taS5zdWJzY3JpcHRpb25dXQojIyBOYW1lIG9mIHRoZSBtZWFzdXJlbWVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZApuYW1lID0gImlmX3N0YXRzIgoKIyMgT3JpZ2luIGFuZCBwYXRoIG9mIHRoZSBzdWJzY3JpcHRpb24KIyMgU2VlOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmNvbmZpZy9yZWZlcmVuY2UvYmxvYi9tYXN0ZXIvcnBjL2dubWkvZ25taS1zcGVjaWZpY2F0aW9uLm1kIzIyMi1wYXRocwojIwojIyBvcmlnaW4gdXN1YWxseSByZWZlcnMgdG8gYSAoWUFORykgZGF0YSBtb2RlbCBpbXBsZW1lbnRlZCBieSB0aGUgZGV2aWNlCiMjIGFuZCBwYXRoIHRvIGEgc3BlY2lmaWMgc3Vic3RydWN0dXJlIGluc2lkZSBpdCB0aGF0IHNob3VsZCBiZSBzdWJzY3JpYmVkCiMjIHRvIChzaW1pbGFyIHRvIGFuIFhQYXRoKS4gWUFORyBtb2RlbHMgY2FuIGJlIGZvdW5kIGUuZy4gaGVyZToKIyMgaHR0cHM6Ly9naXRodWIuY29tL1lhbmdNb2RlbHMveWFuZy90cmVlL21hc3Rlci92ZW5kb3IvY2lzY28veHIKb3JpZ2luID0gIkNpc2NvLUlPUy1YUi1wZmktaW0tY21kLW9wZXIiCnBhdGggPSAiL2ludGVyZmFjZXMvaW50ZXJmYWNlLXhyL2ludGVyZmFjZSIKCiMjIFN1YnNjcmlwdGlvbiBtb2RlICgidGFyZ2V0X2RlZmluZWQiLCAic2FtcGxlIiwgIm9uX2NoYW5nZSIpIGFuZCBpbnRlcnZhbApzdWJzY3JpcHRpb25fbW9kZSA9ICJzYW1wbGUiCnNhbXBsZV9pbnRlcnZhbCA9ICI2MHMiCgojIyBTdXBwcmVzcyByZWR1bmRhbnQgdHJhbnNtaXNzaW9ucyB3aGVuIG1lYXN1cmVkIHZhbHVlcyBhcmUgdW5jaGFuZ2VkCiMgc3VwcHJlc3NfcmVkdW5kYW50ID0gZmFsc2UKCiMjIElmIHN1cHByZXNzaW9uIGlzIGVuYWJsZWQsIHNlbmQgdXBkYXRlcyBhdCBsZWFzdCBldmVyeSBYIHNlY29uZHMgYW55d2F5CiMgaGVhcnRiZWF0X2ludGVydmFsID0gIjYwcyIK",
"name": "if_stats-cisco-ios-xr",
"version": 1
},
{
"template": "W1tpbnB1dHMuZ25taS5zdWJzY3JpcHRpb25dXQojIyBOYW1lIG9mIHRoZSBtZWFzdXJlbWVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZApuYW1lID0gInNsYV9zdGF0cyIKCiMjIE9yaWdpbiBhbmQgcGF0aCBvZiB0aGUgc3Vic2NyaXB0aW9uCiMjIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5jb25maWcvcmVmZXJlbmNlL2Jsb2IvbWFzdGVyL3JwYy9nbm1pL2dubWktc3BlY2lmaWNhdGlvbi5tZCMyMjItcGF0aHMKIyMKIyMgb3JpZ2luIHVzdWFsbHkgcmVmZXJzIHRvIGEgKFlBTkcpIGRhdGEgbW9kZWwgaW1wbGVtZW50ZWQgYnkgdGhlIGRldmljZQojIyBhbmQgcGF0aCB0byBhIHNwZWNpZmljIHN1YnN0cnVjdHVyZSBpbnNpZGUgaXQgdGhhdCBzaG91bGQgYmUgc3Vic2NyaWJlZAojIyB0byAoc2ltaWxhciB0byBhbiBYUGF0aCkuIFlBTkcgbW9kZWxzIGNhbiBiZSBmb3VuZCBlLmcuIGhlcmU6CiMjIGh0dHBzOi8vZ2l0aHViLmNvbS9ZYW5nTW9kZWxzL3lhbmcvdHJlZS9tYXN0ZXIvdmVuZG9yL2Npc2NvL3hyCm9yaWdpbiA9ICJDaXNjby1JT1MtWFItaW5mcmEtc2xhLW9wZXIiCnBhdGggPSAiL3NsYS9wcm90b2NvbHMvQ2lzY28tSU9TLVhSLWV0aGVybmV0LWNmbS1vcGVyOmV0aGVybmV0L3N0YXRpc3RpY3MtaGlzdG9yaWNhbHMvc3RhdGlzdGljcy1oaXN0b3JpY2FsIgoKIyMgU3Vic2NyaXB0aW9uIG1vZGUgKCJ0YXJnZXRfZGVmaW5lZCIsICJzYW1wbGUiLCAib25fY2hhbmdlIikgYW5kIGludGVydmFsCnN1YnNjcmlwdGlvbl9tb2RlID0gInNhbXBsZSIKc2FtcGxlX2ludGVydmFsID0gIjYwcyIKCiMjIFN1cHByZXNzIHJlZHVuZGFudCB0cmFuc21pc3Npb25zIHdoZW4gbWVhc3VyZWQgdmFsdWVzIGFyZSB1bmNoYW5nZWQKIyBzdXBwcmVzc19yZWR1bmRhbnQgPSBmYWxzZQoKIyMgSWYgc3VwcHJlc3Npb24gaXMgZW5hYmxlZCwgc2VuZCB1cGRhdGVzIGF0IGxlYXN0IGV2ZXJ5IFggc2Vjb25kcyBhbnl3YXkKIyBoZWFydGJlYXRfaW50ZXJ2YWwgPSAiNjBzIgo=",
"name": "sla_stats-cisco-ios-xr",
"version": 1
},
{
"template": "W1tpbnB1dHMuZ25taS5zdWJzY3JpcHRpb25dXQojIyBOYW1lIG9mIHRoZSBtZWFzdXJlbWVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZApuYW1lID0gInBvbGljeV9pbl9zdGF0cyIKCiMjIE9yaWdpbiBhbmQgcGF0aCBvZiB0aGUgc3Vic2NyaXB0aW9uCiMjIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5jb25maWcvcmVmZXJlbmNlL2Jsb2IvbWFzdGVyL3JwYy9nbm1pL2dubWktc3BlY2lmaWNhdGlvbi5tZCMyMjItcGF0aHMKIyMKIyMgb3JpZ2luIHVzdWFsbHkgcmVmZXJzIHRvIGEgKFlBTkcpIGRhdGEgbW9kZWwgaW1wbGVtZW50ZWQgYnkgdGhlIGRldmljZQojIyBhbmQgcGF0aCB0byBhIHNwZWNpZmljIHN1YnN0cnVjdHVyZSBpbnNpZGUgaXQgdGhhdCBzaG91bGQgYmUgc3Vic2NyaWJlZAojIyB0byAoc2ltaWxhciB0byBhbiBYUGF0aCkuIFlBTkcgbW9kZWxzIGNhbiBiZSBmb3VuZCBlLmcuIGhlcmU6CiMjIGh0dHBzOi8vZ2l0aHViLmNvbS9ZYW5nTW9kZWxzL3lhbmcvdHJlZS9tYXN0ZXIvdmVuZG9yL2Npc2NvL3hyCm9yaWdpbiA9ICJDaXNjby1JT1MtWFItcW9zLW1hLW9wZXIiCnBhdGggPSAiL3Fvcy9pbnRlcmZhY2UtdGFibGUvaW50ZXJmYWNlL2lucHV0L3NlcnZpY2UtcG9saWN5LW5hbWVzL3NlcnZpY2UtcG9saWN5LWluc3RhbmNlL3N0YXRpc3RpY3MiCgojIyBTdWJzY3JpcHRpb24gbW9kZSAoInRhcmdldF9kZWZpbmVkIiwgInNhbXBsZSIsICJvbl9jaGFuZ2UiKSBhbmQgaW50ZXJ2YWwKc3Vic2NyaXB0aW9uX21vZGUgPSAic2FtcGxlIgpzYW1wbGVfaW50ZXJ2YWwgPSAiNjBzIgoKIyMgU3VwcHJlc3MgcmVkdW5kYW50IHRyYW5zbWlzc2lvbnMgd2hlbiBtZWFzdXJlZCB2YWx1ZXMgYXJlIHVuY2hhbmdlZAojIHN1cHByZXNzX3JlZHVuZGFudCA9IGZhbHNlCgojIyBJZiBzdXBwcmVzc2lvbiBpcyBlbmFibGVkLCBzZW5kIHVwZGF0ZXMgYXQgbGVhc3QgZXZlcnkgWCBzZWNvbmRzIGFueXdheQojIGhlYXJ0YmVhdF9pbnRlcnZhbCA9ICI2MHMiCg==",
"name": "policy_in_stats-cisco-ios-xr",
"version": 1
},
{
"template": "W1tpbnB1dHMuZ25taS5zdWJzY3JpcHRpb25dXQojIyBOYW1lIG9mIHRoZSBtZWFzdXJlbWVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZApuYW1lID0gInBvbGljeV9vdXRfc3RhdHMiCgojIyBPcmlnaW4gYW5kIHBhdGggb2YgdGhlIHN1YnNjcmlwdGlvbgojIyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuY29uZmlnL3JlZmVyZW5jZS9ibG9iL21hc3Rlci9ycGMvZ25taS9nbm1pLXNwZWNpZmljYXRpb24ubWQjMjIyLXBhdGhzCiMjCiMjIG9yaWdpbiB1c3VhbGx5IHJlZmVycyB0byBhIChZQU5HKSBkYXRhIG1vZGVsIGltcGxlbWVudGVkIGJ5IHRoZSBkZXZpY2UKIyMgYW5kIHBhdGggdG8gYSBzcGVjaWZpYyBzdWJzdHJ1Y3R1cmUgaW5zaWRlIGl0IHRoYXQgc2hvdWxkIGJlIHN1YnNjcmliZWQKIyMgdG8gKHNpbWlsYXIgdG8gYW4gWFBhdGgpLiBZQU5HIG1vZGVscyBjYW4gYmUgZm91bmQgZS5nLiBoZXJlOgojIyBodHRwczovL2dpdGh1Yi5jb20vWWFuZ01vZGVscy95YW5nL3RyZWUvbWFzdGVyL3ZlbmRvci9jaXNjby94cgpvcmlnaW4gPSAiQ2lzY28tSU9TLVhSLXFvcy1tYS1vcGVyIgpwYXRoID0gIi9xb3MvaW50ZXJmYWNlLXRhYmxlL2ludGVyZmFjZS9vdXRwdXQvc2VydmljZS1wb2xpY3ktbmFtZXMvc2VydmljZS1wb2xpY3ktaW5zdGFuY2Uvc3RhdGlzdGljcyIKCiMjIFN1YnNjcmlwdGlvbiBtb2RlICgidGFyZ2V0X2RlZmluZWQiLCAic2FtcGxlIiwgIm9uX2NoYW5nZSIpIGFuZCBpbnRlcnZhbApzdWJzY3JpcHRpb25fbW9kZSA9ICJzYW1wbGUiCnNhbXBsZV9pbnRlcnZhbCA9ICI2MHMiCgojIyBTdXBwcmVzcyByZWR1bmRhbnQgdHJhbnNtaXNzaW9ucyB3aGVuIG1lYXN1cmVkIHZhbHVlcyBhcmUgdW5jaGFuZ2VkCiMgc3VwcHJlc3NfcmVkdW5kYW50ID0gZmFsc2UKCiMjIElmIHN1cHByZXNzaW9uIGlzIGVuYWJsZWQsIHNlbmQgdXBkYXRlcyBhdCBsZWFzdCBldmVyeSBYIHNlY29uZHMgYW55d2F5CiMgaGVhcnRiZWF0X2ludGVydmFsID0gIjYwcyIK",
"name": "policy_out_stats-cisco-ios-xr",
"version": 1
},
{
"template": "W1tpbnB1dHMuZ25taS5zdWJzY3JpcHRpb25dXQojIyBOYW1lIG9mIHRoZSBtZWFzdXJlbWVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZApuYW1lID0gImNwdV91dGlsIgoKIyMgT3JpZ2luIGFuZCBwYXRoIG9mIHRoZSBzdWJzY3JpcHRpb24KIyMgU2VlOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmNvbmZpZy9yZWZlcmVuY2UvYmxvYi9tYXN0ZXIvcnBjL2dubWkvZ25taS1zcGVjaWZpY2F0aW9uLm1kIzIyMi1wYXRocwojIwojIyBvcmlnaW4gdXN1YWxseSByZWZlcnMgdG8gYSAoWUFORykgZGF0YSBtb2RlbCBpbXBsZW1lbnRlZCBieSB0aGUgZGV2aWNlCiMjIGFuZCBwYXRoIHRvIGEgc3BlY2lmaWMgc3Vic3RydWN0dXJlIGluc2lkZSBpdCB0aGF0IHNob3VsZCBiZSBzdWJzY3JpYmVkCiMjIHRvIChzaW1pbGFyIHRvIGFuIFhQYXRoKS4gWUFORyBtb2RlbHMgY2FuIGJlIGZvdW5kIGUuZy4gaGVyZToKIyMgaHR0cHM6Ly9naXRodWIuY29tL1lhbmdNb2RlbHMveWFuZy90cmVlL21hc3Rlci92ZW5kb3IvY2lzY28veHIKb3JpZ2luID0gIkNpc2NvLUlPUy1YUi13ZHN5c21vbi1mZC1vcGVyIgpwYXRoID0gIi9zeXN0ZW0tbW9uaXRvcmluZy9jcHUtdXRpbGl6YXRpb24iCgojIyBTdWJzY3JpcHRpb24gbW9kZSAoInRhcmdldF9kZWZpbmVkIiwgInNhbXBsZSIsICJvbl9jaGFuZ2UiKSBhbmQgaW50ZXJ2YWwKc3Vic2NyaXB0aW9uX21vZGUgPSAic2FtcGxlIgpzYW1wbGVfaW50ZXJ2YWwgPSAiNjBzIgoKIyMgU3VwcHJlc3MgcmVkdW5kYW50IHRyYW5zbWlzc2lvbnMgd2hlbiBtZWFzdXJlZCB2YWx1ZXMgYXJlIHVuY2hhbmdlZAojIHN1cHByZXNzX3JlZHVuZGFudCA9IGZhbHNlCgojIyBJZiBzdXBwcmVzc2lvbiBpcyBlbmFibGVkLCBzZW5kIHVwZGF0ZXMgYXQgbGVhc3QgZXZlcnkgWCBzZWNvbmRzIGFueXdheQojIGhlYXJ0YmVhdF9pbnRlcnZhbCA9ICI2MHMiCg==",
"name": "cpu_util-cisco-ios-xr",
"version": 1
},
{
"template": "W1tpbnB1dHMuZ25taS5zdWJzY3JpcHRpb25dXQojIyBOYW1lIG9mIHRoZSBtZWFzdXJlbWVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZApuYW1lID0gIm5vZGVfc3VtbWFyeSIKCiMjIE9yaWdpbiBhbmQgcGF0aCBvZiB0aGUgc3Vic2NyaXB0aW9uCiMjIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5jb25maWcvcmVmZXJlbmNlL2Jsb2IvbWFzdGVyL3JwYy9nbm1pL2dubWktc3BlY2lmaWNhdGlvbi5tZCMyMjItcGF0aHMKIyMKIyMgb3JpZ2luIHVzdWFsbHkgcmVmZXJzIHRvIGEgKFlBTkcpIGRhdGEgbW9kZWwgaW1wbGVtZW50ZWQgYnkgdGhlIGRldmljZQojIyBhbmQgcGF0aCB0byBhIHNwZWNpZmljIHN1YnN0cnVjdHVyZSBpbnNpZGUgaXQgdGhhdCBzaG91bGQgYmUgc3Vic2NyaWJlZAojIyB0byAoc2ltaWxhciB0byBhbiBYUGF0aCkuIFlBTkcgbW9kZWxzIGNhbiBiZSBmb3VuZCBlLmcuIGhlcmU6CiMjIGh0dHBzOi8vZ2l0aHViLmNvbS9ZYW5nTW9kZWxzL3lhbmcvdHJlZS9tYXN0ZXIvdmVuZG9yL2Npc2NvL3hyCm9yaWdpbiA9ICJDaXNjby1JT1MtWFItbnRvLW1pc2Mtb3BlciIKcGF0aCA9ICIvbWVtb3J5LXN1bW1hcnkvbm9kZXMvbm9kZS9zdW1tYXJ5IgoKIyMgU3Vic2NyaXB0aW9uIG1vZGUgKCJ0YXJnZXRfZGVmaW5lZCIsICJzYW1wbGUiLCAib25fY2hhbmdlIikgYW5kIGludGVydmFsCnN1YnNjcmlwdGlvbl9tb2RlID0gInNhbXBsZSIKc2FtcGxlX2ludGVydmFsID0gIjYwcyIKCiMjIFN1cHByZXNzIHJlZHVuZGFudCB0cmFuc21pc3Npb25zIHdoZW4gbWVhc3VyZWQgdmFsdWVzIGFyZSB1bmNoYW5nZWQKIyBzdXBwcmVzc19yZWR1bmRhbnQgPSBmYWxzZQoKIyMgSWYgc3VwcHJlc3Npb24gaXMgZW5hYmxlZCwgc2VuZCB1cGRhdGVzIGF0IGxlYXN0IGV2ZXJ5IFggc2Vjb25kcyBhbnl3YXkKIyBoZWFydGJlYXRfaW50ZXJ2YWwgPSAiNjBzIgo=",
"name": "node_summary-cisco-ios-xr",
"version": 1
},
{
"template": "W1tpbnB1dHMuZ25taS5zdWJzY3JpcHRpb25dXQojIyBOYW1lIG9mIHRoZSBtZWFzdXJlbWVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZApuYW1lID0gImlwc2xhIgoKIyMgT3JpZ2luIGFuZCBwYXRoIG9mIHRoZSBzdWJzY3JpcHRpb24KIyMgU2VlOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmNvbmZpZy9yZWZlcmVuY2UvYmxvYi9tYXN0ZXIvcnBjL2dubWkvZ25taS1zcGVjaWZpY2F0aW9uLm1kIzIyMi1wYXRocwojIwojIyBvcmlnaW4gdXN1YWxseSByZWZlcnMgdG8gYSAoWUFORykgZGF0YSBtb2RlbCBpbXBsZW1lbnRlZCBieSB0aGUgZGV2aWNlCiMjIGFuZCBwYXRoIHRvIGEgc3BlY2lmaWMgc3Vic3RydWN0dXJlIGluc2lkZSBpdCB0aGF0IHNob3VsZCBiZSBzdWJzY3JpYmVkCiMjIHRvIChzaW1pbGFyIHRvIGFuIFhQYXRoKS4gWUFORyBtb2RlbHMgY2FuIGJlIGZvdW5kIGUuZy4gaGVyZToKIyMgaHR0cHM6Ly9naXRodWIuY29tL1lhbmdNb2RlbHMveWFuZy90cmVlL21hc3Rlci92ZW5kb3IvY2lzY28veHIKb3JpZ2luID0gIkNpc2NvLUlPUy1YUi1tYW4taXBzbGEtb3BlciIKcGF0aCA9ICIvaXBzbGEvb3BlcmF0aW9uLWRhdGEvb3BlcmF0aW9ucy9vcGVyYXRpb24vc3RhdGlzdGljcy9sYXRlc3QvdGFyZ2V0IgoKIyMgU3Vic2NyaXB0aW9uIG1vZGUgKCJ0YXJnZXRfZGVmaW5lZCIsICJzYW1wbGUiLCAib25fY2hhbmdlIikgYW5kIGludGVydmFsCnN1YnNjcmlwdGlvbl9tb2RlID0gInNhbXBsZSIKc2FtcGxlX2ludGVydmFsID0gIjYwcyIKCiMjIFN1cHByZXNzIHJlZHVuZGFudCB0cmFuc21pc3Npb25zIHdoZW4gbWVhc3VyZWQgdmFsdWVzIGFyZSB1bmNoYW5nZWQKIyBzdXBwcmVzc19yZWR1bmRhbnQgPSBmYWxzZQoKIyMgSWYgc3VwcHJlc3Npb24gaXMgZW5hYmxlZCwgc2VuZCB1cGRhdGVzIGF0IGxlYXN0IGV2ZXJ5IFggc2Vjb25kcyBhbnl3YXkKIyBoZWFydGJlYXRfaW50ZXJ2YWwgPSAiNjBzIgo=",
"name": "ipsla-cisco-ios-xr",
"version": 1
}
]
},
"enable": true,
"period": "continuous",
"sessionId": "b42092f8-741d-421f-b656-34e3b062e4c0",
"sessionName": "my-router",
"sessionType": "TelemetryGNMIDialInSession"
},
"tenantId": "8a116577-6489-4c0d-92e4-407eacd8e1a6"
},
"type": "agentSessions"
}
}
We will use this in the next step.
Step 2: Provisioning The Session Against Your Collector
Now that you have produced the session configuration to define the device that you want to stream telemetry from, you need to provision it against your collector.
This can be done with the following API call:
/api/orchestrate/v3/agents/session
cutting and pasting the result from the previous step into the request body.
Once provisioned, the new session configuration will be pushed down to your collector. At this point, your collector will initiate the process of connecting to the device and subscribing to the requested sensor paths.
Assuming all went well, you should now begin receiving telemetry from the device.
Helpful Links
The sensor paths associated with the ‘out of the box’ telemetry offering can be retrieved via the following API call:
GET /api/v3/telemetry-agent-templates?type=SensorPathSubscription&shallow=true
This will return a result set similar to the following:
{
"data": [
{
"name": "cpu_stats-cisco-ios-xe",
"templateVersion": 1,
"type": "SensorPathSubscription"
},
{
"name": "if_stats-cisco-ios-xr",
"templateVersion": 1,
"type": "SensorPathSubscription"
},
{
"name": "sla_stats-cisco-ios-xr",
"templateVersion": 1,
"type": "SensorPathSubscription"
},
{
"name": "policy_in_stats-cisco-ios-xr",
"templateVersion": 1,
"type": "SensorPathSubscription"
},
{
"name": "cpu_util-cisco-ios-xr",
"templateVersion": 1,
"type": "SensorPathSubscription"
},
{
"name": "node_summary-cisco-ios-xr",
"templateVersion": 1,
"type": "SensorPathSubscription"
},
{
"name": "memory_stats-cisco-ios-xe",
"templateVersion": 1,
"type": "SensorPathSubscription"
},
{
"name": "policy_out_stats-cisco-ios-xr",
"templateVersion": 1,
"type": "SensorPathSubscription"
},
{
"name": "ipsla-cisco-ios-xr",
"templateVersion": 1,
"type": "SensorPathSubscription"
},
{
"name": "if_stats-cisco-ios-xe",
"templateVersion": 1,
"type": "SensorPathSubscription"
}
]
}
Note that if you wish more detailed information about each path, such as the Yang model and full sensor path, omit the shallow=true
query parameter.
To populate the SensorPathSubscriptions
field in the session configuration for your collector, simply collect the names of the paths (taken from the name
fields above) that you want into a comma separated list.
For example, to subscribe to all of the ‘cisco-ios-xr’ family of objects, you would set the SensorpathSubscriptions
field to the following:
["if_stats-cisco-ios-xr","sla_stats-cisco-ios-xr","policy_in_stats-cisco-ios-xr","policy_out_stats-cisco-ios-xr","cpu_util-cisco-ios-xr","node_summary-cisco-ios-xr","ipsla-cisco-ios-xr"]
© 2025 Cisco and/or its affiliates. All rights reserved.
For more information about trademarks, please visit: Cisco trademarks
For more information about legal terms, please visit: Cisco legal terms
For legal information about Accedian Skylight products, please visit: Accedian legal terms and tradmarks