1. A method comprising: a computer system receiving program code of a software application; wherein the program code includes bytecode for a virtual machine; the computer system automatically analyzing the bytecode to detect network functionality; and the computer system automatically adding additional bytecode to the cytecode of the software application, wherein the additional bytecode is configured to determine information regarding the network communication, including information indicating what data is transmitted over a network, and amount of data transmitted over the network, and a rate at which data is transmitted over the network, wherein the computer system adds the additional bytecode to the bytecode of the software application by recompiling a class while the software application is being executed.