> ## Documentation Index
> Fetch the complete documentation index at: https://latitude-monitoring-docs-docs-sync-2026-08-14.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# LlamaIndex

> Connect your LlamaIndex-powered application to Latitude for observability.

## Overview

This guide shows you how to integrate **Latitude Telemetry** into an application that uses **LlamaIndex**.

<Check>
  You'll keep calling LlamaIndex exactly as you do today. Telemetry simply
  observes and enriches those calls.
</Check>

***

## Requirements

* A **Latitude account** and **API key**
* A **Latitude project slug**
* A project that uses **LlamaIndex**

***

## Steps

<Steps>
  <Step title="Install">
    <Tabs>
      <Tab title="TypeScript">
        <CodeGroup>
          ```bash npm theme={null}
          npm install @latitude-data/telemetry llamaindex @llamaindex/openai @llamaindex/workflow
          ```

          ```bash pnpm theme={null}
          pnpm add @latitude-data/telemetry llamaindex @llamaindex/openai @llamaindex/workflow
          ```

          ```bash yarn theme={null}
          yarn add @latitude-data/telemetry llamaindex @llamaindex/openai @llamaindex/workflow
          ```

          ```bash bun theme={null}
          bun add @latitude-data/telemetry llamaindex @llamaindex/openai @llamaindex/workflow
          ```
        </CodeGroup>
      </Tab>

      <Tab title="Python">
        <CodeGroup>
          ```bash pip theme={null}
          pip install latitude-telemetry
          ```

          ```bash uv theme={null}
          uv add latitude-telemetry
          ```

          ```bash poetry theme={null}
          poetry add latitude-telemetry
          ```
        </CodeGroup>
      </Tab>
    </Tabs>
  </Step>

  <Step title="Initialize and use">
    <Tabs>
      <Tab title="TypeScript">
        ```ts theme={null}
        import { createLlamaIndexInstrumentation } from "@latitude-data/telemetry/instrumentations/llamaindex"
        import { Latitude, capture } from "@latitude-data/telemetry"
        import { Settings } from "llamaindex"
        import * as LlamaIndex from "llamaindex"
        import { openai } from "@llamaindex/openai"
        import { agent } from "@llamaindex/workflow"

        const latitude = new Latitude({
          apiKey: process.env.LATITUDE_API_KEY!,
          project: process.env.LATITUDE_PROJECT_SLUG!,
          instrumentations: [createLlamaIndexInstrumentation(LlamaIndex)],
        })

        await latitude.ready
        Settings.llm = openai({ model: "gpt-4o" })
        const myAgent = agent({ tools: [] })

        await capture("llamaindex-query", async () => {
          const response = await myAgent.run("Hello")
          return response
        })

        await latitude.shutdown()
        ```
      </Tab>

      <Tab title="Python">
        ```python theme={null}
        import llama_index
        from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

        from latitude_telemetry import Latitude, capture

        latitude = Latitude(
            api_key="your-api-key",
            project="your-project-slug",
            instrumentations={"llamaindex": llama_index},
        )

        documents = SimpleDirectoryReader("data").load_data()
        index = VectorStoreIndex.from_documents(documents)
        query_engine = index.as_query_engine()

        def llamaindex_query():
            response = query_engine.query("What is this document about?")
            return str(response)

        capture("llamaindex-query", llamaindex_query)

        latitude.shutdown()
        ```
      </Tab>
    </Tabs>
  </Step>
</Steps>

***

## 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
3. LlamaIndex retrieval and synthesis steps appear as child spans
