Overview
This guide shows you how to integrate Latitude Telemetry into an application that uses IBM watsonx.ai (ibm-watsonx-ai).
You’ll keep calling watsonx.ai exactly as you do today. Telemetry simply
observes and enriches those calls.
Auto-instrumentation for watsonx.ai is available in the Python SDK. For other
languages, send traces via the OpenTelemetry exporter.
Requirements
- A Latitude account and API key
- A Latitude project slug
- A project that uses the watsonx.ai SDK (
ibm-watsonx-ai)
- watsonx credentials:
WATSONX_API_KEY, WATSONX_PROJECT_ID, and WATSONX_URL
Steps
Install
pip install latitude-telemetry ibm-watsonx-ai
Initialize and use
import os
import ibm_watsonx_ai
from ibm_watsonx_ai.foundation_models import Model
from ibm_watsonx_ai.metanames import GenTextParamsMetaNames as GenParams
from latitude_telemetry import Latitude, capture
latitude = Latitude(
api_key="your-api-key",
project="your-project-slug",
instrumentations={"watsonx": ibm_watsonx_ai},
)
def generate_reply():
model = Model(
model_id="ibm/granite-13b-chat-v2",
credentials={
"url": os.environ.get("WATSONX_URL", "https://us-south.ml.cloud.ibm.com"),
"apikey": os.environ["WATSONX_API_KEY"],
},
project_id=os.environ["WATSONX_PROJECT_ID"],
)
return model.generate_text(prompt="Hello", params={GenParams.MAX_NEW_TOKENS: 50})
capture("generate-reply", generate_reply)
latitude.shutdown()
Seeing Your Traces
Once connected, traces appear automatically in Latitude:
- Open your project in the Latitude dashboard
- Each execution shows input/output messages, model, token usage, latency, and errors