605 09 06-16-mdtforckn · • product management trends ... sensor-path cisco-ios-xr-infra-statsd-...
TRANSCRIPT
2 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Use Cases • Network Health • Troubleshooting / Remediation • SLAs, Performance Tuning • Capacity Planning • Product Management
Trends • Centralized / Software-defined • Speed • Scale
We Need More Data
Capabilities
3 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
SNMP
Incomplete
Scale Issues
Unstructured Subject to
Change
storage & analysis
sensing & measurement
Network data is bottlenecked
Where Data Is Created Where Data Is Useful
CLI
Syslog
SNMP Server
Syslog Collector
Scripts
Non real time
Strong burden on back-end
Must normalize different encodings, transports, data
models, timestamps
4 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
The New Paradigm – Free the Data
sensing & measurement
Where Data Is Created Where Data Is Useful
T
T
T
Real time
As Much Data As Fast As Useful As Easy As Possible
Storage & analysis
5 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Three Enablers for Telemetry
Push Not Pull
Analytics-Ready Data
Data-Model Driven
6 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Instruction on: • What data to collect • With what cadence • And send to where
Ultra-high level picture: Config
Collector
7 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
telemetry model-driven destination-group DGroup1 address family ipv4 10.60.19.8 port 2104 encoding self-describing-gpb protocol tcp! sensor-group SGroup1 sensor-path Cisco-IOS-XR-infra-statsd-
oper:infra-statistics/interfaces/interface/latest/generic-counters
! subscription Sub1 sensor-group-id SGroup1 sample-interval 30000 destination-id DGroup1
Sample CLI (XR 6.1.1)
What Data to Collect
Where to Send and How
When
8 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Config Model (XR 6.1.1) What Data to Collect
Where to Send and How
When
What Data to Collect
Where to Send and How
When
https://xrdocs.github.io/telemetry/tutorials/
9 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
module: Cisco-IOS-XR-infra-statsd-oper +--ro infra-statistics +--ro interfaces +--ro interface* [interface-name] +--ro latest +--ro generic-counters +--ro packets-received +--ro bytes-received +--ro packets-sent +--ro bytes-sent +--ro multicast-packets-received +--ro broadcast-packets-received +--ro multicast-packets-sent etc…
How to Get Supported Models • https://github.com/YangModels/yang/
tree/master/vendor/cisco/xr
• NETCONF <capabilities>
Some Commonly Used Models
Use YANG Models in Sensor-Path
10 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Ultra-high level picture: Transport Instruction on: • What data to collect • With what cadence • And send to where
Collector Table 3 Table 2 Table 1
11 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Dial-Out
• TCP & gRPC
Dial-In
• gRPC only
Three Transport Options
Collector
Data
SYN SYN-ACK
ACK Collector
Data
SYN SYN-ACK
ACK
12 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
gRPC: Like REST But Different
Runs over HTTP/2 • Optimize for page load time • Server push, header compression, multiplexing,
TLS • RFC 7540 (May 2015) • Preserves most HTTP1.1 syntax
Defines Services (“RPCs”)
Encodes Using Google Protocol Buffers (“GPB” or “protobufs”)
• Services and Messages • Auto-generate code in many languages
12
http://www.grpc.io/docs/#hello-grpc
13 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Instruction on: • What data to collect • With what cadence • And send to where
Receiving unit Table 3 Table 2
Interface ifInErrors ifOutErrors ifHCOutOctets …
HundredGigabitEthernet 0/1/0/2 10 0 123456789 …
Bundle-Ether 42
3 0 234567890 …
… … … … …
Table 1
Ultra-high level picture: Encoded Data “I am the interface counters table”
14 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Basic Concept: Encoding
Encoding (or “serialization”) translates data (objects, state) into a format that can be transmitted across the network. When the receiver decodes (“de-serializes”) the data, it has an semantically identical copy of the original data.
DATA
DATA
“Decode”
“Encode”
Common Text-Based Encodings
• JSON • XML
15 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
GPB Encoding
Design Goals
• Simplicity • Performance • Forward/Backward
Compatibility
Non-Goals
• Human-Readable • Self-Describing • Text-based
Google Protocol Buffers (GPB)
Call them “protobufs”
for short “Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler.”
16 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Telemetry Has Two GPB Encoding Options
1: GigabitEthernet0/0/0/0 50: 449825 51: 41624083 52: 360333 53: 29699362 54: 91299 <snip>
2X faster Operationally more complex (but not relative to SNMP!)
{InterfaceName: GigabitEthernet0/0/0/0 GenericCounters { PacketsSent: 449825 BytesSent: 41624083 PacketsReceived: 360333 BytesReceived: 29699362 MulticastPacketsReceived: 91299 <snip>
3X larger Native models: still need heuristics for key names
GPB – “compact” GPB – “self-describing”
17 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Lesson Learned: It’s Not Hard to Beat SNMP
• 10 second poll / push • 3 pollers / telemetry receivers • 30 minute measurement intervals
• 288 100Gig E Interfaces (Line Rate) • SNMP: IF-MIB (query by row)
18 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Use Case: Bundle Polarization
Telemetry – 10 Second Push SNMP – 1 Minute Polling
G0/0/0/0 G0/0/0/1
Is the bundle polarized?
19 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Use Case: Bundle Polarization
Telemetry – 10 Second Push G0/0/0/0 G0/0/0/1
Is the bundle polarized?
20 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Use Case: Packet Loss Interpolation
VPN, Internet,
etc…
No Drops No Drops Drops Yours Yours
Not Yours
Pkts Tx
Pkts Rx
• SNMP polling (5 min) • first order linear interpolation • detects ~10% packet loss
• Telemetry (10-30 sec) • Polynomial interpolation • Smaller losses, faster
21 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Different Customers, Different Models
Logstash
ElasticSearch
Kibana
ST Input Codec
Output Codec
Kafka
BYO Black Box
SST
Custom Open Source, Customizable
Proprietary or OS-based
SST
Commercial Stack
Prometheus Panda
22 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
6.0.0 / 6.0.1
• 30 -> 10 Seconds
• Periodic • RP level • JSON, GPB • TCP, UDP • Native schemas • File-based policy • Open Source
tooling
6.1.1 “MDT”
• YANG-modeled data
• OpenConfig YANG
• Config/model-based policy
• gRPC
Future
• Event-based • Low-level data
Telemetry is a Journey
23 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Tutorials and Blogs • https://xrdocs.github.io/telemetry/ • https://developer.cisco.com/site/ios-xr/ (devnet landing page for telemetry) • http://blogs.cisco.com/sp/the-limits-of-snmp • http://blogs.cisco.com/sp/why-you-should-care-about-model-driven-
telemetry • https://youtu.be/tIN8BjHwpNs (NANOG 67: 10 Lessons from Telemetry)
YANG • https://github.com/YangModels/yang/tree/master/vendor/cisco (Cisco
YANG models) • https://github.com/CiscoDevNet/openconfig-getting-started (lots of
sample code)
24 © 2016 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Telemetry Tools on Github: • https://github.com/cisco/bigmuddy-network-telemetry-stacks • https://github.com/cisco/bigmuddy-network-telemetry-
collector
Demos and Lab • https://dcloud-cms.cisco.com/ (dCloud telemetry lab) • https://www.sdxcentral.com/resources/sdn-demofriday/cisco-
ios-xr-signalfx-demo-monitoring-your-modern-network/ (demo with signalFX)
• https://youtu.be/F_S9-ctNFe0 (demo on NCS 5508)