On 16 September 2015 at 00:19, Michael Trinkala <[email protected]>
wrote:

> Generally I only use the prune for reporting in which case I don't want it
> to clean up the results but it would be pretty easy to include the analysis
> directory as a config option.
>

Here is a pull request to support analysis plugins too:
https://github.com/trink/hindsight/pull/8


> Yes, there is up to a second of latency on detecting/reading the rolled
> logs.  It is there to prevent rapid polling when the data flow is pretty
> low.  When using a reasonably sized roll configuration the potential of up
> to a second of delay every few minutes hasn't been an issue for us.  In
> fact most of the Hindsight backoffs/retries don't use anything smaller than
> a one second resolution as Hindsight is designed to be near real time
> (within a few seconds).
>
> Cool, the numbers are still looking good on this end too and it is pretty
> close to feature complete (with the recent addition of the dynamic loading).
>
> This issue is on my radar and will be addressed soon, as well as the
> documentation.
>

Cool, thanks.


> Trink
>
> On Tue, Sep 15, 2015 at 8:04 AM, bruno binet <[email protected]>
> wrote:
>
>> Hi Michael,
>>
>> Thanks again for your answer.
>> I've also seen that you have checked in your "prune_input.lua plugin" on
>> github:
>> https://github.com/trink/hindsight/blob/master/sandboxes/input/prune_input.lua
>> This is very useful, and I'm wondering if you also have a similar pruning
>> plugin that could prune the output files produced by the analysis plugins?
>>
>> Also you said that we must be aware the roll transition can introduce up
>> to a second of latency in the analysis and output plugins: why does the
>> roll transition do introduce such a delay? Does this latency delay will be
>> decreased if we use your "prune_input.lua" plugin to remove the files that
>> would have been rolled?
>>
>> FYI, I've migrated my plugins and configuration from Heka to Hindsight,
>> and the performance is actually largely improved (CPU usage decreased by
>> ~10x, RAM usage decreased by ~80x !)
>> So thanks a lot for that great piece of software!
>> And that means that I can now use my Hindsight pipeline seamlessly on a
>> Raspberry PI 1 device without facing any performance issues anymore. :-)
>>
>> The last thing that I would like to fix before pushing Hindsight in
>> production is to be able to compile the master branch on Raspbery PI ARM
>> platform (for now I monkey patch the code for the compilation to succeed),
>> see github issue #7: https://github.com/trink/hindsight/pull/7
>>
>> Cheers,
>> Bruno
>>
>> On 18 August 2015 at 06:18, Michael Trinkala <[email protected]>
>> wrote:
>>
>>> Yes, I will get the plugins checked in shortly I just need to add a
>>> config option or two.
>>>
>>> run once - set the ticker_interval to 0 and return from process_message
>>> when you are done
>>> polling - set the ticker_interval > 0 and return from process_message,
>>> it will be called again when the ticker interval expires.
>>> continuous - don't return from process_message
>>>
>>> No, this feature does not need to be implemented in the infrastructure
>>> the plugin extends the functionality nicely and can be easily customized as
>>> needed.
>>>
>>> It totally depends on your throughput and message size, I don't expect
>>> any problems even if you roll frequently (be aware the roll transition can
>>> introduce up to a second of latency in the analysis and output plugins).
>>>
>>> Not at the moment since it is just two executables.
>>>
>>> Trink
>>>
>>>
>>> On Thu, Aug 13, 2015 at 5:36 AM, bruno binet <[email protected]>
>>> wrote:
>>>
>>>>
>>>>
>>>> On 12 August 2015 at 18:16, Michael Trinkala <[email protected]>
>>>> wrote:
>>>>
>>>>> Most looping requirements can be flatten out: i.e., alerting can be
>>>>> handled in the output plugins in your example and
>>>>> aggregation/sessionization etc can be handled in the inputs. As for
>>>>> sharing: things fall into place when you start thinking about it from a
>>>>> module level instead of an individual plugin level.
>>>>>
>>>>> The locations are configurable 'output_path' so you can put the output
>>>>> files anywhere you want.
>>>>>
>>>>
>>>> Good, I will set it somewhere on the /tmp/ partition, which is already
>>>> a stored in RAM.
>>>>
>>>>
>>>>> I have some plugins (like a stdin, simple file, TCP. and a pruning
>>>>> (cleans up the output files when everyone in done with them) inputs;
>>>>>
>>>>
>>>> I'm interested by this pruning plugin: could you share it? Or don't you
>>>> think it would make sense for Hindsight to provide an option to
>>>> automaticallly clean up output files?
>>>>
>>>>
>>>>> heka protobuf and a payload outputs etc. but they haven't commited
>>>>> yet). As for ProcessInput the Input sandbox has access to os.execute so
>>>>> there won't be a generic version you can just call what you want and 
>>>>> handle
>>>>> its output directly (Hindsight already supports run once, polling, and
>>>>> continuous input plugins)
>>>>>
>>>>
>>>> Can you explain briefly how to configure input plugins for these 3
>>>> options (run once, polling, or continuous)?
>>>>
>>>>
>>>>> The output files will grow until 'output_size' (defaults to 64MiB)
>>>>> before they are rolled (they are not deleted by default).
>>>>>
>>>>
>>>> Ok. Would it make sense to introduce an option to delete them by
>>>> default?
>>>>
>>>>
>>>>> I would not make it too small unless you need to prune really quickly
>>>>> generally I run with a config of 1GIB (on some of our systems that rolls
>>>>> several times a minute) space permitting I would just roll them after
>>>>> several minutes of what would be average data flow on your system)
>>>>>
>>>>
>>>> I plan to use a ram disk (tmpfs) to store these files (to avoid writing
>>>> too much on the sd card), so I would like them to stay small in order to
>>>> prevent eating too much RAM: does 5MB to 10MB seems reasonable to you?
>>>>
>>>> Also, do you plan to provide a debian package for Hindsight to ease
>>>> installation?
>>>>
>>>> Thanks for the great help!
>>>> Bruno
>>>>
>>>>
>>>>>
>>>>> Trink
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Aug 12, 2015 at 1:55 AM, bruno binet <[email protected]>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On 12 August 2015 at 10:19, bruno binet <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Thanks for all this valuable information.
>>>>>>>
>>>>>>> On 11 August 2015 at 17:17, Michael Trinkala <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> There are a few intentional changes between Heka and Hindsight.
>>>>>>>> Looping messages in Heka has always been a bad idea so it was removed.
>>>>>>>>
>>>>>>>
>>>>>>> Personally I like the looping messages feature in Heka as it is very
>>>>>>> flexible and could be useful to share ready-to-use plugins. Also it
>>>>>>> supports processing messages through multiple ticker_interval which can 
>>>>>>> be
>>>>>>> useful (alerting, aggregations).
>>>>>>>
>>>>>>>
>>>>>>>> There are a few API enhancements such as a protobuf stream reader
>>>>>>>> and writer.  Checkpoint are all managed by the Hindsight 
>>>>>>>> infrastructure (so
>>>>>>>> much of the burden is removed from the plugin writer, this also alters 
>>>>>>>> the
>>>>>>>> plugin API slightly).  The write_message hack for Go has been removed 
>>>>>>>> since
>>>>>>>> messages are immutable.  read_config now has access to all related 
>>>>>>>> sandbox
>>>>>>>> config options (standard and user defined). read_next_field is not
>>>>>>>> supported (this will also be removed from Heka in 0.11).
>>>>>>>>
>>>>>>>> In most cases you will find the Hindsight IOPS lower than Heka due
>>>>>>>> to the much more efficient check pointing  (btw Heka 0.11 is moving to 
>>>>>>>> a
>>>>>>>> disk buffer everywhere).
>>>>>>>>
>>>>>>>
>>>>>>> Great, that is good to know.
>>>>>>>
>>>>>>>
>>>>>>>> output_hi/input/* - contains the output from all of the input
>>>>>>>> plugins
>>>>>>>> output_hi/analysis/* - contains the output from all of the analysis
>>>>>>>> plugins
>>>>>>>>
>>>>>>>
>>>>>> Are the above files always growing?
>>>>>> I suppose the output_limit configuration allow us limit their size:
>>>>>> what are the implications if I limit their size to a few KB? Will it 
>>>>>> reduce
>>>>>> Hindsight performance?
>>>>>>
>>>>>>
>>>>>>> hindsight.cp - in the checkpoint file for all I/O (inputs, analysis,
>>>>>>>> and output plugins)
>>>>>>>> hindsight.tsv - in the self monitoring performance stats
>>>>>>>>
>>>>>>>> They files are all mandatory.  They are the reason Hindsight has an
>>>>>>>> at least once delivery guarantee and they provide valuable insight on
>>>>>>>> system operation and performance.
>>>>>>>>
>>>>>>>
>>>>>>> If I don't need delivery guarantee, do you think it could make sense
>>>>>>> to move these files to a ramdisk (tmpfs) partition in order to preserve 
>>>>>>> the
>>>>>>> flash sd/usb card?
>>>>>>>
>>>>>>>
>>>>>>>> decode_message needs to be turned on for analysis and output
>>>>>>>> plugins, I will enable it.
>>>>>>>>
>>>>>>>
>>>>>>> Ok, thank you: this is now working as expected.
>>>>>>>
>>>>>>> Also, do you plan to implement some additional lua modules to help
>>>>>>> build input sandboxes similar to Heka input plugins (like the
>>>>>>> FilePollingInput, the ProcessInput, or the LogstreamerInput)?
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Trink
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Aug 11, 2015 at 1:54 AM, bruno binet <[email protected]
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>> I see, so I need to investigate how I can merge my multiple lua
>>>>>>>>> sandbox filters into a single one.
>>>>>>>>>
>>>>>>>>> This make me wondering if there is some other differences between
>>>>>>>>> Hindsight and Heka?
>>>>>>>>> The fact that only one analysis plugin cannot consume the output
>>>>>>>>> of another analysis plugin is the only difference beween Hindsight 
>>>>>>>>> analysis
>>>>>>>>> plugins and Heka filter sandbox plugins?
>>>>>>>>>
>>>>>>>>> Also I saw in another thread that Hindsight uses disk buffers at
>>>>>>>>> every stage, so there's only ever one
>>>>>>>>> message in memory at every step of the pipeline: does it mean
>>>>>>>>> Hindsight will write much more frequently to the disk than Heka? This 
>>>>>>>>> may
>>>>>>>>> be an issue for me since we use a raspberry pi which disk is a sdcard 
>>>>>>>>> or
>>>>>>>>> usb flash key.
>>>>>>>>>
>>>>>>>>> I see that some data is written to the output_path (output_hl/
>>>>>>>>> directory in my case): can you explain what are all these files:
>>>>>>>>> $ tree output_hl/
>>>>>>>>> output_hl/
>>>>>>>>> |-- analysis
>>>>>>>>> |   `-- 0.log
>>>>>>>>> |-- hindsight.cp
>>>>>>>>> |-- hindsight.tsv
>>>>>>>>> `-- input
>>>>>>>>>     `-- 0.log
>>>>>>>>>
>>>>>>>>> Can we avoid generating all these files?
>>>>>>>>>
>>>>>>>>> Last question: I don't manage to use the "read_next_field" or
>>>>>>>>> "decode_message" api function from the output plugin, are they 
>>>>>>>>> available?
>>>>>>>>>
>>>>>>>>> The following error is returned:
>>>>>>>>> 1439280624615780495 [error] output_plugins terminated:
>>>>>>>>> output/encode_metric.cfg msg: process_message()
>>>>>>>>> _hl/output/encode_metric.lua:16: attempt to call global 
>>>>>>>>> 'read_next_field'
>>>>>>>>> (a nil value)
>>>>>>>>>
>>>>>>>>> or when I change my output plugin to use the decode_message api
>>>>>>>>> function:
>>>>>>>>> 1439282566555139226 [error] output_plugins terminated:
>>>>>>>>> output/encode_metric.cfg msg: process_message()
>>>>>>>>> _hl/output/encode_metric.lua:15: attempt to call global 
>>>>>>>>> 'decode_message' (a
>>>>>>>>> nil value)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Bruno
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 10 August 2015 at 19:19, Michael Trinkala <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> There is no message looping in Hindsight (one analysis plugin
>>>>>>>>>> cannot consume the output of another analysis plugin).  In your 
>>>>>>>>>> example the
>>>>>>>>>> decoding should happen in the input.  Heka has Inputs, splitters, and
>>>>>>>>>> decoder (in Hindsight it is just an Input and common functionality 
>>>>>>>>>> can be
>>>>>>>>>> split into modules for code reuse).  This in general simplifies the
>>>>>>>>>> configuration, is easier to follow (since everything is in one 
>>>>>>>>>> place) and
>>>>>>>>>> has performance benefits as well.
>>>>>>>>>>
>>>>>>>>>> Trink
>>>>>>>>>>
>>>>>>>>>> On Mon, Aug 10, 2015 at 9:23 AM, bruno binet <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Back from vacations, I'm now playing again with Hindsight on a
>>>>>>>>>>> raspberry pi.
>>>>>>>>>>> As reported on github
>>>>>>>>>>> https://github.com/trink/hindsight/issues/1#issuecomment-119593775
>>>>>>>>>>> the compilation now succeeds.
>>>>>>>>>>>
>>>>>>>>>>> So getting inspiration from the examples in the benchmarks
>>>>>>>>>>> directory, I tried to create a Hindsight configuration to use my 
>>>>>>>>>>> own lua
>>>>>>>>>>> sandboxes: I can successfully read data from udp and use a filter 
>>>>>>>>>>> to decode
>>>>>>>>>>> data, then I would like to use another filter to handle generated 
>>>>>>>>>>> messages,
>>>>>>>>>>> but I can't get any message in the second filter. Does Hindsight 
>>>>>>>>>>> support
>>>>>>>>>>> more than one filter like Heka?
>>>>>>>>>>>
>>>>>>>>>>> Here is the Hindsight configuration, Lua sandboxes and output
>>>>>>>>>>> directory generated by Hindsight:
>>>>>>>>>>> https://github.com/bbinet/hindsight_hl_test
>>>>>>>>>>>
>>>>>>>>>>> Do you see anything wrong? Do I use hindsight correctly?
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>> Bruno
>>>>>>>>>>>
>>>>>>>>>>> On 8 July 2015 at 09:44, bruno binet <[email protected]>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Sure, I will try your branch and report possible new
>>>>>>>>>>>> compilation issues in github.
>>>>>>>>>>>>
>>>>>>>>>>>> Cheers,
>>>>>>>>>>>> Bruno
>>>>>>>>>>>>
>>>>>>>>>>>> On 7 July 2015 at 18:26, Michael Trinkala <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> I changed the checkpoint id to an unsigned long long. Can you
>>>>>>>>>>>>> test out the branch and add any other compilation errors to the 
>>>>>>>>>>>>> issue
>>>>>>>>>>>>> (closing out this email thread).  I am also taking
>>>>>>>>>>>>> suggestions/recommendations for a CI build system that supports 
>>>>>>>>>>>>> multiple
>>>>>>>>>>>>> platforms.  TravisCI adds almost no value since I am already 
>>>>>>>>>>>>> building on a
>>>>>>>>>>>>> Debian based box.
>>>>>>>>>>>>>
>>>>>>>>>>>>> https://github.com/trink/hindsight/tree/issue_1
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> Trink
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Tue, Jul 7, 2015 at 8:21 AM, bruno binet <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Ok, thanks.
>>>>>>>>>>>>>> And sorry, but I don't have a patch (don't know how to fix
>>>>>>>>>>>>>> this kind of compilation issue).
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 7 July 2015 at 16:17, Michael Trinkala <
>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Yeah, I have only been building on Ubuntu and haven't done
>>>>>>>>>>>>>>> any cross platform clean-up.  Thanks for the build output I 
>>>>>>>>>>>>>>> will fix those
>>>>>>>>>>>>>>> errors (unless you already have a patch).
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Trink
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Tue, Jul 7, 2015 at 5:57 AM, bruno binet <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I now have some time to do a few tests with Hindsight, so I
>>>>>>>>>>>>>>>> tried to compile it on our targeted arm platform (raspberry 
>>>>>>>>>>>>>>>> pi), but I get
>>>>>>>>>>>>>>>> the following error:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> root@hl-mc-9999-dev:~/hindsight/release# cmake
>>>>>>>>>>>>>>>> -DCMAKE_BUILD_TYPE=release ..
>>>>>>>>>>>>>>>> -- The C compiler identification is GNU 4.7.2
>>>>>>>>>>>>>>>> -- The CXX compiler identification is GNU 4.7.2
>>>>>>>>>>>>>>>> -- Check for working C compiler: /usr/bin/gcc
>>>>>>>>>>>>>>>> -- Check for working C compiler: /usr/bin/gcc -- works
>>>>>>>>>>>>>>>> -- Detecting C compiler ABI info
>>>>>>>>>>>>>>>> -- Detecting C compiler ABI info - done
>>>>>>>>>>>>>>>> -- Detecting C compile features
>>>>>>>>>>>>>>>> -- Detecting C compile features - done
>>>>>>>>>>>>>>>> -- Check for working CXX compiler: /usr/bin/g++
>>>>>>>>>>>>>>>> -- Check for working CXX compiler: /usr/bin/g++ -- works
>>>>>>>>>>>>>>>> -- Detecting CXX compiler ABI info
>>>>>>>>>>>>>>>> -- Detecting CXX compiler ABI info - done
>>>>>>>>>>>>>>>> -- Detecting CXX compile features
>>>>>>>>>>>>>>>> -- Detecting CXX compile features - done
>>>>>>>>>>>>>>>> -- Found LUASANDBOX: /usr/local/lib/libluasandbox.so
>>>>>>>>>>>>>>>> -- Configuring done
>>>>>>>>>>>>>>>> -- Generating done
>>>>>>>>>>>>>>>> -- Build files have been written to: /root/hindsight/release
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> root@hl-mc-9999-dev:~/hindsight/release# make
>>>>>>>>>>>>>>>> Scanning dependencies of target hindsight
>>>>>>>>>>>>>>>> [  2%] Building C object src/CMakeFiles/hindsight.dir/
>>>>>>>>>>>>>>>> hindsight.c.o
>>>>>>>>>>>>>>>> [  4%] Building C object src/CMakeFiles/hindsight.dir/
>>>>>>>>>>>>>>>> hs_analysis_plugins.c.o
>>>>>>>>>>>>>>>> [  6%] Building C object src/CMakeFiles/hindsight.dir/
>>>>>>>>>>>>>>>> hs_checkpoint_reader.c.o
>>>>>>>>>>>>>>>> /root/hindsight/src/hs_checkpoint_reader.c: In function
>>>>>>>>>>>>>>>> 'find_first_id':
>>>>>>>>>>>>>>>> /root/hindsight/src/hs_checkpoint_reader.c:46:3: error:
>>>>>>>>>>>>>>>> large integer implicitly truncated to unsigned type 
>>>>>>>>>>>>>>>> [-Werror=overflow]
>>>>>>>>>>>>>>>> /root/hindsight/src/hs_checkpoint_reader.c:55:3: error:
>>>>>>>>>>>>>>>> comparison is always false due to limited range of data type
>>>>>>>>>>>>>>>> [-Werror=type-limits]
>>>>>>>>>>>>>>>> cc1: all warnings being treated as errors
>>>>>>>>>>>>>>>> src/CMakeFiles/hindsight.dir/build.make:100: recipe for
>>>>>>>>>>>>>>>> target 'src/CMakeFiles/hindsight.dir/hs_checkpoint_reader.c.o'
>>>>>>>>>>>>>>>> failed
>>>>>>>>>>>>>>>> make[2]: *** 
>>>>>>>>>>>>>>>> [src/CMakeFiles/hindsight.dir/hs_checkpoint_reader.c.o]
>>>>>>>>>>>>>>>> Error 1
>>>>>>>>>>>>>>>> CMakeFiles/Makefile2:947: recipe for target
>>>>>>>>>>>>>>>> 'src/CMakeFiles/hindsight.dir/all' failed
>>>>>>>>>>>>>>>> make[1]: *** [src/CMakeFiles/hindsight.dir/all] Error 2
>>>>>>>>>>>>>>>> Makefile:146: recipe for target 'all' failed
>>>>>>>>>>>>>>>> make: *** [all] Error 2
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Do you know what is going on here? I guess this is an issue
>>>>>>>>>>>>>>>> with the arm platform only?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Cheers,
>>>>>>>>>>>>>>>> Bruno
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 10 June 2015 at 18:41, bruno binet <
>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Thanks a lot for your answers.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> And yes, I'm very interested in bootstrapping a first
>>>>>>>>>>>>>>>>> prototype of my own data pipeline based on Hindsight so that 
>>>>>>>>>>>>>>>>> I can compare
>>>>>>>>>>>>>>>>> the performance on a raspberry pi.
>>>>>>>>>>>>>>>>> (here is the current state of our Heka-based data
>>>>>>>>>>>>>>>>> pipeline:
>>>>>>>>>>>>>>>>> https://bitbucket.org/helioslite/heka-hl-sandboxes)
>>>>>>>>>>>>>>>>> So it would be great if you can give me the first
>>>>>>>>>>>>>>>>> instructions on how to build and setup Hindsight.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Thanks.
>>>>>>>>>>>>>>>>> Bruno
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On 10 June 2015 at 18:18, Michael Trinkala <
>>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> - It is usable and being actively developed with the
>>>>>>>>>>>>>>>>>> intent to move it into production later this year.
>>>>>>>>>>>>>>>>>> - We are currently running production data through it for
>>>>>>>>>>>>>>>>>> testing but it is not deployed in an official capacity.  It 
>>>>>>>>>>>>>>>>>> has been very
>>>>>>>>>>>>>>>>>> stable but until a more robust set of tests have been build 
>>>>>>>>>>>>>>>>>> out I will not
>>>>>>>>>>>>>>>>>> consider it production ready.
>>>>>>>>>>>>>>>>>> - Yes, it can decode/encode Heka protobuf format
>>>>>>>>>>>>>>>>>> - Yes, the router/message matcher is complete.  The only
>>>>>>>>>>>>>>>>>> difference is that it supports Lua string pattern matching 
>>>>>>>>>>>>>>>>>> instead of re2
>>>>>>>>>>>>>>>>>> regexp  (Heka 'Hostname =~ /^foo/' vs Hindsight 'Hostname =~ 
>>>>>>>>>>>>>>>>>> "^foo"')
>>>>>>>>>>>>>>>>>> - Yes, but you would need a lua-socket input and output
>>>>>>>>>>>>>>>>>> sandbox (see benchmarks/hsr_run for related examples)
>>>>>>>>>>>>>>>>>> - No documentation yet, only examples in the benchmarks
>>>>>>>>>>>>>>>>>> directory.  I could have you bootstrapped in about 30 
>>>>>>>>>>>>>>>>>> minutes (and
>>>>>>>>>>>>>>>>>> hopefully turn that into a getting started guide) if you are 
>>>>>>>>>>>>>>>>>> interested.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Implementation wise the only missing piece is support for
>>>>>>>>>>>>>>>>>> dynamically loading plugins.  The actual code to accomplish 
>>>>>>>>>>>>>>>>>> it is very
>>>>>>>>>>>>>>>>>> small (just detecting files in the load directory and moving 
>>>>>>>>>>>>>>>>>> them to the
>>>>>>>>>>>>>>>>>> run directory) but ideally it would be fronted by a web 
>>>>>>>>>>>>>>>>>> server and a GUI
>>>>>>>>>>>>>>>>>> with access control and validation (a much larger effort and 
>>>>>>>>>>>>>>>>>> actually a
>>>>>>>>>>>>>>>>>> separate project).
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Trink
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Wed, Jun 10, 2015 at 8:15 AM, bruno binet <
>>>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I recently discovered the work pushed into the Hindsight
>>>>>>>>>>>>>>>>>>> repository (https://github.com/trink/hindsight) which
>>>>>>>>>>>>>>>>>>> seems to be a lightweight alternative to Heka, based on the 
>>>>>>>>>>>>>>>>>>> lua sandbox.
>>>>>>>>>>>>>>>>>>> The Hindsight vs Heka benchmarks are quite impressive.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I'm currently running Heka on the raspberry pi (not so
>>>>>>>>>>>>>>>>>>> powerful) device and the load average quickly increases and 
>>>>>>>>>>>>>>>>>>> exceeds 1 when
>>>>>>>>>>>>>>>>>>> Heka is ingesting data, so Hindsight could be a good fit 
>>>>>>>>>>>>>>>>>>> for us if it can
>>>>>>>>>>>>>>>>>>> perform better than Heka in terms of CPU cycles.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> What is the current status of Hindsight? Is it just an
>>>>>>>>>>>>>>>>>>> temporary experiment or will it be maintained and actually 
>>>>>>>>>>>>>>>>>>> used in
>>>>>>>>>>>>>>>>>>> production?
>>>>>>>>>>>>>>>>>>> Is it currently usable and stable?
>>>>>>>>>>>>>>>>>>> Is Hindsight able to decode and encode Heka protobuf
>>>>>>>>>>>>>>>>>>> format?
>>>>>>>>>>>>>>>>>>> Does Hindsight have a complete router implementation to
>>>>>>>>>>>>>>>>>>> dispatch messages to sandboxes like in Heka?
>>>>>>>>>>>>>>>>>>> My use case is basically to read raw text data from UDP
>>>>>>>>>>>>>>>>>>> socket, parse text data with lua patterns or lpeg, process 
>>>>>>>>>>>>>>>>>>> data through a
>>>>>>>>>>>>>>>>>>> few lua sandbox filters, then write output messages both to 
>>>>>>>>>>>>>>>>>>> a file
>>>>>>>>>>>>>>>>>>> (protobuf heka format) and a HTTP server (json format): can 
>>>>>>>>>>>>>>>>>>> this be easily
>>>>>>>>>>>>>>>>>>> accomplished with Hindsight?
>>>>>>>>>>>>>>>>>>> Is there any documentation somewhere to get started with
>>>>>>>>>>>>>>>>>>> Hindsight?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>> Bruno
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>> Heka mailing list
>>>>>>>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>>>>>>>> https://mail.mozilla.org/listinfo/heka
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
_______________________________________________
Heka mailing list
[email protected]
https://mail.mozilla.org/listinfo/heka

Reply via email to