mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-27 06:01:01 +02:00
With many workspaces and flows, the prometheus metrics expand greatly. Many significant metrics (e.g. latency) make more sense measured globally. This change introduces a consolidation. Histograms (request_latency, text_completion_duration, chunk_size, etc.) are now global with only processor-level labels, eliminating per-workspace time series multiplication. Counters and enums retain workspace and flow labels for per-workspace debugging visibility. Renamed metric labels for clarity: name -> consumer/producer/subscriber, and added explicit workspace label alongside flow. Fixed bug where request_response_spec labelled response subscriber with request_name instead of response_name. Removed unused Histogram imports from model and service files.
32 lines
1 KiB
Python
32 lines
1 KiB
Python
from __future__ import annotations
|
|
|
|
import uuid
|
|
from typing import Any
|
|
|
|
from . spec import Spec
|
|
from . librarian_client import LibrarianClient
|
|
|
|
|
|
class LibrarianSpec(Spec):
|
|
def __init__(self, request_name="librarian-request",
|
|
response_name="librarian-response"):
|
|
self.request_name = request_name
|
|
self.response_name = response_name
|
|
|
|
def add(self, flow: Any, processor: Any, definition: dict[str, Any]) -> None:
|
|
|
|
client = LibrarianClient(
|
|
id=flow.id,
|
|
backend=processor.pubsub,
|
|
taskgroup=processor.taskgroup,
|
|
librarian_request_queue=definition["topics"][self.request_name],
|
|
librarian_response_queue=definition["topics"][self.response_name],
|
|
librarian_subscriber=(
|
|
processor.id + "--" + flow.workspace + "--" +
|
|
flow.name + "--librarian--" + str(uuid.uuid4())
|
|
),
|
|
workspace=flow.workspace,
|
|
flow_name=flow.name,
|
|
)
|
|
|
|
flow.librarian = client
|