Pular para conteúdo

API de Cache

A API de cache fornece endpoints para monitorar e gerenciar os caches em memória usados pelo proxbox-api.

Endpoints de Cache

Endpoint Descrição
GET /cache Inspecionar todos os caches (Proxbox e NetBox GET cache) com métricas e chaves de exemplo
GET /cache/metrics Obter métricas do cache NetBox GET como JSON
GET /cache/metrics/prometheus Obter métricas do cache NetBox GET em formato Prometheus
GET /clear-cache Limpar ambos os caches Proxbox e NetBox GET

Esquemas de Resposta

GET /cache

Retorna uma visualização combinada de todos os caches:

json { "proxbox_cache": { ... }, "netbox_get_cache_metrics": { "hits": 150, "misses": 50, "hit_rate": 75.0, "invalidations": 10, "evictions_ttl": 5, "evictions_size": 3, "evictions_bytes": 2500, "current_entries": 50, "current_bytes": 5242880, "max_entries": 4096, "max_bytes": 52428800, "ttl_seconds": 60.0, "oldest_entry_age_seconds": 45.2 }, "netbox_get_cache_sample": [ {"api_id": 123456, "path": "/api/dcim/devices/", "query": ""} ] }

GET /cache/metrics

Retorna métricas do cache NetBox GET:

json { "hits": 150, "misses": 50, "hit_rate": 75.0, "invalidations": 10, "evictions_ttl": 5, "evictions_size": 3, "evictions_bytes": 2500, "current_entries": 50, "current_bytes": 5242880, "max_entries": 4096, "max_bytes": 52428800, "ttl_seconds": 60.0, "oldest_entry_age_seconds": 45.2 }

GET /cache/metrics/prometheus

Retorna métricas em formato Prometheus:

```

HELP proxbox_cache_hits Total number of cache hits

TYPE proxbox_cache_hits counter

proxbox_cache_hits 150

HELP proxbox_cache_misses Total number of cache misses

TYPE proxbox_cache_misses counter

proxbox_cache_misses 50

HELP proxbox_cache_hit_rate Cache hit rate percentage

TYPE proxbox_cache_hit_rate gauge

proxbox_cache_hit_rate 75.0 ... ```

Referência de Métricas

Métrica Tipo Descrição
hits counter Total de acertos no cache
misses counter Total de erros no cache
hit_rate gauge Porcentagem de acertos no cache
invalidations counter Número de invalidações de cache
evictions_ttl counter Entradas evicadas por expiração de TTL
evictions_size counter Entradas evicadas por limite de quantidade
evictions_bytes counter Bytes evitados por limite de tamanho
current_entries gauge Número atual de entradas em cache
current_bytes gauge Tamanho atual do cache em bytes
max_entries gauge Máximo de entradas permitidas
max_bytes gauge Máximo de bytes permitidos
ttl_seconds gauge Configuração atual de TTL
oldest_entry_age_seconds gauge Idade da entrada mais antiga

Variáveis de Ambiente

Variável Padrão Descrição
PROXBOX_NETBOX_GET_CACHE_TTL 60.0 TTL do cache em segundos (0 para desabilitar)
PROXBOX_NETBOX_GET_CACHE_MAX_ENTRIES 4096 Máximo de entradas em cache
PROXBOX_NETBOX_GET_CACHE_MAX_BYTES 52428800 Máximo de tamanho do cache em bytes (50MB)
PROXBOX_DEBUG_CACHE 0 Habilitar log de debug (1 para habilitar)

Exemplo: Prometheus Scraping

Adicione isso à sua configuração do Prometheus:

yaml scrape_configs: - job_name: 'proxbox-api' static_configs: - targets: ['proxbox-api:8000'] metrics_path: '/cache/metrics/prometheus'