Skip to content

Commit 3e27cb1

Browse files
Merge pull request #4829 from GSA/metrics-fixes
Updates to Metrics Report
2 parents bb76031 + 94c990f commit 3e27cb1

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

.github/workflows/build-metrics-report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Build Metrics Report
33
on: # yamllint disable-line rule:truthy
44
workflow_dispatch:
55
schedule:
6-
- cron: "0 0 * * *" # every day at 12am UTC
6+
- cron: "0 0 1 * *" # runs first day of every month at 12am UTC
77

88
env:
99
PY_VERSION: "3.10"

metrics/datagov_metrics/ga.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import datetime
1+
from datetime import datetime, timedelta
2+
import calendar
23
import io
34
import csv
45

@@ -17,12 +18,14 @@
1718
properties = analytics.properties()
1819

1920

20-
def date_range(days_ago: int):
21-
today = datetime.date.today().strftime("%Y-%m-%d")
22-
days_ago_strfmt = (
23-
datetime.date.today() - datetime.timedelta(days=days_ago)
24-
).strftime("%Y-%m-%d")
25-
return [{"startDate": days_ago_strfmt, "endDate": today}]
21+
def date_range_last_month():
22+
last_month = datetime.today().replace(day=1) - timedelta(days=1)
23+
last_day = calendar.monthrange(last_month.year, last_month.month)[1]
24+
end_date = datetime(last_month.year, last_month.month, last_day).strftime(
25+
"%Y-%m-%d"
26+
)
27+
start_date = datetime(last_month.year, last_month.month, 1).strftime("%Y-%m-%d")
28+
return [{"startDate": start_date, "endDate": end_date}]
2629

2730

2831
def get_org_list():
@@ -47,7 +50,7 @@ def setup_organization_reports():
4750

4851
# report most viewd dataset pages per organization
4952
org_reports[f"{org}__page_requests__last30"] = {
50-
"dateRanges": date_range(30),
53+
"dateRanges": date_range_last_month(),
5154
"dimensions": [
5255
{"name": "pagePath"},
5356
{"name": "customEvent:DATAGOV_dataset_organization"},
@@ -60,7 +63,7 @@ def setup_organization_reports():
6063

6164
# report most downloaded files per organization
6265
org_reports[f"{org}__download_requests__last30"] = {
63-
"dateRanges": date_range(30),
66+
"dateRanges": date_range_last_month(),
6467
"dimensions": [
6568
{"name": "linkUrl"},
6669
{"name": "customEvent:DATAGOV_dataset_organization"},
@@ -90,7 +93,7 @@ def setup_organization_reports():
9093

9194
# report most clicked outboud links per organization
9295
org_reports[f"{org}__link_requests__last30"] = {
93-
"dateRanges": date_range(30),
96+
"dateRanges": date_range_last_month(),
9497
"dimensions": [
9598
{"name": "linkUrl"},
9699
{"name": "customEvent:DATAGOV_dataset_organization"},
@@ -121,7 +124,7 @@ def setup_global_reports():
121124
global_reports = {}
122125

123126
global_reports["global__page_requests__last30"] = {
124-
"dateRanges": date_range(30),
127+
"dateRanges": date_range_last_month(),
125128
"dimensions": [{"name": "pagePath"}],
126129
# TODO add filter to clean up pages?
127130
# "dimensionFilter": {},
@@ -130,12 +133,12 @@ def setup_global_reports():
130133
}
131134

132135
global_reports["global__total_pageviews__last30"] = {
133-
"dateRanges": date_range(30),
136+
"dateRanges": date_range_last_month(),
134137
"metrics": [{"name": "screenPageViews"}],
135138
}
136139

137140
global_reports["global__top_search_terms__last30"] = {
138-
"dateRanges": date_range(30),
141+
"dateRanges": date_range_last_month(),
139142
"dimensions": [{"name": "searchTerm"}],
140143
"dimensionFilter": {
141144
"andGroup": {
@@ -167,7 +170,7 @@ def setup_global_reports():
167170
}
168171

169172
global_reports["global__device_category__last30"] = {
170-
"dateRanges": date_range(30),
173+
"dateRanges": date_range_last_month(),
171174
"dimensions": [{"name": "deviceCategory"}],
172175
"metrics": [{"name": "activeUsers"}],
173176
"orderBys": [{"metric": {"metricName": "activeUsers"}, "desc": True}],

0 commit comments

Comments
 (0)