Hello All,
I’m attempting to dynamically set the critical value for check-procs.rb by defining the subscriber check with the following definition json:
{
“checks”: {
“check-process-test”: {
“command”: "check-procs.rb -p test_process -C cat /var/test_process_count
",
“subscribers”: [
“testing”
],
“handlers”: [
“pagerduty”
],
“interval”: 30
}
}
}
When I run cat /var/test_process_count
on the client the return is ‘4’, but when sensu-client executes the full check command the check-procs.rb defaults to the config default of 1.
Is there any way to dynamically change the critical value based on contents of a file on the client’s disk?
Thanks,
-jake | jherbst
Hey Jake,
You can drop data in your client.json config[1] and read that from your check definitions (with an optional default) [2].
Hope that helps.
[1] See Custom Key-Values in http://sensuapp.org/docs/0.11/clients
[2] See Check command token substitution in http://sensuapp.org/docs/0.11/checks
···
On Monday, February 3, 2014 10:35:24 AM UTC-8, Jacob Herbst wrote:
Hello All,
I’m attempting to dynamically set the critical value for check-procs.rb by defining the subscriber check with the following definition json:
{
“checks”: {
“check-process-test”: {
“command”: “check-procs.rb -p test_process -C cat /var/test_process_count
”,
“subscribers”: [
“testing”
],
“handlers”: [
“pagerduty”
],
“interval”: 30
}
}
}
When I run cat /var/test_process_count
on the client the return is ‘4’, but when sensu-client executes the full check command the check-procs.rb defaults to the config default of 1.
Is there any way to dynamically change the critical value based on contents of a file on the client’s disk?
Thanks,
-jake | jherbst
Thanks for the info Nick, but sadly I’m not sure this is going to accomplish what I need it to.
The process_count is dynamic and changes fairly often, so I need to be able to get real-time information from the system (by viewing contents of ‘/var/test_process_count’), then set the critical value of the check based on the contents of that file.
···
On Tuesday, February 4, 2014 11:51:44 AM UTC-5, Nick Stielau wrote:
Hey Jake,
You can drop data in your client.json config[1] and read that from your check definitions (with an optional default) [2].
Hope that helps.
[1] See Custom Key-Values in http://sensuapp.org/docs/0.11/clients
[2] See Check command token substitution in http://sensuapp.org/docs/0.11/checks
On Monday, February 3, 2014 10:35:24 AM UTC-8, Jacob Herbst wrote:
Hello All,
I’m attempting to dynamically set the critical value for check-procs.rb by defining the subscriber check with the following definition json:
{
“checks”: {
“check-process-test”: {
“command”: “check-procs.rb -p test_process -C cat /var/test_process_count
”,
“subscribers”: [
“testing”
],
“handlers”: [
“pagerduty”
],
“interval”: 30
}
}
}
When I run cat /var/test_process_count
on the client the return is ‘4’, but when sensu-client executes the full check command the check-procs.rb defaults to the config default of 1.
Is there any way to dynamically change the critical value based on contents of a file on the client’s disk?
Thanks,
-jake | jherbst
Maybe the best option is to modify check-procs.rb to read the Critical threshold from that file and have a check definition like:
{
“checks”: {
“check-process-test”: {
“command”: “my-check-procs.rb -p test_process --C-file /var/test_process_count”,
“subscribers”: [
“testing”
],
“handlers”: [
“pagerduty”
],
“interval”: 30
}
}
}
Regards,
J
···
On Tue, Feb 4, 2014 at 5:57 PM, Jacob Herbst jmherbst@gmail.com wrote:
Thanks for the info Nick, but sadly I’m not sure this is going to accomplish what I need it to.
The process_count is dynamic and changes fairly often, so I need to be able to get real-time information from the system (by viewing contents of ‘/var/test_process_count’), then set the critical value of the check based on the contents of that file.
On Tuesday, February 4, 2014 11:51:44 AM UTC-5, Nick Stielau wrote:
Hey Jake,
You can drop data in your client.json config[1] and read that from your check definitions (with an optional default) [2].
Hope that helps.
[1] See Custom Key-Values in http://sensuapp.org/docs/0.11/clients
[2] See Check command token substitution in http://sensuapp.org/docs/0.11/checks
On Monday, February 3, 2014 10:35:24 AM UTC-8, Jacob Herbst wrote:
Hello All,
I’m attempting to dynamically set the critical value for check-procs.rb by defining the subscriber check with the following definition json:
{
“checks”: {
“check-process-test”: {
“command”: “check-procs.rb -p test_process -C cat /var/test_process_count
”,
“subscribers”: [
“testing”
],
“handlers”: [
“pagerduty”
],
“interval”: 30
}
}
}
When I run cat /var/test_process_count
on the client the return is ‘4’, but when sensu-client executes the full check command the check-procs.rb defaults to the config default of 1.
Is there any way to dynamically change the critical value based on contents of a file on the client’s disk?
Thanks,
-jake | jherbst
–
Javier
Hey,
Yeah, I agree with Javier: just update the check you’re running, it should be just a few lines of code. I’m actually not sure why the inline backticks didn’t work, as other shell operators do (&&, ||, |), although I haven’t tried it explicitly, so you could potentially try debugging more (maybe triggering debug logging with http://sensuapp.org/docs/0.11/faq).
···
On Wednesday, February 5, 2014 2:38:02 AM UTC-8, Javier Segura wrote:
Maybe the best option is to modify check-procs.rb to read the Critical threshold from that file and have a check definition like:
{
“checks”: {
“check-process-test”: {
“command”: “my-check-procs.rb -p test_process --C-file /var/test_process_count”,
“subscribers”: [
“testing”
],
“handlers”: [
“pagerduty”
],
“interval”: 30
}
}
}
Regards,
J
On Tue, Feb 4, 2014 at 5:57 PM, Jacob Herbst jmhe...@gmail.com wrote:
Thanks for the info Nick, but sadly I’m not sure this is going to accomplish what I need it to.
The process_count is dynamic and changes fairly often, so I need to be able to get real-time information from the system (by viewing contents of ‘/var/test_process_count’), then set the critical value of the check based on the contents of that file.
On Tuesday, February 4, 2014 11:51:44 AM UTC-5, Nick Stielau wrote:
Hey Jake,
You can drop data in your client.json config[1] and read that from your check definitions (with an optional default) [2].
Hope that helps.
[1] See Custom Key-Values in http://sensuapp.org/docs/0.11/clients
[2] See Check command token substitution in http://sensuapp.org/docs/0.11/checks
On Monday, February 3, 2014 10:35:24 AM UTC-8, Jacob Herbst wrote:
Hello All,
I’m attempting to dynamically set the critical value for check-procs.rb by defining the subscriber check with the following definition json:
{
“checks”: {
“check-process-test”: {
“command”: “check-procs.rb -p test_process -C cat /var/test_process_count
”,
“subscribers”: [
“testing”
],
“handlers”: [
“pagerduty”
],
“interval”: 30
}
}
}
When I run cat /var/test_process_count
on the client the return is ‘4’, but when sensu-client executes the full check command the check-procs.rb defaults to the config default of 1.
Is there any way to dynamically change the critical value based on contents of a file on the client’s disk?
Thanks,
-jake | jherbst
–
Javier
Backticks in commands should work, I’m going to add a check definition with backticks to the test suite, see if anything jumps out.
···
On Wed, Feb 5, 2014 at 8:57 AM, Nick Stielau nick.stielau@gmail.com wrote:
Hey,
Yeah, I agree with Javier: just update the check you’re running, it should be just a few lines of code. I’m actually not sure why the inline backticks didn’t work, as other shell operators do (&&, ||, |), although I haven’t tried it explicitly, so you could potentially try debugging more (maybe triggering debug logging with http://sensuapp.org/docs/0.11/faq).
On Wednesday, February 5, 2014 2:38:02 AM UTC-8, Javier Segura wrote:
Maybe the best option is to modify check-procs.rb to read the Critical threshold from that file and have a check definition like:
{
“checks”: {
“check-process-test”: {
“command”: “my-check-procs.rb -p test_process --C-file /var/test_process_count”,
“subscribers”: [
“testing”
],
“handlers”: [
“pagerduty”
],
“interval”: 30
}
}
}
Regards,
J
On Tue, Feb 4, 2014 at 5:57 PM, Jacob Herbst jmhe...@gmail.com wrote:
Thanks for the info Nick, but sadly I’m not sure this is going to accomplish what I need it to.
The process_count is dynamic and changes fairly often, so I need to be able to get real-time information from the system (by viewing contents of ‘/var/test_process_count’), then set the critical value of the check based on the contents of that file.
On Tuesday, February 4, 2014 11:51:44 AM UTC-5, Nick Stielau wrote:
Hey Jake,
You can drop data in your client.json config[1] and read that from your check definitions (with an optional default) [2].
Hope that helps.
[1] See Custom Key-Values in http://sensuapp.org/docs/0.11/clients
[2] See Check command token substitution in http://sensuapp.org/docs/0.11/checks
On Monday, February 3, 2014 10:35:24 AM UTC-8, Jacob Herbst wrote:
Hello All,
I’m attempting to dynamically set the critical value for check-procs.rb by defining the subscriber check with the following definition json:
{
“checks”: {
“check-process-test”: {
“command”: “check-procs.rb -p test_process -C cat /var/test_process_count
”,
“subscribers”: [
“testing”
],
“handlers”: [
“pagerduty”
],
“interval”: 30
}
}
}
When I run cat /var/test_process_count
on the client the return is ‘4’, but when sensu-client executes the full check command the check-procs.rb defaults to the config default of 1.
Is there any way to dynamically change the critical value based on contents of a file on the client’s disk?
Thanks,
-jake | jherbst
–
Javier