Menu
CoddyTech

Rückblick: Serverüberwachung

Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 38 von 51.

challenge icon

Aufgabe

Mittel

Ein Webserver hat jede Minute der Nachtschicht protokolliert. Welche Minuten waren wirklich ungewöhnlich?

  1. Skaliere die vier columns.
  2. Markiere Minuten mit einem Isolation Forest (contamination=0.03, random_state=0) und mit LOF (n_neighbors=20, contamination=0.03).
  3. Gib die Minuten aus, die beide markieren, in zeitlicher Reihenfolge wie unten.
  4. Stelle jede Minute als Punkt dar, Anfragen auf der x-Achse und Latenz auf der y-Achse, beschriftet mit minutes. Kreise die Minuten, die beide markieren, rot ein und beschrifte sie mit both detectors. Füge eine Legende hinzu und zeige das Diagramm an.

Für eine andere Nacht:

Both detectors flag 5 minutes:
  00:25: 1116 requests/s, 186 ms
  01:10: 2106 requests/s, 95 ms
  02:00: 1151 requests/s, 133 ms
  02:40: 835 requests/s, 142 ms
  03:10: 1774 requests/s, 82 ms

Eine Nacht mit Serverminuten, Anfragen pro Sekunde auf der x-Achse und Latenz auf der y-Achse: eine ansteigende Punktwolke, drei langsame Minuten darüber rot eingekreist und zwei stark ausgelastete weit rechts

Coddy beschreibt anschließend dein Diagramm.

Probier es selbst

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor

# Eine Zeile pro Minute der Nachtschicht auf einem Webserver
log = pd.read_csv("servers.csv")
columns = ["cpu_pct", "memory_gb", "requests_per_s", "latency_ms"]

# Ändere die folgenden Zeilen nicht
fig, ax = plt.subplots()
ax.set_title("Server Watch")
ax.set_xlabel("Requests per second")
ax.set_ylabel("Latency (ms)")

# Schreibe deinen Code unten

Alle Lektionen in Unüberwachtes Lernen

Übe selbstständig: Online-Python-Compiler