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.