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() | |