Looker Usage Data
Looker Usage in Euno
Euno tracks usage activity across dashboards, looks, explores, views, tiles, and even individual fields. This rich usage history enables teams to make informed decisions about what is actively used, what may be deprecated, and how resources are accessed across the organization.
Utilize Looker Usage Data To:
Identify underused resources to clean up dashboards, looks, or models that are no longer actively referenced.
Highlight heavily used content to prioritize optimization, refactoring, or access reviews.
Understand adoption and ownership by analyzing who queries what, from where, and how frequently.
Prerequisites
Looker usage data is collected from Looker's System Activity history during each integration run. To ensure usage metrics are populated:
The Looker API user must have the
see_system_activitypermission (included in the Admin role and in the custom Euno permission set).Observe users must be enabled in the Looker source Advanced Settings (enabled by default) for user-level breakdowns and the
usedrelationship toward users.
Understanding the Types of Usage Data Captured in Euno
Euno collects and organizes Looker usage data into a few distinct signals, drawing from Looker's System Activity API and enhancing it for deeper insights:
1. Query History
For all Looker resourcesβincluding views, explores, looks, tiles, dashboards, and fieldsβEuno tracks:
Total queries over 14-, 30-, and 60-day windows.
Distinct users issuing those queries.
Source attribution (
looker_queries_breakdown_by_app_*on LookML resources): the app context in which the query originated (for example, a dashboard tile or an explore).User breakdown (
queries_breakdown_by_user_*): per-user query counts when Observe users is enabled.Average query time (
average_query_time_*on looks, tiles, dashboards, dimensions, and measures).

Note: Euno includes both cached and non-cached queries. Cached queries are not filtered out, providing a more complete picture of usageβbut potentially overestimating warehouse activity when cache hits are high.
Important: Euno not only collects total queries for dashboard tiles and other visualizations, but also propagates those queries back upstream to the associated explores, views, and fields. Field-level and explore-level resources inherit query activity even when they are not queried directly but are involved in dashboard or look execution.
total_queries_14d, total_queries_30d, total_queries_60d
Query counts over the last 14/30/60 days from the Looker API (includes cached queries).
View, Explore, Dashboard, Look, Tile, Dimension, Measure
distinct_users_14d, distinct_users_30d, distinct_users_60d
Distinct users over the last 14/30/60 days. User-level breakdown is available in the side panel and Euno Assistant, but not via EQL.
View, Explore, Dashboard, Look, Tile, Dimension, Measure
queries_breakdown_by_user_14d, queries_breakdown_by_user_30d, queries_breakdown_by_user_60d
Per-user query counts when Observe users is enabled. Shown in the side panel and Euno Assistant; not available via EQL.
View, Explore, Dashboard, Look, Tile, Dimension, Measure
looker_queries_breakdown_by_app_14d, looker_queries_breakdown_by_app_30d, looker_queries_breakdown_by_app_60d
Top query sources by app context (for example, dashboard vs explore).
View, Explore, Dimension, Measure
average_query_time_14d, average_query_time_30d, average_query_time_60d
Average query duration in seconds over the last 14/30/60 days.
Dashboard, Look, Tile, Dimension, Measure
2. View Activity
For visual content such as dashboards and looks, Euno captures UI-level interactions (impressions):
View counts over 7- and 30-day windows.
Last viewed and last accessed timestamps from impression tracking.
These events represent frontend engagement with visual assetsβeven when no new queries are issued due to caching.
last_7d_views, last_30d_views
Impression counts over the last 7 or 30 days.
Look, Dashboard
last_viewed_at
The last impression time (ISO timestamp).
Look, Dashboard
last_accessed_at
The last impression datetime from usage tracking.
Look, Dashboard

3. PDT Build Activity
For Persistent Derived Tables (PDTs) defined in looker_view files and marked as persistent:
Total PDT builds in the past 30 days.
Total build timeβuseful for identifying slow or resource-intensive transformations.
pdt_builds_last_30d
Total number of PDT builds in the last 30 days.
View
pdt_total_build_time_30d
Cumulative build time for PDTs in the last 30 days.
View

Choosing the Right Signal for Your Use Case
Use Query Activity when evaluating:
Warehouse cost
Query frequency
Backend performance
Data model usage across explores and fields (thanks to query propagation)
Use View Activity when assessing:
Dashboard and look engagement
User adoption and content popularity
Organizational awareness and usage trends
Use PDT Build Activity when evaluating:
Model performance and efficiency
Resource load from persistent transformations
Maintenance and freshness of derived data
Why Do Query and View Data Sometimes Differ?
Differences between query and view counts are normal and often reflect Looker's caching and backend mechanics:
When a dashboard loads from cache, Euno records a view event, but no new query is sent to the database.
Conversely, when a PDT refreshes or a model is recompiled, queries may be triggered without user interaction, resulting in query counts without corresponding views.
Understanding this difference helps you interpret usage signals more accurately, especially when balancing adoption metrics against infrastructure and cost considerations.
Last updated