diff options
| author | mjkwiatkowski <mati.rewa@gmail.com> | 2026-07-04 15:55:40 +0200 |
|---|---|---|
| committer | mjkwiatkowski <mati.rewa@gmail.com> | 2026-07-04 15:55:40 +0200 |
| commit | 65775b9fe9fe44049a0f1da2b6b9ffbdb9881d1f (patch) | |
| tree | cf81271f2867b6ba2e4047563c2a2e4406827bae /content | |
| parent | c7ea4c55a58e832330c951de9d6104413b59cada (diff) | |
feat: finished section 4.4
Diffstat (limited to 'content')
| -rw-r--r-- | content/implementation.tex | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/content/implementation.tex b/content/implementation.tex index 2395963..0decbc3 100644 --- a/content/implementation.tex +++ b/content/implementation.tex @@ -125,7 +125,7 @@ In order to turn it into a \gls{dt}, we have made several design decisions and e The \code{KafkaMonitor} class implements the generic \code{ComputeMonitor} interface, therefore the new extension follows the other metric exporting options in \code{OpenDC} (\ie follows the implementation for exporting metrics into \code{.parquet files}). \item \textbf{\code{HTTPClient}}\\ The \code{HTTPClient} offers the necessary functionality to communicate between the \gls{dt} and the datacenter. - We decided to use the HTTP protocol for short, one-off communications between the \gls{dt} and the datacenter, as is common industry practice. + We decided to use the \gls{http} protocol for short, one-off communications between the \gls{dt} and the datacenter, as is common industry practice. \end{enumerate} \section{Python Modules}\label{ss:programming} @@ -137,7 +137,19 @@ For future work, we envision a system that implements the reference architecture \begin{enumerate}[label=\textbf{\arabic*.}] \item \textbf{\code{AnalyticsEngine}}\\ + The \code{AnalyticsEngine} module is necessary in order to encapsulate the logic of data preprocessing and analysis from monitoring. + This component can contain capabilities for different statistical metrics, subject to \gls{dt}s focus. + In \gls{my_system} \code{AnalyticsEngine} continuously checks whether the incoming datacenter sensor readings exceed different thresholds. + For example, the \code{AnalyticsEngine} is capable of calculating a similarity score $S$ between potential failure distributions and the true failure distribution. \item \textbf{\code{HTTPServer}}\\ + The \code{HTTPServer} is crucial for interrupting the operation of the datacenter in order to adjust its operation or offer insights. + It maintains a python \code{Queue} structure. + The \code{Queue} \emph{producer} is the \code{AnalyticsEngine} (\grayCircled{4}). + The \emph{consumer} is the \code{HTTPClient} within \code{OpenDC} (\ie the real datacenter, (\myCircled{2}), (\myCircled{1})). + Both the consumer and producer interact with the \code{Queue} via the network and different HTTP endpoints of \code{HTTPServer}. \item \textbf{\code{MonitoringService}}\\ + The \code{MonitoringService} is responsible for interacting with the \code{Redis} key value store. + It contains a \code{while True} Python loop which contains the function call to fetch the latest changes to the \code{Redis} stream. + Upon update, the \code{MonitoringService} informs the \code{AnalyticsEngine} that new data is awaiting \code{AnalyticsEngine} (\grayCircled{6}). \end{enumerate} |
