Skip to content

Separating UAs from their versions #2808

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
IzzySoft opened this issue Mar 19, 2025 · 2 comments
Open

Separating UAs from their versions #2808

IzzySoft opened this issue Mar 19, 2025 · 2 comments

Comments

@IzzySoft
Copy link
Contributor

I see that for some UAs, separation works – if they use a space to separate that. But if they are using a slash, each version is counted as a separate UA:

Image

If you wonder, I've added those F-Droid clients to my browsers.list:

F-Droid                                 RepoClients
Droid-ify                               RepoClients
com.machiav3lli.fdroid                  RepoClients

I see that com.machiav3lli.fdroid.neo is recognized as "RepoClient" despite not being named in browsers.list (which is OK in this case, as it's a separate "flavor" of the same client) – so basically, what I put into browsers.list is read as "starts-with". But is there a way to set a "stop word" to tell GoAccess where the name of an UA ends and the version begins (what currently seems to be a white-space character)? In the above example, I'd would e.g. like to have the two "Droidify" combined, and the same for the Neo Store (com.machiav3lli.fdroid) versions.

Seeing the versions separately of course is also very helpful (here for the corresponding devs, to see which older versions are still used). Not sure if some "sub-grouping" would make sense? Maybe like Webalizer allows:

Image

Just brainstorming there…

@allinurl
Copy link
Owner

Thanks for sharing those details. To better understand the current state compared to the intended output, could you please post a few sample access log lines that I can use to replicate this from my end? Additionally, what specific changes or improvements for those sample lines would you like to see?

@IzzySoft
Copy link
Contributor Author

Apologies if I was unclear. OK, lets go by example log lines:

47.16.0.0 - [16/Mar/2025:00:02:18 +0100] "GET /fdroid/repo/entry.jar HTTP/1.1" 200 3289 2343 "-" "F-Droid 1.21.1"
203.123.0.0 - [16/Mar/2025:00:02:19 +0100] "GET /fdroid/repo/icons/fr.forum_thalie.tsumugi.100.png HTTP/1.1" 200 2937 3519 "-" "F-Droid 1.22.0"
89.64.0.0 - [16/Mar/2025:00:02:21 +0100] "GET /fdroid/repo/index-v1.jar HTTP/1.1" 304 - 1391 "-" "com.machiav3lli.fdroid/1025"
90.108.0.0 - [16/Mar/2025:00:02:30 +0100] "GET /fdroid/repo/index-v1.jar HTTP/1.1" 200 2105576 424775 "-" "APKUpdater-v3.0.3"
149.86.0.0 - [16/Mar/2025:00:02:30 +0100] "GET /fdroid/repo/index-v1.jar HTTP/1.1" 200 2105576 1013889 "-" "Droid-ify, v0.6.3"
78.183.0.0 - [16/Mar/2025:00:02:31 +0100] "GET /fdroid/repo/index-v1.jar HTTP/1.1" 304 - 2774 "-" "Droid-ify/v0.6.5-release"
180.190.0.0 - [16/Mar/2025:00:02:32 +0100] "GET /fdroid/repo/index-v1.jar HTTP/1.1" 304 - 2119 "-" "com.machiav3lli.fdroid-1017"
178.24.0.0 - [16/Mar/2025:00:02:36 +0100] "GET /fdroid/repo/index-v1.jar HTTP/1.1" 304 - 995 "-" "com.machiav3lli.fdroid-1012"

From these example lines, currently the agents from lines 1+2 would be seen as the same agent (so: 2 visitors, 2 hits for "F-Droid") – while all other agents would be counted as unique agents (i.e. 1 visitor, 1 hit for each). It would be great if there'd be a way to group them, so there'd be a summary like

F-Droid: 2 + 2
com.machiav3lli.fdroid: 3 + 3
Droid-ify: 2 + 2
APKUpdater: 1 + 1

(while optionally the separate entries are still shown, as in the second screenshot above). Currently, it seems the space (or any white space) are used to separate the client name from its version (and other additional information) – as e.g. "F-Droid 1.21.1" becomes simply "F-Droid". If it would be possible to specify additional separators (here: / would be helpful, as that's rather commonly used – while I'd not go for - as that is sometimes also part of the name, as in "Droid-ify" – here I've already discussed with the maintainer of the software and they switched to / as separator – both, com.machiav3lli.fdroid and Droid-ify).

Further, please also note in the first screenshot above, that for some clients the closing quote of the UA string is displayed (just for some, not for all), which is also quite unexpected (though "cosmetic"). This could be due to the log-format I specified:

log-format %h %l %^[%d:%t %^] "%r" %s %b %^ "%R" %u

(maybe I should add quotes around %u there?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants