Skip to main content

OpenInference Ollama Instrumentation

pypi

Python auto-instrumentation library for the Ollama Python client.

The traces emitted by this instrumentation are fully OpenTelemetry compatible and can be sent to an OpenTelemetry collector for viewing, such as Arize Phoenix or Arize AX.

What is instrumented

chat calls made through ollama.chat, ollama.Client.chat, and ollama.AsyncClient.chat are exported as OpenInference LLM spans (named Chat and AsyncChat respectively), capturing:

  • Input and output messages (llm.input_messages.*, llm.output_messages.*), including tool calls
  • Streaming (stream=True): the span finishes when the stream is exhausted, fails, or is abandoned, with the output message and token counts reconstructed from the accumulated chunks
  • Tool definitions as llm.tools.N.tool.json_schema — plain Python functions passed via tools=[...] are converted to their JSON schemas
  • llm.provider (ollama) and llm.model_name (recorded from the request as well, so errored calls still carry the model)
  • Token counts: prompt_eval_count → llm.token_count.prompt, eval_count → llm.token_count.completion, with the total derived when both are present
  • llm.invocation_parameters (request options other than messages, model, and tools)
  • Errors: exceptions set the span status to ERROR and are recorded as span events

Not currently instrumented: generate, embed/embeddings, and other client methods.

Context attributes (session, user, metadata, tags via using_attributes) propagate onto spans, and sensitive data can be masked with a TraceConfig, e.g. OllamaInstrumentor().instrument(tracer_provider=tracer_provider, config=TraceConfig(hide_inputs=True)). Calls made inside with suppress_tracing(): are not traced.

Installation

pip install openinference-instrumentation-ollama

PyPI package: openinference-instrumentation-ollama

Requires ollama >= 0.4.0.

Quickstart

Install packages needed for this demonstration.

pip install openinference-instrumentation-ollama ollama arize-phoenix opentelemetry-sdk opentelemetry-exporter-otlp

Install and start the Ollama server (pip install ollama installs only the client), then pull a model. The server listens on http://localhost:11434 by default.

ollama pull llama3.2

Start Phoenix in the background as a collector. By default, it listens on http://localhost:6006. (Phoenix does not send data over the internet. It only operates locally on your machine.)

phoenix serve

Set up OllamaInstrumentor to trace your application and send the traces to Phoenix.

from openinference.instrumentation.ollama import OllamaInstrumentor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import SimpleSpanProcessor

endpoint = "http://127.0.0.1:6006/v1/traces"
tracer_provider = TracerProvider()
tracer_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(endpoint)))

OllamaInstrumentor().instrument(tracer_provider=tracer_provider)

Run a chat completion against the locally running Ollama server.

import ollama

response = ollama.chat(
    model="llama3.2",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
)
print(response.message.content)

Now view your traces in the Phoenix UI at http://localhost:6006.

Examples

The examples/ directory contains runnable scripts. They require a running Phoenix and Ollama server, read the model from the OLLAMA_MODEL environment variable (default llama3.2), and send traces to a Phoenix project named ollama-examples.

pip install -r examples/requirements.txt
OLLAMA_MODEL=llama3.2 python examples/chat.py
Example Description
chat.py A basic chat completion
streaming_and_tools.py Streaming with session attributes, and tool calling with a plain Python function

Development

From the python/ directory: tox run -e test-ollama runs the tests, and tox run -e ruff-mypy-test-ollama runs all checks.

More Info

Release files for openinference-instrumentation-ollama 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openinference-instrumentation-ollama 0.1.3
File Size Uploaded
openinference_instrumentation_ollama-0.1.3.tar.gz 14.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openinference-instrumentation-ollama 0.1.3
File Interpreter ABI Platform
openinference_instrumentation_ollama-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 34.2 kB

Release files / openinference_instrumentation_ollama-0.1.3.tar.gz

Download URL openinference_instrumentation_ollama-0.1.3.tar.gz
Size 14.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8b7fcc5822e446dbeab2444eeb41ecc342b4cd6d74729fdd61fa41e3eaf3c6ea
BLAKE2b-256 checksum
How to use checksums
36f9ecdfd4b7f25e0793c6b9990ec13c53ed8d3e67307f4465afb0914f1d17e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

Release files / openinference_instrumentation_ollama-0.1.3-py3-none-any.whl

Download URL openinference_instrumentation_ollama-0.1.3-py3-none-any.whl
Size 19.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac9f4223a2441fb46e33b0f1de995bd7d653d420c5e4b55d66cf5f7f54e39a81
BLAKE2b-256 checksum
How to use checksums
629d9dd5d13a6519a6479408ab722f88ceb32e0b6f6d41c6106e06165ee3cef9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page