feat: telegraf sectin

This commit is contained in:
2025-03-19 21:10:47 +01:00
parent 4f44cf5c0f
commit a4d9689e2d
3 changed files with 62 additions and 7 deletions

View File

@@ -22,6 +22,14 @@
note = {[Accessed 01-Sep-2022]} note = {[Accessed 01-Sep-2022]}
} }
@misc{aiknowTimeSeries,
author = {Angelo Lazzari},
title = {{T}ime series: una piccola, ma dettagliata, introduzione - {A}{I}{K}now --- aiknow.io},
howpublished = {\url{https://www.aiknow.io/cosa-sono-le-time-series/?doing_wp_cron=1742414242.9129240512847900390625}},
year = {},
note = {[Accessed 19-03-2025]}
}
@misc{archiveStream, @misc{archiveStream,
author = {}, author = {},
title = {{A}ce {S}tream --- web.archive.org}, title = {{A}ce {S}tream --- web.archive.org},
@@ -134,6 +142,14 @@
note = {[Accessed 18-03-2025]} note = {[Accessed 18-03-2025]}
} }
@misc{githubGitHubInfluxdatatelegraf,
author = {},
title = {{G}it{H}ub - influxdata/telegraf: {A}gent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data. --- github.com},
howpublished = {\url{https://github.com/influxdata/telegraf}},
year = {},
note = {[Accessed 19-03-2025]}
}
@misc{githubGitHubWebtorrentbittorrenttracker, @misc{githubGitHubWebtorrentbittorrenttracker,
author = {}, author = {},
title = {{G}it{H}ub - webtorrent/bittorrent-tracker: {S}imple, robust, {B}it{T}orrent tracker (client \& server) implementation --- github.com}, title = {{G}it{H}ub - webtorrent/bittorrent-tracker: {S}imple, robust, {B}it{T}orrent tracker (client \& server) implementation --- github.com},
@@ -191,6 +207,13 @@
journal = {{IEEE} Transactions on Dependable and Secure Computing} journal = {{IEEE} Transactions on Dependable and Secure Computing}
} }
@misc{noauthor_telegraf_nodate,
title = {Telegraf documentation},
url = {https://docs.influxdata.com/telegraf/v1/},
abstract = {Documentation for Telegraf, the plugin-driven server agent of the InfluxData time series platform, used to collect and report metrics. Telegraf supports four categories of plugins input, output, aggregator, and processor.},
urldate = {2025-03-19}
}
@misc{novageMediaLoader, @misc{novageMediaLoader,
author = {}, author = {},
title = {{P}2{P} {M}edia {L}oader --- novage.com.ua}, title = {{P}2{P} {M}edia {L}oader --- novage.com.ua},
@@ -270,7 +293,7 @@
note = {[Accessed 02-Apr-2023]} note = {[Accessed 02-Apr-2023]}
} }
@misc{tailscaleTraversalWorks, @misc{tailscaleTraversalWorks,
author = {}, author = {},
title = {{H}ow {N}{A}{T} traversal works --- tailscale.com}, title = {{H}ow {N}{A}{T} traversal works --- tailscale.com},
howpublished = {\url{https://tailscale.com/blog/how-nat-traversal-works}}, howpublished = {\url{https://tailscale.com/blog/how-nat-traversal-works}},
@@ -296,7 +319,7 @@
doi = {10.1007/978-3-319-54328-4_5} doi = {10.1007/978-3-319-54328-4_5}
} }
@misc{torprojectHeartTahoeLAFS, @misc{torprojectHeartTahoeLAFS,
author = {}, author = {},
title = {{T}or at the {H}eart: {T}ahoe-{L}{A}{F}{S} | {T}or {P}roject --- blog.torproject.org}, title = {{T}or at the {H}eart: {T}ahoe-{L}{A}{F}{S} | {T}or {P}roject --- blog.torproject.org},
howpublished = {\url{https://blog.torproject.org/tor-heart-tahoe-lafs/}}, howpublished = {\url{https://blog.torproject.org/tor-heart-tahoe-lafs/}},

View File

@@ -600,7 +600,7 @@ Per verificare le affermazioni degli sviluppatori di PeerTube, abbiamo deciso di
\item Analizzare i dati raccolti per valutare le prestazioni del sistema P2P di PeerTube \item Analizzare i dati raccolti per valutare le prestazioni del sistema P2P di PeerTube
\end{itemize} \end{itemize}
\subsection{Stack tecnologico per i test} \section{Stack tecnologico per i test}
Per i nostri test abbiamo utilizzato una combinazione di tecnologie open source per creare un sistema di test automatizzato che sfrutta le seguenti tecnologie: Per i nostri test abbiamo utilizzato una combinazione di tecnologie open source per creare un sistema di test automatizzato che sfrutta le seguenti tecnologie:
@@ -655,7 +655,39 @@ Approfondendo il discordo del `networking', Docker mette a disposizione varti ti
\end{figure} \end{figure}
\cite{AzureFunctions} \cite{geeksforgeeksContainerizationUsing} \cite{geeksforgeeksDockerNetworking} \cite{AzureFunctions} \cite{geeksforgeeksContainerizationUsing} \cite{geeksforgeeksDockerNetworking}
\subsection{Architettura del sistema di test} \subsection{Telegraf}
Telegraf è un agente di raccolta di metriche open source sviluppato da InfluxData. È progettato per raccogliere, elaborare e inviare metriche da una varietà di sorgenti, tra cui sistemi operativi, database, applicazioni e dispositivi di rete.
\begin{figure}[H]
\centering
\includegraphics[width=300pt]{images/telegraf-architecture-diagram.png}
\caption{Architettura Telegraf.}
\end{figure}
Scritto in `Go', Telegraf è dodato di oltre 300 plugin di input, trasformazione e output di dati, che consentono di raccogliere metriche da una vasta gamma di sorgenti. Per sua natura, funziona come un pipeline di dati che può essere instradata attraverso diversi plugin per elaborare e aggregare le informazioni prima di raggiungere l'output finale.
Alcuni componenti principali di Telegraf includono:
\begin{itemize}
\item \textbf{Agent}: Il core del sistema, responsabile della raccolta e dell'elaborazione delle metriche dai plugin di input definiti e le invia ai plugin di output specificati, in base alla configurazione fornita.
\item \textbf{Input Plugins}: Raccolgono metriche da sorgenti come sistemi operativi, database, applicazioni e dispositivi di rete.
\item \textbf{Processor Plugins}: Elaborano e trasformano le metriche raccolte prima di inviarle all'output.
\item \textbf{Output Plugins}: Inoltrano le metriche elaborate a un sistema di monitoraggio o di archiviazione.
\item \textbf{Aggregator Plugins}: Aggregano le metriche raccolte per ridurre il volume dei dati.
\end{itemize}
La configurazione di Telegraf è definita da un file di configurazione `TOML' che definisce i plugin di input, processore e output da utilizzare, insieme a eventuali parametri aggiuntivi necessari per la raccolta e l'elaborazione delle metriche.
Viene spesso utilizzato affianco ad un database di tipo `time-series' come InfluxDB per l'archiviazione e la visualizzazione delle metriche raccolte, ma può essere integrato con una vasta gamma di sistemi di monitoraggio e analisi dei dati.\\
Una metrica `time-series' è una serie di dati indicizzati in sequenza rispetto al tempo. Un esempio è una sequenza di osservazioni o rilevazioni registrate allo scorrere del tempo. Vi sono due macrocategorie di time series:
\begin{itemize}
\item \textbf{univariate time series}: le osservazioni sono monodimensionali, ovvero: viene registrato un solo valore numerico allo scorrere del tempo.
\item \textbf{multivariate time series}: le osservazioni sono multidimensionali, ovvero, si registrano più valori numerici per un singolo istante di tempo.
\end{itemize}
Tipicamente, un `time-series' viene rappresentato con una struttura dati che registri un timestamp, che può essere di qualche tipo specifico per date, oppure un interocontenente uno `Unix timestamp'; oltre a questo contiene dati addizionali, che nella versione più semplice possono essere un unico valore numerico, ovvero losservazione registrata allo scorrere del tempo.
\cite{githubGitHubInfluxdatatelegraf} \cite{noauthor_telegraf_nodate} \cite{aiknowTimeSeries}
\section{Architettura del sistema di test}
Il nostro sistema di test è composto da: Il nostro sistema di test è composto da:
@@ -666,15 +698,15 @@ Il nostro sistema di test è composto da:
\item Un database centralizzato per la raccolta e l'analisi dei dati \item Un database centralizzato per la raccolta e l'analisi dei dati
\end{itemize} \end{itemize}
\section{Difficoltà incontrate e soluzioni} \subsection{Difficoltà incontrate e soluzioni}
Durante lo sviluppo del sistema di test abbiamo affrontato diverse sfide: Durante lo sviluppo del sistema di test abbiamo affrontato diverse sfide:
\begin{itemize} \begin{itemize}
\item \textbf{Accesso alle metriche WebRTC}: Risolto sviluppando un'estensione Chrome personalizzata \item \textbf{Accesso alle metriche WebRTC}: Risolto sviluppando un'estensione Chrome personalizzata
\item \textbf{Sincronizzazione dei test}: Implementato un sistema di coordinamento basato su messaggi \item \textbf{Limitazioni delle API di Peertube}: Superato utilizzando tecniche di scraping con Selenium e Python
\item \textbf{Limitazioni delle API di WebRTC}: Superato utilizzando tecniche di scraping avanzate
\item \textbf{Gestione delle variabili d'ambiente nell'estensione Chrome}: Risolto attraverso webpack e sostituzione dinamica \item \textbf{Gestione delle variabili d'ambiente nell'estensione Chrome}: Risolto attraverso webpack e sostituzione dinamica
\item \textbf{Raccolta dei dati dei test su macchine virtuali distribuite}: Risolto utilizzando Telegraf e MongoDB
\end{itemize} \end{itemize}
\section{Casi d'uso e scenari di test riprodotti} \section{Casi d'uso e scenari di test riprodotti}

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB