Difference between revisions of "Transforms Tip: Transforms based on Time"
m |
|||
Line 22: | Line 22: | ||
== Example 03 == | == Example 03 == | ||
− | If we want to specify a timezone (Note that by default this is necessary in Zenoss version 5 or higher, as the docker container's timezone is UTC by default. This can be adjusted at the container level by adding a line like TZ='America/New_York' to /etc/default/serviced on each host where serviced is running, then restarting serviced). | + | If we want to specify a timezone (Note that by default this is necessary in Zenoss version 5 or higher, as the docker container's timezone is UTC by default. This can be adjusted at the container level by adding a line like TZ='America/New_York' to /etc/default/serviced on each host where serviced is running, then restarting serviced). However the method below will work fine without having to do any of that. |
<syntaxhighlight lang=python> | <syntaxhighlight lang=python> |
Latest revision as of 15:58, 8 September 2020
In some cases, you may want to have certain actions kick off based on the time that the event comes in. Here are some quick examples of how you could do this...
Contents
Example 01
In the following example, we want to drop an event for the device named "ottawa" between 3am and 5am:
import time if evt.device == 'ottawa': if time.localtime()[3] >= 3 and time.localtime()[3] < 5: evt._action = 'drop'
Example 02
If we wanted to do the same thing, but for 3pm to 5pm we would do:
import time if evt.device == 'ottawa': if time.localtime()[3] >= 15 and time.localtime()[3] < 17: evt._action = 'drop'
Example 03
If we want to specify a timezone (Note that by default this is necessary in Zenoss version 5 or higher, as the docker container's timezone is UTC by default. This can be adjusted at the container level by adding a line like TZ='America/New_York' to /etc/default/serviced on each host where serviced is running, then restarting serviced). However the method below will work fine without having to do any of that.
import os import time os.environ['TZ'] = 'Europe/Rome' if evt.device == 'ottawa': if time.localtime()[3] >= 15 and time.localtime()[3] < 17: evt._action = 'drop'
You can find a list of timezones here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
The following are the values which can be accessed:
Current Year: time.localtime()[0]
Current Month: time.localtime()[1]
Current Day: time.localtime()[2]
Current Hour: time.localtime()[3]
Current Minute: time.localtime()[4]
Current Second: time.localtime()[5]
Current Day of Week: time.localtime()[6]
Day of the week index:
0: Monday
1: Tuesday
2: Wednesday
3: Thursday
4: Friday
5: Saturday
6: Sunday