Skip to content

Commit

Permalink
experimental_session_count flag removal
Browse files Browse the repository at this point in the history
  • Loading branch information
macobo committed Jul 3, 2024
1 parent 53c8c6b commit 7dd2eff
Show file tree
Hide file tree
Showing 8 changed files with 6 additions and 36 deletions.
1 change: 0 additions & 1 deletion assets/js/dashboard/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ export function serializeQuery(query, extraQuery = []) {
if (query.from) { queryObj.from = formatISO(query.from) }
if (query.to) { queryObj.to = formatISO(query.to) }
if (query.filters) { queryObj.filters = serializeApiFilters(query.filters) }
if (query.experimental_session_count) { queryObj.experimental_session_count = query.experimental_session_count }
if (query.with_imported) { queryObj.with_imported = query.with_imported }
if (SHARED_LINK_AUTH) { queryObj.auth = SHARED_LINK_AUTH }

Expand Down
1 change: 0 additions & 1 deletion assets/js/dashboard/query.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ export function parseQuery(querystring, site) {
to: q.get('to') ? dayjs.utc(q.get('to')) : undefined,
match_day_of_week: matchDayOfWeek == 'true',
with_imported: q.get('with_imported') ? q.get('with_imported') === 'true' : true,
experimental_session_count: q.get('experimental_session_count'),
filters: parseJsonUrl(q.get('filters'), []),
labels: parseJsonUrl(q.get('labels'), {})
}
Expand Down
15 changes: 0 additions & 15 deletions lib/plausible/stats/query.ex
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ defmodule Plausible.Stats.Query do
include_imported: false,
skip_imported_reason: nil,
now: nil,
experimental_session_count?: false,
experimental_reduced_joins?: false,
latest_import_end_date: nil,
metrics: [],
Expand All @@ -36,7 +35,6 @@ defmodule Plausible.Stats.Query do
query =
__MODULE__
|> struct!(now: now, timezone: site.timezone)
|> put_experimental_session_count(site, params)
|> put_experimental_reduced_joins(site, params)
|> put_period(site, params)
|> put_dimensions(params)
Expand All @@ -56,26 +54,13 @@ defmodule Plausible.Stats.Query do
query =
struct!(__MODULE__, Map.to_list(query_data))
|> put_imported_opts(site, %{})
|> put_experimental_session_count(site, params)
|> put_experimental_reduced_joins(site, params)
|> struct!(v2: true)

{:ok, query}
end
end

defp put_experimental_session_count(query, site, params) do
if Map.has_key?(params, "experimental_session_count") do
struct!(query,
experimental_session_count?: Map.get(params, "experimental_session_count") == "true"
)
else
struct!(query,
experimental_session_count?: FunWithFlags.enabled?(:experimental_session_count, for: site)
)
end
end

defp put_experimental_reduced_joins(query, site, params) do
if Map.has_key?(params, "experimental_reduced_joins") do
struct!(query,
Expand Down
7 changes: 3 additions & 4 deletions lib/plausible/stats/sql/expression.ex
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ defmodule Plausible.Stats.SQL.Expression do
})
end

def dimension(key, "time:hour", :sessions, %Query{experimental_session_count?: true} = query) do
def dimension(key, "time:hour", :sessions, query) do
wrap_expression([s], %{
key => regular_time_slots(query, 3600)
})
Expand All @@ -75,8 +75,7 @@ defmodule Plausible.Stats.SQL.Expression do

# :NOTE: This is not exposed in Query APIv2
def dimension(key, "time:minute", :sessions, %Query{
period: "30m",
experimental_session_count?: true
period: "30m"
}) do
wrap_expression([s], %{
key =>
Expand All @@ -96,7 +95,7 @@ defmodule Plausible.Stats.SQL.Expression do
end

# :NOTE: This is not exposed in Query APIv2
def dimension(key, "time:minute", :sessions, %Query{experimental_session_count?: true} = query) do
def dimension(key, "time:minute", :sessions, query) do
wrap_expression([s], %{
key => regular_time_slots(query, 60)
})
Expand Down
11 changes: 1 addition & 10 deletions lib/plausible/stats/sql/where_builder.ex
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ defmodule Plausible.Stats.SQL.WhereBuilder do
)
end

defp filter_site_time_range(:sessions, site, %Query{experimental_session_count?: true} = query) do
defp filter_site_time_range(:sessions, site, query) do
{first_datetime, last_datetime} = utc_boundaries(query, site)

# Counts each _active_ session in time range even if they started before
Expand All @@ -61,15 +61,6 @@ defmodule Plausible.Stats.SQL.WhereBuilder do
)
end

defp filter_site_time_range(:sessions, site, query) do
{first_datetime, last_datetime} = utc_boundaries(query, site)

dynamic(
[s],
s.site_id == ^site.id and s.start >= ^first_datetime and s.start < ^last_datetime
)
end

defp add_filter(:events, _query, [:is, "event:name", list]) do
dynamic([e], e.name in ^list)
end
Expand Down
3 changes: 1 addition & 2 deletions lib/plausible/stats/timeseries.ex
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ defmodule Plausible.Stats.Timeseries do
dimensions: [time_dimension(query)],
order_by: [{time_dimension(query), :asc}],
v2: true,
include: %{time_labels: true, imports: query.include.imports},
experimental_session_count?: true
include: %{time_labels: true, imports: query.include.imports}
)
|> QueryOptimizer.optimize()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ defmodule PlausibleWeb.Api.StatsController.TopStatsTest do
conn =
get(
conn,
"/api/stats/#{site.domain}/top-stats?period=day&date=2021-01-01&experimental_session_count=true"
"/api/stats/#{site.domain}/top-stats?period=day&date=2021-01-01"
)

res = json_response(conn, 200)
Expand Down
2 changes: 0 additions & 2 deletions test/test_helper.exs
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@ Application.ensure_all_started(:double)
# Temporary flag to test `experimental_reduced_joins` flag on all tests.
if System.get_env("TEST_EXPERIMENTAL_REDUCED_JOINS") == "1" do
FunWithFlags.enable(:experimental_reduced_joins)
FunWithFlags.enable(:experimental_session_count)
else
FunWithFlags.disable(:experimental_reduced_joins)
FunWithFlags.disable(:experimental_session_count)
end

Ecto.Adapters.SQL.Sandbox.mode(Plausible.Repo, :manual)
Expand Down

0 comments on commit 7dd2eff

Please sign in to comment.