mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-12 22:42:13 +02:00
feat(observability): add index cache hit/miss and eviction metrics
This commit is contained in:
parent
daccd304ee
commit
4d6378e031
1 changed files with 40 additions and 0 deletions
|
|
@ -305,6 +305,22 @@ def _etl_cache_evictions():
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@lru_cache(maxsize=1)
|
||||||
|
def _index_cache_lookups():
|
||||||
|
return _get_meter().create_counter(
|
||||||
|
"surfsense.index.cache.lookups",
|
||||||
|
description="Count of index (chunk+embedding) cache lookups by outcome (hit/miss).",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@lru_cache(maxsize=1)
|
||||||
|
def _index_cache_evictions():
|
||||||
|
return _get_meter().create_counter(
|
||||||
|
"surfsense.index.cache.evictions",
|
||||||
|
description="Count of index cache entries evicted, by phase.",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@lru_cache(maxsize=1)
|
@lru_cache(maxsize=1)
|
||||||
def _celery_heartbeat_refreshes():
|
def _celery_heartbeat_refreshes():
|
||||||
return _get_meter().create_counter(
|
return _get_meter().create_counter(
|
||||||
|
|
@ -708,6 +724,28 @@ def record_etl_cache_eviction(count: int, *, phase: str) -> None:
|
||||||
_add(_etl_cache_evictions(), count, {"phase": phase})
|
_add(_etl_cache_evictions(), count, {"phase": phase})
|
||||||
|
|
||||||
|
|
||||||
|
def record_index_cache_lookup(
|
||||||
|
*, embedding_model: str | None, chunker_kind: str | None, outcome: str
|
||||||
|
) -> None:
|
||||||
|
"""Record an index-cache lookup. ``outcome`` is ``hit`` or ``miss``."""
|
||||||
|
_add(
|
||||||
|
_index_cache_lookups(),
|
||||||
|
1,
|
||||||
|
{
|
||||||
|
"embedding.model": embedding_model or "unknown",
|
||||||
|
"chunker.kind": chunker_kind or "unknown",
|
||||||
|
"outcome": outcome,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def record_index_cache_eviction(count: int, *, phase: str) -> None:
|
||||||
|
"""Record evicted entries. ``phase`` is ``ttl`` or ``size``."""
|
||||||
|
if count <= 0:
|
||||||
|
return
|
||||||
|
_add(_index_cache_evictions(), count, {"phase": phase})
|
||||||
|
|
||||||
|
|
||||||
def record_celery_heartbeat_refresh(*, heartbeat_type: str) -> None:
|
def record_celery_heartbeat_refresh(*, heartbeat_type: str) -> None:
|
||||||
_add(_celery_heartbeat_refreshes(), 1, {"heartbeat.type": heartbeat_type})
|
_add(_celery_heartbeat_refreshes(), 1, {"heartbeat.type": heartbeat_type})
|
||||||
|
|
||||||
|
|
@ -908,6 +946,8 @@ __all__ = [
|
||||||
"record_etl_cache_lookup",
|
"record_etl_cache_lookup",
|
||||||
"record_etl_extract_duration",
|
"record_etl_extract_duration",
|
||||||
"record_etl_extract_outcome",
|
"record_etl_extract_outcome",
|
||||||
|
"record_index_cache_eviction",
|
||||||
|
"record_index_cache_lookup",
|
||||||
"record_indexing_document_duration",
|
"record_indexing_document_duration",
|
||||||
"record_indexing_document_outcome",
|
"record_indexing_document_outcome",
|
||||||
"record_interrupt",
|
"record_interrupt",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue