Observability Auditor - Telemetry & Usage
The Observability Auditor (lucid-observability-auditor) provides Langfuse-style LLM observability with TEE-signed traces. It tracks operational metrics like token usage, latency, and cost without interfering with the data flow.
π‘οΈ Use Case
- Verifiable Billing: Generate cryptographically signed evidence of token usage for usage-based billing.
- Resource Monitoring: Track latency, token counts, and cost per hardware-secured session.
- Trace Collection: Build comprehensive audit trails with TEE-signed measurements.
π Implementation
This auditor uses both Request and Response phases to emit telemetry.
import time
from lucid_sdk import create_auditor, Proceed
builder = create_auditor(auditor_id="lucid-observability-auditor")
# Cost per token (example pricing)
COST_PER_INPUT_TOKEN = 0.000001
COST_PER_OUTPUT_TOKEN = 0.000002
@builder.on_request
def analyze_input(data: dict, config: dict = None, lucid_context: dict = None):
# Record request start time and estimate input tokens
prompt = data.get("prompt", "")
input_tokens = len(prompt.split())
return Proceed(
input_tokens=input_tokens,
request_cost=input_tokens * COST_PER_INPUT_TOKEN,
trace_id=lucid_context.get("session_id") if lucid_context else None
)
@builder.on_response
def analyze_output(response: dict, request: dict = None, lucid_context: dict = None):
# Record token usage and latency from model response
usage = response.get("usage", {})
output_tokens = usage.get("total_tokens", 0)
latency_ms = usage.get("latency", 0)
return Proceed(
output_tokens=output_tokens,
response_cost=output_tokens * COST_PER_OUTPUT_TOKEN,
latency_ms=latency_ms,
model=response.get("model", "unknown")
)
auditor = builder.build()
βΈοΈ Deployment Configuration
chain:
- name: lucid-observability-auditor
image: "lucid-observability-auditor:latest"
script: lucid-observability-auditor/main.py
port: 8092
env:
TRACE_SAMPLING_RATE: "1.0"
ENABLE_COST_TRACKING: "true"
VERIFIER_URL: "http://verifier-service:8000"
π Behavior
This auditor never blocks or redacts data. Instead, it "piggybacks" on every request to generate Measurements. These measurements are signed by the TEE hardware and sent to the Lucid Verifier.
The resulting AI Passport will contain:
{
"measurements": [
{
"name": "lucid-observability-auditor",
"value": {
"input_tokens": 142,
"output_tokens": 256,
"latency_ms": 250,
"request_cost": 0.000142,
"response_cost": 0.000512
},
"hardware_signature": "..."
}
]
}