Skip to main content

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

1

Install

pip install latitude-telemetry ibm-watsonx-ai
2

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:
  1. Open your project in the Latitude dashboard
  2. Each execution shows input/output messages, model, token usage, latency, and errors