Menu
CoddyTech

Récapitulatif : surveillance des serveurs

Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 38 sur 51.

challenge icon

Défi

Moyen

Un serveur web a enregistré chaque minute du service de nuit. Quelles minutes étaient vraiment étranges ?

  1. Mets à l’échelle les quatre columns.
  2. Signale les minutes à l’aide d’une forêt d’isolation (contamination=0.03, random_state=0) et de LOF (n_neighbors=20, contamination=0.03).
  3. Affiche les minutes signalées par les deux détecteurs, dans l’ordre chronologique, comme ci-dessous.
  4. Représente toutes les minutes par un nuage de points, avec les requêtes en abscisse et la latence en ordonnée, étiqueté minutes. Entoure en rouge les minutes signalées par les deux détecteurs, avec l’étiquette both detectors. Ajoute une légende et affiche le graphique.

Pour une autre nuit :

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

Une nuit de minutes de serveur, avec les requêtes par seconde en abscisse et la latence en ordonnée : un nuage ascendant, trois minutes lentes encerclées en rouge au-dessus et deux minutes très chargées loin à droite

Coddy décrit ensuite ton graphique.

Essayez vous-même

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

# Une ligne par minute de service de nuit sur un serveur web
log = pd.read_csv("servers.csv")
columns = ["cpu_pct", "memory_gb", "requests_per_s", "latency_ms"]

# Ne modifiez pas les lignes ci-dessous
fig, ax = plt.subplots()
ax.set_title("Server Watch")
ax.set_xlabel("Requests per second")
ax.set_ylabel("Latency (ms)")

# Écrivez votre code ci-dessous

Toutes les leçons de Apprentissage non supervisé

Entraînez-vous par vous-même : Compilateur Python en ligne