Hello Gooddata team, I am a data engineer focusing...
# gooddata-cloud
h
Hello Gooddata team, I am a data engineer focusing on Snowflake side of things but looking into understanding & troubleshooting Gooddata dashboard performance; please excuse any wrong terminology. Currently we have around 20 different dashboard and each dashboards could have 20+ insights (tiles). I am trying to find a way to easily distinguish which set of queries are originated from which dashboard and if possible, which filtered account. Is there an easy way (aside from looking at the query text) to quickly identify that? Tenancy ID: Dashboard-ID : Insight ID Thanks for your help
k
There is partial support for what you want, but also some current limitations. 1. What you can get today a) From Audit Logs (Enterprise tier) If you have Audit Logs enabled, each user access to data generates a
DATA_ACCESS
event. The event’s
target
contains the dashboard or visualization (insight) ID, so you can see which dashboard or standalone insight was opened. [Audit events] This lets you map: •
workspace
(from the event context) •
dashboardId
(if the user opened a dashboard) •
visualizationId
(if the user opened an insight directly) You can then correlate those IDs with the SQL queries you see in Snowflake by timestamp and user. However, the docs do not state that filter values (e.g., specific account or tenant filter) are logged, so you cannot reliably reconstruct “which filtered account” from Audit Logs alone. [Audit events] b) From usage analytics / telemetry Usage analytics (GoodData’s internal usage domain) can tell you which dashboards are executed and how often, but: • It does not capture the dashboard → visualization relationship in a way you can query “which visuals on which dashboard were executed.” [Usage Data in GoodData Cloud; Usage limitation] • It does not expose filter values or tenant/account context. So it’s useful for “which dashboards are used most,” but not for mapping individual Snowflake queries back to dashboard+filter. 2. What is not available out of the box • There is no built‑in “Tenancy ID : Dashboard ID : Insight ID” tag automatically attached to each SQL query that you can see directly from the Snowflake side. The knowledge sources do not mention any header/comment or query tag that encodes this. • Usage analytics currently does not provide a dashboard–visualization mapping or per‑visual usage on dashboards. [Usage limitation; Most used visuals] 3. Practical approaches based on current capabilities Given the above, the documented ways to distinguish queries are: 1. Use Audit Logs (if you’re Enterprise): ◦ Enable Audit Logs and ingest them into your own system. [Audit Log] ◦ Join
DATA_ACCESS
events (dashboard/visualization IDs, user, timestamp) with Snowflake query history (user, timestamp) to infer which queries came from which dashboard/insight. 2. Use
/debug
for specific slow insights:
◦ For a given insight, open it in Analytical Designer and change
/edit
to
/debug
in the URL; this downloads a package with the exact SQL GoodData sends to Snowflake. [Query debug; Performance debug] ◦ You can then match that SQL pattern to queries in Snowflake to know which dashboard/insight they belong to. This is manual but precise for troubleshooting specific dashboards. 3. If you embed dashboards (custom app): ◦ The knowledge sources mention that in embedded scenarios you can capture dashboard events client‑side and send them to your own tracking, but they don’t provide full implementation details here. [Dashboard events; Usage vs. Audit] ◦ That would let you log dashboard ID, insight ID, and filter context in your own telemetry, then correlate with Snowflake queries by time/user. 4. About “which filtered account / tenant” The knowledge sources do not state that: • Filter values (e.g., specific account/tenant) are included in Audit Logs, or • They are encoded in any query tag visible from Snowflake. Workspace Data Filters (WDF) are applied as security predicates in the SQL (e.g.,
WHERE
column
IN (...)
), but there is no documented, higher‑level identifier you can use instead of parsing the SQL itself. [WDF impact] So, based on the available documentation, there is no easy, fully automatic way to get: > Tenancy ID : Dashboard ID : Insight ID for every Snowflake query without either: • Correlating Audit Logs with Snowflake history, or • Inspecting the SQL (manually or via pattern‑based tooling). If you can share whether you have Audit Logs enabled and whether dashboards are embedded in a custom app, I can outline a more concrete correlation workflow within those constraints. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups. 👀 Our Support team monitors all messages and will jump in if needed.
m
Hi Hubert, Please let us know if you need further assistance or clarification.