Skip to content

feat(metrics): group_by on a shared, zero-filled interval grid (P4)#63126

Open
DanielVisca wants to merge 1 commit into
posthog-code/metrics-ql3-label-filtersfrom
posthog-code/metrics-ql4-group-by
Open

feat(metrics): group_by on a shared, zero-filled interval grid (P4)#63126
DanielVisca wants to merge 1 commit into
posthog-code/metrics-ql3-label-filtersfrom
posthog-code/metrics-ql4-group-by

Conversation

@DanielVisca

@DanielVisca DanielVisca commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Problem

One series per query isn't observability — "break this down by pod/service/endpoint" is the core dashboard interaction, and formulas (next PRs) need every series on one time grid to be able to do math across them.

Changes

  • groupBy: [{key, scope}] splits a clause into one series per label value. Group columns are spliced into the HogQL AST (placeholders can't express a variable column count).
  • Shared, zero-filled grid: all series share the union of observed buckets, missing buckets are zero-filled — this invariant is what makes cross-series and cross-clause math line up.
  • interval moves onto the request (secondweek, or auto ≈60 buckets across the range).
  • Series per clause capped at the 100 largest (by summed |value|) so a high-cardinality key can't blow up the response.
  • ENUM_NAME_OVERRIDES: names the metrics interval enum and resolves a pre-existing BatchExport interval collision the new field surfaced (Interval837EnumBatchExportIntervalEnum; generated-type rename only, no handwritten consumers — grep-verified).

How did you test this code?

I'm an agent. Automated: grid/zero-fill/cap/ordering tests against real ClickHouse. Live check with the local pipe:

... -d '{"query": {"metricName": "nodejs_eventloop_lag_seconds", "aggregation": "avg", "groupBy": [{"key": "service_name"}], "interval": "minute_5", "dateFrom": "<30m ago>"}}'
# => one series per scraped service (logs-ingestion, metrics-ingestion, plugin-server), identical timestamps

🤖 Agent context

Autonomy: Human-driven (agent-assisted) — directed by @DanielVisca

Zero-fill semantics: filled with 0.0 for all aggregations (chart- and formula-friendly); Prometheus-style absent-as-gap was considered and rejected for v1 since the formula evaluator needs aligned grids. Worth revisiting if avg-of-sparse-gauges confuses anyone.

DanielVisca commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 72.4 MB

ℹ️ View Unchanged
Filename Size
frontend/dist-report/decompression-worker/src/scenes/session-recordings/player/snapshot-processing/decompressionWorker 2.85 kB
frontend/dist-report/exporter/_chunks/chunk 6.7 MB
frontend/dist-report/exporter/_parent/products/actions/frontend/pages/Action 24.1 kB
frontend/dist-report/exporter/_parent/products/actions/frontend/pages/Actions 1.92 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityScene 117 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilitySessionScene 19.7 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityTraceScene 129 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityUsers 1.54 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/clusters/AIObservabilityClusterScene 21.6 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/clusters/AIObservabilityClustersScene 54.3 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetScene 20.7 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetsScene 4.13 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation 59.6 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluationsScene 28.5 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/EvaluationTemplates 569 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/LLMASessionFeedbackDisplay 4.71 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/playground/AIObservabilityPlaygroundScene 37.7 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/prompts/LLMPromptScene 29.8 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/prompts/LLMPromptsScene 5.24 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/tags/AIObservabilityTag 28.4 kB
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/tags/AIObservabilityTagsScene 8.11 kB
frontend/dist-report/exporter/_parent/products/business_knowledge/frontend/scenes/BusinessKnowledgeScene 21.1 kB
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/Assignee/CyclotronJobInputAssignee 1.27 kB
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/SlaBusinessHours/CyclotronJobInputBusinessHours 2.59 kB
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/TicketTags/CyclotronJobInputTicketTags 681 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/settings/SupportSettingsScene 2.48 kB
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/ticket/SupportTicketScene 34 kB
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/tickets/SupportTicketsScene 1.75 kB
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/CustomerAnalyticsScene 80.4 kB
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsConfigurationScene/CustomerAnalyticsConfigurationScene 3.24 kB
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyBuilderScene/CustomerJourneyBuilderScene 2.69 kB
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyTemplatesScene/CustomerJourneyTemplatesScene 8.16 kB
frontend/dist-report/exporter/_parent/products/data_warehouse/DataWarehouseScene 46.1 kB
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/NewSourceScene/NewSourceScene 1.82 kB
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SchemaScene/SchemaScene 26.7 kB
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourceScene/SourceScene 1.77 kB
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourcesScene/SourcesScene 6.57 kB
frontend/dist-report/exporter/_parent/products/early_access_features/frontend/EarlyAccessFeature 1.7 kB
frontend/dist-report/exporter/_parent/products/early_access_features/frontend/EarlyAccessFeatures 3.75 kB
frontend/dist-report/exporter/_parent/products/endpoints/frontend/EndpointScene 43.6 kB
frontend/dist-report/exporter/_parent/products/endpoints/frontend/EndpointsScene 23.8 kB
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingFingerprintsScene/ErrorTrackingIssueFingerprintsScene 7.64 kB
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingIssueScene/ErrorTrackingIssueScene 96.7 kB
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingScene/ErrorTrackingScene 35.2 kB
frontend/dist-report/exporter/_parent/products/feature_flags/frontend/FeatureFlagTemplatesScene 6.8 kB
frontend/dist-report/exporter/_parent/products/games/368Hedgehogs/368Hedgehogs 5.13 kB
frontend/dist-report/exporter/_parent/products/games/FlappyHog/FlappyHog 5.6 kB
frontend/dist-report/exporter/_parent/products/legal_documents/frontend/scenes/LegalDocumentNewScene 60.6 kB
frontend/dist-report/exporter/_parent/products/legal_documents/frontend/scenes/LegalDocumentsScene 6.78 kB
frontend/dist-report/exporter/_parent/products/links/frontend/LinkScene 25.5 kB
frontend/dist-report/exporter/_parent/products/links/frontend/LinksScene 4.86 kB
frontend/dist-report/exporter/_parent/products/live_debugger/frontend/LiveDebugger 19.6 kB
frontend/dist-report/exporter/_parent/products/logs/frontend/LogsScene 18.7 kB
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsAlertDetailScene/LogsAlertDetailScene 17.9 kB
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsAlertNotificationDetailScene/LogsAlertNotificationDetailScene 8.91 kB
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsSamplingDetailScene/LogsSamplingDetailScene 5.72 kB
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsSamplingNewScene/LogsSamplingNewScene 2.78 kB
frontend/dist-report/exporter/_parent/products/managed_migrations/frontend/ManagedMigration 15.3 kB
frontend/dist-report/exporter/_parent/products/mcp_analytics/frontend/MCPAnalyticsScene 78.4 kB
frontend/dist-report/exporter/_parent/products/mcp_analytics/frontend/MCPAnalyticsToolDetail 19 kB
frontend/dist-report/exporter/_parent/products/metrics/frontend/MetricsScene 16.1 kB
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/stickiness/StickinessBarChart/StickinessBarChart 3.74 kB
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/stickiness/StickinessLineChart/StickinessLineChart 3.62 kB
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsBarChart/TrendsBarChart 9.26 kB
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsLifecycleChart/TrendsLifecycleChart 5.44 kB
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsLineChart/TrendsLineChart 5.08 kB
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsPieChart/TrendsPieChart 4.83 kB
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/observations/ReplayObservation 14.5 kB
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ReplayScanner 21.7 kB
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ReplayScannersScene 18.7 kB
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ScannerEditorScene 25.8 kB
frontend/dist-report/exporter/_parent/products/revenue_analytics/frontend/revenueAnalyticsLogic 1.73 kB
frontend/dist-report/exporter/_parent/products/revenue_analytics/frontend/RevenueAnalyticsScene 26 kB
frontend/dist-report/exporter/_parent/products/session_summaries/frontend/SessionGroupSummariesTable 5.46 kB
frontend/dist-report/exporter/_parent/products/session_summaries/frontend/SessionGroupSummaryScene 19.5 kB
frontend/dist-report/exporter/_parent/products/skills/frontend/LLMSkillScene 1.57 kB
frontend/dist-report/exporter/_parent/products/skills/frontend/LLMSkillsScene 1.58 kB
frontend/dist-report/exporter/_parent/products/tasks/frontend/SlackTaskContextScene 9.39 kB
frontend/dist-report/exporter/_parent/products/tasks/frontend/TaskDetailScene 25.1 kB
frontend/dist-report/exporter/_parent/products/tasks/frontend/TaskTracker 14.6 kB
frontend/dist-report/exporter/_parent/products/tracing/frontend/TracingScene 75 kB
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterview 10.7 kB
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterviewResponse 8.14 kB
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterviews 6.55 kB
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewIndexScene 3.11 kB
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewRunScene 45.9 kB
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewRunsScene 7.75 kB
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSettingsScene 11.6 kB
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotHistoryScene 14.3 kB
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotOverviewScene 19.9 kB
frontend/dist-report/exporter/_parent/products/workflows/frontend/TemplateLibrary/MessageTemplate 16.9 kB
frontend/dist-report/exporter/_parent/products/workflows/frontend/Workflows/WorkflowScene 109 kB
frontend/dist-report/exporter/_parent/products/workflows/frontend/WorkflowsScene 58.9 kB
frontend/dist-report/exporter/src/exporter/exporter 42.7 kB
frontend/dist-report/exporter/src/exporter/scenes/ExporterDashboardScene 2.63 kB
frontend/dist-report/exporter/src/exporter/scenes/ExporterHeatmapScene 20.4 kB
frontend/dist-report/exporter/src/exporter/scenes/ExporterInsightScene 3.53 kB
frontend/dist-report/exporter/src/exporter/scenes/ExporterInterviewScene 310 kB
frontend/dist-report/exporter/src/exporter/scenes/ExporterNotebookScene 2.71 MB
frontend/dist-report/exporter/src/exporter/scenes/ExporterRecordingScene 1.79 kB
frontend/dist-report/exporter/src/exporterSharedChunkAnchors 1.23 kB
frontend/dist-report/exporter/src/lib/components/Cards/TextCard/TextCardMarkdownEditor 10.5 kB
frontend/dist-report/exporter/src/lib/components/MonacoDiffEditor 499 B
frontend/dist-report/exporter/src/lib/lemon-ui/LemonMarkdown/MermaidDiagram 1.89 kB
frontend/dist-report/exporter/src/lib/lemon-ui/LemonTextArea/LemonTextAreaMarkdown 688 B
frontend/dist-report/exporter/src/lib/lemon-ui/Link/Link 347 B
frontend/dist-report/exporter/src/lib/monaco/CodeEditorInline 683 B
frontend/dist-report/exporter/src/lib/monaco/vimMode 211 kB
frontend/dist-report/exporter/src/lib/ui/Button/ButtonPrimitives 411 B
frontend/dist-report/exporter/src/queries/nodes/WebVitals/WebVitals 7.86 kB
frontend/dist-report/exporter/src/queries/nodes/WebVitals/WebVitalsPathBreakdown 4.69 kB
frontend/dist-report/exporter/src/queries/Query/Query 1.48 kB
frontend/dist-report/exporter/src/queries/schema 899 kB
frontend/dist-report/exporter/src/scenes/approvals/changeRequestsLogic 520 B
frontend/dist-report/exporter/src/scenes/authentication/shared/passkeyLogic 500 B
frontend/dist-report/exporter/src/scenes/data-pipelines/event-filtering/EventFilterScene 22.4 kB
frontend/dist-report/exporter/src/scenes/data-pipelines/TransformationsScene 6.76 kB
frontend/dist-report/exporter/src/scenes/insights/views/BoxPlot/BoxPlot 5.82 kB
frontend/dist-report/exporter/src/scenes/insights/views/CalendarHeatMap/CalendarHeatMap 9.12 kB
frontend/dist-report/exporter/src/scenes/insights/views/RegionMap/RegionMap 30.1 kB
frontend/dist-report/exporter/src/scenes/insights/views/WorldMap/WorldMap 1.04 MB
frontend/dist-report/exporter/src/scenes/models/ModelsScene 19.1 kB
frontend/dist-report/exporter/src/scenes/models/NodeDetailScene 17 kB
frontend/dist-report/monaco-editor-worker/src/lib/monaco/workers/monacoEditorWorker 288 kB
frontend/dist-report/monaco-json-worker/src/lib/monaco/workers/monacoJsonWorker 419 kB
frontend/dist-report/monaco-typescript-worker/src/lib/monaco/workers/monacoTsWorker 7.02 MB
frontend/dist-report/posthog-app/_chunks/chunk 6.64 MB
frontend/dist-report/posthog-app/_parent/products/actions/frontend/pages/Action 24.9 kB
frontend/dist-report/posthog-app/_parent/products/actions/frontend/pages/Actions 2.63 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityScene 118 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilitySessionScene 20.3 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityTraceScene 130 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityUsers 2.22 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/clusters/AIObservabilityClusterScene 22.3 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/clusters/AIObservabilityClustersScene 55 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetScene 21.4 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetsScene 4.81 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation 60.3 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluationsScene 29.2 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/EvaluationTemplates 569 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/LLMASessionFeedbackDisplay 4.71 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/playground/AIObservabilityPlaygroundScene 38.4 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/prompts/LLMPromptScene 29.9 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/prompts/LLMPromptsScene 5.92 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTag 29 kB
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTagsScene 8.79 kB
frontend/dist-report/posthog-app/_parent/products/business_knowledge/frontend/scenes/BusinessKnowledgeScene 21.8 kB
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/Assignee/CyclotronJobInputAssignee 1.27 kB
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/SlaBusinessHours/CyclotronJobInputBusinessHours 2.6 kB
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/TicketTags/CyclotronJobInputTicketTags 681 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/settings/SupportSettingsScene 3.23 kB
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/ticket/SupportTicketScene 27.1 kB
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/tickets/SupportTicketsScene 2.43 kB
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/CustomerAnalyticsScene 79.9 kB
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsConfigurationScene/CustomerAnalyticsConfigurationScene 3.99 kB
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyBuilderScene/CustomerJourneyBuilderScene 3.37 kB
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyTemplatesScene/CustomerJourneyTemplatesScene 8.85 kB
frontend/dist-report/posthog-app/_parent/products/data_warehouse/DataWarehouseScene 3.13 kB
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/NewSourceScene/NewSourceScene 2.57 kB
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SchemaScene/SchemaScene 27.4 kB
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourceScene/SourceScene 2.48 kB
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourcesScene/SourcesScene 7.25 kB
frontend/dist-report/posthog-app/_parent/products/early_access_features/frontend/EarlyAccessFeature 2.52 kB
frontend/dist-report/posthog-app/_parent/products/early_access_features/frontend/EarlyAccessFeatures 4.44 kB
frontend/dist-report/posthog-app/_parent/products/endpoints/frontend/EndpointScene 44.3 kB
frontend/dist-report/posthog-app/_parent/products/endpoints/frontend/EndpointsScene 22.5 kB
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingFingerprintsScene/ErrorTrackingIssueFingerprintsScene 8.32 kB
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingIssueScene/ErrorTrackingIssueScene 96.5 kB
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingScene/ErrorTrackingScene 35.9 kB
frontend/dist-report/posthog-app/_parent/products/feature_flags/frontend/FeatureFlagTemplatesScene 6.81 kB
frontend/dist-report/posthog-app/_parent/products/games/368Hedgehogs/368Hedgehogs 5.14 kB
frontend/dist-report/posthog-app/_parent/products/games/FlappyHog/FlappyHog 5.6 kB
frontend/dist-report/posthog-app/_parent/products/legal_documents/frontend/scenes/LegalDocumentNewScene 61.3 kB
frontend/dist-report/posthog-app/_parent/products/legal_documents/frontend/scenes/LegalDocumentsScene 7.46 kB
frontend/dist-report/posthog-app/_parent/products/links/frontend/LinkScene 26.2 kB
frontend/dist-report/posthog-app/_parent/products/links/frontend/LinksScene 5.54 kB
frontend/dist-report/posthog-app/_parent/products/live_debugger/frontend/LiveDebugger 20.3 kB
frontend/dist-report/posthog-app/_parent/products/logs/frontend/LogsScene 18.5 kB
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsAlertDetailScene/LogsAlertDetailScene 18.6 kB
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsAlertNotificationDetailScene/LogsAlertNotificationDetailScene 9.6 kB
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsSamplingDetailScene/LogsSamplingDetailScene 6.41 kB
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsSamplingNewScene/LogsSamplingNewScene 3.46 kB
frontend/dist-report/posthog-app/_parent/products/managed_migrations/frontend/ManagedMigration 16 kB
frontend/dist-report/posthog-app/_parent/products/mcp_analytics/frontend/MCPAnalyticsScene 79.1 kB
frontend/dist-report/posthog-app/_parent/products/mcp_analytics/frontend/MCPAnalyticsToolDetail 19.7 kB
frontend/dist-report/posthog-app/_parent/products/metrics/frontend/MetricsScene 16.8 kB
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/stickiness/StickinessBarChart/StickinessBarChart 4.42 kB
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/stickiness/StickinessLineChart/StickinessLineChart 4.3 kB
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsBarChart/TrendsBarChart 9.94 kB
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsLifecycleChart/TrendsLifecycleChart 6.12 kB
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsLineChart/TrendsLineChart 5.76 kB
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsPieChart/TrendsPieChart 5.51 kB
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/observations/ReplayObservation 15.1 kB
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScanner 22.4 kB
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScannersScene 19.3 kB
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ScannerEditorScene 26.5 kB
frontend/dist-report/posthog-app/_parent/products/revenue_analytics/frontend/revenueAnalyticsLogic 2.41 kB
frontend/dist-report/posthog-app/_parent/products/revenue_analytics/frontend/RevenueAnalyticsScene 26.7 kB
frontend/dist-report/posthog-app/_parent/products/session_summaries/frontend/SessionGroupSummariesTable 6.14 kB
frontend/dist-report/posthog-app/_parent/products/session_summaries/frontend/SessionGroupSummaryScene 20.1 kB
frontend/dist-report/posthog-app/_parent/products/skills/frontend/LLMSkillScene 2.25 kB
frontend/dist-report/posthog-app/_parent/products/skills/frontend/LLMSkillsScene 2.26 kB
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/SlackTaskContextScene 10.1 kB
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/TaskDetailScene 25.9 kB
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/TaskTracker 15.3 kB
frontend/dist-report/posthog-app/_parent/products/tracing/frontend/TracingScene 75.7 kB
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterview 10.8 kB
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterviewResponse 8.82 kB
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterviews 7.24 kB
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewIndexScene 3.79 kB
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewRunScene 46.6 kB
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewRunsScene 8.44 kB
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSettingsScene 12.3 kB
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotHistoryScene 15 kB
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotOverviewScene 20.5 kB
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/TemplateLibrary/MessageTemplate 17.6 kB
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/Workflows/WorkflowScene 103 kB
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/WorkflowsScene 59.7 kB
frontend/dist-report/posthog-app/src/index 61.3 kB
frontend/dist-report/posthog-app/src/layout/panel-layout/ai-first/tabs/NavTabChat 8.35 kB
frontend/dist-report/posthog-app/src/lib/components/AppShortcuts/utils/DebugCHQueriesImpl 19 kB
frontend/dist-report/posthog-app/src/lib/components/Cards/TextCard/TextCardMarkdownEditor 10.5 kB
frontend/dist-report/posthog-app/src/lib/components/MonacoDiffEditor 499 B
frontend/dist-report/posthog-app/src/lib/lemon-ui/LemonMarkdown/MermaidDiagram 1.89 kB
frontend/dist-report/posthog-app/src/lib/lemon-ui/LemonTextArea/LemonTextAreaMarkdown 688 B
frontend/dist-report/posthog-app/src/lib/lemon-ui/Link/Link 347 B
frontend/dist-report/posthog-app/src/lib/monaco/CodeEditorInline 717 B
frontend/dist-report/posthog-app/src/lib/monaco/vimMode 211 kB
frontend/dist-report/posthog-app/src/lib/ui/Button/ButtonPrimitives 414 B
frontend/dist-report/posthog-app/src/queries/nodes/WebVitals/WebVitals 8.54 kB
frontend/dist-report/posthog-app/src/queries/nodes/WebVitals/WebVitalsPathBreakdown 5.37 kB
frontend/dist-report/posthog-app/src/queries/Query/Query 2.16 kB
frontend/dist-report/posthog-app/src/queries/schema 899 kB
frontend/dist-report/posthog-app/src/scenes/activity/explore/EventsScene 4.31 kB
frontend/dist-report/posthog-app/src/scenes/activity/explore/SessionsScene 5.65 kB
frontend/dist-report/posthog-app/src/scenes/activity/live/LiveEventsTable 6.69 kB
frontend/dist-report/posthog-app/src/scenes/agentic/AgenticAuthorize 5.41 kB
frontend/dist-report/posthog-app/src/scenes/approvals/ApprovalDetail 17.6 kB
frontend/dist-report/posthog-app/src/scenes/approvals/changeRequestsLogic 520 B
frontend/dist-report/posthog-app/src/scenes/audit-logs/AdvancedActivityLogsScene 43 kB
frontend/dist-report/posthog-app/src/scenes/AuthenticatedShell 211 kB
frontend/dist-report/posthog-app/src/scenes/authentication/account/AccountConnected 2.93 kB
frontend/dist-report/posthog-app/src/scenes/authentication/account/AgenticAccountMismatch 2.32 kB
frontend/dist-report/posthog-app/src/scenes/authentication/account/credential-review/CredentialReview 4.9 kB
frontend/dist-report/posthog-app/src/scenes/authentication/cli/CLIAuthorize 11.2 kB
frontend/dist-report/posthog-app/src/scenes/authentication/cli/CLILive 3.95 kB
frontend/dist-report/posthog-app/src/scenes/authentication/email-mfa-verify/EmailMFAVerify 2.94 kB
frontend/dist-report/posthog-app/src/scenes/authentication/invite-signup/InviteSignup 1.2 kB
frontend/dist-report/posthog-app/src/scenes/authentication/login-2fa/Login2FA 4.64 kB
frontend/dist-report/posthog-app/src/scenes/authentication/login/Login 1.21 kB
frontend/dist-report/posthog-app/src/scenes/authentication/password-reset/PasswordReset 4.36 kB
frontend/dist-report/posthog-app/src/scenes/authentication/password-reset/PasswordResetComplete 2.92 kB
frontend/dist-report/posthog-app/src/scenes/authentication/shared/passkeyLogic 500 B
frontend/dist-report/posthog-app/src/scenes/authentication/signup/SignupContainer 1.18 kB
frontend/dist-report/posthog-app/src/scenes/authentication/two-factor-reset/TwoFactorReset 3.94 kB
frontend/dist-report/posthog-app/src/scenes/authentication/vercel/VercelConnect 4.92 kB
frontend/dist-report/posthog-app/src/scenes/authentication/vercel/VercelLinkError 2.2 kB
frontend/dist-report/posthog-app/src/scenes/authentication/verify-email/VerifyEmail 4.68 kB
frontend/dist-report/posthog-app/src/scenes/billing/AuthorizationStatus 662 B
frontend/dist-report/posthog-app/src/scenes/billing/Billing 615 B
frontend/dist-report/posthog-app/src/scenes/billing/BillingSection 22 kB
frontend/dist-report/posthog-app/src/scenes/cohorts/Cohort 28.7 kB
frontend/dist-report/posthog-app/src/scenes/cohorts/CohortCalculationHistory 7.83 kB
frontend/dist-report/posthog-app/src/scenes/cohorts/Cohorts 10.7 kB
frontend/dist-report/posthog-app/src/scenes/coupons/Coupons 793 B
frontend/dist-report/posthog-app/src/scenes/dashboard/Dashboard 3.03 kB
frontend/dist-report/posthog-app/src/scenes/dashboard/dashboards/Dashboards 20.4 kB
frontend/dist-report/posthog-app/src/scenes/dashboard/dashboards/templates/DashboardTemplateCopyScene 7.29 kB
frontend/dist-report/posthog-app/src/scenes/data-management/DataManagementScene 2.33 kB
frontend/dist-report/posthog-app/src/scenes/data-management/definition/DefinitionEdit 18.9 kB
frontend/dist-report/posthog-app/src/scenes/data-management/definition/DefinitionView 27.1 kB
frontend/dist-report/posthog-app/src/scenes/data-management/MaterializedColumns/MaterializedColumns 13.1 kB
frontend/dist-report/posthog-app/src/scenes/data-management/variables/SqlVariableEditScene 8.77 kB
frontend/dist-report/posthog-app/src/scenes/data-pipelines/batch-exports/BatchExportScene 66.6 kB
frontend/dist-report/posthog-app/src/scenes/data-pipelines/DataPipelinesNewScene 3.97 kB
frontend/dist-report/posthog-app/src/scenes/data-pipelines/DestinationsScene 4.31 kB
frontend/dist-report/posthog-app/src/scenes/data-pipelines/event-filtering/EventFilterScene 23.1 kB
frontend/dist-report/posthog-app/src/scenes/data-pipelines/legacy-plugins/LegacyPluginScene 21.9 kB
frontend/dist-report/posthog-app/src/scenes/data-pipelines/TransformationsScene 3.52 kB
frontend/dist-report/posthog-app/src/scenes/data-pipelines/WebScriptsScene 4.17 kB
frontend/dist-report/posthog-app/src/scenes/data-warehouse/DataWarehouseScene 3.11 kB
frontend/dist-report/posthog-app/src/scenes/data-warehouse/editor/EditorScene 2.78 kB
frontend/dist-report/posthog-app/src/scenes/debug/DebugScene 21.1 kB
frontend/dist-report/posthog-app/src/scenes/debug/hog/HogRepl 8.98 kB
frontend/dist-report/posthog-app/src/scenes/experiments/Experiment 211 kB
frontend/dist-report/posthog-app/src/scenes/experiments/Experiments 22.3 kB
frontend/dist-report/posthog-app/src/scenes/experiments/SharedMetrics/SharedMetric 7.56 kB
frontend/dist-report/posthog-app/src/scenes/experiments/SharedMetrics/SharedMetrics 2.25 kB
frontend/dist-report/posthog-app/src/scenes/exports/ExportsScene 5.6 kB
frontend/dist-report/posthog-app/src/scenes/feature-flags/FeatureFlag 110 kB
frontend/dist-report/posthog-app/src/scenes/feature-flags/FeatureFlags 2.44 kB
frontend/dist-report/posthog-app/src/scenes/groups/Group 16.2 kB
frontend/dist-report/posthog-app/src/scenes/groups/Groups 5.29 kB
frontend/dist-report/posthog-app/src/scenes/groups/GroupsNew 8.88 kB
frontend/dist-report/posthog-app/src/scenes/health-alerts/HealthAlertsScene 5.4 kB
frontend/dist-report/posthog-app/src/scenes/health/categoryDetail/HealthCategoryDetailScene 8.83 kB
frontend/dist-report/posthog-app/src/scenes/health/HealthScene 12.7 kB
frontend/dist-report/posthog-app/src/scenes/health/pipelineStatus/PipelineStatusScene 12.6 kB
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapNewScene 6.54 kB
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapRecordingScene 5.52 kB
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapScene 8.09 kB
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmaps/HeatmapsScene 5.42 kB
frontend/dist-report/posthog-app/src/scenes/hog-functions/HogFunctionScene 55.9 kB
frontend/dist-report/posthog-app/src/scenes/inbox/InboxScene 64.1 kB
frontend/dist-report/posthog-app/src/scenes/insights/InsightQuickStart/InsightQuickStart 7.02 kB
frontend/dist-report/posthog-app/src/scenes/insights/InsightScene 35.7 kB
frontend/dist-report/posthog-app/src/scenes/insights/views/BoxPlot/BoxPlot 6.51 kB
frontend/dist-report/posthog-app/src/scenes/insights/views/CalendarHeatMap/CalendarHeatMap 9.8 kB
frontend/dist-report/posthog-app/src/scenes/insights/views/RegionMap/RegionMap 30.8 kB
frontend/dist-report/posthog-app/src/scenes/insights/views/WorldMap/WorldMap 6.18 kB
frontend/dist-report/posthog-app/src/scenes/instance/AsyncMigrations/AsyncMigrations 14.5 kB
frontend/dist-report/posthog-app/src/scenes/instance/DeadLetterQueue/DeadLetterQueue 6.94 kB
frontend/dist-report/posthog-app/src/scenes/instance/QueryPerformance/QueryPerformance 10.2 kB
frontend/dist-report/posthog-app/src/scenes/instance/SystemStatus/SystemStatus 18.3 kB
frontend/dist-report/posthog-app/src/scenes/IntegrationsRedirect/IntegrationsRedirect 752 B
frontend/dist-report/posthog-app/src/scenes/marketing-analytics/MarketingAnalyticsScene 42.4 kB
frontend/dist-report/posthog-app/src/scenes/max/Max 2.38 kB
frontend/dist-report/posthog-app/src/scenes/models/ModelsScene 19.8 kB
frontend/dist-report/posthog-app/src/scenes/models/NodeDetailScene 17.7 kB
frontend/dist-report/posthog-app/src/scenes/moveToPostHogCloud/MoveToPostHogCloud 4.4 kB
frontend/dist-report/posthog-app/src/scenes/new-tab/NewTabScene 3.17 kB
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookCanvasScene 5.08 kB
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookPanel/NotebookPanel 7.02 kB
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookScene 10.2 kB
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebooksScene 8.96 kB
frontend/dist-report/posthog-app/src/scenes/oauth/OAuthAuthorize 708 B
frontend/dist-report/posthog-app/src/scenes/onboarding/coupon/OnboardingCouponRedemption 1.23 kB
frontend/dist-report/posthog-app/src/scenes/onboarding/Onboarding 789 kB
frontend/dist-report/posthog-app/src/scenes/onboarding/sdks/SdkHealthScene 9.37 kB
frontend/dist-report/posthog-app/src/scenes/organization/ConfirmOrganization/ConfirmOrganization 4.4 kB
frontend/dist-report/posthog-app/src/scenes/organization/Create/Create 602 B
frontend/dist-report/posthog-app/src/scenes/organization/Deactivated 1.06 kB
frontend/dist-report/posthog-app/src/scenes/organization/PendingDeletion 2.1 kB
frontend/dist-report/posthog-app/src/scenes/persons/PersonScene 21 kB
frontend/dist-report/posthog-app/src/scenes/persons/PersonsScene 7.02 kB
frontend/dist-report/posthog-app/src/scenes/PreflightCheck/PreflightCheck 5.46 kB
frontend/dist-report/posthog-app/src/scenes/product-tours/ProductTour 268 kB
frontend/dist-report/posthog-app/src/scenes/product-tours/ProductTours 6.24 kB
frontend/dist-report/posthog-app/src/scenes/project-homepage/ProjectHomepage 20 kB
frontend/dist-report/posthog-app/src/scenes/project/Create/Create 795 B
frontend/dist-report/posthog-app/src/scenes/project/PendingDeletion 2.43 kB
frontend/dist-report/posthog-app/src/scenes/resource-transfer/ResourceTransfer 10.8 kB
frontend/dist-report/posthog-app/src/scenes/saved-insights/SavedInsights 2.35 kB
frontend/dist-report/posthog-app/src/scenes/session-recordings/detail/SessionRecordingDetail 3.38 kB
frontend/dist-report/posthog-app/src/scenes/session-recordings/file-playback/SessionRecordingFilePlaybackScene 5.99 kB
frontend/dist-report/posthog-app/src/scenes/session-recordings/kiosk/SessionRecordingsKiosk 11.5 kB
frontend/dist-report/posthog-app/src/scenes/session-recordings/player/snapshot-processing/DecompressionWorkerManager 323 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/playlist/SessionRecordingsPlaylistScene 6.44 kB
frontend/dist-report/posthog-app/src/scenes/session-recordings/SessionRecordings 2.37 kB
frontend/dist-report/posthog-app/src/scenes/session-recordings/settings/SessionRecordingsSettingsScene 3.54 kB
frontend/dist-report/posthog-app/src/scenes/sessions/SessionProfileScene 16.5 kB
frontend/dist-report/posthog-app/src/scenes/settings/SettingsScene 5.28 kB
frontend/dist-report/posthog-app/src/scenes/sites/Site 1.47 kB
frontend/dist-report/posthog-app/src/scenes/startups/StartupProgram 21 kB
frontend/dist-report/posthog-app/src/scenes/StripeConfirmInstall/StripeConfirmInstall 3.5 kB
frontend/dist-report/posthog-app/src/scenes/subscriptions/SubscriptionScene 17.8 kB
frontend/dist-report/posthog-app/src/scenes/subscriptions/SubscriptionsScene 6.88 kB
frontend/dist-report/posthog-app/src/scenes/surveys/forms/SurveyFormBuilder 3.19 kB
frontend/dist-report/posthog-app/src/scenes/surveys/Survey 2.72 kB
frontend/dist-report/posthog-app/src/scenes/surveys/Surveys 27.4 kB
frontend/dist-report/posthog-app/src/scenes/surveys/wizard/SurveyWizard 73.1 kB
frontend/dist-report/posthog-app/src/scenes/themes/CustomCssScene 5.17 kB
frontend/dist-report/posthog-app/src/scenes/toolbar-launch/ToolbarLaunch 4.06 kB
frontend/dist-report/posthog-app/src/scenes/Unsubscribe/Unsubscribe 1.61 kB
frontend/dist-report/posthog-app/src/scenes/web-analytics/SessionAttributionExplorer/SessionAttributionExplorerScene 8.09 kB
frontend/dist-report/posthog-app/src/scenes/web-analytics/WebAnalyticsScene 16 kB
frontend/dist-report/posthog-app/src/scenes/wizard/Wizard 4.34 kB
frontend/dist-report/posthog-app/src/sharedChunkAnchors 1.29 kB
frontend/dist-report/render-query/src/render-query/render-query 27.4 MB
frontend/dist-report/toolbar/src/toolbar/toolbar 10.4 MB

compressed-size-action

@greptile-apps

greptile-apps Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Comments Outside Diff (1)

  1. products/metrics/backend/presentation/api.py, line 213-214 (link)

    P2 Stale comment — group_by is implemented in this PR, so it should no longer appear in the "arrive in later PRs" list. Only formula remains deferred.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: products/metrics/backend/presentation/api.py
    Line: 213-214
    
    Comment:
    Stale comment — `group_by` is implemented in this PR, so it should no longer appear in the "arrive in later PRs" list. Only `formula` remains deferred.
    
    
    
    How can I resolve this? If you propose a fix, please make it concise.

    Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
products/metrics/backend/presentation/api.py:213-214
Stale comment — `group_by` is implemented in this PR, so it should no longer appear in the "arrive in later PRs" list. Only `formula` remains deferred.

```suggestion
        # The wire aggregation "p95" is contract QUANTILE(0.95); the richer
        # request fields (interval, filters, group_by) are now live; formula
        # arrives in a later PR.
```

Reviews (1): Last reviewed commit: "feat(metrics): group_by on a shared, zer..." | Re-trigger Greptile

default=list,
help_text="Labels to split the result into separate series by. Series share one time grid and are capped at the 100 largest.",
)
interval = serializers.ChoiceField(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Medium: Unbounded metrics query aggregation

A user with metrics:read can submit interval: "second" over a very wide dateFrom/dateTo range, optionally with many groupBy entries, and force ClickHouse to build a high-cardinality grouped time grid. The LIMIT 10000 in the query and MAX_SERIES_PER_CLAUSE in the facade apply after aggregation, so they don't bound the work done by the database; reject explicit intervals whose bucket count exceeds a server-side cap and cap the number of group-by dimensions before constructing the query.

@veria-ai

veria-ai Bot commented Jun 11, 2026

Copy link
Copy Markdown

PR overview

This pull request adds grouped metrics queries over a shared, zero-filled interval grid, enabling results to be bucketed consistently across time ranges and group-by dimensions. The backend metrics API is being updated to construct these interval-based aggregations for client requests.

There is one open security concern: metrics readers can request very fine-grained intervals across large date ranges, potentially combined with multiple group-by fields, causing expensive high-cardinality aggregation work in ClickHouse before result limits take effect. This creates a concrete resource-exhaustion risk for the metrics backend until server-side caps are applied to bucket counts and group-by dimensions. No issues have been fixed yet, so the PR still needs a bounding control before it is in a good security state.

Open issues (1)

Fixed/addressed: 0 · PR risk: 6/10

@DanielVisca DanielVisca force-pushed the posthog-code/metrics-ql3-label-filters branch from cf2ee47 to 8465408 Compare June 11, 2026 21:33
@DanielVisca DanielVisca force-pushed the posthog-code/metrics-ql4-group-by branch from d70e0ae to 22d92bf Compare June 11, 2026 21:33
@DanielVisca DanielVisca force-pushed the posthog-code/metrics-ql3-label-filters branch from 8465408 to 9dc3731 Compare June 11, 2026 22:04
@DanielVisca DanielVisca force-pushed the posthog-code/metrics-ql4-group-by branch from 22d92bf to 7762afe Compare June 11, 2026 22:05
@DanielVisca DanielVisca added the stamphog Request AI review from stamphog label Jun 11, 2026 — with Graphite App

@stamphog stamphog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bot reviewer raised a substantive unresolved concern: passing interval: "second" with a wide date range forces ClickHouse to aggregate across millions of time buckets before any limit applies — MAX_SERIES_PER_CLAUSE=100 and LIMIT 10000 only truncate the output, not the DB work. The current diff adds no bucket-count validation, so the vulnerability is still present.

@stamphog stamphog Bot removed the stamphog Request AI review from stamphog label Jun 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🕸️ Eager graph

How much code each root forces the browser to download and decode through static imports — the regression class total bundle size can't see.

Root Eager closure Δ vs base Budget
entry (logged-out pages, app bootstrap)
src/index.tsx
14.59 MiB · 749 files no change █████████░ 90.0% of 16.21 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
55.50 MiB · 8,325 files no change █████████░ 90.9% of 61.04 MiB

node_modules/monaco-editor/ stays out of src/index.tsx

Largest files eagerly reachable from src/index.tsx
Size File
878.2 KiB src/styles/global.scss
609.0 KiB public/hedgehog/burning-money-hog.png
541.9 KiB public/hedgehog/waving-hog.png
448.2 KiB public/hedgehog/stop-sign-hog.png
362.0 KiB public/hedgehog/phone-pair-hogs.png
354.8 KiB ../node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
335.6 KiB public/hedgehog/desk-hog.png
323.2 KiB public/hedgehog/3-bears-hogs.png
297.4 KiB src/taxonomy/core-filter-definitions-by-group.json
285.8 KiB src/lib/api.ts
Largest files eagerly reachable from src/scenes/AuthenticatedShell.tsx
Size File
878.2 KiB src/styles/global.scss
760.0 KiB src/queries/validators.js
609.0 KiB public/hedgehog/burning-money-hog.png
541.9 KiB public/hedgehog/waving-hog.png
448.2 KiB public/hedgehog/stop-sign-hog.png
398.7 KiB ../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chart.js
362.0 KiB public/hedgehog/phone-pair-hogs.png
354.8 KiB ../node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
335.6 KiB public/hedgehog/desk-hog.png
323.2 KiB public/hedgehog/3-bears-hogs.png

Posted automatically by check-eager-graph · sizes are input-source bytes from the esbuild metafile · part of #32479

groupBy: [{key, scope}] splits a clause into one series per label-set.
All series share one bucket grid (union of observed buckets, zero-filled)
so cross-series and future cross-clause formula math line up; interval
moves onto the request (explicit choice or auto ~60 buckets). Series per
clause are capped at the 100 largest by summed |value|.

Also names the metrics scope/interval enums via ENUM_NAME_OVERRIDES
(scope collided between the filter and group-by serializers; the new
interval field surfaced a pre-existing BatchExport interval collision,
now BatchExportIntervalEnum).

How to validate manually:
- hogli test products/metrics/backend/tests/ (74 tests)
- with the local pipe running: POST /metrics/query with
  {"groupBy": [{"key": "service_name"}], "interval": "minute_5"}
  for nodejs_eventloop_lag_seconds returns one series per scraped
  service on identical timestamps
@DanielVisca DanielVisca force-pushed the posthog-code/metrics-ql3-label-filters branch from 9dc3731 to 4facf57 Compare June 11, 2026 22:35
@DanielVisca DanielVisca force-pushed the posthog-code/metrics-ql4-group-by branch from 7762afe to b3943ad Compare June 11, 2026 22:36
@github-actions

Copy link
Copy Markdown
Contributor

🎭 Playwright report

⚠️ 1 flaky test:

  • Save an insight, make changes, discard them, and save a copy (chromium)

These issues are not necessarily caused by your changes.
Annoyed by this comment? Help fix flakies and failures and it'll disappear!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant