-
Notifications
You must be signed in to change notification settings - Fork 6
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
Hits? #7
Comments
The Linode server has run out of disk space ... 😞 dwyl/hits#62 |
Given that the "Hits" application (in it's current form) is "down" due to exhausted disk space on the server, I'm going to increase the disk space on Linode one last time. > dwyl/learn-devops#52 But we need to have a clear plan for migrating this from using a FileSystem based append-only log to using a Database ASAP (as discussed above). As much as I like the simplicity of the Linode interface, see: By contrast even at the 200Gb point it's "only" $40/month on RDS: According to the PostgreSQL DBaaS Calculator dwyl/learn-postgresql#59 $16.55/month Sadly, the (my) monthly cost for running the "Hits" Service is going to quadruple from $5/month
UpdateI've increased the Linode plan from $5/month to $10/month |
Next: dwyl/hits#66 |
Still totally want to do some visualisation with Hits hits.dwyl.com ... 💭 |
"Make Something People Want"
In August 2015, to "scratch my own itch," I created https://github.com/dwyl/hits
to track the "Page Views" on all of our
learn-...
tutorials and Open Source projects. 📈It does (exactly) one thing and nothing else.
Rather than keeping it "private" (only for dwyl repos) I made it
public
so anyone could use it.It's an incredibly simple (single-purpose) Web Service that only has one endpoint.
Last year I added a (basic) front-end to help people create their own badge: https://hits.dwyl.com
I linked to it on https://github.com/dwyl/repo-badges and waited to see if:
A) Anyone would Find it!
B) People would Use it without any prompting or promotion!
C) Running a basic (single metric) analytics service could be done on a low ($5/month) budget.
Fast forward a year and there are thousands of GitHub projects using the "Hits Badge"! 😮
It's been collecting Millions of "Hits" (Page Views) for some of the top projects on GitHub:
"XBMC" (originally "XBox Media Center" now "KODI" because it runs on more hardware)
https://github.com/xbmc/xbmc is a super popular GitHub repo
and the project maintainer added the Hits Badge ...
There's even a project from the Apache Software Foundation:
https://github.com/apache/incubator-servicecomb-service-center using a Hits Badge:
There is a lot of "noise" from random "pet projects" using the Hits "Badge" ...
But that's a good thing because it simulates usage (the Page View counts are all real!)
and has generated a lot of data that I can now analyse.
Product-Market Fit?
Hits is a single function product/service - it does only one thing -
that Users have organically discovered and are using completely "under the radar"!
Cost?
initially, I ran the service on a Free Heroku Dyno: https://hitt.herokuapp.com
At the time the hits (Node.js) app was only incrementing a counter
for each page/project that was being tracked and I thought that was useless data for analysis.
So rather than paying $9/month for Heroku's PostgreSQL,
I decided to run the app on a $5/month Linode VM. see: learn-devops/linode-setup.md
https://manager.linode.com/account/billing_history
Resource Usage
CPU
The CPU usage never goes above 3%:
And the only reason for the "spikes" is that I'm using a (filesystem based) append-only log,
so each time the count needs to be displayed I have to stream the entire file which is quite "slow".
But still, CPU is definitely not a " performance bottleneck" in the App.
Traffic (Bandwidth in KiloBytes Per Second)
Bandwidth is negligible:
Because the response is almost always an SVG which is 511 Bytes:
The Linode Instance has 1000GB (1TB!) of Monthly Network Transfer and we are using less than 1%:
Storage
The App is using 20Gb of SSD Storage for the page view
Well, there's your problem ...
Data cost will only ever increase over time. 💸
Benefit?
Until now, the only benefit has been learning for me
and a counter for the people displaying the "badge".
Could we get a bit more out of this project ...?
(and could it be part of the "product roadmap"...? hence opening this issue/discussion here...)
Two
<option>
's For ...There are two options for what we can do with this product that clearly has traction:
Do Nothing. Leave it the way it is and gradually pay more for it over time as more people discover it and storage costs increase but do no more "dev" work on the idea. (lowest time/cash investment by far!)
Build Out an idea that has "Product-Market-Fit" (PMF) See How far it Goes!
Build out the UI to include:
Along the way:
with the absolute minimum cash. (staying within the AWS Free Tier Limits)
https://github.com/dwyl/phoenix-ecto-append-only-log-example
https://elixirschool.com/en/lessons/specifics/ets
The text was updated successfully, but these errors were encountered: