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.
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.
Install Dependencies
First, you need to install the following
pip install dotenv flask opentelemetry_instrumentation_flask traceloop-sdk
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.
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)
Run your application and view logged trace