I was tasked with pulling logs from Citrix's XenDesktops monitor API. The monitor API seems to be a middleman that converts requests into SQL queries. For example, hitting the API endpoint
sessions, gives me everything in the
session table. There are about 20 different tables that I can pull information from pertaining to events that occur. Herein lies the rub, the session table, which details the events we want to collect, only contains a subset of the information wanted. In order to grab a more complete picture, I built a PowerShell script that queries 4 different tables, and builds 16 different dictionary files. I then use the translate filter a couple dozen times to enrich the session logs with this additional data. This mostly works fine, however I run into issues where some of the events dont have all their data right away due to how the translate filter merges dictionary changes.
The question I'm getting at is, is there a better way, a different filter to use to accomplish this? I was thinking I could use the JDBC or HTTP filter, but then I'd be hitting the API a few thousand times every five minutes, and waiting on the response time could really slow down the API.