Special Dates Handling

Overview

You can often expect anomalous data on specific days, such as holidays or days relevant to your business operations. On these days, monitors may generate noise by detecting anomalies even though you already know the reason for them.

Excluded Dates Calendars

When you configure a monitor, you can select one or more calendars in the Excluded dates field so that Sifflet does not report anomalies for the timeslots in these calendars.


Built-in calendars:

Public Holiday Calendars

  • Belgium public holidays
  • France public holidays
  • Germany public holidays
  • Netherlands public holidays
  • Spain public holidays
  • United Kingdom public holidays
  • United States public holidays

End of Week Calendars

  • Weekends: Ignore Alerts on Weekends
  • Sundays: Ignore Alerts on Sundays

Excluded dates appear on the graph to explain why no anomaly was detected

Excluded dates appear on the graph to explain why no anomaly was detected


Custom Calendars

You can add custom calendars with the API. For more information, see the Interactive API reference.

The API for creating calendars takes a name and description parameter for documenting the calendar as well as an array of timeslots.

Each timeslot contains a date and a description that appear in the Data Catalog.

curl --request POST \
     --url https://tenant.siffletdata.com/api/v1/calendars \
     --header 'accept: application/json' \
     --header 'authorization: Bearer <apikey>' \
     --header 'content-type: application/json' \
     --data '
{
  "description": "days where the data will be different!",
  "name": "my cool calendar",
  "timeslots": [
    {
      "date": "2024-07-24",
      "description": "today is a holiday"
    }
  ]
}
'
import requests

url = "https://tenant.siffletdata.com/api/v1/calendars"

payload = {
    "description": "days where the data will be different!",
    "name": "my cool calendar",
    "timeslots": [
        {
            "date": "2024-07-24",
            "description": "today is a holiday"
        }
    ]
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "authorization": "Bearer token"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

Did this page help you?