on Juniper equipment, at least, errors and discards are only counted at the physical layer.
e.g. if you have a frame that fails a CRC check, how do you know that the VLANID hasn't been corrupted. Similarly outbound discards where the device has too many packets queued for the physical layer (it might be useful to know that packets for a particular VLAN are being discarded, but in general you have a layer-1/2 problem [not enough bandwidth, or contention for what is there]. the fix is to add more bandwidth and/or reduce contention.
There is the marginal case where L3 flows could be re-engineered, but that is a more complex traffic analysis problem than most sites have to deal with, and requires you to have an irregular mesh topology to your network.
/RjL