Vincent Boutour
e712f0fcdd
Adding /health endpoint and using it in container
2018-09-17 17:20:48 +02:00
Danny van Kooten
221e6394de
assume dashboard is public when there are no users in connected datastore. #117
2018-09-12 09:36:59 +02:00
Danny van Kooten
291d53fcaf
add CountUsers func to sqlstore
2018-09-12 09:11:50 +02:00
Danny van Kooten
b860937107
always clear request context, even for unauthorized requests
2018-09-12 09:07:55 +02:00
Danny van Kooten
3b721b88a8
sanitize email address before saving to datastore
2018-09-10 09:26:15 +02:00
Danny van Kooten
b6aa00caef
add tests for aggregating referrer stats
2018-08-09 15:04:38 +02:00
Danny van Kooten
8313c64610
add tests for aggregating page-specific stats
2018-08-09 14:57:35 +02:00
Danny van Kooten
2ccbfbf372
add tests for aggregating site-wide stats
2018-08-09 14:43:42 +02:00
Danny van Kooten
064b5cb038
re-use buffer (to get rid of allocation) & separate inserts vs. updates early on in collect handler.
2018-08-08 09:43:06 +02:00
Danny van Kooten
720fa4a5da
clear gorilla context after request is handled
2018-08-07 08:48:22 +02:00
Danny van Kooten
01474759c6
add stats command for getting site-wide stats via cli.
2018-08-01 14:03:44 +02:00
Danny van Kooten
33ffa557ee
move setting pwd & comparing into user model + tests
2018-08-01 13:13:42 +02:00
Danny van Kooten
4ecaff85ac
don't parse database driver from URL to also support mysql and sqlite.
2018-07-31 15:29:15 +02:00
Charley DAVID
98970057a2
Add support for FATHOM_DATABASE_URL
2018-07-31 08:41:08 -03:00
Danny van Kooten
e90e100f18
fix query args for batch updating pageviews
2018-07-30 10:51:20 +02:00
Danny van Kooten
b6f3be0e8e
build postgres dsn string dynamically
2018-07-30 09:33:49 +02:00
Danny van Kooten
658581b744
show prettier error msg when connecting to database fails
2018-07-27 08:52:53 +02:00
SimePel
a301dec1a3
add tests for LoadEnv func
2018-07-15 21:10:26 +07:00
SimePel
64b131f7f5
add separate function for loading env values from file
2018-07-15 21:09:44 +07:00
Danny van Kooten
2ef550bc27
reduce number of memory allocations in hot path
2018-07-15 10:05:03 +02:00
Danny van Kooten
b2d881e31b
optimize sql generation in datastore.InsertPageviews func.
2018-07-15 09:36:28 +02:00
Danny van Kooten
1fea0dc66f
return error from datastore.Close func
2018-07-15 09:20:07 +02:00
Danny van Kooten
1e128e6ad7
use simple for loop in bulk datastore funcs for minor perf improvement
2018-07-15 07:37:45 +02:00
Danny van Kooten
e6ee4d0a2e
increase buffer size & buffer timeout for collecting pageviews
2018-07-15 07:34:06 +02:00
Danny van Kooten
82e1216bb3
discard http requests coming from browser prerenders. closes #13
2018-07-12 14:06:07 +02:00
Danny van Kooten
a6f9b385a3
option to set sslmode param in postgres & mysql connections using FATHOM_DATABASE_SSLMODE. closes #93 closes #90 closes #80
2018-07-12 13:37:52 +02:00
Danny van Kooten
f2683d1f0c
buffer insert & updates of pageviews for performance gain under heavy load. closes #24
2018-07-12 13:30:32 +02:00
Danny
42008ab83f
get rid of session_id and move knowledge of previous pageview to client. this also gets rid of the (only) index on the pageviews table, allowing for much faster INSERT's. closes #14
2018-07-11 15:03:56 +02:00
Danny van Kooten
9b47ee27ef
parse hostname from client instead of relying on http header. fixes #79
2018-06-28 10:37:02 +02:00
Danny
844c5996ff
set 'Tk: N' header on resources loaded by client. #65
2018-06-13 11:15:18 +02:00
Danny
42cd00b8cd
disregard requests to /collect with DNT header set to '1'.
2018-06-13 10:44:33 +02:00
Danny
e795eb1ac1
print some info regardless of log level
2018-06-13 10:10:56 +02:00
Danny
7f61259df3
use mysql Config.FormatDSN to generate dsn conn string for mysql. closes #56 closes #60
2018-06-13 10:04:42 +02:00
Danny
958e653b1f
set explicit charset for mysql tables to workaround key limit of 7xx bytes. #58
2018-06-13 09:56:32 +02:00
Danny
50c0d9ccd0
add NULLIF in group statement because of go null values = empty string
2018-06-08 16:00:32 +02:00
Danny
e2294c4b6c
fix postgres errors by converting to null in divisions. closes #54 relates to #52
2018-06-08 15:39:38 +02:00
Jay Nagpaul
0ab5d12e1b
Fix Postgres Migration
2018-06-07 16:36:31 -04:00
Danny
7bf8978cb6
use a single http request to fetch all data for left-sidebar
2018-06-04 12:53:17 +02:00
Danny
a72df6274f
generate sql statement dynamically
2018-06-01 13:21:54 +02:00
Danny
8c6e07255f
failsafe sql for referrer migrations
2018-06-01 13:21:40 +02:00
Danny
9db5b3808a
return number of processed pageview from aggregator.Run
2018-06-01 12:12:15 +02:00
Danny
bc86088607
set group during aggregation
2018-06-01 11:44:20 +02:00
Danny
c9213b0b72
set pipe concat mode when using mysql
2018-06-01 11:44:11 +02:00
Danny
6f45edc790
fix groupby with null values
2018-06-01 11:43:59 +02:00
Danny
c8a6da13e6
TODO comments so we know where to pick up
2018-05-30 13:40:59 +02:00
Danny
b856477d2a
fix sqlite datastore compat, concat does note xist there
2018-05-30 13:29:20 +02:00
Danny
071ea5ace0
split hostname and pathname in referrers table
2018-05-30 12:50:28 +02:00
Danny
32693be2b0
add make dist task && separate assets build from binary build
2018-05-29 14:52:34 +02:00
Danny
df7496a80d
add known_durations column and use that for calculating duration averages, instead of total # pageviews
2018-05-28 15:31:40 +02:00
Danny
3d9d09f2a7
print absolute path to database if db is sqlite
2018-05-28 13:03:28 +02:00
Danny
eddb1e9566
write info level after connecting to database
2018-05-25 14:12:32 +02:00
Danny
05b2cc53a2
only turn relative path into absolute path
2018-05-23 14:52:38 +02:00
Danny
11b4e5e5b3
print message if using default config
2018-05-23 09:11:28 +02:00
Danny
fc35d68926
output log messages during bootstrap, eg with config file location
2018-05-23 09:03:42 +02:00
Danny
7c3cecad09
use errorf log when database migrations fail
2018-05-22 16:20:43 +02:00
Danny
7adc5d3bec
wip on chart implementation using d3
2018-05-22 12:23:17 +02:00
Danny
da19c116b7
strip AMP & UTM vars from referrer urls. closes #37
2018-05-22 10:30:35 +02:00
Danny van Kooten
3b8a884991
godoc improvements
2018-05-21 11:54:01 +02:00
Danny
0039683b74
set header code when sessionstore returns err
2018-05-15 14:20:05 +02:00
Danny
47c6dc3ab7
add test for setting secret through env var
2018-05-15 14:15:47 +02:00
Danny
1bd093b8a4
add test for config.randomString func
2018-05-15 13:54:36 +02:00
Danny
c30e5b3120
introduce datastore interface & stop relying on package var to retrieve db conn. relates to #29
2018-05-15 13:30:37 +02:00
Danny
8b639d348d
lowercase all log messages and strip newlines
2018-05-15 10:26:35 +02:00
Danny
69fc3e7aa1
implement results type container
2018-05-14 15:31:33 +02:00
Danny
68ab44c57d
use github.com/urfave/cli as cli framework
2018-05-14 13:42:03 +02:00
Danny
73e011b6cc
implement notfound handler with simple 404 page, closes #19
2018-05-14 12:08:18 +02:00
Danny
6482378734
serve assets from /assets subdir and re-use packr box for index.html & tracker.js
2018-05-14 11:17:41 +02:00
Danny
4aac79c7f9
coalesce query results to handle nil
2018-05-14 10:17:58 +02:00
Danny
7c33ac7b86
Merge branch 'master' of github.com:usefathom/fathom
2018-05-14 10:16:43 +02:00
Danny
2c09050d74
move should-collect logic into func so it can be tested
2018-05-14 10:14:43 +02:00
Danny
05a159da7f
skip missing referrer values. closes #26
2018-05-14 10:06:53 +02:00
Danny van Kooten
7d111a8372
Merge branch 'master' of https://github.com/usefathom/fathom
...
* 'master' of https://github.com/usefathom/fathom :
fire off request for fetching totals earlier
use pageviews sum to show green percentage bar in pseudo-element
add api routes for getting aggregated pageview sum for pages & referrers
ignore prerendered pages, #13
don't send unneeded var in collect request
derive tracker URL from script element if not explicitly set
restyle login page
weight multi-day average for pages & referrers too. #23
weight site averages when calculating multi-day average. closes #23
only update average duration if we know time on page.
2018-05-12 14:49:23 +02:00
Danny van Kooten
618e85e53b
unique index on daily_page_stats should include hostname
2018-05-12 14:49:21 +02:00
Danny
dbcc0545a2
add api routes for getting aggregated pageview sum for pages & referrers
2018-05-11 15:49:37 +02:00
Danny
d104abaec2
Merge branch 'master' of github.com:usefathom/fathom
2018-05-11 10:54:47 +02:00
Danny
3991665a72
weight multi-day average for pages & referrers too. #23
2018-05-11 10:54:41 +02:00
Danny
88a59e75ab
weight site averages when calculating multi-day average. closes #23
2018-05-11 10:48:25 +02:00
Danny
9bb1a05e06
only update average duration if we know time on page.
2018-05-11 10:33:12 +02:00
Danny van Kooten
e2d45dbc40
check errors returned by sessionstoreE
2018-05-10 22:21:44 +02:00
Danny
e73a205d26
run the aggregator every minute since we only need the last pageview of every visitor for determining distinct realtime visitor count
2018-05-09 10:36:05 +02:00
Danny
840956bfbd
set precision for duration & bounce rate when storing & retrieving data from datastore
2018-05-09 10:35:16 +02:00
Danny
3e22efc5f7
when getting stats for a given period; date should larger than start date, but not equal
2018-05-09 08:36:29 +02:00
Danny
8ed076dd02
use correct groupby parameter for aggregated stats
2018-05-09 08:34:58 +02:00
Danny
624e1f353a
fix json tag in models struct
2018-05-09 08:34:48 +02:00
Danny van Kooten
a8edcee54e
store avg time on site as float to not race to 0
2018-05-08 20:16:31 +02:00
Danny van Kooten
27e1d5d368
set packr box dir dynamically to ensure all drivers are packrd
2018-05-08 18:49:56 +02:00
Danny
3493bb1e9e
default to actual driver name instead of alias
2018-05-08 16:21:22 +02:00
Danny
60cca7d40f
add support for postgres too. closes #9
2018-05-08 15:41:48 +02:00
Danny
0683cac2bf
use packr to embed migration files & web assets into binary. closes #8
2018-05-08 14:57:08 +02:00
Danny
b4c7de0880
store hostname for each pageview & page stat
2018-05-08 13:21:36 +02:00
Danny
b8ceff621d
store hostname so we can track multiple subdomains in one fathom instance, if needed
2018-05-08 13:08:16 +02:00
Danny
02bcfbf503
generate default value for secret so that fathom can run using only default values
2018-05-08 12:45:24 +02:00
Danny
2ceaaeb9f5
add support for sqlite. #9
2018-05-08 12:31:51 +02:00
Danny
0a0476b5ae
store accurate new session count & use that to determine bounce rate
2018-05-08 11:52:01 +02:00
Danny
fe7eee2b73
clean-up data structure & add indices
2018-05-08 10:45:17 +02:00
Danny van Kooten
ca3d258174
fix params test
2018-05-08 09:11:32 +02:00
Danny van Kooten
8e99bc5896
add test for GetRequestParams
2018-05-08 08:22:21 +02:00
Danny van Kooten
5e0ac22fe4
and finally, delete pageviews after processing to keep pageviews table nice & small
2018-05-07 19:45:42 +02:00
Danny van Kooten
95cd0e4053
implement referrers table
2018-05-07 19:33:52 +02:00
Danny van Kooten
9a9ea1687c
imment referrer stats api route
2018-05-07 19:20:58 +02:00