Instrument sanctions' FastAPI app in code

FastAPIInstrumentor.instrument_app gives sanctions its SERVER span back,
skipping /healthz (the Docker healthcheck flooded Tempo search) and the
ASGI receive/send INTERNAL spans. Drop the OTEL_* env vars only the
zero-code configurator read, and the unused SERVICE_NAME.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Movses Aslanyan
2026-10-13 08:45:53 +03:30
co-authored by Claude Opus 5.5
parent 4baae96e6e
commit d3cf6bb514
2 changed files with 6 additions and 6 deletions
-6
View File
@@ -141,13 +141,7 @@ services:
- ./scripts:/app/scripts - ./scripts:/app/scripts
environment: environment:
<<: *app-env <<: *app-env
SERVICE_NAME: sanctions
OTEL_SERVICE_NAME: sanctions
OTEL_EXPORTER_OTLP_ENDPOINT: https://otlp.vione.cloud OTEL_EXPORTER_OTLP_ENDPOINT: https://otlp.vione.cloud
OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf
OTEL_TRACES_EXPORTER: otlp
OTEL_METRICS_EXPORTER: none
OTEL_LOGS_EXPORTER: none
env_file: env_file:
- .env.observability - .env.observability
command: uvicorn services.sanctions.app:app --host 0.0.0.0 --port 8003 --reload --no-access-log command: uvicorn services.sanctions.app:app --host 0.0.0.0 --port 8003 --reload --no-access-log
+6
View File
@@ -3,6 +3,7 @@ import asyncio
from fastapi import FastAPI, Request from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from pydantic import BaseModel from pydantic import BaseModel
from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
from common.db import engine from common.db import engine
from common.logging_config import configure_logging from common.logging_config import configure_logging
@@ -16,6 +17,11 @@ logger = configure_logging(SERVICE_NAME)
setup_telemetry(service_name=SERVICE_NAME) setup_telemetry(service_name=SERVICE_NAME)
app = FastAPI(title=SERVICE_NAME) app = FastAPI(title=SERVICE_NAME)
FastAPIInstrumentor.instrument_app(
app,
excluded_urls="/healthz",
exclude_spans=["receive", "send"],
)
class LookupRequest(BaseModel): class LookupRequest(BaseModel):
holder_name: str holder_name: str