mirror of
https://github.com/hanzoai/bot.git
synced 2026-11-01 07:38:30 +00:00
Full coverage of Hanzo infrastructure: MCP (260+ tools), CLI, LLM Gateway, Chat, Network, Node, Web3, Consensus, ACI, REPL, Vector DB, KV Store, PubSub, DocumentDB, Storage, Studio, Insights, Commerce, Search, and Telemetry. Updated PaaS skill to use hanzo-tools-paas SDK.
3.2 KiB
3.2 KiB
name, description, metadata
| name | description | metadata | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hanzo-telemetry | OpenTelemetry-based observability with distributed tracing, metrics, and logs. Instrument applications with OTLP, Prometheus, and Zipkin exporters. |
|
Hanzo Telemetry — Observability
pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp
OpenTelemetry-based distributed tracing, metrics, and logs for Hanzo services.
Quick Start
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
# Set up tracing
provider = TracerProvider()
exporter = OTLPSpanExporter(endpoint="http://localhost:4317")
provider.add_span_processor(BatchSpanProcessor(exporter))
trace.set_tracer_provider(provider)
tracer = trace.get_tracer("my-service")
# Create spans
with tracer.start_as_current_span("process_request") as span:
span.set_attribute("user.id", "123")
result = do_work()
span.set_attribute("result.status", "success")
Metrics
from opentelemetry import metrics
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import OTLPMetricExporter
provider = MeterProvider()
metrics.set_meter_provider(provider)
meter = metrics.get_meter("my-service")
# Counter
request_counter = meter.create_counter("requests_total")
request_counter.add(1, {"method": "GET", "path": "/api/chat"})
# Histogram
latency = meter.create_histogram("request_duration_ms")
latency.record(42.5, {"method": "POST"})
# Gauge
active_connections = meter.create_up_down_counter("active_connections")
active_connections.add(1)
Automatic Instrumentation
# Auto-instrument popular frameworks
pip install opentelemetry-instrumentation-fastapi
pip install opentelemetry-instrumentation-requests
pip install opentelemetry-instrumentation-redis
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
FastAPIInstrumentor.instrument_app(app)
Logging
from opentelemetry._logs import set_logger_provider
from opentelemetry.sdk._logs import LoggerProvider
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import OTLPLogExporter
provider = LoggerProvider()
provider.add_log_record_processor(BatchLogRecordProcessor(OTLPLogExporter()))
set_logger_provider(provider)
Exporters
| Exporter | Protocol | Port |
|---|---|---|
| OTLP gRPC | gRPC | 4317 |
| OTLP HTTP | HTTP/protobuf | 4318 |
| Prometheus | HTTP scrape | 8888 |
| Zipkin | HTTP | 9411 |
Environment Variables
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_SERVICE_NAME=my-service
OTEL_RESOURCE_ATTRIBUTES=environment=production