Skip to content

Commit 78f2200

Browse files
committed
add tracing when testing storage
1 parent 48ff90a commit 78f2200

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import pytest
2+
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
3+
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
4+
from pytest_mock import MockerFixture
5+
6+
7+
@pytest.fixture
8+
async def mock_otel_collector_fastapi(mocker: MockerFixture) -> InMemorySpanExporter:
9+
memory_exporter = InMemorySpanExporter()
10+
span_processor = SimpleSpanProcessor(memory_exporter)
11+
mocker.patch(
12+
"servicelib.fastapi.tracing._create_span_processor", return_value=span_processor
13+
)
14+
return memory_exporter

services/storage/tests/conftest.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
from models_library.projects_nodes_io import LocationID, SimcoreS3FileID, StorageFileID
4747
from models_library.users import UserID
4848
from models_library.utils.fastapi_encoders import jsonable_encoder
49+
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
4950
from pydantic import ByteSize, TypeAdapter
5051
from pytest_mock import MockerFixture
5152
from pytest_simcore.helpers.fastapi import url_from_operation_id
@@ -105,6 +106,7 @@
105106
"pytest_simcore.simcore_storage_data_models",
106107
"pytest_simcore.simcore_storage_datcore_adapter",
107108
"pytest_simcore.simcore_storage_service",
109+
"pytest_simcore.tracing",
108110
]
109111

110112
CURRENT_DIR = Path(sys.argv[0] if __name__ == "__main__" else __file__).resolve().parent
@@ -188,6 +190,19 @@ def disabled_rabbitmq(app_environment: EnvVarsDict, monkeypatch: pytest.MonkeyPa
188190
monkeypatch.setenv("STORAGE_RABBITMQ", "null")
189191

190192

193+
@pytest.fixture
194+
def enable_tracing(
195+
app_environment: EnvVarsDict,
196+
monkeypatch: pytest.MonkeyPatch,
197+
mock_otel_collector_fastapi: InMemorySpanExporter,
198+
):
199+
monkeypatch.setenv("STORAGE_TRACING", "{}")
200+
monkeypatch.setenv(
201+
"TRACING_OPENTELEMETRY_COLLECTOR_ENDPOINT", "http://opentelemetry-collector"
202+
)
203+
monkeypatch.setenv("TRACING_OPENTELEMETRY_COLLECTOR_PORT", "4318")
204+
205+
191206
@pytest.fixture
192207
def enabled_rabbitmq(
193208
app_environment: EnvVarsDict, rabbit_service: RabbitSettings
@@ -203,6 +218,7 @@ async def mocked_redis_server(mocker: MockerFixture) -> None:
203218

204219
@pytest.fixture
205220
def app_settings(
221+
enable_tracing,
206222
app_environment: EnvVarsDict,
207223
enabled_rabbitmq: RabbitSettings,
208224
sqlalchemy_async_engine: AsyncEngine,

0 commit comments

Comments
 (0)