It’s been a while since I wrote an open-source contribution. A while back, a mini-project as I was involved required parsing of Sendgrid Webhooks in C#. As it turned out, there wasn’t much around and Sendgrid didn’t have an official library. Although at the time I pretty much stopped writing any C#, it was a good opportunity for an open source project.
Application monitoring and service metrics
If you don’t track it, you can’t measure it. Realtime service and business metrics should be part of any production application. Knowing how is the app performing is as important as measuring whether the product impact of your changes.
A good set of service metrics lets you effectively monitor the impact of your changes on the app performance. Has your change to multi-threading really achieved the times x throughput? Has the last dependency injection change caused a slow memory leak? Are there levels of response codes you’re not expecting in your app?
I while back I blogged about how to approach error logging in production multi-node environments so that you stay sane. Later on, I looked at a way to deal with application level metrics using statsd.
One last piece of the puzzle is monitoring of the health of the nodes themselves. This typically includes CPU and Memory usage, disk space monitoring and application health monitoring. Diamond collectors are great exactly for that.
Over the years, I’ve used several providers and techniques to send out email. I used IIS, AWS and few key email providers. And out of them all, I’ve been most happy with Sendgrid - and no, they are not paying me to say that.
The bottom line is, the more email you send, the more you want to rely on a 3rd party to take that burden from your hands.