From Fedora Project Wiki
(remove contact info table and add a relevant section)
(Filling "Quick Introduction", "The problem" and "The Solution")
Line 1: Line 1:
[[category:Summer coding 2017]]
[[category:Summer coding 2017]]
== Quick Introduction ==
The goal of this project is to provide centralized metrics for Fedora.
The Federated Message Bus or simply [http://www.fedmsg.com fedmsg] is a python package and API defining a brokerless messaging architecture to send and receive messages to and from [https://apps.fedoraproject.org/ Fedora applications]. For example, once a branch of a package is successfully built in [[Koji|koji]] a message will be emitted on the bus.
[https://apps.fedoraproject.org/datagrepper/ Datagrepper] let us query for all kinds of historical data from the fedmsg bus. It provides us with a JSON API for fedmsg which we can utilize by using HTTP GET requests. Many scripts are using this API to generate useful metrics. For example, we can query for all messages from the past 2 days that have been emitted from the wiki from a specific user.


== The Problem ==  
== The Problem ==  


XXX
There are applications that have to make a dozen or more requests to datagrepper to try and find the 'latest' events from large awkward pages of results. Unfortunately, this process is very slow. Consequently, datagrepper is insufficient for some more advanced reporting and analysis that we would like to do. 
 
At the moment, metrics collection in [[CommOps]] are collected using scripts which query the datagrepper API. This is very time consuming and requires a lot of manual work. After all, writing hacky scripts every time is a tedious process.


== The Solution ==  
== The Solution ==  


YYY
To solve the above mentioned issues, [https://github.com/fedora-infra/statscache statscache] was built. It is a daemon that sits listening to fedmsg-hub waiting for messages. When new messages arrive, it will pass them off to plugins that will calculate and store various statistics. If we want a new kind of statistic to be kept, we just write a new plugin for it. With statscache, we intend to have a centralized source for all metrics generation. By building on top of it, we can significantly reduce the number of scripts required to gather metrics to almost 0.
 
At the moment, statscache has no plugins for plugins community related metrics.
 
The main purpose of this project is to write these plugins. Other goals include the development of a nice web interface for generating the statistics, as well as the deployment of statscache along with the final deliverables on infracloud.


== About me ==
== About me ==

Revision as of 00:38, 24 March 2017


Quick Introduction

The goal of this project is to provide centralized metrics for Fedora.

The Federated Message Bus or simply fedmsg is a python package and API defining a brokerless messaging architecture to send and receive messages to and from Fedora applications. For example, once a branch of a package is successfully built in koji a message will be emitted on the bus.

Datagrepper let us query for all kinds of historical data from the fedmsg bus. It provides us with a JSON API for fedmsg which we can utilize by using HTTP GET requests. Many scripts are using this API to generate useful metrics. For example, we can query for all messages from the past 2 days that have been emitted from the wiki from a specific user.

The Problem

There are applications that have to make a dozen or more requests to datagrepper to try and find the 'latest' events from large awkward pages of results. Unfortunately, this process is very slow. Consequently, datagrepper is insufficient for some more advanced reporting and analysis that we would like to do.

At the moment, metrics collection in CommOps are collected using scripts which query the datagrepper API. This is very time consuming and requires a lot of manual work. After all, writing hacky scripts every time is a tedious process.

The Solution

To solve the above mentioned issues, statscache was built. It is a daemon that sits listening to fedmsg-hub waiting for messages. When new messages arrive, it will pass them off to plugins that will calculate and store various statistics. If we want a new kind of statistic to be kept, we just write a new plugin for it. With statscache, we intend to have a centralized source for all metrics generation. By building on top of it, we can significantly reduce the number of scripts required to gather metrics to almost 0.

At the moment, statscache has no plugins for plugins community related metrics.

The main purpose of this project is to write these plugins. Other goals include the development of a nice web interface for generating the statistics, as well as the deployment of statscache along with the final deliverables on infracloud.

About me

My name is Ilias Stamatis and I am a CS student in my final (4th) year at the Alexander Technological Institution of Thessaloniki, Greece.

I have been using Linux for the last 7 years. I started with Ubuntu where I stayed for a couple of years and then moved to Arch for the last 5 years, while experimenting with a lot of different distributions in the meantime.

Although I had no prior experience with Fedora, I quickly set up my working environment on it and read Fedora-specific topics from the official documentation, such as dnf and rpm usage. I also took a quick glance on RPM packaging.

I always have the dedication, motivation and ambition to learn and improve in order to achieve my goals and I strive for quality in everything I do.

Multilingual in Greek (Native), English (Fluent) and Spanish (Conversational).

OSS Contributions

Projects

The majority of my personal projects (mostly written in Python, C and Java) can be found on my personal github profile: https://github.com/Ilias95

Example projects:

A graphical front-end for multimedia conversions on Linux developed using python and pyqt5.

This is the most "successful" open-source project of mine, since it has a continuously growing user base. It has also been packaged by the community for all popular Linux distributions and it has been translated to more than 20 languages. However, I'm not proud of its ugly codebase (I initially wrote it 6 years ago and I maintain it ever since). A complete rewrite following TDD and clean code practices is in my future plans.

Implementation of a complete TFTP server using python and following the RFC 1350.

A dynamic web application developed using django and modern web technologies such as AJAX, JQuery and Bootstrap.

Arch Linux Contributions

Why Fedora

Lorem Ipsum.

Why this project

Lorem Ipsum.

Schedule and milestones

Implementing X -- first milestone (8 weeks)

Coding this (1 week)

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.

Documenting that (1 week)

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Contact Info

Ilias Stamatis, stamatis.iliass <> gmail.com

My IRC nick is Ilias95 and you can find me at #fedora-commops, #fedora-python and #fedora-devel.