Third party api monitoring on AWS

My application consumes a large amount of APIs and also have webhooks it calls. Failure to detect outage of one API could go unnoticed and leads to bad user experience.

I would like to log the requests and responses as well as the exception that occured. My first instinct was to push this log to elasticsearch. But I wanted to utilize a more dynamic tooling on AWS.

I need two things from this monitoring infrastructure.

  1. I need the graphs to show me the performance of the service. I should be able to see the count of transaction that are happening against the total failure count.
  2. I need to alert by taking previous data into consideration. It could be Monday compared to the past 4 Mondays per service.
  3. I need to be able to drill down and see the raw logs and search through them

I have a couple of things in mind, and I would like to get suggestions.

Push everything to elasticsearch

I can push everything to elasticsearch and create graphs on Kibana or Grafana (Grafana seems more fit for the job).

I figured out how to graph it on Kibana but comparing against the past 4 Mondays was a challenge. Which made me think there must be better tools

Push everything to Cloud watch

I didn't try this one yet, I'm not sure if this has a different capability than elasticsearch.

Kinesis Analytics

This seems to be a good fit the analytics part but persisting and drill down reports seem to be hard if this is in the path. I could push the Kinesis stream to both Analytics and ES but I'm not sure if the cost is worth it.

I appreciate any help