Junos XML API
NETCONF-based XML API for programmatic access to Junos devices.
NETCONF-based XML API for programmatic access to Junos devices.
asyncapi: 2.6.0
info:
title: Junos Telemetry Interface (JTI) Streaming
version: '1.0'
description: >-
Junos Telemetry Interface provides real-time streaming telemetry from
Juniper Networks devices using gRPC or UDP protocols. JTI pushes
operational data from Junos devices at configured intervals, replacing
traditional SNMP polling with high-frequency, model-driven telemetry.
Supported data includes interface statistics, routing table changes,
firewall filter counters, optics diagnostics, system resource utilization,
and protocol-specific metrics. Data is encoded in Google Protocol Buffers
(GPB) format or OpenConfig-modeled JSON/YANG. JTI supports both dial-out
(device-initiated) and dial-in (collector-initiated via gNMI) modes.
This specification covers the dial-out streaming model where Junos
devices publish telemetry to configured collector endpoints.
contact:
name: Juniper Networks Support
url: https://www.juniper.net/documentation/us/en/software/junos/interfaces-telemetry/index.html
license:
name: Proprietary
url: https://www.juniper.net/us/en/legal-notices.html
servers:
grpcCollector:
url: '{collectorHost}:{collectorPort}'
protocol: grpc
description: >-
gRPC telemetry collector endpoint. Junos devices establish a persistent
gRPC stream to the collector and push telemetry data at the configured
reporting interval. Configure the collector address on Junos devices
under services analytics streaming-server.
variables:
collectorHost:
description: Hostname or IP of the telemetry collector.
collectorPort:
description: gRPC port on the collector.
default: '50051'
udpCollector:
url: '{collectorHost}:{collectorPort}'
protocol: udp
description: >-
UDP telemetry collector for native GPB-encoded sensor data. Junos
devices send UDP datagrams containing serialized Protocol Buffer
messages to the collector. Configured under services analytics
export-profile with transport udp.
variables:
collectorHost:
description: Hostname or IP of the telemetry collector.
collectorPort:
description: UDP port on the collector.
default: '21000'
channels:
/interfaces:
description: >-
Channel for interface telemetry data. Provides real-time statistics
for physical and logical interfaces including packet counts, byte
counts, error counters, queue depths, and interface operational status.
Sensor path: /junos/system/linecard/interface/
subscribe:
operationId: onInterfaceStats
summary: Interface statistics telemetry stream
message:
$ref: '#/components/messages/InterfaceStatsMessage'
/routing:
description: >-
Channel for routing telemetry. Provides BGP session state changes,
route count updates, and routing table modifications. Sensor paths
include /junos/routing/ for Junos-native and OpenConfig BGP paths.
subscribe:
operationId: onRoutingTelemetry
summary: Routing protocol telemetry stream
message:
$ref: '#/components/messages/RoutingMessage'
/system-resources:
description: >-
Channel for system resource telemetry. Reports CPU utilization,
memory usage, storage capacity, and routing engine temperature
for capacity planning and health monitoring.
Sensor path: /junos/system/
subscribe:
operationId: onSystemResources
summary: System resource utilization telemetry stream
message:
$ref: '#/components/messages/SystemResourceMessage'
/firewall:
description: >-
Channel for firewall filter counter telemetry. Provides real-time
packet and byte counts for configured firewall filter terms.
Sensor path: /junos/system/linecard/firewall/
subscribe:
operationId: onFirewallCounters
summary: Firewall filter counter telemetry stream
message:
$ref: '#/components/messages/FirewallMessage'
/optics:
description: >-
Channel for optical transceiver diagnostics. Reports real-time
optical power levels, laser bias current, temperature, and voltage
for SFP/QSFP transceivers. Used for proactive link failure detection.
Sensor path: /junos/system/linecard/optics/
subscribe:
operationId: onOpticsDiagnostics
summary: Optical diagnostics telemetry stream
message:
$ref: '#/components/messages/OpticsMessage'
components:
messages:
InterfaceStatsMessage:
name: InterfaceStatsMessage
title: Interface Statistics Telemetry
summary: >-
Real-time interface counter data including ingress/egress packet
and byte counts, error counters, and queue statistics. Published
at the configured reporting rate (typically 2-30 seconds).
contentType: application/x-protobuf
payload:
type: object
properties:
system_id:
type: string
description: Device hostname or system identifier.
component_id:
type: integer
description: Line card slot number.
sensor_name:
type: string
description: Sensor resource path.
sequence_number:
type: integer
description: Monotonically increasing sequence number.
timestamp:
type: integer
description: Data collection timestamp in milliseconds since epoch.
interface_stats:
type: array
items:
type: object
properties:
if_name:
type: string
description: Interface name (e.g., et-0/0/0).
init_time:
type: integer
description: Interface initialization time.
snmp_if_index:
type: integer
description: SNMP interface index.
ingress_stats:
type: object
properties:
if_pkts:
type: integer
description: Total ingress packets.
if_octets:
type: integer
description: Total ingress bytes.
if_ucast_pkts:
type: integer
description: Unicast packets received.
if_mcast_pkts:
type: integer
description: Multicast packets received.
if_errors:
type: integer
description: Ingress error count.
if_discards:
type: integer
description: Ingress discard count.
egress_stats:
type: object
properties:
if_pkts:
type: integer
description: Total egress packets.
if_octets:
type: integer
description: Total egress bytes.
if_ucast_pkts:
type: integer
if_mcast_pkts:
type: integer
if_errors:
type: integer
if_discards:
type: integer
egress_queue_info:
type: array
items:
type: object
properties:
queue_number:
type: integer
packets:
type: integer
bytes:
type: integer
tail_drop_packets:
type: integer
red_drop_packets:
type: integer
description: Per-queue egress statistics.
op_state:
type: string
enum:
- up
- down
description: Interface operational state.
RoutingMessage:
name: RoutingMessage
title: Routing Protocol Telemetry
summary: >-
BGP session state and route count telemetry data. Reports peer
session transitions, received/advertised prefix counts, and
route table summary statistics.
contentType: application/x-protobuf
payload:
type: object
properties:
system_id:
type: string
timestamp:
type: integer
bgp_peers:
type: array
items:
type: object
properties:
peer_address:
type: string
description: BGP peer IP address.
peer_as:
type: integer
description: BGP peer autonomous system number.
local_as:
type: integer
description: Local autonomous system number.
peer_state:
type: string
enum:
- established
- active
- idle
- connect
- openconfirm
- opensent
description: BGP session state.
received_prefixes:
type: integer
description: Number of prefixes received from peer.
accepted_prefixes:
type: integer
description: Number of prefixes accepted from peer.
advertised_prefixes:
type: integer
description: Number of prefixes advertised to peer.
up_time:
type: integer
description: Session uptime in seconds.
last_error:
type: string
description: Last BGP notification error message.
SystemResourceMessage:
name: SystemResourceMessage
title: System Resource Telemetry
summary: >-
System resource utilization data including CPU, memory, and
temperature readings from routing engines and line cards.
contentType: application/x-protobuf
payload:
type: object
properties:
system_id:
type: string
timestamp:
type: integer
routing_engine:
type: array
items:
type: object
properties:
slot:
type: integer
description: Routing engine slot number.
cpu_idle:
type: number
description: CPU idle percentage.
cpu_user:
type: number
description: CPU user-space percentage.
cpu_system:
type: number
description: CPU system percentage.
memory_total:
type: integer
description: Total memory in bytes.
memory_used:
type: integer
description: Used memory in bytes.
memory_buffer:
type: integer
description: Buffer memory in bytes.
temperature:
type: number
description: Routing engine temperature in Celsius.
uptime:
type: integer
description: Routing engine uptime in seconds.
FirewallMessage:
name: FirewallMessage
title: Firewall Filter Counter Telemetry
summary: >-
Real-time firewall filter counter data for configured filter terms.
Reports packet and byte match counts per filter term.
contentType: application/x-protobuf
payload:
type: object
properties:
system_id:
type: string
timestamp:
type: integer
firewall_stats:
type: array
items:
type: object
properties:
filter_name:
type: string
description: Firewall filter name.
counter_name:
type: string
description: Counter term name.
packets:
type: integer
description: Matched packet count.
bytes:
type: integer
description: Matched byte count.
OpticsMessage:
name: OpticsMessage
title: Optical Transceiver Diagnostics Telemetry
summary: >-
Optical transceiver diagnostic readings including power levels,
bias current, temperature, and voltage for SFP/QSFP modules.
contentType: application/x-protobuf
payload:
type: object
properties:
system_id:
type: string
timestamp:
type: integer
optics_diag:
type: array
items:
type: object
properties:
if_name:
type: string
description: Interface name.
module_temperature:
type: number
description: Module temperature in Celsius.
module_voltage:
type: number
description: Module supply voltage in volts.
lanes:
type: array
items:
type: object
properties:
lane_number:
type: integer
laser_output_power_dbm:
type: number
description: Laser output power in dBm.
laser_rx_power_dbm:
type: number
description: Receiver input power in dBm.
laser_bias_current_ma:
type: number
description: Laser bias current in milliamps.
laser_output_power_high_alarm:
type: boolean
laser_rx_power_low_alarm:
type: boolean
description: Per-lane optical diagnostics.