Monitoreo de operaciones de caché en Laravel: Guía de eventos
- Publicado el 17 diciembre, 2024
- Palabras: 77
¿Quieres hacer un seguimiento de lo que sucede con tu caché? ¡Los eventos de caché de Laravel te permiten monitorear cada operación! Exploremos cómo aprovechar estos poderosos eventos.

#Eventos de caché disponibles
Laravel envía eventos para operaciones de caché de claves:
use IlluminateCacheEvents{
CacheHit,
CacheMissed,
KeyForgotten,
KeyWritten
};
#Implementación sencilla
A continuación se explica cómo escuchar eventos de caché:
class CacheEventSubscriber
{
public function handleCacheHit(CacheHit $event)
{
Log::info("Cache hit: {$event->key}");
}
public function handleCacheMiss(CacheMissed $event)
{
Log::info("Cache miss: {$event->key}");
}
}
#Ejemplo práctico
A continuación se muestra una implementación práctica para monitorear el rendimiento de la caché:
class CacheMonitoringService
{
public function subscribe($events)
{
$events->listen(CacheHit::class, function ($event) {
$this->recordMetric('hits', [
'key' => $event->key,
'tags' => $event->tags,
'response_time' => microtime(true) - LARAVEL_START
]);
});
$events->listen(CacheMissed::class, function ($event) {
$this->recordMetric('misses', [
'key' => $event->key,
'tags' => $event->tags
]);
});
$events->listen(KeyWritten::class, function ($event) {
$this->recordMetric('writes', [
'key' => $event->key,
'tags' => $event->tags,
'ttl' => $event->seconds ?? 'forever'
]);
});
}
private function recordMetric(string $type, array $data)
{
// Store metrics in your monitoring system
// Example: StatsD, Prometheus, etc.
}
}
// En un service provider:
public function boot()
{
if (config('cache.monitoring.enabled')) {
(new CacheMonitoringService)->subscribe($this->app['events']);
}
}
#Deshabilitar eventos
Para un mejor rendimiento, puede deshabilitar los eventos de caché en config/cache.php:
'redis' => [
'driver' => 'redis',
'events' => false,
// other config...
],
Los eventos de caché brindan información valiosa sobre el comportamiento de almacenamiento en caché de su aplicación, lo que resulta perfecto para la supervisión y la depuración.
Fuente: Harris Raftopoulos
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión