Misurare le metriche di risposta di un indirizzo web è essenziale per comprendere le prestazioni e la disponibilità di un sito. In questo articolo, esploreremo come utilizzare Python per raccogliere dati dettagliati sulle prestazioni di un sito web, comprese la latenza, la disponibilità e altre metriche chiave. Utilizzeremo diverse librerie Python per eseguire queste operazioni, tra cui requests
, time
, statistics
, e matplotlib
per la visualizzazione dei dati.
Prima di iniziare, assicurati di avere installato Python e le seguenti librerie:
pip install requests matplotlib
Per misurare la latenza della risposta di un sito web, possiamo utilizzare la libreria requests
per inviare una richiesta HTTP e misurare il tempo impiegato per ottenere una risposta.
import requests
import time
def measure_latency(url, num_requests=10):
latencies = []
for _ in range(num_requests):
start_time = time.time()
response = requests.get(url)
latency = time.time() - start_time
latencies.append(latency)
print(f'Response status: {response.status_code}, Latency: {latency:.4f} seconds')
return latencies
url = "https://www.example.com"
latencies = measure_latency(url)
Dopo aver raccolto i dati sulla latenza, possiamo analizzarli per ottenere informazioni utili come la media, la deviazione standard e i percentili.
import statistics
def analyze_latencies(latencies):
mean_latency = statistics.mean(latencies)
median_latency = statistics.median(latencies)
stdev_latency = statistics.stdev(latencies)
percentile_90_latency = statistics.quantiles(latencies, n=100)[89]
print(f'Mean latency: {mean_latency:.4f} seconds')
print(f'Median latency: {median_latency:.4f} seconds')
print(f'Standard deviation: {stdev_latency:.4f} seconds')
print(f'90th percentile latency: {percentile_90_latency:.4f} seconds')
analyze_latencies(latencies)
Per una migliore comprensione delle prestazioni del sito web, è utile visualizzare i dati raccolti. Utilizzeremo matplotlib
per creare grafici.
import matplotlib.pyplot as plt
def plot_latencies(latencies):
plt.figure(figsize=(10, 6))
plt.plot(latencies, marker='o')
plt.title('Website Latency Over Time')
plt.xlabel('Request Number')
plt.ylabel('Latency (seconds)')
plt.grid(True)
plt.show()
plot_latencies(latencies)
Oltre alla latenza, è importante monitorare la disponibilità del sito web. Possiamo farlo registrando lo stato delle risposte HTTP.
def monitor_availability(url, num_requests=10):
availability = []
for _ in range(num_requests):
response = requests.get(url)
availability.append(response.status_code == 200)
print(f'Response status: {response.status_code}')
uptime = sum(availability) / num_requests * 100
print(f'Uptime: {uptime:.2f}%')
monitor_availability(url)
Conclusione
Misurare le metriche di risposta di un indirizzo web è un compito fondamentale per garantire che il sito web offra una buona esperienza utente. Utilizzando Python e le librerie requests
, time
, statistics
e matplotlib
, possiamo raccogliere, analizzare e visualizzare i dati di prestazione del sito web in modo efficace. Questo ci permette di identificare e risolvere eventuali problemi di prestazioni, migliorando la disponibilità e la velocità del sito.
Seguendo i passaggi descritti in questo articolo, sarai in grado di implementare un sistema di monitoraggio delle prestazioni per qualsiasi sito web, ottenendo così una visione dettagliata delle sue metriche di risposta.