Hello, everyone.
My name is Hardik Jain. I had few queries regarding 'Improving OpenWISP 
Monitoring towards it's first release' in GSoC ideas 2020.
Here are the details:

1) *TIMESERIESDATABASE* : While the page clearly mentioned it was upon us 
to research and propose which database has to be used.
    I wanted a review upon my research. I am mentioning three time series 
databases, two were mentioned on the gsoc-ideas page, while one I found 
quite                 interesting.

   a) *Prometheus* <https://prometheus.io/docs/introduction/overview/> : 
This is definitely an easy pick as database can be easily migrated from 
*influxdb 
*to it. 
                               It has all the required qualities as well to 
be narrowed down further, an active open source project, friendly 
documentation and very few                                               
dependencies.
   b) *Opentsdb* 
<http://opentsdb.net/docs/build/html/api_http/index.html#overview> : This 
was the second database recommended in the ides list. From it's docs 
<http://opentsdb.net/docs/build/html/installation.html#id1> I have found 
out it is a good database but requires a Apache server                     
            setup with Hadoop, Hbase, GNU Plot, Java runtime environment 
(many dependencies leading to unnecessary maintenance) ideal with Linux  
                            distribution. Also, the other day I was reading 
Apache 
v/s NGINIX <https://www.similartech.com/compare/apache-vs-nginx>(clearly 
many clients might not have Apache servers)
   c) *Victorial-Metrics 
<https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/FAQ> *: All the 
good reasons to consider it, benchmark tests 
<https://groups.google.com/forum/goog_804057710> (Please check this out!) 
and the documentation <https://groups.google.com/forum/goog_804057716> says 
a lot. Though it's not old and thus                                       
unused by that large of an audience right now also doesn't have a very 
active community (as it's new) and good documentation. Code                
                                might not be quite stable as I read in a 
few reviews so I think it's a good option but moving to it would be early 
now.

*My Recommendation* : 
If a large majority of clients use Apache server (less possibility), 
Opentsdb won't be a bad choice (Prometheus says so 
<https://prometheus.io/docs/introduction/comparison/#summary-1>) else my 
recommendation would be Prometheus over Victoria-metrics, owing to the 
former's higher stability over the latter and good documentation with no 
external dependencies (docs mentioned it to be standalone) leaving time for 
completing other tasks on the list (rather than putting great efforts to 
explore the database on our own which I think can lead to good wastage of 
time and efforts and might not be the primary objective). Also, it's 
mentioned in Victoria-metrics documentation 
<https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/FAQ>(link same as 
above) that they allow easy migration from prometheus to their database. 
So, this can be achieved later on too.

2) *Query parameter of graph:* 

> Right now the query parameter of a chart (now called Graph) is editable 
> via the django admin. This poses several issues: from UX (it's hard to deal 
> with it) to security (the query could be manipulated to get data to which 
> the user does not have access to).
>

I agree with this point (honestly was going to open an issue when I noticed 
that anything in the database can be accessed :smiley:, until I read this). 
I also, get it that it is not quite friendly for the end-user.

We need to refactor this part so that the user can choose among a 
> predefined set of queries, but the list should be customizable using a 
> Django setting, so that users can implement their own queries if needed. 
>

I understand that these predefined queries can be sorted later when the 
coding period starts, though just for a very small clarification I would 
like to know if users can add their custom queries via modifying a simple 
Django setting won't then the same risk of giving users access to data that 
shouldn't be accessible to them once again occur? If, so I think adding 
necessary restrictions and defining the boundaries of these customization 
would be essential.

3) *Documentation:*
This module is in great need of a good documentation. Just for an example 
though I was able to build it correctly on my local pc, some unit tests are 
failing when I tested them, Now, I will have to try the hard way debugging 
:(
I will post an update on this soon.

4) A basic query, can we add a few modifications to what is described in 
the original idea (would, surely discuss it here before sending a draft 
proposal).

5) *Mentors*: I would be extremely grateful, if someone can please suggest 
me probable mentors for this project. Most of my PRs were reviewed by 
@nemesisdesign and @atb00ker. Though I am unsure which mentors shall be 
participating in GSOC 2020 and for which project. So, any help in this 
regard would be highly appreciated :grinning:

Exremely, sorry for being too lengthy, just wanted to be clear with small 
details that might matter much later on.
(Also, I might trouble a bit later on too with few more small queries on 
this thread as I am exploring the idea/project, so please bear with me for 
a while.)

Thanks in advance!

Best regards
Hardik Jain
:)

-- 
You received this message because you are subscribed to the Google Groups 
"OpenWISP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/openwisp/8b1603e0-d6f3-4739-a52c-97034710bda1%40googlegroups.com.

Reply via email to