• As I sit here working on making the daily fog installation tests more reliable, I wondered to myself when I should remove the older OSs (centos7, rhel7, etc). I thought it’d be nice to know how often what OS is being used to install FOG on. So I propose the following.

    I can create a publicly available API that simply accepts a “string” being submitted. Using this, I can put together a popularity contest type thing that will allow us to see what people are installing FOG on. I can build the API (I have scaffolding that I can use to get this done pretty fast) and run it, and make the results publicly viewable.

    Within the FOG Installer scripts, I can add a question about participating in the popularity contest. I think this should default to “Yes”. If “Yes” is chosen, a simple curl call is executed sending the output of lsb_release --all to the API.

    Thoughts on this? I’m willing to put it all together and submit the pull requests for it. Though wanted feedback before I went after it.


  • Tried emailing chuck, he has not replied. For now, I’ve removed all of the fogproject.org references, and HTTPS is working directly (redirect does not work). This is fine until Chuck can help with the DNS records.


  • @sebastian-roth Right, the alias is fine, please leave it as-is.

    I tried without the subject alternative name and got browser errors related to SSL. The front-end is in AWS CloudFront, which uses AWS ACM for ssl certs. I can’t make a cert with the fogproject SAN in it without the verification. Right now, it’s not set-up as I figured we wanted to get the redirect working right. If that can’t be done, no big deal.

  • Senior Developer

    @wayne-workman said in Popularity Contest:

    For the results to have a good redirect from stats.fogproject.org, I need the SSL cert to include that subject alternative name.

    That’s interesting. While I can look it up using the host command I can’t ping it.

    $ host stats.fogproject.org
    stats.fogproject.org is an alias for fog-external-reporting-results.theworkmans.us.
    $ ping stats.fogproject.org
    ping: stats.fogproject.org: Name or service not known
    

  • @Sebastian-Roth if you can get an A record created for stats-api.fogproject.org with a value of 3.20.18.241 I can get the ssl cert and such fixed on my side (using lets encrypt). Once that’s all done, we can update the reporting script to use the new URL.

    For the results to have a good redirect from stats.fogproject.org, I need the SSL cert to include that subject alternative name. Please create this record, it’ll allow me to create that SSL cert. These values below are not secrets, and they will timeout in 72 hours from now (sometime wednesday). if it’s not made by then I can get new values. This is part of how AWS verifies the cert your making is legit.

    Name:
    _395058431eb78e5f8f9cc2478adbdfa3.stats.fogproject.org.

    Type:
    CNAME

    Value:
    _ee8469a4f9a938de348ef383be83b11f.zbkrxsrfvj.acm-validations.aws.

    If this can’t be done for whatever reason, I can use the original results URL and it’ll work fine, just redirects from stats.fogproject.org won’t work.

    Here’s the changes on the cloud side if you were interested.


  • @Sebastian-Roth So when I try:

    curl -X POST -H "Content-Type: application/json"  -d '{"fog_version":"testing","os_name":"testing","os_version":"testing"}' https://stats-api.fogproject.org/api/records
    

    This is the result:

    curl: (6) Could not resolve host: stats-api.fogproject.org
    

  • Yeah the back-end only takes entries, nothing else.

    The frontend url is less important, as that’s not needed in the fog codebase anywhere. It’s just a place one visits to see results. I can get HTTPS setup for it.

  • Senior Developer

    @Wayne-Workman said in Popularity Contest:

    Right now it’s: https://fog-external-reporting-entries.theworkmans.us:/api/records

    This URL does not seem to work in the browser. It’s the backend API URL if I am not on the wrong track. But we want the frontend URL http://fog-external-reporting-results.theworkmans.us/ right? Can you setup HTTPS as well?


  • Sounds good.

  • Senior Developer

    @george1421 Good point! Though I would use a more simple name that is easy to remember and type, e.g. stats.fogproject.org?


  • Thoughts on the external reporting DNS name?

    Right now it’s: https://fog-external-reporting-entries.theworkmans.us:/api/records

    This works fine, but it’s not a fogproject.org address.

    If nobody has an opinion, I’m happy to leave it as-is forever, but I think it may be more appropriate if there’s an A Record created like fog-external-reporting-entries.fogproject.org. This can be set to the public IP of the server I’ve setup to record the entries, and also could be easily changed in the future if needed. I’m not immortal, nor is anyone else here so this is why I bring it up.

    We really need to get it the way we want it before the next release.

  • Senior Developer

    @Wayne-Workman said in Popularity Contest:

    I suggest we look at both locations and send the one from the file with a newer timestamp.

    While that would surely work I would really like to untangle this convoluted solution now and for ever. The more I think about it the less I want to add more if then else, check this, link here, try again, whatever. Let’s discuss the details in a new topic.

    Please leave the reporting script as it is right now. It’s really good you added it this way so we got notice of this.


  • good point… I suggest we look at both locations and send the one from the file with a newer timestamp.

    Or maybe there is a better way?

  • Senior Developer

    @Wayne-Workman Nice!

    Looking at the data I am wondering how versions 1.5.2, 1.5.5 and 1.5.6 can make it into the database. From my point of view this is a good sign those installs still have an old version of the web UI sitting in /var/www/fog and the new one in /var/www/html/fog.

    While I would hope we can figure out a way to detect those situations and let people know I would still think that we need a more generic way of grabbing the version info instead of using a static path for system.class.php.


  • Senior Developer

    @Wayne-Workman Sounds awesome but right now I get a “Bad Gateway” message instead.


  • Here is my first pass at the presentation layer: http://fog-external-reporting-results.theworkmans.us

    The graphs/files/stats automatically are updated every hour. I think the graphs could use color adjustments, but overall I’m pretty satisfied. What do you all think? BTW, the data in here is real!

    The next phase of this is abuse detection for the data reported. I need to scan for profanity, insults, etc; to keep the graphs clean. Python has tools for all of that.


  • How exciting, entries! A whole lot of Ubuntu, one of them is Ubuntu 16!
    entries.png


  • FOG External Reporting sounds good to me. I’ll get the endpoint name changed sometime tonight and submit a PR for that.

    I’m still needing to put together the last pieces of this, the presentation layer. This will be coming over the next couple weeks. Plans are to render some basic bar graphs showing the information gathered from the last 7 days, and to make available the database dump. Probably a cron-job to refresh those things every hour.

  • Senior Developer

    Instead of Analytics, or Rainman (though I love this movie), or “Install survey”

    Something that’s more explicit to what it’s doing:

    FOG External Reporting

285
Online

7.8k
Users

14.8k
Topics

139.7k
Posts