[tor-dev] [Update] Network Status APIs

2023-10-03 Thread Mattia Righetti
Greetings Tor devs,

I wanted to give a quick update on the progress of the Network Status APIs[0].

First of all, a couple of weeks ago we have deployed an initial version of the 
service internally so that we can benchmark and test it and see how it holds.

Plus, we now have developed three more APIs: `/details`, `/clients`, 
`/weights`. In total, we now have covered almost every endpoint that is 
currently provided by onionoo.

Just to give you a little bit more insights, `/summary` and `/details` fetch 
data
from the Network Health team database and return a response identical to the one
that onionoo clients expect right now. On the other hand, `/clients`, 
`/weights` and `bandwidth` will proxy the request to VictoriaMetrics.

In the upcoming weeks we plan to stabilize and test these endpoints further and 
do some perf improvements.

Meanwhile, we are also working on documenting the APIs so that potential 
clients know how to use them, when they'll be available. Those can be found in 
the project's repo Wiki[1].

Please do reach out to me, hiro or GeKo if you have any ideas or feedback you'd
like to share with us.

Cheers,
Matt

[0]: https://gitlab.torproject.org/tpo/network-health/metrics/networkstatusapi/

[1]: 
https://gitlab.torproject.org/tpo/network-health/metrics/networkstatusapi/-/wikis/API-Documentation
___
tor-dev mailing list
tor-dev@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev


[tor-dev] [Update] Network Status APIs

2023-07-05 Thread Mattia Righetti
Greetings Tor devs,

During the last two weeks there has been an improvement in
the Network Status APIs[0].

Network Status APIs is going to replace Onionoo web protocol as the Network
Health Team moves most of the current bridges and relays data from files
stored on disk to Postgres and VictoriaMetrics.

We now have an initial working version of the `/summary` and `/bandwidth` 
endpoint.
The first endpoint already has some working filters, while the latter does not
yet. In the upcoming weeks we plan to stabilize and test these endpoints while
we continue the development of others.

The project initially started and was setup to look like a Onionoo copy to
prevent most clients from breaking and for a smoother transition to the new
protocol. We are now in the process of redefining some responses as the Onionoo
implementation introduces some limitations. In particular, changes will affect 
responses
that contain timeseries data stored on VictoriaMetrics as we thought it made 
more
sense to just return a direct ref to VictoriaMetrics[1] for those requests,
this way a client can decide to fetch referenced data or not based on its needs.

Please do reach out to me, hiro or GeKo if you have any ideas or feedback you'd
like to share with us.

Cheers,
Matt

[0]: https://gitlab.torproject.org/tpo/network-health/metrics/networkstatusapi/

[1]: 
https://gitlab.torproject.org/tpo/network-health/metrics/networkstatusapi/-/issues/3
___
tor-dev mailing list
tor-dev@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev


[tor-dev] Network Status APIs

2023-06-22 Thread Mattia Righetti
Greetings Tor devs,

In an effort to improve current resource utilisation, the
Network Health Status team is developing a new version of their pipeline [1].
Previously, much of the data was stored on files, this made many operations slow
due to their I/O bound nature. The new pipeline will transfer much of the data
related to Tor nodes and bridges from files stored on a single server's disk to
two separate databases: Postgres and Victoria Metrics.

With this new approach, there's the need to develop a new service that is going
to replace the current onionoo web protocol [2].

The main objective of this project is to design a RESTful API service, using the
actix_web framework, that is going to be integrated in the new pipeline v2.0
to support data retrieval of bridges and relays from the two databases and
additionally provide new features such as historic data search.

The project will be developed over the next few weeks as part of the GSoC
sponsored program.

Please do reach out to me, hiro or GeKo if you have any ideas or feedback you'd
like to share with us.

Cheers,
Matt


[1] 
https://gitlab.torproject.org/tpo/network-health/team/-/wikis/metrics/collector/pipeline

[2] https://gitlab.torproject.org/tpo/network-health/metrics/networkstatusapi/___
tor-dev mailing list
tor-dev@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev