Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci-testing-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
- name: check api-server backwards compatibility
run: |
./scripts/openapi-diff.bash breaking --fail-on ERR\
https://raw.githubusercontent.com/${{ github.event.pull_request.base.repo.full_name }}/${{ github.event.after }}/services/api-server/openapi.json \
https://raw.githubusercontent.com/${{ github.event.pull_request.base.repo.full_name }}${{ github.event.after }}/services/api-server/openapi.json \
/specs/services/api-server/openapi.json

all-oas-breaking:
Expand All @@ -78,5 +78,5 @@ jobs:
- name: Check openapi-specs backwards compatibility
run: |
./ci/github/helpers/openapi-specs-diff.bash breaking \
https://raw.githubusercontent.com/${{ github.event.pull_request.base.repo.full_name }}/${{ github.event.after }} \
https://raw.githubusercontent.com/${{ github.event.pull_request.base.repo.full_name }}${{ github.event.after }} \
.
15 changes: 1 addition & 14 deletions packages/service-library/src/servicelib/fastapi/tracing.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@
"""

import logging
from collections.abc import AsyncIterator

from fastapi import FastAPI
from fastapi_lifespan_manager import State
from httpx import AsyncClient, Client
from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.http.trace_exporter import (
Expand All @@ -17,7 +15,6 @@
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from servicelib.fastapi.lifespan_utils import LifespanGenerator
from servicelib.logging_utils import log_context
from settings_library.tracing import TracingSettings
from yarl import URL
Expand Down Expand Up @@ -64,7 +61,7 @@
HAS_REQUESTS = False


def setup_tracing(
def initialize_tracing(
app: FastAPI, tracing_settings: TracingSettings, service_name: str
) -> None:
if (
Expand Down Expand Up @@ -134,15 +131,5 @@ def setup_tracing(
RequestsInstrumentor().instrument()


def get_lifespan_tracing(
tracing_settings: TracingSettings, service_name: str
) -> LifespanGenerator:
async def _(app: FastAPI) -> AsyncIterator[State]:
setup_tracing(app, tracing_settings, service_name)
yield {}

return _


def setup_httpx_client_tracing(client: AsyncClient | Client):
HTTPXClientInstrumentor.instrument_client(client)
12 changes: 6 additions & 6 deletions packages/service-library/tests/fastapi/test_tracing.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import pytest
from fastapi import FastAPI
from pydantic import ValidationError
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing
from settings_library.tracing import TracingSettings


Expand Down Expand Up @@ -54,13 +54,13 @@ async def test_valid_tracing_settings(
uninstrument_opentelemetry: Iterator[None],
):
tracing_settings = TracingSettings()
setup_tracing(
initialize_tracing(
mocked_app,
tracing_settings=tracing_settings,
service_name="Mock-Openetlemetry-Pytest",
)
# idempotency
setup_tracing(
initialize_tracing(
mocked_app,
tracing_settings=tracing_settings,
service_name="Mock-Openetlemetry-Pytest",
Expand Down Expand Up @@ -92,7 +92,7 @@ async def test_invalid_tracing_settings(
app = mocked_app
with pytest.raises((BaseException, ValidationError, TypeError)): # noqa: PT012
tracing_settings = TracingSettings()
setup_tracing(
initialize_tracing(
app,
tracing_settings=tracing_settings,
service_name="Mock-Openetlemetry-Pytest",
Expand Down Expand Up @@ -146,13 +146,13 @@ async def test_tracing_setup_package_detection(
importlib.import_module(package_name)
#
tracing_settings = TracingSettings()
setup_tracing(
initialize_tracing(
mocked_app,
tracing_settings=tracing_settings,
service_name="Mock-Openetlemetry-Pytest",
)
# idempotency
setup_tracing(
initialize_tracing(
mocked_app,
tracing_settings=tracing_settings,
service_name="Mock-Openetlemetry-Pytest",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
get_common_oas_options,
override_fastapi_openapi_method,
)
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing
from servicelib.logging_utils import config_all_loggers

from .._meta import (
Expand Down Expand Up @@ -64,7 +64,7 @@ def create_app() -> FastAPI:
setup_rpc_api_routes(app)

if settings.AGENT_TRACING:
setup_tracing(app, settings.AGENT_TRACING, APP_NAME)
initialize_tracing(app, settings.AGENT_TRACING, APP_NAME)

async def _on_startup() -> None:
print(APP_STARTED_BANNER_MSG, flush=True) # noqa: T201
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from models_library.basic_types import BootModeEnum
from packaging.version import Version
from servicelib.fastapi.profiler import initialize_profiler
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing
from servicelib.logging_utils import config_all_loggers

from .. import exceptions
Expand Down Expand Up @@ -84,7 +84,7 @@ def init_app(settings: ApplicationSettings | None = None) -> FastAPI:
setup_rabbitmq(app)

if settings.API_SERVER_TRACING:
setup_tracing(app, settings.API_SERVER_TRACING, APP_NAME)
initialize_tracing(app, settings.API_SERVER_TRACING, APP_NAME)

if settings.API_SERVER_WEBSERVER:
webserver.setup(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import logging

from fastapi import FastAPI
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing

from .._meta import (
API_VERSION,
Expand Down Expand Up @@ -71,7 +71,7 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
setup_auto_scaler_background_task(app)
setup_buffer_machines_pool_task(app)
if app.state.settings.AUTOSCALING_TRACING:
setup_tracing(app, app.state.settings.AUTOSCALING_TRACING, APP_NAME)
initialize_tracing(app, app.state.settings.AUTOSCALING_TRACING, APP_NAME)

# ERROR HANDLERS

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from servicelib.fastapi.prometheus_instrumentation import (
setup_prometheus_instrumentation,
)
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing
from starlette.middleware.base import BaseHTTPMiddleware

from .._meta import API_VERSION, API_VTAG, APP_NAME, PROJECT_NAME, SUMMARY
Expand Down Expand Up @@ -47,7 +47,7 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
app.state.settings = settings

if settings.CATALOG_TRACING:
setup_tracing(app, settings.CATALOG_TRACING, APP_NAME)
initialize_tracing(app, settings.CATALOG_TRACING, APP_NAME)

# STARTUP-EVENT
app.add_event_handler("startup", create_on_startup(app))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from servicelib.fastapi.prometheus_instrumentation import (
setup_prometheus_instrumentation,
)
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing

from .._meta import (
API_VERSION,
Expand Down Expand Up @@ -45,7 +45,7 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
if app.state.settings.CLUSTERS_KEEPER_PROMETHEUS_INSTRUMENTATION_ENABLED:
setup_prometheus_instrumentation(app)
if app.state.settings.CLUSTERS_KEEPER_TRACING:
setup_tracing(
initialize_tracing(
app,
app.state.settings.CLUSTERS_KEEPER_TRACING,
APP_NAME,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from servicelib.fastapi.prometheus_instrumentation import (
setup_prometheus_instrumentation,
)
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing
from servicelib.logging_utils import config_all_loggers

from .._meta import API_VERSION, API_VTAG, APP_NAME
Expand Down Expand Up @@ -70,7 +70,7 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
if app.state.settings.DATCORE_ADAPTER_PROMETHEUS_INSTRUMENTATION_ENABLED:
setup_prometheus_instrumentation(app)
if app.state.settings.DATCORE_ADAPTER_TRACING:
setup_tracing(
initialize_tracing(
app,
app.state.settings.DATCORE_ADAPTER_TRACING,
APP_NAME,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
override_fastapi_openapi_method,
)
from servicelib.fastapi.profiler import initialize_profiler
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing
from servicelib.logging_utils import config_all_loggers

from .._meta import API_VERSION, API_VTAG, APP_NAME, PROJECT_NAME, SUMMARY
Expand Down Expand Up @@ -145,7 +145,7 @@ def init_app(settings: AppSettings | None = None) -> FastAPI:
substitutions.setup(app)

if settings.DIRECTOR_V2_TRACING:
setup_tracing(app, settings.DIRECTOR_V2_TRACING, APP_NAME)
initialize_tracing(app, settings.DIRECTOR_V2_TRACING, APP_NAME)

if settings.DIRECTOR_V0.DIRECTOR_ENABLED:
director_v0.setup(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from fastapi import FastAPI
from servicelib.async_utils import cancel_sequential_workers
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing

from .._meta import (
API_VERSION,
Expand Down Expand Up @@ -51,7 +51,7 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
setup_api_routes(app)

if app.state.settings.DIRECTOR_TRACING:
setup_tracing(app, app.state.settings.DIRECTOR_TRACING, APP_NAME)
initialize_tracing(app, app.state.settings.DIRECTOR_TRACING, APP_NAME)

# replace by httpx client
setup_client_session(app)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
initialize_prometheus_instrumentation,
lifespan_prometheus_instrumentation,
)
from servicelib.fastapi.tracing import get_lifespan_tracing
from servicelib.fastapi.tracing import initialize_tracing

from .._meta import (
API_VERSION,
Expand Down Expand Up @@ -59,11 +59,6 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
if app_settings.DYNAMIC_SCHEDULER_PROMETHEUS_INSTRUMENTATION_ENABLED:
lifespans.append(lifespan_prometheus_instrumentation)

if app_settings.DYNAMIC_SCHEDULER_TRACING:
lifespans.append(
get_lifespan_tracing(app_settings.DYNAMIC_SCHEDULER_TRACING, APP_NAME)
)

app = FastAPI(
title=f"{PROJECT_NAME} web API",
description=SUMMARY,
Expand All @@ -87,6 +82,9 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:

initialize_frontend(app)

if app_settings.DYNAMIC_SCHEDULER_TRACING:
initialize_tracing(app, app_settings.DYNAMIC_SCHEDULER_TRACING, APP_NAME)

if app_settings.DYNAMIC_SCHEDULER_PROFILING:
initialize_profiler(app)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
get_common_oas_options,
override_fastapi_openapi_method,
)
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing
from servicelib.logging_utils import config_all_loggers
from simcore_sdk.node_ports_common.exceptions import NodeNotFound

Expand Down Expand Up @@ -193,7 +193,9 @@ def create_app():
setup_prometheus_metrics(app)

if application_settings.DYNAMIC_SIDECAR_TRACING:
setup_tracing(app, application_settings.DYNAMIC_SIDECAR_TRACING, PROJECT_NAME)
initialize_tracing(
app, application_settings.DYNAMIC_SIDECAR_TRACING, PROJECT_NAME
)

# ERROR HANDLERS ------------
app.add_exception_handler(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import logging

from fastapi import FastAPI
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing

from .._meta import (
API_VERSION,
Expand Down Expand Up @@ -43,7 +43,7 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
app.state.settings = app_settings
assert app.state.settings.API_VERSION == API_VERSION # nosec
if app.state.settings.EFS_GUARDIAN_TRACING:
setup_tracing(app, app.state.settings.EFS_GUARDIAN_TRACING, APP_NAME)
initialize_tracing(app, app.state.settings.EFS_GUARDIAN_TRACING, APP_NAME)

# PLUGINS SETUP
setup_rabbitmq(app)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from servicelib.fastapi.prometheus_instrumentation import (
setup_prometheus_instrumentation,
)
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing

from .._meta import (
API_VERSION,
Expand Down Expand Up @@ -41,7 +41,7 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
if app.state.settings.INVITATIONS_PROMETHEUS_INSTRUMENTATION_ENABLED:
setup_prometheus_instrumentation(app)
if app.state.settings.INVITATIONS_TRACING:
setup_tracing(app, app.state.settings.INVITATIONS_TRACING, APP_NAME)
initialize_tracing(app, app.state.settings.INVITATIONS_TRACING, APP_NAME)

# ERROR HANDLERS
exceptions_handlers.setup(app)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from servicelib.fastapi.prometheus_instrumentation import (
setup_prometheus_instrumentation,
)
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing

from .._meta import (
API_VERSION,
Expand Down Expand Up @@ -71,7 +71,7 @@ def create_app(settings: ApplicationSettings | None = None) -> FastAPI:
if app.state.settings.PAYMENTS_PROMETHEUS_INSTRUMENTATION_ENABLED:
setup_prometheus_instrumentation(app)
if app.state.settings.PAYMENTS_TRACING:
setup_tracing(app, app.state.settings.PAYMENTS_TRACING, APP_NAME)
initialize_tracing(app, app.state.settings.PAYMENTS_TRACING, APP_NAME)

# ERROR HANDLERS
# ... add here ...
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from fastapi import FastAPI
from servicelib.fastapi.openapi import override_fastapi_openapi_method
from servicelib.fastapi.tracing import setup_tracing
from servicelib.fastapi.tracing import initialize_tracing

from .._meta import (
API_VERSION,
Expand Down Expand Up @@ -67,7 +67,7 @@ def create_app(settings: ApplicationSettings) -> FastAPI:
setup_process_message_running_service(app) # Requires Rabbit

if app.state.settings.RESOURCE_USAGE_TRACKER_TRACING:
setup_tracing(
initialize_tracing(
app,
app.state.settings.RESOURCE_USAGE_TRACKER_TRACING,
app.state.settings.APP_NAME,
Expand Down
Loading