| import os |
| import time |
| from datetime import datetime, timezone |
| import requests |
|
|
|
|
| BETTERSTACK_URL = "https://s2383648.eu-fsn-3.betterstackdata.com" |
|
|
|
|
| def log_to_betterstack( |
| endpoint_name: str, |
| original_text: str, |
| formatted_text: str | dict, |
| model_name: str, |
| time_elapsed: float, |
| ) -> None: |
| token = os.environ.get("BETTERSTACK_SOURCE_TOKEN") |
| if not token: |
| return |
|
|
| payload = { |
| "dt": datetime.now(timezone.utc).isoformat(), |
| "message": f"Endpoint called: {endpoint_name}", |
| "endpoint_name": endpoint_name, |
| "model_name": model_name, |
| "request": original_text, |
| "response": formatted_text, |
| "time_elapsed": round(time_elapsed, 4), |
| "request_date": datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S"), |
| "level": "info" |
| } |
|
|
| try: |
| resp = requests.post( |
| BETTERSTACK_URL, |
| json=payload, |
| headers={ |
| "Authorization": f"Bearer {token}", |
| "Content-Type": "application/json", |
| }, |
| timeout=5, |
| ) |
| if resp.status_code >= 300: |
| print(f"[betterstack] {resp.status_code}: {resp.text}") |
| except Exception as e: |
| print(f"[betterstack] exception: {e}") |
|
|