可觀測性:記錄日誌、追蹤以及度量
可觀測性會透過 aidp_observability 套裝程式順暢地整合至 Oracle AI Data Platform Workbench 應用程式,以最少的設定啟用自動遙測 (日誌、追蹤、度量)。
初始化
如以下所示匯入與初始化:
from observability.aidp_observability import AIDPObservability
from observability.config import CollectorConfig
config = CollectorConfig()
config.service_name = "dummy_name"
observability = AIDPObservability(config)
observability.initialize()初始化時:
- 會建立追蹤、度量以及日誌的 OpenTelemetry 匯出器。
- 收集器端點已設定為所有遙測資料 (連接埠 4317、GRpc 協定)。
- 已設定應用程式日誌。
- Playground 模式可讓記憶體內匯出程式即時追蹤顯示。
- 收集器已預先配置為進行日誌循環、緩衝處理,並包含用於遙測匯出的槽。
- 所有遙測訊號都會包含預設度量、日誌及 AI Data Platform Workbench 描述資料。
- 已設定關聯性的預設跨度 / 階段作業屬性 (例如 sessionId、traceId)。
用法模式:
應用程式邏輯不需要任何變更即可發出遙測。以使用者身分:
- 使用 OpenTelemetry 計量表作為測量結果。
- 使用 Python 的標準 `logging` 進行日誌記錄。
- 使用 OpenTelemetry 追蹤器進行追蹤。
範例
import logging
import time
from opentelemetry import trace, metrics
tracer = trace.get_tracer(__name__)
meter = metrics.get_meter(__name__)
request_counter = meter.create_counter(
name="requests_total",
description="Number of requests processed",
unit="1",
)
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("sample-app")
def process_request(user_id: str):
logger.info("Processing request for user %s", user_id)
request_counter.add(1, {"user.id": user_id})
with tracer.start_as_current_span("process_request") as span:
span.set_attribute("user.id", user_id)
time.sleep(0.1)
span.add_event("request_completed", {"status": "ok"})
if __name__ == "__main__":
for i in range(3):
process_request(f"user-{i}")
time.sleep(1)附註:
系統會自動匯出應用程式遙測;使用者不需要任何儀表變更。可觀察性套件自動工具 LLM 架構和用於追蹤報告的 LangGraph 應用程式。