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 : 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 : This was the second database recommended in the ides list. From it's
docs
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 (clearly many clients might not have Apache servers)
c)
Victorial-Metrics : All the good reasons to consider it,
benchmark tests (Please check this out!) and the
documentation
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)
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(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
:)