Skip to main content
This example demonstrates how to collect and analyze agent metrics including message-level metrics, run metrics, and session metrics for performance monitoring.

Code

agent_metrics.py
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIResponses
from agno.tools.yfinance import YFinanceTools
from rich.pretty import pprint

agent = Agent(
    model=OpenAIResponses(id="gpt-5.2"),
    tools=[YFinanceTools()],
    markdown=True,
    session_id="test-session-metrics",
    db=SqliteDb(db_file="tmp/agents.db"),
)

run_response = agent.run("What is the stock price of NVDA?")

# Print metrics per message
if run_response and run_response.messages:
    for message in run_response.messages:
        if message.role == "assistant":
            if message.content:
                print(f"Message: {message.content[:100]}...")
            elif message.tool_calls:
                print(f"Tool calls: {len(message.tool_calls)} tool call(s)")
            print("---" * 5, "Message Metrics", "---" * 5)
            if message.metrics:
                pprint(message.metrics)
            else:
                print("No metrics available for this message")
            print("---" * 20)

# Print the run metrics
print("---" * 5, "Run Metrics", "---" * 5)
if run_response and run_response.metrics:
    pprint(run_response.metrics)
else:
    print("No run metrics available")

# Print the session metrics
print("---" * 5, "Session Metrics", "---" * 5)
session_metrics = agent.get_session_metrics()
if session_metrics:
    pprint(session_metrics)
else:
    print("No session metrics available")

Usage

1

Create a Python file

Create agent_metrics.py with the code above.
2

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate
3

Install dependencies

uv pip install -U agno openai yfinance
4

Export your OpenAI API key

export OPENAI_API_KEY="your_openai_api_key_here"
5

Run Agent

python agent_metrics.py