Hi Duane,
What exact memory statistics are you talking about? Allocated, peak, physical, virtual? 2 GB is not much at all! Some of our large websites consume 35+ GB of RAM. And be mindful that it contains all your Kentico caches. If you just clear it - all your filled caches are gone! So first of all I'd suggest you to look at your caching strategy and check it.
As per your question regarding memory statistics and notifications, you shouldn't be doing this in the code for sure. Monitoring must be setup on hosting infrastructure. If that's VM or physical server - check Windows counters. If that's Azure Web Apps - use Application insights and configure alerts. Anyway, you should not be monitoring from the same code instance, otherwise, if the whole application fails - you will never know because you "monitoring" will silently die together with the application.