This guide demonstrates how to use TrueFoundry OtelCollector along with the Traceloop SDK to instrument FastAPI applications. In this example, we’ll create a simple Flask application with a /greet endpoint that demonstrates how to integrate TrueFoundry’s tracing capabilities.

1

Create Tracing Project, API Key and copy tracing code

Follow the instructions in Getting Started to create a tracing project, generate API key and copy the tracing code.

2

Install Dependencies

First, you need to install the following

pip install dotenv flask opentelemetry_instrumentation_flask traceloop-sdk
3

Add Tracing code to Flask application

For FastAPI applications, we need to add the Traceloop.init() call to the application and instrument the FastAPI app with OpenTelemetry.

FastAPI Code
import random
import os
from dotenv import load_dotenv
from flask import Flask

from opentelemetry.instrumentation.flask import FlaskInstrumentor

# importing traceloop sdk
from traceloop.sdk import Traceloop

load_dotenv()

# Add the traceloop init code to your application
TFY_API_KEY = os.environ.get("TFY_API_KEY")
Traceloop.init(
    api_endpoint="<enter_your_api_endpoint>",
    headers = {
        "Authorization": f"Bearer {TFY_API_KEY}",
        "TFY-Tracing-Project": "<enter_your_tracing_project_fqn>",
    },
)

app = Flask(__name__)

FlaskInstrumentor().instrument_app(app)

def get_random_greeting():
    greetings = ["Hello", "Hi", "Hey", "Good morning", "Good afternoon", "Good evening"]
    return random.choice(greetings)

@app.get("/greet")
def root():
    greeting = get_random_greeting()
    return {"message": f"{greeting}, wishing you a great day!"}


if __name__ == "__main__":
    app.run(debug=True)
4

Run your application and view logged trace