I agree, we're starting to get to the point of wondering why again.
So here is my reason why:

My basic concern is scoping.  A lot of the current format is
order-specific, implicitly scoped configuration that makes it
extremely hard to work with.  With more explicit scoping, I'm happy.


And I know this may not be a popular idea, but really, I think it
should be considered -- syslog-ng's format is actually quite
straightforward and easily understood.  Having a format similar may be
a problem for "product differentiation", but honestly, the syslog-ng
method of inputs, outputs, and functions to tie those together is
quite appropriate for a logging application.  I'm not saying we should
use their exact format, but I do like lifting some of their better
config ideas.  (I'm also partial to the bind-style/syslog-ng-style
config format.)

-Aaron

On Fri, Jun 25, 2010 at 11:29 AM,  <[email protected]> wrote:
> On Fri, 25 Jun 2010, Rainer Gerhards wrote:
>
>> After all formats seem to have at least some problems attached, I decided to
>> have a look at my original RainerScript idea. Note that the current (partial)
>> implementation is NOT suitable for very high performance. However, that is
>> something that can be changed.
>>
>> To understand why a language, and why a specialized one, we need to look at
>> rsyslogd from a different angle: to me, rsyslogd is high performance
>> processor good at shuffling messages from an input to an output and applying
>> transformations while doing so. There is conditional logic involved to craft
>> the path a specific message takes.
>>
>> So one can think of rsyslog like a specialized computer whom's instruction
>> set is optimized for that purpose (I guess that is what David was referring
>> to when he talked about "functions").
>>
>> With that view, the configuration file is actually a programming language:
>> one that specifies how to process message. Reading the config file can then
>> be compared to a typical compilation, where the generated object code is
>> actually targeted towards "rsyslog machine instructions".
>>
>> Obviously, to program that very special machine, we do need a specialized
>> programming language as well. Alternatively, one may think of this language
>> as being the "assembly language" of rsyslog, which closely matches the
>> instruction set and thus can be used to write very efficient programs (but
>> requires some skills for non-trivial cases).
>>
>> Having said this, all language constructs must translate natively to rsyslog
>> engine objects. At the same time, they should be very simple to use for
>> novice users while providing all the expressiveness an expert user needs.
>> This most importantly means that the config language must be easy to read and
>> edit by a human.
>> [Michael: *this* actually are the requirements for the config language,
>> together with the other long post this morning -- I am not sure if I find
>> time to consolidate these two today.]
>>
>> Now please have a look at a new sample config:
>>
>> http://download.rsyslog.com/rainerscript_rsyslog.conf
>>
>> This time, I have not only included a hypothetical complex configuration, but
>> also a very simple standard config - just so that we can see how verbose it
>> gets. All configs are inside a single file -- you need to scroll down.
>>
>> All in all, I have to admit I begin to like the RainerScript approach once
>> again. Unfortunately, it obviously is the solution that requires more work
>> than any others (because I need to craft the grammar and the parser myself).
>
> after reading this I am wondering why everything needs to change.
>
> what concepts are missing in the current config language that you are
> needing to add
>
> as I see it you need to add
>
> ability to define blocks of actions
>   currently this is done by changing the ruleset, this needs to be made
> more explicit and obvious
>
>   a block of actions may be a single action that's used more than once
>
>
> ability to define if-then-else not just if-then
>
> combining these two to make the if-then or if-then-else do blocks of
> actions.
>
> what else is missing?
>
> if you were going to a standard config language that other things could
> understand then changing everything to fit that language makes sense, but
> if it's going to be another custom config parser what's the benifit of
> starting from scratch rather than just adding the features to the existing
> one (since you will have to maintain the existing one anyway)
>
> David Lang
>
> P.S. is the rest of adiscon going to just go with XML?
>
>
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com
>
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to