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
Implement Elasticsearch for easier analytics #243
Comments
We have quite some experience here. If you have questions we might be able to help out. |
Thanks @Macro-Jackson! Will probably ask some questions when we start. |
SchemaA specification of the requirements for this issue. We have a few data points linked to every page view:
* These types are added when the visitor closes the page via Data queriesWith this schema we want to get answers on these questions:
For referrers
For paths
And this for user agents, countries, ... * Questions we can't answer in our current system
How?I'm thinking of setting up a different server with just ES (Elastic Search) and a Node.js app which will serve as an API. So all data will be aggregated on the ES server and send back to the main server where we display the data. I think the data model is pretty simple. I would love some help to setup ES, adding the model into ES, get the data in, setup all queries needed for above questions, connect queries with endpoints of Node.js app on the ES server. Connecting the Node.js app with the main server app is something that I would like to do myself. Would be a nice-to-have if we could add authentication on the ES server as well, so people and our front end can "talk" directly to the ES server. |
Added two utm codes to the source:
Sorry if this is a bit late, but better now then after we built it, right? |
Do you have any thoughts about this;
I'm terming this "most popular paths", I think that's what it means essentially yes? If possible it would be better to calculate this at index time if you have an idea of how it will work. |
It means it will use the two other variables: I can image the formula being something like this: scrolled * Math.min(duration, 300) * 0.5 The list items are comparable to each other so if the highest score is
The So if we can make the sort work on a formula on |
Okay I understand the score, and we should definitely store it for performance reasons. We are reindexing that document when the scrolled and duration values come in anyway, so no problem to add the score at that point. But can you explain why you need the %? Maybe give me an example of what you're trying to show in the UI? Is it;
If 1 is what you want then the If you want to get the percentile (I could see this maybe is useful for finding outliers, like REALLY popular or unpopular paths), then we can support that via a percentile aggregation on the |
I think it's closer to 1 for now. Quality would be nice if we represent that with a percentage but I'm totally fine to do this in the app itself. Then we just have a score relative to the other pages for that period. The result in the dashboard would be an indicator (not sure yet on how to show this, maybe with green, orange, or red color dot) next to the page name in the list. Something simple where people can see: "ah, this page is doing well." It's should be simple after all. |
Elasticsearch is up and running. Most bugs are in the frontend and we have open issues for those. No need for this issue anymore. 🥳 |
This summer we are planning on working on a Elasticsearch app where we can ask all kind of analytics metrics from. We need it for a few features.
We hope @Jivings will help us!
Related issues
The text was updated successfully, but these errors were encountered: