Qhaway
npm @carloscortezcloud/qhaway · PyPI qhaway-trace
Agent observability infrastructure. Trace every LLM call, track cost per user/model, export to OpenTelemetry, and visualize in Grafana. Zero dependencies. Edge-native.
npm — TypeScript / Workers
npm install @carloscortezcloud/qhawaypip — Python (OpenAI, Anthropic, LangChain)
pip install qhaway-traceSubpackages
/trace
Span wrapper + storage adapters (D1, KV, Memory, Console).
/cost
Pricing DB + cost attribution. Aggregate by user/model/day.
/otel
OTLP/HTTP JSON exporter. Honeycomb, Grafana Tempo, Datadog, SigNoz.
/tinkuy
TinkuyAgent plugin. Auto-instrument runs via hooks.
/mlflow
MLflow REST exporter. Batch + streaming modes.
Usage — TypeScript
import { QhawayTrace, ConsoleStorage } from '@carloscortezcloud/qhaway/trace';
const trace = new QhawayTrace(new ConsoleStorage(), {
agent_id: 'my-agent',
});
const wrapped = trace.wrap(myLlmCall, {
model: 'gpt-4o',
provider: 'openai',
user_id: 'user-123',
});
const result = await wrapped(prompt);
// [Qhaway] gpt-4o | $0.00063 | 150->42 tok | 1234msUsage — Python
from qhaway import QhawayTrace, console_storage
trace = QhawayTrace(storage=console_storage, agent_id='my-agent')
@trace.wrap(model='gpt-4o', provider='openai', user_id='user-123')
async def call_llm(prompt):
return 'answer'
# [Qhaway] ✓ gpt-4o (openai) | $0.0000 | 0->0 tok | 0ms user=user-123
# Auto-instrument OpenAI: OpenAIPatch.apply(trace)When to Use Qhaway
- ✓ You want to know exactly what each user costs per session
- ✓ You need OTEL export to Honeycomb, Grafana Tempo, or Datadog
- ✓ You want Grafana dashboards for agent latency and cost
- ✓ You track experiments with MLflow and want cost per run
- ✗ You need APM for non-AI services (use Datadog/Honeycomb directly)
Works With
Tinkuy AgentStyrr RouterSayay GuardLangChain (via wrapper)OpenAI SDKPython (OpenAI/Anthropic patch)CF WorkersDenoBunNode.js