Telemetry Capabilities
JCNR Telemetry
Juniper Cloud-Native Router comes with telemetry capabilities that enable you to see performance metrics and telemetry data. Telemetry data is derived separately from the vRouter and the cRPD. The container contrail-vrouter-telemetry-exporter provides you this visibility via either a Prometheus-based API or gRPC Network Management Interface (gNMI). This container runs alongside the other vRouter containers in the contrail-vrouter-masters pod. Telemetry exporter is enabled for both vRouter and cRPD by default. You can use the following snippet in values.yaml to configure telemetry:#telemetry: # disable: false # metricsPort: 8072 # logLevel: info #Possible options: warn, warning, info, debug, trace, or verbose # gnmi: # enable: true #vrouter: # telemetry: # metricsPort: 8070 # logLevel: info #Possible options: warn, warning, info, debug, trace, or verbose # gnmi: # enable: true
Telemetry via Prometheus-based API
Prometheus is an open-source systems monitoring and alerting toolkit. You can use Prometheus to retrieve telemetry data from the cloud-native router host servers and view that data in the HTTP format. A sample of Prometheus configuration looks like this:
- job_name: "prometheus-JCNR-1a2b3c" # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ["<host-server-IP>:8070"]
For vRouter, the telemetry exporter periodically queries the Introspect on the vRouter-agent for statistics and reports metrics information in response to the Prometheus scrape requests. You can directly view the telemetry data by using the following URL: http://host server IP address:8070.
The cRPD telemetry exporter periodically queries the NETCONF on the cRPD for statistics and reports metrics information in response to the Prometheus scrape requests. You can directly view the telemetry data by using the following URL: http://host server IP address:8072.
If the 8072
port is unavailable you can choose an alternate port to
collect telemetry data in the values.yaml.
The tables below shows the sample telemetry outputs for vRouter and cRPD when using Prometheus-based API.
We've grouped the output shown in the following table. The cloud-native router does not group or sort the output on live systems.
Group | Sample Output |
---|---|
Memory usage per vRouter |
# TYPE virtual_router_system_memory_cached_bytes gauge # HELP virtual_router_system_memory_cached_bytes Virtual router system memory cached virtual_router_system_memory_cached_bytes{vrouter_name="jcnr.example.com"} 2635970448 # TYPE virtual_router_system_memory_buffers gauge # HELP virtual_router_system_memory_buffers Virtual router system memory buffer virtual_router_system_memory_buffers{vrouter_name="jcnr.example.com"} 32689 # TYPE virtual_router_system_memory_bytes gauge # HELP virtual_router_system_memory_bytes Virtual router total system memory virtual_router_system_memory_bytes{vrouter_name="jcnr.example.com"} 2635970448 # TYPE virtual_router_system_memory_free_bytes gauge # HELP virtual_router_system_memory_free_bytes Virtual router system memory free virtual_router_system_memory_free_bytes{vrouter_name="jcnr.example.com"} 2635969296 # TYPE virtual_router_system_memory_used_bytes gauge # HELP virtual_router_system_memory_used_bytes Virtual router system memory used virtual_router_system_memory_used_bytes{vrouter_name="jcnr.example.com"} 32689 # TYPE virtual_router_virtual_memory_kilobytes gauge # HELP virtual_router_virtual_memory_kilobytes Virtual router virtual memory virtual_router_virtual_memory_kilobytes{vrouter_name="jcnr.example.com"} 0 # TYPE virtual_router_resident_memory_kilobytes gauge # HELP virtual_router_resident_memory_kilobytes Virtual router resident memory virtual_router_resident_memory_kilobytes{vrouter_name="jcnr.example.com"} 32689 # TYPE virtual_router_peak_virtual_memory_bytes gauge # HELP virtual_router_peak_virtual_memory_bytes Virtual router peak virtual memory virtual_router_peak_virtual_memory_bytes{vrouter_name="jcnr.example.com"} 2894328001 |
Packet count per interface |
# TYPE virtual_router_phys_if_input_packets_total counter # HELP virtual_router_phys_if_input_packets_total Total packets received by physical interface virtual_router_phys_if_input_packets_total{vrouter_name="jcnr.example.com",interface_name="bond0"} 1483 # TYPE virtual_router_phys_if_output_packets_total counter # HELP virtual_router_phys_if_output_packets_total Total packets sent by physical interface virtual_router_phys_if_output_packets_total{vrouter_name="jcnr.example.com",interface_name="bond0"} 32969 # TYPE virtual_router_phys_if_input_bytes_total counter # HELP virtual_router_phys_if_input_bytes_total Total bytes received by physical interface virtual_router_phys_if_input_bytes_total{interface_name="bond0",vrouter_name="jcnr.example.com"} 125558 # TYPE virtual_router_phys_if_output_bytes_total counter # HELP virtual_router_phys_if_output_bytes_total Total bytes sent by physical interface virtual_router_phys_if_output_bytes_total{vrouter_name="jcnr.example.com",interface_name="bond0"} 4597076 virtual_router_phys_if_input_bytes_total{vrouter_name="jcnr.example.com",interface_name="bond0"} 228300499320 virtual_router_phys_if_output_bytes_total{interface_name="bond0",vrouter_name="jcnr.example.com"} 228297889634 virtual_router_phys_if_input_packets_total{interface_name="bond0",vrouter_name="jcnr.example.com"} 1585421179 virtual_router_phys_if_output_packets_total{vrouter_name="jcnr.example.com",interface_name="bond0"} 1585402623 virtual_router_phys_if_output_packets_total{interface_name="bond0",vrouter_name="jcnr.example.com"} 1585403344 |
CPU usage per vRouter |
# TYPE virtual_router_cpu_1min_load_avg gauge # HELP virtual_router_cpu_1min_load_avg Virtual router CPU 1 minute load average virtual_router_cpu_1min_load_avg{vrouter_name="jcnr.example.com"} 0.11625 # TYPE virtual_router_cpu_5min_load_avg gauge # HELP virtual_router_cpu_5min_load_avg Virtual router CPU 5 minute load average virtual_router_cpu_5min_load_avg{vrouter_name="jcnr.example.com"} 0.109687 # TYPE virtual_router_cpu_15min_load_avg gauge # HELP virtual_router_cpu_15min_load_avg Virtual router CPU 15 minute load average virtual_router_cpu_15min_load_avg{vrouter_name="jcnr.example.com"} 0.110156 |
Drop packet count per vRouter |
# TYPE virtual_router_dropped_packets_total counter # HELP virtual_router_dropped_packets_total Total packets dropped virtual_router_dropped_packets_total{vrouter_name="jcnr.example.com"} 35850 |
Packet count per interface per VLAN |
# TYPE virtual_router_interface_vlan_multicast_input_packets_total counter # HELP virtual_router_interface_vlan_multicast_input_packets_total Total number of multicast packets received on interface VLAN virtual_router_interface_vlan_multicast_input_packets_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_broadcast_output_packets_total counter # HELP virtual_router_interface_vlan_broadcast_output_packets_total Total number of broadcast packets sent on interface VLAN virtual_router_interface_vlan_broadcast_output_packets_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_broadcast_input_packets_total counter # HELP virtual_router_interface_vlan_broadcast_input_packets_total Total number of broadcast packets received on interface VLAN virtual_router_interface_vlan_broadcast_input_packets_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_multicast_output_packets_total counter # HELP virtual_router_interface_vlan_multicast_output_packets_total Total number of multicast packets sent on interface VLAN virtual_router_interface_vlan_multicast_output_packets_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_unicast_input_packets_total counter # HELP virtual_router_interface_vlan_unicast_input_packets_total Total number of unicast packets received on interface VLAN virtual_router_interface_vlan_unicast_input_packets_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_flooded_output_bytes_total counter # HELP virtual_router_interface_vlan_flooded_output_bytes_total Total number of output bytes flooded to interface VLAN virtual_router_interface_vlan_flooded_output_bytes_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_multicast_output_bytes_total counter # HELP virtual_router_interface_vlan_multicast_output_bytes_total Total number of multicast bytes sent on interface VLAN virtual_router_interface_vlan_multicast_output_bytes_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_unicast_output_packets_total counter # HELP virtual_router_interface_vlan_unicast_output_packets_total Total number of unicast packets sent on interface VLAN virtual_router_interface_vlan_unicast_output_packets_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_broadcast_input_bytes_total counter # HELP virtual_router_interface_vlan_broadcast_input_bytes_total Total number of broadcast bytes received on interface VLAN virtual_router_interface_vlan_broadcast_input_bytes_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_multicast_input_bytes_total counter # HELP virtual_router_interface_vlan_multicast_input_bytes_total Total number of multicast bytes received on interface VLAN virtual_router_interface_vlan_multicast_input_bytes_total{vlan_id="100",interface_id="1"} 0 # TYPE virtual_router_interface_vlan_unicast_input_bytes_total counter # HELP virtual_router_interface_vlan_unicast_input_bytes_total Total number of unicast bytes received on interface VLAN virtual_router_interface_vlan_unicast_input_bytes_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_flooded_output_packets_total counter # HELP virtual_router_interface_vlan_flooded_output_packets_total Total number of output packets flooded to interface VLAN virtual_router_interface_vlan_flooded_output_packets_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_broadcast_output_bytes_total counter # HELP virtual_router_interface_vlan_broadcast_output_bytes_total Total number of broadcast bytes sent on interface VLAN virtual_router_interface_vlan_broadcast_output_bytes_total{interface_id="1",vlan_id="100"} 0 # TYPE virtual_router_interface_vlan_unicast_output_bytes_total counter # HELP virtual_router_interface_vlan_unicast_output_bytes_total Total number of unicast bytes sent on interface VLAN virtual_router_interface_vlan_unicast_output_bytes_total{interface_id="1",vlan_id="100"} 0 ... |
Group | Sample Output |
---|---|
BGP summary |
# TYPE crpd_bgp_rib_table_received_prefixes_total counter # HELP crpd_bgp_rib_table_received_prefixes_total Total number of BGP RIB table prefixes received crpd_bgp_rib_table_received_prefixes_total{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_external_prefixes gauge # HELP crpd_bgp_rib_table_external_prefixes Number of BGP RIB table external prefixes crpd_bgp_rib_table_external_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_active_external_prefixes gauge # HELP crpd_bgp_rib_table_active_external_prefixes Number of BGP RIB table active external prefixes crpd_bgp_rib_table_active_external_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_suppressed_internal_prefixes gauge # HELP crpd_bgp_rib_table_suppressed_internal_prefixes Number of BGP RIB table internal prefixes currently inactive, because of damping or other reasons crpd_bgp_rib_table_suppressed_internal_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_prefixes gauge # HELP crpd_bgp_rib_table_prefixes Number of BGP RIB table prefixes crpd_bgp_rib_table_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_active_prefixes gauge # HELP crpd_bgp_rib_table_active_prefixes Number of BGP RIB table active prefixes crpd_bgp_rib_table_active_prefixes{table="bgp.l3vpn.0",node="example.juniper.net"} 0 # TYPE crpd_bgp_rib_table_history_prefixes gauge # HELP crpd_bgp_rib_table_history_prefixes Number of BGP RIB table withdrawn prefixes stored locally to keep track of damping history crpd_bgp_rib_table_history_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_suppressed_external_prefixes gauge # HELP crpd_bgp_rib_table_suppressed_external_prefixes Number of BGP RIB table external prefixes currently inactive, because of damping or other reasons crpd_bgp_rib_table_suppressed_external_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_active_internal_prefixes gauge # HELP crpd_bgp_rib_table_active_internal_prefixes Number of BGP RIB table active internal prefixes crpd_bgp_rib_table_active_internal_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_pending_prefixes gauge # HELP crpd_bgp_rib_table_pending_prefixes Number of BGP RIB table prefixes in process by BGP import policy crpd_bgp_rib_table_pending_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_accepted_prefixes_total counter # HELP crpd_bgp_rib_table_accepted_prefixes_total Total number of BGP RIB table prefixes accepted crpd_bgp_rib_table_accepted_prefixes_total{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_damped_prefixes gauge # HELP crpd_bgp_rib_table_damped_prefixes Number of BGP RIB table prefixes with a figure of merit greater than zero, but still active because the value has not reached the threshold at which suppression occurs crpd_bgp_rib_table_damped_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_accepted_external_prefixes_total counter # HELP crpd_bgp_rib_table_accepted_external_prefixes_total Total number of BGP RIB table external prefixes accepted crpd_bgp_rib_table_accepted_external_prefixes_total{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_internal_prefixes gauge # HELP crpd_bgp_rib_table_internal_prefixes Number of BGP RIB table internal prefixes crpd_bgp_rib_table_internal_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_suppressed_prefixes gauge # HELP crpd_bgp_rib_table_suppressed_prefixes Number of BGP RIB table prefixes currently inactive, because of damping or other reasons crpd_bgp_rib_table_suppressed_prefixes{node="example.juniper.net",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_rib_table_accepted_internal_prefixes_total counter # HELP crpd_bgp_rib_table_accepted_internal_prefixes_total Total number of BGP RIB table internal prefixes accepted crpd_bgp_rib_table_accepted_internal_prefixes_total{node="example.juniper.net",table="bgp.l3vpn.0"} 0 crpd_bgp_rib_table_external_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_active_external_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_suppressed_internal_prefixes{table="bgp.l3vpn-inet6.0",node="example.juniper.net"} 0 crpd_bgp_rib_table_received_prefixes_total{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_active_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_history_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_suppressed_external_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_active_internal_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_pending_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_damped_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_accepted_external_prefixes_total{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_internal_prefixes{table="bgp.l3vpn-inet6.0",node="example.juniper.net"} 0 crpd_bgp_rib_table_accepted_prefixes_total{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_accepted_internal_prefixes_total{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_suppressed_prefixes{node="example.juniper.net",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_rib_table_received_prefixes_total{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_external_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_active_external_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_suppressed_internal_prefixes{table="bgp.evpn.0",node="example.juniper.net"} 0 crpd_bgp_rib_table_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_active_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_history_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_suppressed_external_prefixes{table="bgp.evpn.0",node="example.juniper.net"} 0 crpd_bgp_rib_table_active_internal_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_pending_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_accepted_prefixes_total{table="bgp.evpn.0",node="example.juniper.net"} 0 crpd_bgp_rib_table_damped_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_accepted_external_prefixes_total{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_internal_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_suppressed_prefixes{node="example.juniper.net",table="bgp.evpn.0"} 0 crpd_bgp_rib_table_accepted_internal_prefixes_total{node="example.juniper.net",table="bgp.evpn.0"} 0 # TYPE crpd_bgp_peer_input_messages_total counter # HELP crpd_bgp_peer_input_messages_total Total number of messages received from BGP peer crpd_bgp_peer_input_messages_total{peer_address="11.11.11.11",peer_as="64512",node="example.juniper.net"} 5 # TYPE crpd_bgp_peer_output_messages_total counter # HELP crpd_bgp_peer_output_messages_total Total number of messages sent to BGP peer crpd_bgp_peer_output_messages_total{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512"} 4 # TYPE crpd_bgp_peer_route_queue_count gauge # HELP crpd_bgp_peer_route_queue_count Current number of messages that are queued to be sent to BGP peer crpd_bgp_peer_route_queue_count{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512"} 0 # TYPE crpd_bgp_peer_state gauge # HELP crpd_bgp_peer_state BGP peer state (1=Established, 2=Idle, 3=Connect, 4=Active, 5=OpenSent, 6=OpenConfirm) crpd_bgp_peer_state{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512"} 1 # TYPE crpd_bgp_peer_flaps_total counter # HELP crpd_bgp_peer_flaps_total Total number of times the BGP peer session has gone down and then come back up crpd_bgp_peer_flaps_total{peer_address="11.11.11.11",peer_as="64512",node="example.juniper.net"} 1 # TYPE crpd_bgp_peer_rib_table_accepted_prefixes_total counter # HELP crpd_bgp_peer_rib_table_accepted_prefixes_total Total number of BGP RIB table active prefixes accepted from BGP peer crpd_bgp_peer_rib_table_accepted_prefixes_total{peer_as="64512",table="bgp.l3vpn.0",node="example.juniper.net",peer_address="11.11.11.11"} 0 # TYPE crpd_bgp_peer_rib_table_suppressed_prefixes gauge # HELP crpd_bgp_peer_rib_table_suppressed_prefixes Number of BGP RIB table prefixes received from BGP peer currently inactive, because of damping or other reasons crpd_bgp_peer_rib_table_suppressed_prefixes{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512",table="bgp.l3vpn.0"} 0 # TYPE crpd_bgp_peer_rib_table_active_prefixes gauge # HELP crpd_bgp_peer_rib_table_active_prefixes Number of BGP RIB table active prefixes received from BGP peer crpd_bgp_peer_rib_table_active_prefixes{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512",table="bgp.l3vpn.0"} 0 crpd_bgp_peer_rib_table_active_prefixes{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_peer_rib_table_accepted_prefixes_total{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_peer_rib_table_suppressed_prefixes{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512",table="bgp.l3vpn-inet6.0"} 0 crpd_bgp_peer_rib_table_active_prefixes{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512",table="bgp.evpn.0"} 0 crpd_bgp_peer_rib_table_accepted_prefixes_total{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512",table="bgp.evpn.0"} 0 crpd_bgp_peer_rib_table_suppressed_prefixes{node="example.juniper.net",peer_address="11.11.11.11",peer_as="64512",table="bgp.evpn.0"} 0 |
Route table summary |
# TYPE crpd_route_table_destinations gauge # HELP crpd_route_table_destinations Number of destinations for which there are routes in the routing table crpd_route_table_destinations{node="example.juniper.net",table="inet.0"} 13 # TYPE crpd_route_table_routes gauge # HELP crpd_route_table_routes Number of routes in the routing table crpd_route_table_routes{node="example.juniper.net",table="inet.0"} 15 # TYPE crpd_route_table_active_routes gauge # HELP crpd_route_table_active_routes Number of active routes in the routing table crpd_route_table_active_routes{node="example.juniper.net",table="inet.0"} 13 # TYPE crpd_route_table_holddown_routes gauge # HELP crpd_route_table_holddown_routes Number of routes in the routing table that are in the hold-down state before being declared inactive crpd_route_table_holddown_routes{node="example.juniper.net",table="inet.0"} 0 # TYPE crpd_route_table_hidden_routes gauge # HELP crpd_route_table_hidden_routes Number of routes in the routing table that are not used, because of routing policy crpd_route_table_hidden_routes{node="example.juniper.net",table="inet.0"} 0 crpd_route_table_routes{node="example.juniper.net",table="inet.3"} 1 crpd_route_table_active_routes{node="example.juniper.net",table="inet.3"} 1 crpd_route_table_holddown_routes{node="example.juniper.net",table="inet.3"} 0 crpd_route_table_hidden_routes{node="example.juniper.net",table="inet.3"} 0 crpd_route_table_destinations{node="example.juniper.net",table="inet.3"} 1 crpd_route_table_holddown_routes{node="example.juniper.net",table="mpls.0"} 0 crpd_route_table_hidden_routes{node="example.juniper.net",table="mpls.0"} 0 crpd_route_table_destinations{node="example.juniper.net",table="mpls.0"} 4 crpd_route_table_routes{node="example.juniper.net",table="mpls.0"} 4 crpd_route_table_active_routes{node="example.juniper.net",table="mpls.0"} 4 crpd_route_table_active_routes{node="example.juniper.net",table="inet6.0"} 34 crpd_route_table_holddown_routes{node="example.juniper.net",table="inet6.0"} 0 crpd_route_table_hidden_routes{node="example.juniper.net",table="inet6.0"} 0 crpd_route_table_destinations{node="example.juniper.net",table="inet6.0"} 34 crpd_route_table_routes{table="inet6.0",node="example.juniper.net"} 38 crpd_route_table_destinations{node="example.juniper.net",table="inet6.3"} 1 crpd_route_table_routes{node="example.juniper.net",table="inet6.3"} 1 crpd_route_table_active_routes{node="example.juniper.net",table="inet6.3"} 1 crpd_route_table_holddown_routes{node="example.juniper.net",table="inet6.3"} 0 crpd_route_table_hidden_routes{node="example.juniper.net",table="inet6.3"} 0 # TYPE crpd_route_table_protocol_routes gauge # HELP crpd_route_table_protocol_routes Number of routes in the routing table learned from the protocol crpd_route_table_protocol_routes{protocol="Direct",node="example.juniper.net",table="inet.0"} 6 # TYPE crpd_route_table_protocol_active_routes gauge # HELP crpd_route_table_protocol_active_routes Number of active routes in the routing table learned from the protocol crpd_route_table_protocol_active_routes{protocol="Direct",node="example.juniper.net",table="inet.0"} 6 crpd_route_table_protocol_active_routes{node="example.juniper.net",table="inet.0",protocol="Local"} 3 crpd_route_table_protocol_routes{node="example.juniper.net",table="inet.0",protocol="Local"} 5 crpd_route_table_protocol_routes{node="example.juniper.net",table="inet.0",protocol="OSPF"} 4 crpd_route_table_protocol_active_routes{node="example.juniper.net",table="inet.0",protocol="OSPF"} 4 crpd_route_table_protocol_routes{node="example.juniper.net",table="inet.3",protocol="Tunnel"} 1 crpd_route_table_protocol_active_routes{node="example.juniper.net",table="inet.3",protocol="Tunnel"} 1 crpd_route_table_protocol_routes{node="example.juniper.net",table="mpls.0",protocol="MPLS"} 4 crpd_route_table_protocol_active_routes{node="example.juniper.net",table="mpls.0",protocol="MPLS"} 4 crpd_route_table_protocol_routes{node="example.juniper.net",table="inet6.0",protocol="Direct"} 8 crpd_route_table_protocol_active_routes{node="example.juniper.net",table="inet6.0",protocol="Direct"} 4 crpd_route_table_protocol_routes{table="inet6.0",protocol="Local",node="example.juniper.net"} 29 crpd_route_table_protocol_active_routes{node="example.juniper.net",table="inet6.0",protocol="Local"} 29 crpd_route_table_protocol_routes{node="example.juniper.net",table="inet6.0",protocol="INET6"} 1 crpd_route_table_protocol_active_routes{node="example.juniper.net",table="inet6.0",protocol="INET6"} 1 crpd_route_table_protocol_routes{node="example.juniper.net",table="inet6.3",protocol="Tunnel"} 1 crpd_route_table_protocol_active_routes{node="example.juniper.net",table="inet6.3",protocol="Tunnel"} 1 |
OSPF summary |
# TYPE crpd_ospf_packets_sent_total counter # HELP crpd_ospf_packets_sent_total Total number of OSPF packets sent crpd_ospf_packets_sent_total{node="example.juniper.net",packet_type="Hello"} 26 # TYPE crpd_ospf_packets_received_total counter # HELP crpd_ospf_packets_received_total Total number of OSPF packets received crpd_ospf_packets_received_total{node="example.juniper.net",packet_type="Hello"} 4 crpd_ospf_packets_sent_total{node="example.juniper.net",packet_type="DbD"} 3 crpd_ospf_packets_received_total{node="example.juniper.net",packet_type="DbD"} 4 crpd_ospf_packets_sent_total{node="example.juniper.net",packet_type="LSReq"} 1 crpd_ospf_packets_received_total{node="example.juniper.net",packet_type="LSReq"} 1 crpd_ospf_packets_sent_total{node="example.juniper.net",packet_type="LSUpdate"} 2 crpd_ospf_packets_received_total{node="example.juniper.net",packet_type="LSUpdate"} 3 crpd_ospf_packets_sent_total{node="example.juniper.net",packet_type="LSAck"} 3 crpd_ospf_packets_received_total{node="example.juniper.net",packet_type="LSAck"} 2 # TYPE crpd_ospf_dbd_packets_retransmitted_total counter # HELP crpd_ospf_dbd_packets_retransmitted_total Total number of OSPF database descriptor packets retransmitted crpd_ospf_dbd_packets_retransmitted_total{node="example.juniper.net"} 1 # TYPE crpd_ospf_lsa_packets_retransmitted_total counter # HELP crpd_ospf_lsa_packets_retransmitted_total Total number of OSPF link-state advertisement packets retransmitted crpd_ospf_lsa_packets_retransmitted_total{node="example.juniper.net"} 0 # TYPE crpd_ospf_lsa_packets_flooded_total counter # HELP crpd_ospf_lsa_packets_flooded_total Total number of OSPF link-state advertisement packets flooded crpd_ospf_lsa_packets_flooded_total{node="example.juniper.net"} 1 # TYPE crpd_ospf_flood_queue_depth gauge # HELP crpd_ospf_flood_queue_depth Number of entries in the extended queue crpd_ospf_flood_queue_depth{node="example.juniper.net"} 0 # TYPE crpd_ospf_error_total counter # HELP crpd_ospf_error_total Total number of OSPF receive errors crpd_ospf_error_total{error_type="no-error",node="example.juniper.net"} 0 # TYPE crpd_ospf_neighbor_state gauge # HELP crpd_ospf_neighbor_state OSPF neighbor state (0=Down, 1=Full, 2=Attempt, 3=Exchange, 4=ExStart, 5=Init, 6=Loading, 7=2Way) crpd_ospf_neighbor_state{neighbor_address="113.113.113.3",interface_name="enp6s0",node="example.juniper.net"} 1 |
MPLS statistics |
# TYPE crpd_mpls_ingress_lsp_sessions_down gauge # HELP crpd_mpls_ingress_lsp_sessions_down Number of MPLS ingress LSP sessions crpd_mpls_ingress_lsp_sessions_down{node="example.juniper.net"} 0 # TYPE crpd_mpls_ingress_lsp_sessions gauge # HELP crpd_mpls_ingress_lsp_sessions Number of MPLS ingress LSP sessions crpd_mpls_ingress_lsp_sessions{node="example.juniper.net"} 0 # TYPE crpd_mpls_lsp_make_before_breaks_total counter # HELP crpd_mpls_lsp_make_before_breaks_total Total number of LSP make before break procedures performed crpd_mpls_lsp_make_before_breaks_total{node="example.juniper.net"} 0 # TYPE crpd_mpls_lsp_bandwidth_increases_total counter # HELP crpd_mpls_lsp_bandwidth_increases_total Total number of LSP bandwidth increases performed crpd_mpls_lsp_bandwidth_increases_total{node="example.juniper.net"} 0 # TYPE crpd_mpls_lsp_bandwidth_decreases_total counter # HELP crpd_mpls_lsp_bandwidth_decreases_total Total number of bandwidth decreases performed crpd_mpls_lsp_bandwidth_decreases_total{node="example.juniper.net"} 0 # TYPE crpd_mpls_lsp_update_cspf_failures_total counter # HELP crpd_mpls_lsp_update_cspf_failures_total Total number of in-place LSP auto-bandwidth resizing failures at the CSPF path computation stage crpd_mpls_lsp_update_cspf_failures_total{node="example.juniper.net"} 0 # TYPE crpd_mpls_lsp_update_signaling_errors_total counter # HELP crpd_mpls_lsp_update_signaling_errors_total Total number of in-place LSP auto-bandwidth resizing failures when RSVP signaling error is received crpd_mpls_lsp_update_signaling_errors_total{node="example.juniper.net"} 0 # TYPE crpd_mpls_lsp_update_signaling_timeouts_total counter # HELP crpd_mpls_lsp_update_signaling_timeouts_total Total number of in-place LSP auto-bandwidth resizing failures when RSVP signaling takes too long to complete crpd_mpls_lsp_update_signaling_timeouts_total{node="example.juniper.net"} 0 # TYPE crpd_mpls_label_space_total_labels gauge # HELP crpd_mpls_label_space_total_labels The total label space available crpd_mpls_label_space_total_labels{label_space="LSI",node="example.juniper.net"} 999984 # TYPE crpd_mpls_label_space_free_labels gauge # HELP crpd_mpls_label_space_free_labels The number of freely available labels crpd_mpls_label_space_free_labels{node="example.juniper.net",label_space="LSI"} 999984 crpd_mpls_label_space_total_labels{node="example.juniper.net",label_space="Block"} 999984 crpd_mpls_label_space_free_labels{node="example.juniper.net",label_space="Block"} 999984 crpd_mpls_label_space_total_labels{node="example.juniper.net",label_space="Dynamic"} 999984 crpd_mpls_label_space_free_labels{node="example.juniper.net",label_space="Dynamic"} 999984 crpd_mpls_label_space_total_labels{node="example.juniper.net",label_space="Static"} 48576 crpd_mpls_label_space_free_labels{node="example.juniper.net",label_space="Static"} 48576 |
Telemetry via gNMI
The gNMI protocol defines the Subscribe
RPC for subscribing to telemetry
data. The telemetry collector uses this RPC to request updates from the network device for
state and configuration data. Review Subscribing to Telemetry Data using gNMI for more
detail.
You can enable support by enabling the gNMI configuration in the
values.yaml
helm chart. Please review the Customize the Helm Chart topic
for your platform for more details. You can also enable gNMI by passing the following
arguments to the helm install command while installing JCNR:
--set telemetry.gnmi.enable=true --set vrouter.telemetry.gnmi.enable=true
External clients can connect to the grpc port 50053 when telemetry.gnmi.enable is set to true in the helmchart.
gNMI subscription works with only authenticated requests from external clients, for example:
gnmic -a 10.1.1.1:50053 -u root -p my-root-password --insecure sub --stream-mode sample -i 10s --path "/junos/system/state/network/in-pkts"
SAMPLE
andTARGET_DEFINED
subscription modes are supported in the current release.Targeting of specific instances in a
SubscribeMessage
using key values in paths is not supported in the current release, for example, subscribing to monitoring the metrics of a specific interface using a path such as/interfaces/interface[name=”enp3s0”]/state/counters
The gNMI debug logs are available at
/var/log/jcnr/na-grpcd
.
The following table lists the supported sensors for telemetry metrics:
Sensor Type |
Sensor Paths |
---|---|
Interface Sensors |
/interfaces/interface[name="interface_name"]/config/description
|
Interface VLAN Sensors | /interfaces/interface[name="interface_name"]/subinterfaces/subinterface[index=vlanID]/vlan/state/counters /in-broadcast-octets
Note:
Interface VLAN sensors are not supported for L3 VLAN Sub-Interfaces. |
Global vRouter Sensors |
|
ARP Sensors |
|
MAC Learning Sensors |
|
TWAMP Sensors |
Note:
results-scope enum can be one of the following:
[ probe-measurement-type enum can be one of the following: [ |
Routing Sensors |
|
To view additional supported sensors for cRPD please review—Telemetry Information on cRPD.