An alternative that could be useful would be just make a unix timestamp
(with full second resolution) directly available as a variable.
Perhaps something like $now-unix?
The implementation of this could even avoid having to parse time formats,
thus be quick.
Looking at
https://github.com/rsyslog/rsyslog/blob/11b58367dda661c6b991122174faeb6463e5a919/runtime/datetime.c#L175:13
it appears
getCurrTime can already provide the unix seconds, and getTime() is
available that does only that.

On Tue, 3 Nov 2020 at 10:24, Nicholas Brown <[email protected]>
wrote:

> Hi,
>
> Thanks for the reply.
>
> I had found these issues:
> https://github.com/rsyslog/rsyslog/issues/3329 (Enhancement to $now
> property)
> https://github.com/rsyslog/rsyslog/issues/3930 (Properties timegenerated
> and timereported are not high precision in the RainerScript context)
>
> For our use we are looking for something with second granularity, and in
> UTC.
> $timegenerated has second granularity, but there is no $timegenerated-utc
> available.
> $now and $now-utc both only have granularity to the day.
>
> A simple example of the use case for the property in a rules might be:
>
> # Get Unix timestamp of current message
> set $.tnow = parse_time($timegenerated);
>
> # Rate limit info to 5 every 60 seconds
> if ($!severity == 6 and $!facility == 17) then {
>   if (($.tnow - $/trate) > 60) then {
>     # 5 seconds window expired, allow more messages
>     set $/trate = $.tnow;
>     set $/ratecount = 0;
>   }
>   if ($/ratecount > 5) then {
>     # discard message
>     stop
>   } else {
>     set $/ratecount = $/ratecount + 1;
>   }
> }
>
> Would it be possible to add a $timegenerated-utc property?
> Any pointers into the rsyslog code on where this might be implemented
> would be welcome, and we could take a look.
>
> Thanks,
> Nick
>
> On Mon, 2 Nov 2020 at 20:59, John Chivian via rsyslog <
> [email protected]> wrote:
>
>> Time. What is time anyway?  The easiest way to solve your problem is to
>> punt and log everything in high resolution UTC.  Or you could log
>> everything with high resolution local time (including TZ offset). Or you
>> could set your entire logging infrastructure use UTC only.  At least
>> then you wouldn't have the problem of the wobbling hour.
>>
>> All that aside, there is already an enhancement request for a high
>> resolution $now but it's a low priority item with not much momentum.
>> Such a thing would return server local time regardless of the timezone
>> setting on the server (which would of course be UTC).
>>
>> The current $now (as you've discovered) is a low resolution string, not
>> an actual timestamp that can be cast with a format.
>>
>> Regards,
>>
>>
>> On 11/2/20 12:14 PM, Nicholas Brown via rsyslog wrote:
>> > Hi,
>> >
>> > I'm looking for a useful monatomic timestamp property that can be used
>> for
>> > rate-limiting calculations in rules.
>> >
>> > 'parse_time($timegenerated)' mostly works, but when there are local time
>> > adjustments happen like daylight saving and time goes backwards.
>> >
>> >
>> https://www.rsyslog.com/doc/master/configuration/properties.html#system-properties
>> >
>> https://www.rsyslog.com/doc/master/rainerscript/functions/rs-parse_time.html
>> >
>> > A $timegenerated-utc property would not have daylight saving timezone
>> > issues, but does not appear to be available. Similar $now-utc is
>> available,
>> > but it does not have second resolution to be useful to convert to a unix
>> > timestamp with parse_time().
>> >
>> > Is there a high precision utc timestamp property available?
>> >
>> > Thanks,
>> > Nick
>> > _______________________________________________
>> > rsyslog mailing list
>> > https://lists.adiscon.net/mailman/listinfo/rsyslog
>> > http://www.rsyslog.com/professional-services/
>> > What's up with rsyslog? Follow https://twitter.com/rgerhards
>> > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a
>> myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if
>> you DON'T LIKE THAT.
>>
>>
>> _______________________________________________
>> rsyslog mailing list
>> https://lists.adiscon.net/mailman/listinfo/rsyslog
>> http://www.rsyslog.com/professional-services/
>> What's up with rsyslog? Follow https://twitter.com/rgerhards
>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad
>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you
>> DON'T LIKE THAT.
>
>
_______________________________________________
rsyslog mailing list
https://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to