Skip to content
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

Add basic analytics and instrumentation for debugging #25

Open
11 of 15 tasks
liamzebedee opened this issue Mar 10, 2023 · 11 comments
Open
11 of 15 tasks

Add basic analytics and instrumentation for debugging #25

liamzebedee opened this issue Mar 10, 2023 · 11 comments
Milestone

Comments

@liamzebedee
Copy link
Collaborator

liamzebedee commented Mar 10, 2023

Work items

  • dappnet documentation
    • add GA
  • desktop app
    • open
    • close
    • launch dapp
    • upgrade
  • local gateway
    • resolve-ens
    • resolve-ipfs
    • resolve-ipns
  • ipfs resource usage monitoring
    • install-id datetime ipfs-daemon-tag ipfs-libp2p-peerid cpu-usage net-usage storage-usage
  • update server
    • page view

How can you improve when you don't measure? What do we want to improve?

  • Resolution speeds for .eth domains.
  • Resolution speeds for IPFS content.
  • Resource usage for P2P downloads (CPU, network).
  • Convenience of Dappnet homescreen launcher.
  • Convenience of which dapps are useful for users (consequence: come pre-installed by default).
@liamzebedee liamzebedee added this to the birthday 🧢 milestone Mar 10, 2023
@liamzebedee
Copy link
Collaborator Author

liamzebedee commented Mar 10, 2023

  • dappnet.energy visits
  • gitbook visits
  • # downloads
  • # chrome users
  • # firefox users
  • desktop client version + dependency versions (ipfs)
  • gateway speeds (how quickly a resource resolves on IPFS for a user) - ipfs peer id, ipfs ip, ens namehash, ipfs/ipns hash. Probably need something that traces the entire request time (ie. 1inch.eth), since the latency seems to come from concurrent resource fetching in a waterfall like flow

@liamzebedee
Copy link
Collaborator Author

liamzebedee commented Mar 16, 2023

Options:

  • grafana
  • ga
  • amazon cloudwatch metrics
  • amplitude
  • manual (store data in sqlite db)

Decision based on - ease of making graphs, measurement, adding new columns, etc.

Options:

  • gitbook - add GA.
  • gitbook - add tracking for download links (that rely on github CDN).
  • extension - add tracking for popup
  • dappnet.energy - add GA.
  • desktop client - use grafana for logs and metrics
  • desktop gateway - use grafana for metrics

Amplitude looks specifically tailored towards product + pricing is good.

telemetry is the word here

@liamzebedee
Copy link
Collaborator Author

liamzebedee commented Apr 2, 2023

Work items

  • GA on Dappnet Docs
  • GA on dappnet.energy
  • GA on downloads from update server
  • GA on github release downloads of the Dappnet software
  • Metrics
    • ENS resolution time.
    • IPFS resolution time.
    • CPU/networking/storage usage of ipfs.
  • Events
    • Local gateway request.
    • Open app from launcher.
    • Open extension panel (for some reason).

How can you improve when you don't measure? What do we want to improve?

  • Resolution speeds for .eth domains.
  • Resolution speeds for IPFS content.
  • Resource usage for P2P downloads (CPU, network).
  • Convenience of Dappnet homescreen launcher.
  • Convenience of which dapps are useful for users (consequence: come pre-installed by default).

Notes

It appears Gitbook only supports GA universal analytics (UA) projects. These are going to be deprecated in July 2023. Using it for now.

@liamzebedee
Copy link
Collaborator Author

Okay GA4 is an absolutely inordinate pain in the ass.

@liamzebedee
Copy link
Collaborator Author

And Prometheus requires a pull-based approach, which would involve figuring out their stupid protocol (since I can't use the Synthetix docker container). All I need to do is just get some data ugh. Going to just write a stupid MongoDB thing and do it this way. It shouldn't cost $15/mo just to get some graphs and a script to store data lmao.

@shunkakinoki
Copy link
Collaborator

shunkakinoki commented Apr 2, 2023

Hello there twitter/the-algorithm#1391

Analytics in web3 is a pain - you shouldn't be really using web2 services as it removes the whole anonymity side of things but there aren't that many good alternatives that scales

I used https://plausible.io/ for web analytics but had to pay $49/month

@liamzebedee
Copy link
Collaborator Author

Hahahahah wtf hello @shunkakinoki

@shunkakinoki

This comment was marked as off-topic.

@liamzebedee
Copy link
Collaborator Author

Hello love how you document your entire brain process even in a github ISSUE lmfao

it's just so much easier to work & communicate openly if you can figure out how to do so :P

@liamzebedee
Copy link
Collaborator Author

5362e4e implements telemetry for most of the above. tomorrow's work will be finishing off the gateway with tracking things

@liamzebedee
Copy link
Collaborator Author

Ran into challenges measuring the ENS/IPFS resolution times accurately, due to the node.js event loop and how it works. So for now, just logging the ENS names to get a good idea of important dapps and will measure them adhoc. https://twitter.com/liamzebedee/status/1644399226162663424

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

No branches or pull requests

2 participants