1.. _cisco.nxos.nxos_telemetry_module: 2 3 4************************* 5cisco.nxos.nxos_telemetry 6************************* 7 8**TELEMETRY resource module** 9 10 11Version added: 1.0.0 12 13.. contents:: 14 :local: 15 :depth: 1 16 17 18Synopsis 19-------- 20- Manages Telemetry Monitoring Service (TMS) configuration 21 22 23 24 25Parameters 26---------- 27 28.. raw:: html 29 30 <table border=0 cellpadding=0 class="documentation-table"> 31 <tr> 32 <th colspan="4">Parameter</th> 33 <th>Choices/<font color="blue">Defaults</font></th> 34 <th width="100%">Comments</th> 35 </tr> 36 <tr> 37 <td colspan="4"> 38 <div class="ansibleOptionAnchor" id="parameter-"></div> 39 <b>config</b> 40 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 41 <div style="font-size: small"> 42 <span style="color: purple">dictionary</span> 43 </div> 44 </td> 45 <td> 46 </td> 47 <td> 48 <div>The provided configuration</div> 49 </td> 50 </tr> 51 <tr> 52 <td class="elbow-placeholder"></td> 53 <td colspan="3"> 54 <div class="ansibleOptionAnchor" id="parameter-"></div> 55 <b>certificate</b> 56 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 57 <div style="font-size: small"> 58 <span style="color: purple">dictionary</span> 59 </div> 60 </td> 61 <td> 62 </td> 63 <td> 64 <div>Certificate SSL/TLS and hostname values.</div> 65 <div>Value must be a dict defining values for keys (key and hostname).</div> 66 </td> 67 </tr> 68 <tr> 69 <td class="elbow-placeholder"></td> 70 <td class="elbow-placeholder"></td> 71 <td colspan="2"> 72 <div class="ansibleOptionAnchor" id="parameter-"></div> 73 <b>hostname</b> 74 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 75 <div style="font-size: small"> 76 <span style="color: purple">string</span> 77 </div> 78 </td> 79 <td> 80 </td> 81 <td> 82 <div>Certificate hostname</div> 83 </td> 84 </tr> 85 <tr> 86 <td class="elbow-placeholder"></td> 87 <td class="elbow-placeholder"></td> 88 <td colspan="2"> 89 <div class="ansibleOptionAnchor" id="parameter-"></div> 90 <b>key</b> 91 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 92 <div style="font-size: small"> 93 <span style="color: purple">string</span> 94 </div> 95 </td> 96 <td> 97 </td> 98 <td> 99 <div>Certificate key</div> 100 </td> 101 </tr> 102 103 <tr> 104 <td class="elbow-placeholder"></td> 105 <td colspan="3"> 106 <div class="ansibleOptionAnchor" id="parameter-"></div> 107 <b>compression</b> 108 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 109 <div style="font-size: small"> 110 <span style="color: purple">string</span> 111 </div> 112 </td> 113 <td> 114 <ul style="margin: 0; padding: 0"><b>Choices:</b> 115 <li>gzip</li> 116 </ul> 117 </td> 118 <td> 119 <div>Destination profile compression method.</div> 120 </td> 121 </tr> 122 <tr> 123 <td class="elbow-placeholder"></td> 124 <td colspan="3"> 125 <div class="ansibleOptionAnchor" id="parameter-"></div> 126 <b>destination_groups</b> 127 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 128 <div style="font-size: small"> 129 <span style="color: purple">list</span> 130 / <span style="color: purple">elements=raw</span> 131 </div> 132 </td> 133 <td> 134 </td> 135 <td> 136 <div>List of telemetry destination groups.</div> 137 </td> 138 </tr> 139 <tr> 140 <td class="elbow-placeholder"></td> 141 <td class="elbow-placeholder"></td> 142 <td colspan="2"> 143 <div class="ansibleOptionAnchor" id="parameter-"></div> 144 <b>destination</b> 145 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 146 <div style="font-size: small"> 147 <span style="color: purple">dictionary</span> 148 </div> 149 </td> 150 <td> 151 </td> 152 <td> 153 <div>Group destination ipv4, port, protocol and encoding values.</div> 154 <div>Value must be a dict defining values for keys (ip, port, protocol, encoding).</div> 155 </td> 156 </tr> 157 <tr> 158 <td class="elbow-placeholder"></td> 159 <td class="elbow-placeholder"></td> 160 <td class="elbow-placeholder"></td> 161 <td colspan="1"> 162 <div class="ansibleOptionAnchor" id="parameter-"></div> 163 <b>encoding</b> 164 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 165 <div style="font-size: small"> 166 <span style="color: purple">string</span> 167 </div> 168 </td> 169 <td> 170 <ul style="margin: 0; padding: 0"><b>Choices:</b> 171 <li>GPB</li> 172 <li>JSON</li> 173 </ul> 174 </td> 175 <td> 176 <div>Destination group encoding.</div> 177 </td> 178 </tr> 179 <tr> 180 <td class="elbow-placeholder"></td> 181 <td class="elbow-placeholder"></td> 182 <td class="elbow-placeholder"></td> 183 <td colspan="1"> 184 <div class="ansibleOptionAnchor" id="parameter-"></div> 185 <b>ip</b> 186 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 187 <div style="font-size: small"> 188 <span style="color: purple">string</span> 189 </div> 190 </td> 191 <td> 192 </td> 193 <td> 194 <div>Destination group IP address.</div> 195 </td> 196 </tr> 197 <tr> 198 <td class="elbow-placeholder"></td> 199 <td class="elbow-placeholder"></td> 200 <td class="elbow-placeholder"></td> 201 <td colspan="1"> 202 <div class="ansibleOptionAnchor" id="parameter-"></div> 203 <b>port</b> 204 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 205 <div style="font-size: small"> 206 <span style="color: purple">integer</span> 207 </div> 208 </td> 209 <td> 210 </td> 211 <td> 212 <div>Destination group port number.</div> 213 </td> 214 </tr> 215 <tr> 216 <td class="elbow-placeholder"></td> 217 <td class="elbow-placeholder"></td> 218 <td class="elbow-placeholder"></td> 219 <td colspan="1"> 220 <div class="ansibleOptionAnchor" id="parameter-"></div> 221 <b>protocol</b> 222 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 223 <div style="font-size: small"> 224 <span style="color: purple">string</span> 225 </div> 226 </td> 227 <td> 228 <ul style="margin: 0; padding: 0"><b>Choices:</b> 229 <li>HTTP</li> 230 <li>TCP</li> 231 <li>UDP</li> 232 <li>gRPC</li> 233 </ul> 234 </td> 235 <td> 236 <div>Destination group protocol.</div> 237 </td> 238 </tr> 239 240 <tr> 241 <td class="elbow-placeholder"></td> 242 <td class="elbow-placeholder"></td> 243 <td colspan="2"> 244 <div class="ansibleOptionAnchor" id="parameter-"></div> 245 <b>id</b> 246 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 247 <div style="font-size: small"> 248 <span style="color: purple">integer</span> 249 </div> 250 </td> 251 <td> 252 </td> 253 <td> 254 <div>Destination group identifier.</div> 255 <div>Value must be a int representing the destination group identifier.</div> 256 </td> 257 </tr> 258 259 <tr> 260 <td class="elbow-placeholder"></td> 261 <td colspan="3"> 262 <div class="ansibleOptionAnchor" id="parameter-"></div> 263 <b>sensor_groups</b> 264 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 265 <div style="font-size: small"> 266 <span style="color: purple">list</span> 267 / <span style="color: purple">elements=raw</span> 268 </div> 269 </td> 270 <td> 271 </td> 272 <td> 273 <div>List of telemetry sensor groups.</div> 274 </td> 275 </tr> 276 <tr> 277 <td class="elbow-placeholder"></td> 278 <td class="elbow-placeholder"></td> 279 <td colspan="2"> 280 <div class="ansibleOptionAnchor" id="parameter-"></div> 281 <b>data_source</b> 282 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 283 <div style="font-size: small"> 284 <span style="color: purple">string</span> 285 </div> 286 </td> 287 <td> 288 <ul style="margin: 0; padding: 0"><b>Choices:</b> 289 <li>NX-API</li> 290 <li>DME</li> 291 <li>YANG</li> 292 </ul> 293 </td> 294 <td> 295 <div>Telemetry data source.</div> 296 </td> 297 </tr> 298 <tr> 299 <td class="elbow-placeholder"></td> 300 <td class="elbow-placeholder"></td> 301 <td colspan="2"> 302 <div class="ansibleOptionAnchor" id="parameter-"></div> 303 <b>id</b> 304 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 305 <div style="font-size: small"> 306 <span style="color: purple">integer</span> 307 </div> 308 </td> 309 <td> 310 </td> 311 <td> 312 <div>Sensor group identifier.</div> 313 <div>Value must be a int representing the sensor group identifier.</div> 314 </td> 315 </tr> 316 <tr> 317 <td class="elbow-placeholder"></td> 318 <td class="elbow-placeholder"></td> 319 <td colspan="2"> 320 <div class="ansibleOptionAnchor" id="parameter-"></div> 321 <b>path</b> 322 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 323 <div style="font-size: small"> 324 <span style="color: purple">dictionary</span> 325 </div> 326 </td> 327 <td> 328 </td> 329 <td> 330 <div>Telemetry sensor path.</div> 331 <div>Value must be a dict defining values for keys (name, depth, filter_condition, query_condition).</div> 332 <div>Mandatory Keys (name)</div> 333 <div>Optional Keys (depth, filter_condition, query_condition)</div> 334 </td> 335 </tr> 336 <tr> 337 <td class="elbow-placeholder"></td> 338 <td class="elbow-placeholder"></td> 339 <td class="elbow-placeholder"></td> 340 <td colspan="1"> 341 <div class="ansibleOptionAnchor" id="parameter-"></div> 342 <b>depth</b> 343 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 344 <div style="font-size: small"> 345 <span style="color: purple">string</span> 346 </div> 347 </td> 348 <td> 349 </td> 350 <td> 351 <div>Sensor group depth.</div> 352 </td> 353 </tr> 354 <tr> 355 <td class="elbow-placeholder"></td> 356 <td class="elbow-placeholder"></td> 357 <td class="elbow-placeholder"></td> 358 <td colspan="1"> 359 <div class="ansibleOptionAnchor" id="parameter-"></div> 360 <b>filter_condition</b> 361 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 362 <div style="font-size: small"> 363 <span style="color: purple">string</span> 364 </div> 365 </td> 366 <td> 367 </td> 368 <td> 369 <div>Sensor group filter condition.</div> 370 </td> 371 </tr> 372 <tr> 373 <td class="elbow-placeholder"></td> 374 <td class="elbow-placeholder"></td> 375 <td class="elbow-placeholder"></td> 376 <td colspan="1"> 377 <div class="ansibleOptionAnchor" id="parameter-"></div> 378 <b>name</b> 379 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 380 <div style="font-size: small"> 381 <span style="color: purple">string</span> 382 </div> 383 </td> 384 <td> 385 </td> 386 <td> 387 <div>Sensor group path name.</div> 388 </td> 389 </tr> 390 <tr> 391 <td class="elbow-placeholder"></td> 392 <td class="elbow-placeholder"></td> 393 <td class="elbow-placeholder"></td> 394 <td colspan="1"> 395 <div class="ansibleOptionAnchor" id="parameter-"></div> 396 <b>query_condition</b> 397 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 398 <div style="font-size: small"> 399 <span style="color: purple">string</span> 400 </div> 401 </td> 402 <td> 403 </td> 404 <td> 405 <div>Sensor group query condition.</div> 406 </td> 407 </tr> 408 409 410 <tr> 411 <td class="elbow-placeholder"></td> 412 <td colspan="3"> 413 <div class="ansibleOptionAnchor" id="parameter-"></div> 414 <b>source_interface</b> 415 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 416 <div style="font-size: small"> 417 <span style="color: purple">string</span> 418 </div> 419 </td> 420 <td> 421 </td> 422 <td> 423 <div>Destination profile source interface.</div> 424 <div>Valid value is a str representing the source interface name.</div> 425 </td> 426 </tr> 427 <tr> 428 <td class="elbow-placeholder"></td> 429 <td colspan="3"> 430 <div class="ansibleOptionAnchor" id="parameter-"></div> 431 <b>subscriptions</b> 432 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 433 <div style="font-size: small"> 434 <span style="color: purple">list</span> 435 / <span style="color: purple">elements=raw</span> 436 </div> 437 </td> 438 <td> 439 </td> 440 <td> 441 <div>List of telemetry subscriptions.</div> 442 </td> 443 </tr> 444 <tr> 445 <td class="elbow-placeholder"></td> 446 <td class="elbow-placeholder"></td> 447 <td colspan="2"> 448 <div class="ansibleOptionAnchor" id="parameter-"></div> 449 <b>destination_group</b> 450 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 451 <div style="font-size: small"> 452 <span style="color: purple">integer</span> 453 </div> 454 </td> 455 <td> 456 </td> 457 <td> 458 <div>Associated destination group.</div> 459 </td> 460 </tr> 461 <tr> 462 <td class="elbow-placeholder"></td> 463 <td class="elbow-placeholder"></td> 464 <td colspan="2"> 465 <div class="ansibleOptionAnchor" id="parameter-"></div> 466 <b>id</b> 467 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 468 <div style="font-size: small"> 469 <span style="color: purple">integer</span> 470 </div> 471 </td> 472 <td> 473 </td> 474 <td> 475 <div>Subscription identifier.</div> 476 <div>Value must be a int representing the subscription identifier.</div> 477 </td> 478 </tr> 479 <tr> 480 <td class="elbow-placeholder"></td> 481 <td class="elbow-placeholder"></td> 482 <td colspan="2"> 483 <div class="ansibleOptionAnchor" id="parameter-"></div> 484 <b>sensor_group</b> 485 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 486 <div style="font-size: small"> 487 <span style="color: purple">dictionary</span> 488 </div> 489 </td> 490 <td> 491 </td> 492 <td> 493 <div>Associated sensor group.</div> 494 <div>Value must be a dict defining values for keys (id, sample_interval).</div> 495 </td> 496 </tr> 497 <tr> 498 <td class="elbow-placeholder"></td> 499 <td class="elbow-placeholder"></td> 500 <td class="elbow-placeholder"></td> 501 <td colspan="1"> 502 <div class="ansibleOptionAnchor" id="parameter-"></div> 503 <b>id</b> 504 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 505 <div style="font-size: small"> 506 <span style="color: purple">integer</span> 507 </div> 508 </td> 509 <td> 510 </td> 511 <td> 512 <div>Associated sensor group id.</div> 513 </td> 514 </tr> 515 <tr> 516 <td class="elbow-placeholder"></td> 517 <td class="elbow-placeholder"></td> 518 <td class="elbow-placeholder"></td> 519 <td colspan="1"> 520 <div class="ansibleOptionAnchor" id="parameter-"></div> 521 <b>sample_interval</b> 522 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 523 <div style="font-size: small"> 524 <span style="color: purple">integer</span> 525 </div> 526 </td> 527 <td> 528 </td> 529 <td> 530 <div>Associated sensor group id sample interval.</div> 531 </td> 532 </tr> 533 534 535 <tr> 536 <td class="elbow-placeholder"></td> 537 <td colspan="3"> 538 <div class="ansibleOptionAnchor" id="parameter-"></div> 539 <b>vrf</b> 540 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 541 <div style="font-size: small"> 542 <span style="color: purple">string</span> 543 </div> 544 </td> 545 <td> 546 </td> 547 <td> 548 <div>Destination profile vrf.</div> 549 <div>Valid value is a str representing the vrf name.</div> 550 </td> 551 </tr> 552 553 <tr> 554 <td colspan="4"> 555 <div class="ansibleOptionAnchor" id="parameter-"></div> 556 <b>state</b> 557 <a class="ansibleOptionLink" href="#parameter-" title="Permalink to this option"></a> 558 <div style="font-size: small"> 559 <span style="color: purple">string</span> 560 </div> 561 </td> 562 <td> 563 <ul style="margin: 0; padding: 0"><b>Choices:</b> 564 <li><div style="color: blue"><b>merged</b> ←</div></li> 565 <li>replaced</li> 566 <li>deleted</li> 567 <li>gathered</li> 568 </ul> 569 </td> 570 <td> 571 <div>Final configuration state</div> 572 </td> 573 </tr> 574 </table> 575 <br/> 576 577 578Notes 579----- 580 581.. note:: 582 - Supported on N9k Version 7.0(3)I7(5) and later. 583 - Unsupported for Cisco MDS 584 585 586 587Examples 588-------- 589 590.. code-block:: yaml 591 592 # Using deleted 593 # This action will delete all telemetry configuration on the device 594 595 - name: Delete Telemetry Configuration 596 cisco.nxos.nxos_telemetry: 597 state: deleted 598 599 600 # Using merged 601 # This action will merge telemetry configuration defined in the playbook with 602 # telemetry configuration that is already on the device. 603 604 - name: Merge Telemetry Configuration 605 cisco.nxos.nxos_telemetry: 606 config: 607 certificate: 608 key: /bootflash/server.key 609 hostname: localhost 610 compression: gzip 611 source_interface: Ethernet1/1 612 vrf: management 613 destination_groups: 614 - id: 2 615 destination: 616 ip: 192.168.0.2 617 port: 50001 618 protocol: gPRC 619 encoding: GPB 620 - id: 55 621 destination: 622 ip: 192.168.0.55 623 port: 60001 624 protocol: gPRC 625 encoding: GPB 626 sensor_groups: 627 - id: 1 628 data_source: NX-API 629 path: 630 name: '"show lldp neighbors detail"' 631 depth: 0 632 - id: 55 633 data_source: DME 634 path: 635 name: sys/ch 636 depth: unbounded 637 filter_condition: ne(eqptFt.operSt,"ok") 638 subscriptions: 639 - id: 5 640 destination_group: 55 641 sensor_group: 642 id: 1 643 sample_interval: 1000 644 - id: 6 645 destination_group: 2 646 sensor_group: 647 id: 55 648 sample_interval: 2000 649 state: merged 650 651 652 # Using replaced 653 # This action will replace telemetry configuration on the device with the 654 # telemetry configuration defined in the playbook. 655 656 - name: Override Telemetry Configuration 657 cisco.nxos.nxos_telemetry: 658 config: 659 certificate: 660 key: /bootflash/server.key 661 hostname: localhost 662 compression: gzip 663 source_interface: Ethernet1/1 664 vrf: management 665 destination_groups: 666 - id: 2 667 destination: 668 ip: 192.168.0.2 669 port: 50001 670 protocol: gPRC 671 encoding: GPB 672 subscriptions: 673 - id: 5 674 destination_group: 55 675 state: replaced 676 677 678 679Return Values 680------------- 681Common return values are documented `here <https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values>`_, the following are the fields unique to this module: 682 683.. raw:: html 684 685 <table border=0 cellpadding=0 class="documentation-table"> 686 <tr> 687 <th colspan="1">Key</th> 688 <th>Returned</th> 689 <th width="100%">Description</th> 690 </tr> 691 <tr> 692 <td colspan="1"> 693 <div class="ansibleOptionAnchor" id="return-"></div> 694 <b>after</b> 695 <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> 696 <div style="font-size: small"> 697 <span style="color: purple">dictionary</span> 698 </div> 699 </td> 700 <td>when changed</td> 701 <td> 702 <div>The configuration as structured data after module completion.</div> 703 <br/> 704 <div style="font-size: smaller"><b>Sample:</b></div> 705 <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">The configuration returned will always be in the same format 706 of the parameters above.</div> 707 </td> 708 </tr> 709 <tr> 710 <td colspan="1"> 711 <div class="ansibleOptionAnchor" id="return-"></div> 712 <b>before</b> 713 <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> 714 <div style="font-size: small"> 715 <span style="color: purple">dictionary</span> 716 </div> 717 </td> 718 <td>always</td> 719 <td> 720 <div>The configuration as structured data prior to module invocation.</div> 721 <br/> 722 <div style="font-size: smaller"><b>Sample:</b></div> 723 <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">The configuration returned will always be in the same format 724 of the parameters above.</div> 725 </td> 726 </tr> 727 <tr> 728 <td colspan="1"> 729 <div class="ansibleOptionAnchor" id="return-"></div> 730 <b>commands</b> 731 <a class="ansibleOptionLink" href="#return-" title="Permalink to this return value"></a> 732 <div style="font-size: small"> 733 <span style="color: purple">list</span> 734 </div> 735 </td> 736 <td>always</td> 737 <td> 738 <div>The set of commands pushed to the remote device.</div> 739 <br/> 740 <div style="font-size: smaller"><b>Sample:</b></div> 741 <div style="font-size: smaller; color: blue; word-wrap: break-word; word-break: break-all;">['command 1', 'command 2', 'command 3']</div> 742 </td> 743 </tr> 744 </table> 745 <br/><br/> 746 747 748Status 749------ 750 751 752Authors 753~~~~~~~ 754 755- Mike Wiebe (@mikewiebe) 756