This commit is contained in:
R. Miles McCain
2021-03-29 14:37:59 +00:00
parent b63863e283
commit fe8e766670
20 changed files with 116 additions and 73 deletions

View File

@@ -60,7 +60,9 @@ class Migration(migrations.Migration):
),
),
],
options={"ordering": ["-start_time"],},
options={
"ordering": ["-start_time"],
},
),
migrations.CreateModel(
name="Hit",
@@ -90,7 +92,9 @@ class Migration(migrations.Migration):
),
),
],
options={"ordering": ["-start_time"],},
options={
"ordering": ["-start_time"],
},
),
migrations.AddIndex(
model_name="session",

View File

@@ -7,32 +7,40 @@ import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('analytics', '0003_auto_20200502_1227'),
("analytics", "0003_auto_20200502_1227"),
]
operations = [
migrations.AlterField(
model_name='hit',
name='last_seen',
model_name="hit",
name="last_seen",
field=models.DateTimeField(default=django.utils.timezone.now),
),
migrations.AlterField(
model_name='hit',
name='start_time',
field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
model_name="hit",
name="start_time",
field=models.DateTimeField(
db_index=True, default=django.utils.timezone.now
),
),
migrations.AlterField(
model_name='session',
name='last_seen',
field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
model_name="session",
name="last_seen",
field=models.DateTimeField(
db_index=True, default=django.utils.timezone.now
),
),
migrations.AlterField(
model_name='session',
name='start_time',
field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
model_name="session",
name="start_time",
field=models.DateTimeField(
db_index=True, default=django.utils.timezone.now
),
),
migrations.AddIndex(
model_name='session',
index=models.Index(fields=['service', '-last_seen'], name='analytics_s_service_10bb96_idx'),
model_name="session",
index=models.Index(
fields=["service", "-last_seen"], name="analytics_s_service_10bb96_idx"
),
),
]

View File

@@ -7,18 +7,20 @@ import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('analytics', '0004_auto_20210328_1514'),
("analytics", "0004_auto_20210328_1514"),
]
operations = [
migrations.AlterField(
model_name='hit',
name='last_seen',
field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
model_name="hit",
name="last_seen",
field=models.DateTimeField(
db_index=True, default=django.utils.timezone.now
),
),
migrations.AlterField(
model_name='hit',
name='load_time',
model_name="hit",
name="load_time",
field=models.FloatField(db_index=True, null=True),
),
]

View File

@@ -5,34 +5,36 @@ from django.db import migrations, models
import django.db.models.deletion
from django.db.models import Subquery, OuterRef
def add_service_to_hits(_a, _b):
service = Session.objects.filter(
pk=OuterRef('session')
).values_list(
'service'
)[:1]
Hit.objects.update(
service=Subquery(service)
)
def add_service_to_hits(_a, _b):
service = Session.objects.filter(pk=OuterRef("session")).values_list("service")[:1]
Hit.objects.update(service=Subquery(service))
class Migration(migrations.Migration):
dependencies = [
('core', '0008_auto_20200628_1403'),
('analytics', '0005_auto_20210328_1518'),
("core", "0008_auto_20200628_1403"),
("analytics", "0005_auto_20210328_1518"),
]
operations = [
migrations.AddField(
model_name='hit',
name='service',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='core.service'),
model_name="hit",
name="service",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="core.service",
),
),
migrations.RunPython(add_service_to_hits, lambda: ()),
migrations.AlterField(
model_name='hit',
name='service',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.service'),
model_name="hit",
name="service",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to="core.service"
),
),
]

View File

@@ -6,12 +6,14 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('analytics', '0006_hit_service'),
("analytics", "0006_hit_service"),
]
operations = [
migrations.AddIndex(
model_name='hit',
index=models.Index(fields=['service', '-start_time'], name='analytics_h_service_f4f41e_idx'),
model_name="hit",
index=models.Index(
fields=["service", "-start_time"], name="analytics_h_service_f4f41e_idx"
),
),
]

View File

@@ -5,19 +5,23 @@ from ..models import Session, Hit
from django.db import migrations, models
from django.db.models import Subquery, OuterRef
def update_bounce_stats(_a, _b):
Session.objects.all().annotate(hit_count=models.Count("hit")).filter(hit_count__gt=1).update(is_bounce=False)
Session.objects.all().annotate(hit_count=models.Count("hit")).filter(
hit_count__gt=1
).update(is_bounce=False)
class Migration(migrations.Migration):
dependencies = [
('analytics', '0007_auto_20210328_1634'),
("analytics", "0007_auto_20210328_1634"),
]
operations = [
migrations.AddField(
model_name='session',
name='is_bounce',
model_name="session",
name="is_bounce",
field=models.BooleanField(db_index=True, default=True),
),
migrations.RunPython(update_bounce_stats, lambda: ()),

View File

@@ -184,7 +184,7 @@ def ingress_request(
load_time=payload.get("loadTime"),
start_time=time,
last_seen=time,
service=service
service=service,
)
# Recalculate whether the session is a bounce

View File

@@ -112,7 +112,9 @@ class ScriptView(ValidateServiceOriginsMixin, View):
endpoint = (
reverse(
"ingress:endpoint_script",
kwargs={"service_uuid": self.kwargs.get("service_uuid"),},
kwargs={
"service_uuid": self.kwargs.get("service_uuid"),
},
)
if self.kwargs.get("identifier") == None
else reverse(