Hey Meraki friends,
May I humbly suggest (also done via make-a-wish) support for SFP optical diagnostics? I know the MS have amazing copper cable diagnostics that is immensely helpful, and if you were able to add optical diagnostics, it would complement those perfectly.
For a long time, classic Cisco IOS operators have had the command 'show interface transceiver' to retrieve data from SFPs with DOM monitoring - not all SFPs do, in which case the command returns a blank output. But if the SFP is capable of diagnostic optical monitoring, you get a result like this:
#sh int trans
If device is externally calibrated, only calibrated values are printed.
++ : high alarm, + : high warning, - : low warning, -- : low alarm.
NA or N/A: not applicable, Tx: transmit, Rx: receive.
mA: milliamperes, dBm: decibels (milliwatts).
Optical Optical
Temperature Voltage Tx Power Rx Power
Port (Celsius) (Volts) (dBm) (dBm)
--------- ----------- ------- -------- --------
Te1/1 30.2 3.32 -0.4 -2.8
Te1/2 33.3 3.28 -1.6 -7.6
Te1/3 25.3 3.16 -3.1 -3.6
Te1/4 33.9 3.26 -1.8 -2.7
Te1/7 30.0 3.23 -2.0 -5.2
Te1/8 26.7 3.30 -0.6 -2.7
Of particular use to me is TX and RX power, because one can then check for high optical loss which is frequently a precursor to the problem.
As we know, Meraki always makes things easier for the user - so I would recommend a more friendly output, with "SFP does not support diagnostics" if they are not DOM-capable, and a nice table to go with the above output, and the values to be colored green for a good range, yellow for a marginal link (within 3dB of the receive power floor) and red if it is even lower than that (or higher - in case of a mismatched over-powered SFP). Currently, I do this by eye, cross-referencing the SFP datasheets to determine their minimum RX power levels to see if my results fall into an acceptable range.
PS: I've been doing a little bit of reading and apparently the DOM/DDM capabilities are standardized according to the SFP MSAs - so it's a well known mechanism. That should make it easier to figure out how to extract the data 🙂