We have ISP that provides us with a shoddy service. It usually works, but there are times when it works really bad, drops connections and gets awfully slow. Sadly, our contract doesn't have SLA clause that we can invoke in this instance.
How can I best measure both inbound latency outbound latency and packet loss? These are specific parameters that I think would tell me if we had an outage (even a short one for less than a minute), if there were any delays due to congested link, and so on. Having nice, informative graphs would be a plus.
Cloud monitoring is probably the best approach here...
Look at something like: Pingdom.
The contract with your ISP likely has an SLA of some sort. They may be able to provide you their graphs as well.
I mean, what's the purpose of monitoring the connection? Is there a disagreement about the service quality? If it's not sufficient vis-à-vis your contract, the onus is on the provider to meet that standard.
The two utilities I have used for this type of thing are Smokeping (http://oss.oetiker.ch/smokeping/) and MRTG (http://oss.oetiker.ch/mrtg/). Having said that, however, I would not be surprised to see this question closed as off-topic/product recommendation.