Skip to content
Darshan Kansagara edited this page Sep 11, 2020 · 80 revisions

Welcome to the GSoC 2020 - FOSSology (Fossdash) wiki!

About Project

FOSSology generates a large set of data that is exported to the time-series influx database and visualized with the help of Grafana. I Wrote a fossdash_publisher script that collects useful data from FOSSology DB (Postgres) and exposes them to influx DB. Developed a visualization dashboard in Grafana by integrating influx as an input data source.

This project is divided into two parts:

  1. Generating meaningful data from fossology DB and publish those data to InfluxDB ( Time-series database ) using a fossdash-publisher script.
  2. In the Grafana using a query tool, We can get InfluxDB data and show it using meaningful charts and graphs.

Architecture

architecture_image

The Dashboard : Final Deliverable

Setup Fossdash to get started.

Fossdash-setup---Getting-started

Changes in Codebase

  • Wrote a fossdash-publisher script in python to get the latest data from Postgres and convert them to InfluxDB standard formate and then push them to InfluxDB.
    • install/fossdash/fossdash-publish.py.in
    • Metric-reported config for fossdash: install/fossdash/fossdash_metrics.yml
  • changes in respective Makefile
  • Added fossdash configuration.
    • src/lib/php/fossdash-config.php
    • src/www/ui/admin-fossdash-config.php
  • Changes in fossology sysconfig UI to add Bootstrap classes.
    • src/www/ui/admin-config.php
    • src/lib/php/common-sysconfig.php
  • Developed a Dashboard in grafana to show these data metrics in a meaningful way.
    • Generic Dashboard: It shows combined information of all instances of fossology.
    • Instance-specific-Dashboard: It shows only instance-specific data metric on the dashboard. You can choose any specific instance name from the dropdown.
  • Checking cron job entry using : sudo -u www-data crontab -l OR check file /var/spool/cron/crontabs/www-data (in Docker, in the Web container)

GIT Repository

Team

  • Student: Darshan Kansagara (darshank15)
  • The Project Mentor : Nicolas Toussaint (NicolasToussaint)
  • Mentor(s): Gaurav Mishra (@GMishx), Shaheem Azmal (@shaheemazmalmmd), Sandipbhuyan (@sandipbhuyan)

Deliverables

Tasks Planned Completed
Creating fossdash-publisher script Yes ✔️
Integration with InlfuxDB and Grafana Yes ✔️
Creating Dashboard on Grafana Yes ✔️
Configuring fossdash from fossology Yes ✔️
Handling report and unreported files on disk Yes ✔️

Future Plans

Things I learned from Google Summer of Code

  • Got a deep drive knowledge on Python.
  • Learned about Time-series databases such as influxDB and Prometheus and their client library.
  • Learned Grafana, its Configuration, setup data source, plugging, Creating dashboard.
  • Learned PHP language. I used PHP first time in this project and learned to code from this project.
  • Sharpen my skills on various GIT commands such as rebase, revert, reset and pull request.
  • Learned to work in Linux based environment and learned more on useful commands such as grep, find and crontab etc..
  • Learned the importance of time management when working in a collaborative team to deliver milestones.
  • Improved my communication & presentation skill

Want to connect with me?

GSoC 2020 Weekly Report

https://github.com/darshank15/GSoC_2020_FOSSOlogy/wiki/Weekly-Report-for-GSoC-2020-FOSSology---Fossdash