Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

how does healthcheckbot scales ? #2

Open
thomasleveil opened this issue Aug 16, 2019 · 1 comment
Open

how does healthcheckbot scales ? #2

thomasleveil opened this issue Aug 16, 2019 · 1 comment

Comments

@thomasleveil
Copy link

Hi, I'm wondering how this project scale. I'm looking for a tool that will need to monitor a little less than a thousand webpages every 5 minute.

Can healthcheckbot handle that ?

@corvis
Copy link
Member

corvis commented Aug 19, 2019

Hi @thomasleveil

There are no any specific scaling mechanisms integrated into the tool however you can easily divide your list of webpages into smaller pieces and deploy on on separate VMs. Instances of healthcheckbot are absolutely independent from each other so there is no need to configure and maintain a cluster.

You might want to have something like this:

config1.yaml

---
app:
  id: mybot-1

outputs:
  gelf:
    provider: healthcheckbot.outputs.GelfOutput
    gelf_host: graylog.lan
    gelf_port: 12201
    gelf_protocol: udp

triggers:
  each_5_minutes:
    provider: healthcheckbot.triggers.SimpleTimer
    interval: 300

watchers:
  my_page_1:
    provider: healthcheckbot.watchers.HttpRequest
    url: http://mysite1.com/page1
    assert_response_time: 2
    assert_status: 200
    triggers:
      - each_5_minutes
...................
  my_page_200:
    provider: healthcheckbot.watchers.HttpRequest
    url: http://mysite5.com/page200
    assert_response_time: 2
    assert_status: 200
    triggers:
      - each_5_minutes

and on another machine you could have very similar config with the only difference in target urls:

config2.yaml

---
app:
  id: mybot-2

outputs:
  gelf:
    provider: healthcheckbot.outputs.GelfOutput
    gelf_host: graylog.lan
    gelf_port: 12201
    gelf_protocol: udp

triggers:
  each_5_minutes:
    provider: healthcheckbot.triggers.SimpleTimer
    interval: 300

watchers:
  my_page_201:
    provider: healthcheckbot.watchers.HttpRequest
    url: http://mysite21.com/page1
    assert_response_time: 2
    assert_status: 200
    triggers:
      - each_5_minutes
...................
  my_page_400:
    provider: healthcheckbot.watchers.HttpRequest
    url: http://mysite20.com/page400
    assert_response_time: 2
    assert_status: 200
    triggers:
      - each_5_minutes

Examples above shows how to setup distributed monitoring system which reports results into single Graylog server so you have one single place where data lives.

Hope this helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants