Skip to content

feat(customer-analytics): add sum aggregation to usage metrics#54346

Merged
arthurdedeus merged 8 commits intomasterfrom
posthog-code/usage-metric-sum-aggregation-backend
Apr 22, 2026
Merged

feat(customer-analytics): add sum aggregation to usage metrics#54346
arthurdedeus merged 8 commits intomasterfrom
posthog-code/usage-metric-sum-aggregation-backend

Conversation

@arthurdedeus
Copy link
Copy Markdown
Contributor

@arthurdedeus arthurdedeus commented Apr 13, 2026

Problem

Usage metrics in Customer analytics only support counting events. Users need the ability to aggregate by property values (e.g., sum of revenue or tokens) to track non-count-based metrics.

Changes

Added math field to GroupUsageMetric model and update CRUD. Also enabled openapi schema generation for usage metrics endpoint

Calculation options in usage metrics form with properties to sum showing conditionally

image

How did you test this code?

New parameterized tests in test_usage_metrics_query_runner.py cover both count and sum aggregation paths, including the generated SQL snapshots.

Manual tests in the UI

Publish to changelog?

Yes

Docs update

Usage metrics needs its own concept section in Customer analytics docs, covering everything the feature does, not only this PR additions.

🤖 LLM context

Agent-authored PR. Backend half of a stacked PR — frontend changes follow in a dependent PR.


Created with PostHog Code

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 13, 2026

Size Change: 0 B

Total Size: 130 MB

ℹ️ View Unchanged
Filename Size
frontend/dist/368Hedgehogs 5.26 kB
frontend/dist/abap 14.2 kB
frontend/dist/AccountSocialConnected 2.2 kB
frontend/dist/Action 23.9 kB
frontend/dist/Actions 1.02 kB
frontend/dist/AdvancedActivityLogsScene 35.6 kB
frontend/dist/AgenticAuthorize 5.25 kB
frontend/dist/apex 3.95 kB
frontend/dist/ApprovalDetail 16.2 kB
frontend/dist/array.full.es5.js 337 kB
frontend/dist/array.full.js 430 kB
frontend/dist/array.js 186 kB
frontend/dist/AsyncMigrations 13.1 kB
frontend/dist/AuthorizationStatus 716 B
frontend/dist/azcli 846 B
frontend/dist/bat 1.84 kB
frontend/dist/BatchExportScene 60.5 kB
frontend/dist/bicep 2.55 kB
frontend/dist/Billing 493 B
frontend/dist/BillingSection 20.8 kB
frontend/dist/BoxPlot 5.04 kB
frontend/dist/browserAll-0QZMN1W2 37.4 kB
frontend/dist/ButtonPrimitives 562 B
frontend/dist/CalendarHeatMap 4.79 kB
frontend/dist/cameligo 2.18 kB
frontend/dist/changeRequestsLogic 544 B
frontend/dist/CLIAuthorize 11.4 kB
frontend/dist/CLILive 4.01 kB
frontend/dist/clojure 9.64 kB
frontend/dist/coffee 3.59 kB
frontend/dist/Cohort 24.8 kB
frontend/dist/CohortCalculationHistory 6.22 kB
frontend/dist/Cohorts 9.39 kB
frontend/dist/ConfirmOrganization 4.51 kB
frontend/dist/conversations.js 65.8 kB
frontend/dist/Coupons 720 B
frontend/dist/cpp 5.3 kB
frontend/dist/Create 655 B
frontend/dist/crisp-chat-integration.js 1.88 kB
frontend/dist/csharp 4.52 kB
frontend/dist/csp 1.42 kB
frontend/dist/css 4.51 kB
frontend/dist/cssMode 4.15 kB
frontend/dist/CustomCssScene 3.55 kB
frontend/dist/CustomerAnalyticsConfigurationScene 2.06 kB
frontend/dist/CustomerAnalyticsScene 26.5 kB
frontend/dist/CustomerJourneyBuilderScene 1.83 kB
frontend/dist/CustomerJourneyTemplatesScene 7.51 kB
frontend/dist/customizations.full.js 17.9 kB
frontend/dist/CyclotronJobInputAssignee 1.32 kB
frontend/dist/CyclotronJobInputBusinessHours 2.71 kB
frontend/dist/CyclotronJobInputTicketTags 711 B
frontend/dist/cypher 3.38 kB
frontend/dist/dart 4.25 kB
frontend/dist/Dashboard 1.14 kB
frontend/dist/Dashboards 22 kB
frontend/dist/DashboardTemplateCopyScene 5.7 kB
frontend/dist/DataManagementScene 646 B
frontend/dist/DataPipelinesNewScene 2.32 kB
frontend/dist/DataWarehouseScene 1.29 kB
frontend/dist/Deactivated 1.13 kB
frontend/dist/dead-clicks-autocapture.js 13.1 kB
frontend/dist/DeadLetterQueue 5.38 kB
frontend/dist/DebugScene 20 kB
frontend/dist/decompressionWorker 2.85 kB
frontend/dist/decompressionWorker.js 2.85 kB
frontend/dist/DefinitionEdit 7.11 kB
frontend/dist/DefinitionView 22.7 kB
frontend/dist/DestinationsScene 2.71 kB
frontend/dist/dist 575 B
frontend/dist/dockerfile 1.87 kB
frontend/dist/EarlyAccessFeature 753 B
frontend/dist/EarlyAccessFeatures 2.84 kB
frontend/dist/ecl 5.33 kB
frontend/dist/EditorScene 891 B
frontend/dist/elixir 10.3 kB
frontend/dist/elk.bundled 1.44 MB
frontend/dist/EmailMFAVerify 3.01 kB
frontend/dist/EndpointScene 37.5 kB
frontend/dist/EndpointsScene 22.1 kB
frontend/dist/ErrorTrackingIssueFingerprintsScene 6.98 kB
frontend/dist/ErrorTrackingIssueScene 95.6 kB
frontend/dist/ErrorTrackingScene 22.6 kB
frontend/dist/EvaluationTemplates 575 B
frontend/dist/EventsScene 2.57 kB
frontend/dist/exception-autocapture.js 11.8 kB
frontend/dist/Experiment 218 kB
frontend/dist/Experiments 18.2 kB
frontend/dist/exporter 21 MB
frontend/dist/exporter.js 21 MB
frontend/dist/ExportsScene 3.98 kB
frontend/dist/FeatureFlag 128 kB
frontend/dist/FeatureFlags 606 B
frontend/dist/FeatureFlagTemplatesScene 7.03 kB
frontend/dist/FlappyHog 5.78 kB
frontend/dist/flow9 1.8 kB
frontend/dist/freemarker2 16.7 kB
frontend/dist/fsharp 2.98 kB
frontend/dist/go 2.65 kB
frontend/dist/graphql 2.26 kB
frontend/dist/Group 14.4 kB
frontend/dist/Groups 3.91 kB
frontend/dist/GroupsNew 7.34 kB
frontend/dist/handlebars 7.34 kB
frontend/dist/hcl 3.59 kB
frontend/dist/HealthCategoryDetailScene 7.23 kB
frontend/dist/HealthScene 10.6 kB
frontend/dist/HeatmapNewScene 4.16 kB
frontend/dist/HeatmapRecordingScene 3.92 kB
frontend/dist/HeatmapScene 5.88 kB
frontend/dist/HeatmapsScene 3.88 kB
frontend/dist/hls 394 kB
frontend/dist/HogFunctionScene 59.3 kB
frontend/dist/HogRepl 7.37 kB
frontend/dist/html 5.58 kB
frontend/dist/htmlMode 4.62 kB
frontend/dist/image-blob-reduce.esm 49.4 kB
frontend/dist/InboxScene 59.8 kB
frontend/dist/index 306 kB
frontend/dist/index.js 306 kB
frontend/dist/ini 1.1 kB
frontend/dist/InsightQuickStart 5.42 kB
frontend/dist/InsightScene 28.8 kB
frontend/dist/IntegrationsRedirect 733 B
frontend/dist/intercom-integration.js 1.93 kB
frontend/dist/InviteSignup 14.4 kB
frontend/dist/java 3.22 kB
frontend/dist/javascript 985 B
frontend/dist/jsonMode 13.9 kB
frontend/dist/julia 7.22 kB
frontend/dist/kotlin 3.4 kB
frontend/dist/lazy 158 kB
frontend/dist/LegacyPluginScene 26.6 kB
frontend/dist/LegalDocumentNewScene 44.2 kB
frontend/dist/LegalDocumentsScene 4.34 kB
frontend/dist/LemonTextAreaMarkdown 502 B
frontend/dist/less 3.9 kB
frontend/dist/lexon 2.44 kB
frontend/dist/lib 2.22 kB
frontend/dist/Link 468 B
frontend/dist/LinkScene 24.8 kB
frontend/dist/LinksScene 4.19 kB
frontend/dist/liquid 4.53 kB
frontend/dist/LiveDebugger 19.1 kB
frontend/dist/LiveEventsTable 3.22 kB
frontend/dist/LLMAnalyticsClusterScene 15.7 kB
frontend/dist/LLMAnalyticsClustersScene 43.1 kB
frontend/dist/LLMAnalyticsDatasetScene 19.7 kB
frontend/dist/LLMAnalyticsDatasetsScene 3.28 kB
frontend/dist/LLMAnalyticsEvaluation 59.4 kB
frontend/dist/LLMAnalyticsEvaluationsScene 29.8 kB
frontend/dist/LLMAnalyticsPlaygroundScene 36.3 kB
frontend/dist/LLMAnalyticsScene 118 kB
frontend/dist/LLMAnalyticsSessionScene 13.4 kB
frontend/dist/LLMAnalyticsTraceScene 129 kB
frontend/dist/LLMAnalyticsUsers 526 B
frontend/dist/LLMASessionFeedbackDisplay 4.83 kB
frontend/dist/LLMPromptScene 17.5 kB
frontend/dist/LLMPromptsScene 4.47 kB
frontend/dist/LLMSkillScene 589 B
frontend/dist/LLMSkillsScene 606 B
frontend/dist/Login 8.61 kB
frontend/dist/Login2FA 4.24 kB
frontend/dist/logs.js 38.5 kB
frontend/dist/LogsScene 11.4 kB
frontend/dist/lua 2.11 kB
frontend/dist/m3 2.81 kB
frontend/dist/main 819 kB
frontend/dist/ManagedMigration 14.1 kB
frontend/dist/markdown 3.79 kB
frontend/dist/MarketingAnalyticsScene 39.7 kB
frontend/dist/MaterializedColumns 10.2 kB
frontend/dist/Max 801 B
frontend/dist/mdx 5.39 kB
frontend/dist/memlens.lib.bundle 27.8 kB
frontend/dist/MessageTemplate 16.3 kB
frontend/dist/MetricsScene 828 B
frontend/dist/mips 2.58 kB
frontend/dist/ModelsScene 13.6 kB
frontend/dist/MonacoDiffEditor 403 B
frontend/dist/monacoEditorWorker 288 kB
frontend/dist/monacoEditorWorker.js 288 kB
frontend/dist/monacoJsonWorker 419 kB
frontend/dist/monacoJsonWorker.js 419 kB
frontend/dist/monacoTsWorker 7.02 MB
frontend/dist/monacoTsWorker.js 7.02 MB
frontend/dist/MoveToPostHogCloud 4.46 kB
frontend/dist/msdax 4.91 kB
frontend/dist/mysql 11.3 kB
frontend/dist/NavTabChat 4.68 kB
frontend/dist/NewSourceScene 783 B
frontend/dist/NewTabScene 647 B
frontend/dist/NodeDetailScene 16.3 kB
frontend/dist/NotebookCanvasScene 3.16 kB
frontend/dist/NotebookPanel 5.14 kB
frontend/dist/NotebookScene 8.17 kB
frontend/dist/NotebooksScene 7.58 kB
frontend/dist/OAuthAuthorize 573 B
frontend/dist/objective-c 2.41 kB
frontend/dist/Onboarding 734 kB
frontend/dist/OnboardingCouponRedemption 1.2 kB
frontend/dist/pascal 2.99 kB
frontend/dist/pascaligo 2 kB
frontend/dist/passkeyLogic 484 B
frontend/dist/PasswordReset 4.35 kB
frontend/dist/PasswordResetComplete 2.97 kB
frontend/dist/PendingDeletion 2.21 kB
frontend/dist/perl 8.25 kB
frontend/dist/PersonScene 16 kB
frontend/dist/PersonsScene 4.68 kB
frontend/dist/pgsql 13.5 kB
frontend/dist/php 8.02 kB
frontend/dist/PipelineStatusScene 9.1 kB
frontend/dist/pla 1.67 kB
frontend/dist/posthog 144 kB
frontend/dist/postiats 7.86 kB
frontend/dist/powerquery 16.9 kB
frontend/dist/powershell 3.27 kB
frontend/dist/PreflightCheck 5.56 kB
frontend/dist/product-tours.js 115 kB
frontend/dist/ProductTour 273 kB
frontend/dist/ProductTours 4.68 kB
frontend/dist/ProjectHomepage 40.8 kB
frontend/dist/protobuf 9.05 kB
frontend/dist/pug 4.82 kB
frontend/dist/python 4.76 kB
frontend/dist/qsharp 3.19 kB
frontend/dist/QueryPerformance 6.99 kB
frontend/dist/r 3.12 kB
frontend/dist/razor 9.35 kB
frontend/dist/recorder-v2.js 111 kB
frontend/dist/recorder.js 111 kB
frontend/dist/redis 3.55 kB
frontend/dist/redshift 11.8 kB
frontend/dist/RegionMap 29.4 kB
frontend/dist/render-query 20.6 MB
frontend/dist/render-query.js 20.6 MB
frontend/dist/ResourceTransfer 9.17 kB
frontend/dist/restructuredtext 3.9 kB
frontend/dist/RevenueAnalyticsScene 25.6 kB
frontend/dist/ruby 8.5 kB
frontend/dist/rust 4.16 kB
frontend/dist/SavedInsights 664 B
frontend/dist/sb 1.82 kB
frontend/dist/scala 7.32 kB
frontend/dist/scheme 1.76 kB
frontend/dist/scss 6.41 kB
frontend/dist/SdkDoctorScene 9.4 kB
frontend/dist/SessionAttributionExplorerScene 6.62 kB
frontend/dist/SessionGroupSummariesTable 4.62 kB
frontend/dist/SessionGroupSummaryScene 17 kB
frontend/dist/SessionProfileScene 15 kB
frontend/dist/SessionRecordingDetail 1.75 kB
frontend/dist/SessionRecordingFilePlaybackScene 4.46 kB
frontend/dist/SessionRecordings 742 B
frontend/dist/SessionRecordingsKiosk 8.84 kB
frontend/dist/SessionRecordingsPlaylistScene 4.14 kB
frontend/dist/SessionRecordingsSettingsScene 1.9 kB
frontend/dist/SessionsScene 3.98 kB
frontend/dist/SettingsScene 2.98 kB
frontend/dist/SharedMetric 4.83 kB
frontend/dist/SharedMetrics 549 B
frontend/dist/shell 3.07 kB
frontend/dist/SignupContainer 25.8 kB
frontend/dist/Site 1.18 kB
frontend/dist/solidity 18.6 kB
frontend/dist/sophia 2.76 kB
frontend/dist/SourceScene 758 B
frontend/dist/SourcesScene 6.1 kB
frontend/dist/sparql 2.55 kB
frontend/dist/sql 10.3 kB
frontend/dist/SqlVariableEditScene 7.24 kB
frontend/dist/st 7.4 kB
frontend/dist/StartupProgram 21.2 kB
frontend/dist/SubscriptionScene 12.8 kB
frontend/dist/SubscriptionsScene 4.89 kB
frontend/dist/SupportSettingsScene 1.16 kB
frontend/dist/SupportTicketScene 24.6 kB
frontend/dist/SupportTicketsScene 733 B
frontend/dist/Survey 848 B
frontend/dist/SurveyFormBuilder 1.54 kB
frontend/dist/Surveys 18.2 kB
frontend/dist/surveys.js 90.7 kB
frontend/dist/SurveyWizard 64.3 kB
frontend/dist/swift 5.26 kB
frontend/dist/SystemStatus 16.8 kB
frontend/dist/systemverilog 7.61 kB
frontend/dist/TaskDetailScene 22.3 kB
frontend/dist/TaskTracker 13.2 kB
frontend/dist/tcl 3.57 kB
frontend/dist/TextCardMarkdownEditor 11 kB
frontend/dist/toolbar 10.7 MB
frontend/dist/toolbar.js 10.7 MB
frontend/dist/ToolbarLaunch 2.52 kB
frontend/dist/tracing-headers.js 1.74 kB
frontend/dist/TracingScene 29.8 kB
frontend/dist/TransformationsScene 1.95 kB
frontend/dist/tsMode 24 kB
frontend/dist/twig 5.97 kB
frontend/dist/TwoFactorReset 4.02 kB
frontend/dist/typescript 240 B
frontend/dist/typespec 2.82 kB
frontend/dist/Unsubscribe 1.65 kB
frontend/dist/UserInterview 4.53 kB
frontend/dist/UserInterviews 2.01 kB
frontend/dist/vb 5.79 kB
frontend/dist/VercelConnect 4.99 kB
frontend/dist/VercelLinkError 1.94 kB
frontend/dist/VerifyEmail 4.51 kB
frontend/dist/vimMode 211 kB
frontend/dist/VisualReviewRunScene 36.8 kB
frontend/dist/VisualReviewRunsScene 6.12 kB
frontend/dist/VisualReviewSettingsScene 10.8 kB
frontend/dist/web-vitals.js 6.39 kB
frontend/dist/WebAnalyticsScene 5.77 kB
frontend/dist/WebGLRenderer-DYjOwNoG 60.3 kB
frontend/dist/WebGPURenderer-B_wkl_Ja 36.3 kB
frontend/dist/WebScriptsScene 2.57 kB
frontend/dist/webworkerAll-puPV1rBA 324 B
frontend/dist/wgsl 7.34 kB
frontend/dist/Wizard 4.45 kB
frontend/dist/WorkflowScene 101 kB
frontend/dist/WorkflowsScene 58.3 kB
frontend/dist/WorldMap 4.73 kB
frontend/dist/xml 2.98 kB
frontend/dist/yaml 4.6 kB

compressed-size-action

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 13, 2026

Migration SQL Changes

Hey 👋, we've detected some migrations on this PR. Here's the SQL output for each migration, make sure they make sense:

posthog/migrations/1113_add_math_fields_to_usage_metric.py

BEGIN;
--
-- Add field math to groupusagemetric
--
ALTER TABLE "posthog_groupusagemetric" ADD COLUMN "math" varchar(16) DEFAULT 'count' NOT NULL;
ALTER TABLE "posthog_groupusagemetric" ALTER COLUMN "math" DROP DEFAULT;
--
-- Add field math_property to groupusagemetric
--
ALTER TABLE "posthog_groupusagemetric" ADD COLUMN "math_property" varchar(255) NULL;
COMMIT;

Last updated: 2026-04-22 17:29 UTC (9eef96d)

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 13, 2026

🔍 Migration Risk Analysis

We've analyzed your migrations for potential risks.

Summary: 1 Safe | 0 Needs Review | 0 Blocked

✅ Safe

Brief or no lock, backwards compatible

posthog.1113_add_math_fields_to_usage_metric
  └─ #1 ✅ AddField
     Adding NOT NULL field with constant default (safe in PG11+)
     model: groupusagemetric, field: math
  └─ #2 ✅ AddField
     Adding nullable field requires brief lock
     model: groupusagemetric, field: math_property

📚 How to Deploy These Changes Safely

AddField:

This operation acquires a brief lock but doesn't rewrite the table.

Deployment uses lock timeouts with automatic retries, so lock contention will cause retries rather than connection pile-up.

Last updated: 2026-04-22 17:30 UTC (9eef96d)

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 13, 2026

Prompt To Fix All With AI
This is a comment left during a code review.
Path: products/customer_analytics/backend/hogql_queries/usage_metrics_query_runner.py
Line: 164-165

Comment:
**`math_property` can be `None` in the SUM branch**

The model field `math_property` is declared with `null=True, blank=True` but the query runner assumes it is always set when `math == SUM`. If a SUM metric reaches this code with `math_property=None` (e.g., created via Django admin, management command, or a direct DB write bypassing the serializer), `ast.Field(chain=["properties", None])` is constructed and the HogQL query will raise an error at execution time.

A guard that returns early (consistent with the `filter_expr == True` bail-out a few lines above) would prevent a silent 500:

```suggestion
        if metric.math == GroupUsageMetric.Math.SUM:
            if not metric.math_property:
                return None
            prop_as_float = ast.Call(name="toFloat", args=[ast.Field(chain=["properties", metric.math_property])])
```

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "chore: update OpenAPI generated types" | Re-trigger Greptile

@arthurdedeus arthurdedeus marked this pull request as draft April 13, 2026 21:01
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 13, 2026

🎭 Playwright report · View test results →

⚠️ 3 flaky tests:

  • Inline editing insight title via compact card popover (chromium)
  • Save view (chromium)
  • Materialize view pane (chromium)

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

@arthurdedeus arthurdedeus force-pushed the posthog-code/usage-metric-sum-aggregation-backend branch 2 times, most recently from 9cfe93e to d8dfc0d Compare April 14, 2026 09:53
@arthurdedeus arthurdedeus marked this pull request as ready for review April 14, 2026 09:57
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 14, 2026

Prompt To Fix All With AI
This is a comment left during a code review.
Path: products/customer_analytics/backend/hogql_queries/test/test_usage_metrics_query_runner.py
Line: 275-330

Comment:
**Non-parameterized tests repeat the same setup**

`test_sum_math_with_missing_property_returns_zero` and `test_sum_math_with_null_math_property_returns_zero` both create the same `GroupUsageMetric` (same name, format, interval, display, filters) but differ only in event properties or `math_property`. Per the team convention of preferring parameterized tests and the "OnceAndOnlyOnce" rule, these (and potentially `test_sum_math_aggregation`) could be collapsed using `@parameterized.expand`. For example:

```python
@parameterized.expand([
    ("basic_sum", "amount", {"amount": 100}, 100.0),
    ("missing_property", "amount", {}, 0.0),
])
@freeze_time("2025-10-09T12:11:00")
def test_sum_math_value(self, _name, math_property, event_props, expected_value):
    GroupUsageMetric.objects.create(
        id=self.test_metric_id, team=self.team, group_type_index=0,
        name="Revenue", format=GroupUsageMetric.Format.CURRENCY, interval=7,
        display=GroupUsageMetric.Display.NUMBER,
        filters={"events": [{"id": "purchase", "type": "events", "order": 0}]},
        math=GroupUsageMetric.Math.SUM, math_property=math_property,
    )
    _create_event(event="purchase", team=self.team, person_id=str(self.person.uuid),
                  distinct_id=self.person_distinct_id, properties=event_props)
    flush_persons_and_events()
    results = self._calculate(person_id=str(self.person.uuid))["results"]
    self.assertEqual(results[0]["value"], expected_value)
```

How can I resolve this? If you propose a fix, please make it concise.

Reviews (2): Last reviewed commit: "Merge branch 'master' into posthog-code/..." | Re-trigger Greptile

@arthurdedeus arthurdedeus force-pushed the posthog-code/usage-metric-sum-aggregation-backend branch 2 times, most recently from 60e47f4 to d8dfc0d Compare April 14, 2026 15:48
@arthurdedeus arthurdedeus removed the request for review from a team April 20, 2026 19:42
@tests-posthog
Copy link
Copy Markdown
Contributor

tests-posthog Bot commented Apr 20, 2026

⏭️ Skipped snapshot commit because branch advanced to eff1071 while workflow was testing 50a4929.

The new commit will trigger its own snapshot update workflow.

If you expected this workflow to succeed: This can happen due to concurrent commits. To get a fresh workflow run, either:

  • Merge master into your branch, or
  • Push an empty commit: git commit --allow-empty -m 'trigger CI' && git push

@blacksmith-sh
Copy link
Copy Markdown

blacksmith-sh Bot commented Apr 20, 2026

Found 2 test failures on Blacksmith runners:

Failures

Test View Logs
TestDataWarehouseManagedViewSetModel/test_sync_views_creates_views View Logs
TestSavedQueryDagSyncIntegration/test_materialize_updates_node_type View Logs

Fix in Cursor

@arthurdedeus arthurdedeus force-pushed the posthog-code/usage-metric-sum-aggregation-backend branch 2 times, most recently from e0673f4 to 659b6d3 Compare April 20, 2026 22:18
@arthurdedeus arthurdedeus self-assigned this Apr 21, 2026
@arthurdedeus arthurdedeus requested a review from a team April 22, 2026 13:43
Copy link
Copy Markdown
Member

@lricoy lricoy left a comment

Choose a reason for hiding this comment

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

🚀

nit: next time, could you post some screenshots of the feature? I know it is a bit of a hassle now, but it might help us with onboarding on the product features incrementally.

Generated-By: PostHog Code
Task-Id: 887010a6-d3c0-4a87-b260-bdbc5cb48df1
Generated-By: PostHog Code
Task-Id: 53331ac7-595f-446a-9633-ab0b8a18017d
Generated-By: PostHog Code
Task-Id: 887010a6-d3c0-4a87-b260-bdbc5cb48df1
arthurdedeus and others added 5 commits April 22, 2026 14:22
…egation

Generated-By: PostHog Code
Task-Id: 887010a6-d3c0-4a87-b260-bdbc5cb48df1
…rializer

Generated-By: PostHog Code
Task-Id: e5d85715-a2aa-4bbe-911b-a4c7ec098d4e
… merge

Generated-By: PostHog Code
Task-Id: e5d85715-a2aa-4bbe-911b-a4c7ec098d4e
@arthurdedeus arthurdedeus force-pushed the posthog-code/usage-metric-sum-aggregation-backend branch from 659b6d3 to 9eef96d Compare April 22, 2026 17:22
@arthurdedeus arthurdedeus enabled auto-merge (squash) April 22, 2026 17:40
@arthurdedeus arthurdedeus merged commit c4be7e6 into master Apr 22, 2026
245 checks passed
@arthurdedeus arthurdedeus deleted the posthog-code/usage-metric-sum-aggregation-backend branch April 22, 2026 17:50
@deployment-status-posthog
Copy link
Copy Markdown

deployment-status-posthog Bot commented Apr 22, 2026

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-04-22 18:15 UTC Run
prod-us ✅ Deployed 2026-04-22 18:31 UTC Run
prod-eu ✅ Deployed 2026-04-22 18:42 UTC Run

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.

2 participants