ThinkGeek
ThinkGeek

Reputation: 5117

Implementing cloud watch like metric aggregator for real time monitoring of applications

I want to design something like amazon cloud watch for real time monitoring of applications I own and I run in my own cluster of machines (not AWS cluster).

Basic requirement:

Possible approach that I think will work but I need suggestions on:

Pointer on this are really appreciated.

Upvotes: 3

Views: 441

Answers (1)

gzz
gzz

Reputation: 675

For your basic requirements.

  • Create a simple java(or your choice of language) application that will send data to elastic search, something like ElasticSearchClientSender. Check Jest, we use that to send data to our ES. Setup your kibana with the the correct alias. Creating it as a module may not be necessary in your case, as you may just create a snippet and plug it to the application you want its data published to ES.

If you still need the cloudwatch metric for other monitoring purposes, either you could try below options

  • AWS Java SDK got you covered. EDIT they also have one for python, nodejs and others(we mostly use python)
  • Or in our case, we have setup each of our module to have its own Cloudwatch Log Groups, so our elastic search sender module has it own log groups. Overview of Cloudwatch logs. When you have setup the Cloudwatch Log Groups for your module, decide what keyword you want to indicate what you want to show in the Metric and just log the data as you like, refer to these these samples

Another Approach

Based on your listed other approaches, maybe it's a worth a try looking for AWS Lambda , instead of creating a module that sends data with a snippet of code, In lambda, you will still have a chunk of code as a standalone application that you will setup on how it will be triggered depending on your setup either cronjob style or some aws services with Cloudwatch Events

Upvotes: 2

Related Questions