Cisco NX-OS Telemetry

The Cisco NX-OS Telemetry lets you push operational statistics asynchronously to Horizon. Horizon sends a request to stream periodic updates once to the device. Data is generated as Google protocol buffers (GPB) structured messages over UDP. Detailed information about NX-OS can be found in NXOS documentation.

To enable support for NX-OS Telemetry, edit ${OPENNMS_HOME}/etc/telemetryd-configuration.xml and set enabled=true for NXOS protocol.

Enable NX-OS protocol in telemetryd-configuration.xml
<listener name="NXOS-UDP-50001" class-name="org.opennms.netmgt.telemetry.listeners.simple.Udp" enabled="false">
    <parameter key="port" value="50001"/>

    <parser name="NXOS-GPB" class-name="org.opennms.netmgt.telemetry.protocols.common.parser.ForwardParser" queue="NXOS" />

<queue name="NXOS">
    <adapter name="NXOS-GPB" class-name="org.opennms.netmgt.telemetry.protocols.nxos.adapter.NxosGpbAdapter" enabled="false">
        <parameter key="script" value="${install.dir}/etc/telemetryd-adapters/cisco-nxos-telemetry-interface.groovy"/>

        <package name="NXOS-Default">
            <rrd step="300">

Apply the changes without restarting by sending a reloadDaemonConfig event in the CLI or the Web UI:

Send a reloadDaemonConfig event through CLI
$\{OPENNMS_HOME}bin/ -p 'daemonName Telemetryd'

By default, this will open a UDP socket bound to to which NXOS messages can be forwarded.

Configure NX-OS Listener on a Minion

To enable and configure a UDP listener for NX-OS on Minion, connect to the Karaf Console and set the following properties:

$ ssh -p 8201 admin@localhost
admin@minion()> config:edit --alias udp-50001-nxos --factory org.opennms.features.telemetry.listeners
admin@minion()> config:property-set name NXOS
admin@minion()> config:property-set class-name org.opennms.netmgt.telemetry.listeners.UdpListener
admin@minion()> config:property-set parameters.port 50001
admin@minion()> config:property-set NXOS
admin@minion()> config:property-set parsers.0.class-name org.opennms.netmgt.telemetry.protocols.common.parser.ForwardParser
admin@minion()> config:update
The protocol must also be enabled on Horizon to process the messages.

Cisco NX-OS Adapter

The NX-OS adapter handles Cisco NX-OS telemetry payloads. Messages are decoded using the published protobuf (proto3) specifications and forwarded to a JSR-223 compatible script (i.e., Beanshell or Groovy) for further processing. Using the script extension you can extract the desired metrics from the NX-OS messages and persist the results as time series data.


Class Name



Table 1. Adapter specific parameters for the NxosGpbAdapter
Parameter Description Required Default value


Full path to the script used to handle the NXOS messages.




The script will be invoked for every NX-OS message that is received and succesfully decoded.

The following globals will be passed to the script:

Table 2. Globals passed to the script
Parameter Description Type


The agent (node) against which the metrics will be associated.



Builder in which the resources and metrics should be added.


Decoded NX-OS message from which the metrics should be extracted.