Spaces:
Sleeping
Sleeping
import os | |
import time | |
import threading | |
from aworld.trace.config import ObservabilityConfig | |
from aworld.trace.instrumentation.fastapi import instrument_fastapi | |
from aworld.trace.instrumentation.requests import instrument_requests | |
from aworld.logs.util import logger, trace_logger | |
import aworld.trace as trace | |
from aworld.utils.import_package import import_packages | |
import_packages(['fastapi', 'uvicorn']) # noqa | |
import fastapi # noqa | |
import uvicorn # noqa | |
os.environ["MONITOR_SERVICE_NAME"] = "otlp_example" | |
os.environ["ANT_OTEL_ENDPOINT"] = "https://antcollector.alipay.com/namespace/aworld/task/aworld/otlp/api/v1/metrics" | |
trace.configure(ObservabilityConfig( | |
metrics_provider="otlp", | |
metrics_backend="antmonitor" | |
)) | |
instrument_fastapi() | |
instrument_requests() | |
app = fastapi.FastAPI() | |
async def hello(): | |
return {"message": "Hello World"} | |
def invoke_api(): | |
import requests | |
response = requests.get('http://127.0.0.1:7071/api/hello') | |
logger.info(f"invoke_api response={response.text}") | |
def main(): | |
logger.info("main running") | |
with trace.span("test_fastapi") as span: | |
trace_logger.info("start invoke_api") | |
invoke_api() | |
if __name__ == "__main__": | |
server_thread = threading.Thread( | |
target=lambda: uvicorn.run(app, host="0.0.0.0", port=7071), | |
daemon=True | |
) | |
server_thread.start() | |
time.sleep(1) | |
main() | |
server_thread.join() | |