Hi Damião,

If your script "/home/myscript.py" does not complete before the timeout
that is configured in [inputs.exec] , an error "[exec: exit status 1 for
command X]" will be logged.
Additionally, the exec script should complete before the collection
interval is reached. The default interval is 10s and it is configurable
globally under the [agent] section as well as per-plugin.

On Tue, Aug 2, 2016 at 2:51 PM, Damião Rodrigues <[email protected]>
wrote:

> Hi kostas,
>
> Thanks for your reply.
>
> I have given the script full permissions (`chmod 777`) and the problem
> remains. The telegraf version I'm running is 'Telegraf - version 0.13.1'.
>
> The weirdest thing is I just tried the same with some dummy python script:
>
> ```
> #!/usr/bin/env python
> import json
> from datetime import datetime
> dict_list = []
>
> n = 66.666
> s = datetime.now().second
> x = "boing"
> dict_list.append(dict(seconds=s,order=n,description=x))
>
> print(json.dumps(dict_list[0]))
> ```
>
> telegraf.conf:
> ```
> [[inputs.exec]]
>   command = "/home/dummy.py"
>   data_format = "json"
>   ##name_suffix = "_dummy"
>   name_override = 'dummy'
>   timeout = "10s"
>   tag_keys = ['description']
> ```
>
> ... and it works perfectly!
>
> I've noticed that while the output of dummy.py is printed immediately to
> the stdout, the one from my_script takes a few seconds to show up. Could
> this be the problem? Doesn't the 'timeout' config handle this?
>
>
> On Tue, Aug 2, 2016 at 1:42 PM, <[email protected]> wrote:
>
>> On Tuesday, August 2, 2016 at 1:06:06 PM UTC+3, [email protected] wrote:
>> > Hi all,
>> >
>> > I'm trying to capture the json output of a python script using the Exec
>> Input Plugin. For some reason, I'm getting the following error when
>> telegraf tries to execute the script and collect the metrics:
>> >
>> > ```
>> > telegraf_1   | 2016-08-02T09:43:00.360767123Z 2016/08/02 09:43:00 ERROR
>> in input [exec]: exec: exit status 1 for command '/home/myscript.py'
>> > ```
>> >
>> > The relevant entry of telegraf.conf file loos like the following:
>> >
>> > ```
>> > [[inputs.exec]]
>> >   command = "/home/myscript.py"
>> >   data_format = "json"
>> >   name_suffix = "_some_suffix"
>> >   timeout = "10s"
>> >   tag_keys = ["key", "unit"]
>> > ```
>> >
>> > /home/myscript.py has execution permissions ('chmod +x') and outputs
>> the following:
>> >
>> > ```
>> > {"key": "some_key", "value": 28.214, "unit": "ms"}
>> >
>> > ```
>> >
>> > I've checked that the exit status of running `/home/myscript.py` is 0.
>> >
>> >
>> > The weirdest part is that, if I run `$ telegraf -config
>> /etc/telegraf.conf` -test`, I get a successful output:
>> >
>> > ```
>> > * Plugin: exec, Collection 1
>> > > exec_some_suffix,host=13ceb7312093,key=some_key,unit=ms value=19.539
>> 1470132272694745614
>> > ```
>> >
>> > Do you have any idea of what could be happening?
>>
>> Hi,
>>
>> I have not been able to reproduce this behavior with the latest beta of
>> Telegraf.
>>
>> It is likely that when you execute telegraf by invoking the binary from
>> the command line (telegraf -config /etc/telegraf.conf) you are running it
>> as your user who has privileges to execute the python script, while the
>> telegraf service runs as user "telegraf", which may not have sufficient
>> privileges to access /home/myscript.py
>>
>>
>


-- 
Konstantinos Botsas
Support Engineer
InfluxData

-- 
Remember to include the InfluxDB version number with all issue reports
--- 
You received this message because you are subscribed to the Google Groups 
"InfluxDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/influxdb.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/influxdb/CALk5Yv%3DBpQWfwj_ks3HP0e%2B7PssP%3DwE1TgeU9PLdZ1xTbdtt-A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to