Hello (again),

Hindsight is using a push-model (i.e Nagios passive checks). This is
great, but I want to plug it with Prometheus which uses pull-model
[1].

I see several ways to handle this:
- use the prometheus push-gateway [2]. This has several drawbacks listed below
- introduce pull model in hindsight
- add a new daemon, based on lua_sandbox too, but using pull model

The drawbacks of prometheus push-gateway are:
- Unnecessary polling of data (data is grabbed even if not pulled by prometheus
- time lag, between data grabbing and data pulling
- To sum up : to reduce time lag, you increase polling rate, when us
decrease polling, you increase time lag.

The push model may work like this:
- Adding pull_message_matcher config to inputs (defaults to FALSE)
- Adding process_pull_message() function to inputs, returning a table
of messages (or should it be inject_pull_message() + return 0?)
- Adding request_pull_message() function to outputs, which maps to
matching process_pull_message() and concatenates the results in a
table. This function is blocking.

Opinions?

NB: I won't work on this before 2017 or 2018, but I need to discuss
this early to.

NB2: My current TODO list is at:
https://gist.github.com/sathieu/5a7e83d514638f396e17d462f13adee0

[1]: 
https://prometheus.io/docs/introduction/faq/#why-do-you-pull-rather-than-push?
[2]: https://prometheus.io/docs/instrumenting/pushing/

-- 
Mathieu Parent
_______________________________________________
Heka mailing list
Heka@mozilla.org
https://mail.mozilla.org/listinfo/heka

Reply via email to