From 037dadb982d4b2caa1642b7dbdf98a14556ffcf3 Mon Sep 17 00:00:00 2001 From: Fatih Acar Date: Sun, 31 Mar 2024 14:12:32 +0200 Subject: [PATCH] feat(ci): enable tracing during e2e tests Signed-off-by: Fatih Acar --- .github/workflows/ci.yml | 10 ++++++++++ backend/infrahub/cli/git_agent.py | 2 +- backend/infrahub/config.py | 29 ----------------------------- backend/infrahub/server.py | 2 +- development/docker-compose.yml | 8 ++++++++ development/infrahub.toml | 3 +-- 6 files changed, 21 insertions(+), 33 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2aaba44143..72681a689f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -610,6 +610,16 @@ jobs: run: echo "INFRAHUB_DB_BACKUP_PORT=$(shuf -n 1 -i 10000-30000)" >> $GITHUB_ENV - name: Select vmagent port run: echo "VMAGENT_PORT=$(shuf -n 1 -i 10000-30000)" >> $GITHUB_ENV + + - name: Enable tracing + run: echo "INFRAHUB_TRACE_ENABLE=true" >> $GITHUB_ENV + - name: Set tracing configuration + run: echo "INFRAHUB_TRACE_INSECURE=false" >> $GITHUB_ENV + - name: Set tracing configuration + run: echo "INFRAHUB_TRACE_EXPORTER_ENDPOINT=${{ secrets.TRACING_ENDPOINT }}" >> $GITHUB_ENV + - name: Set tracing configuration + run: echo "OTEL_RESOURCE_ATTRIBUTES=github.run_id=${GITHUB_RUN_ID}" >> $GITHUB_ENV + - name: "Store start time" run: echo TEST_START_TIME=$(date +%s)000 >> $GITHUB_ENV diff --git a/backend/infrahub/cli/git_agent.py b/backend/infrahub/cli/git_agent.py index e35d6673eb..2afc44ec25 100644 --- a/backend/infrahub/cli/git_agent.py +++ b/backend/infrahub/cli/git_agent.py @@ -73,7 +73,7 @@ async def _start(debug: bool, port: int) -> None: service="infrahub-git-agent", version=__version__, exporter_type=config.SETTINGS.trace.exporter_type, - exporter_endpoint=config.SETTINGS.trace.trace_endpoint, + exporter_endpoint=config.SETTINGS.trace.exporter_endpoint, exporter_protocol=config.SETTINGS.trace.exporter_protocol, ) diff --git a/backend/infrahub/config.py b/backend/infrahub/config.py index a968f56d1d..ea0c6d1c17 100644 --- a/backend/infrahub/config.py +++ b/backend/infrahub/config.py @@ -279,35 +279,6 @@ class TraceSettings(BaseSettings): default=TraceTransportProtocol.GRPC, description="Protocol to be used for exporting traces" ) exporter_endpoint: Optional[str] = Field(default=None, description="OTLP endpoint for exporting traces") - exporter_port: Optional[int] = Field( - default=None, ge=1, le=65535, description="Specified if running on a non default port (4317)" - ) - - @property - def service_port(self) -> int: - if self.exporter_protocol == TraceTransportProtocol.GRPC: - default_port = 4317 - elif self.exporter_protocol == TraceTransportProtocol.HTTP_PROTOBUF: - default_port = 4318 - else: - default_port = 4317 - - return self.exporter_port or default_port - - @property - def trace_endpoint(self) -> Optional[str]: - if not self.exporter_endpoint: - return None - if self.insecure: - scheme = "http://" - else: - scheme = "https://" - endpoint = str(self.exporter_endpoint) + ":" + str(self.service_port) - - if self.exporter_protocol == TraceTransportProtocol.HTTP_PROTOBUF: - endpoint += "/v1/traces" - - return scheme + endpoint @dataclass diff --git a/backend/infrahub/server.py b/backend/infrahub/server.py index 77c35ed031..4b0c448ca6 100644 --- a/backend/infrahub/server.py +++ b/backend/infrahub/server.py @@ -46,7 +46,7 @@ async def app_initialization(application: FastAPI) -> None: service="infrahub-server", version=__version__, exporter_type=config.SETTINGS.trace.exporter_type, - exporter_endpoint=config.SETTINGS.trace.trace_endpoint, + exporter_endpoint=config.SETTINGS.trace.exporter_endpoint, exporter_protocol=config.SETTINGS.trace.exporter_protocol, ) diff --git a/development/docker-compose.yml b/development/docker-compose.yml index 783e2aa12c..f65d082c3f 100644 --- a/development/docker-compose.yml +++ b/development/docker-compose.yml @@ -26,6 +26,10 @@ services: - "INFRAHUB_SECURITY_INITIAL_ADMIN_TOKEN=06438eb2-8019-4776-878c-0941b1f1d1ec" - "INFRAHUB_SECURITY_SECRET_KEY=327f747f-efac-42be-9e73-999f08f86b92" - "INFRAHUB_ALLOW_ANONYMOUS_ACCESS=true" + - "INFRAHUB_TRACE_ENABLE=${INFRAHUB_TRACE_ENABLE:-false}" + - "INFRAHUB_TRACE_INSECURE=${INFRAHUB_TRACE_INSECURE:-}" + - "INFRAHUB_TRACE_EXPORTER_ENDPOINT=${INFRAHUB_TRACE_EXPORTER_ENDPOINT:-}" + - "OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES:-}" - "INFRAHUB_DB_TYPE=${INFRAHUB_DB_TYPE}" volumes: - "storage_data:/opt/infrahub/storage" @@ -60,6 +64,10 @@ services: - "INFRAHUB_LOG_LEVEL=DEBUG" - "INFRAHUB_SDK_API_TOKEN=06438eb2-8019-4776-878c-0941b1f1d1ec" - "INFRAHUB_SDK_TIMEOUT=20" + - "INFRAHUB_TRACE_ENABLE=${INFRAHUB_TRACE_ENABLE:-false}" + - "INFRAHUB_TRACE_INSECURE=${INFRAHUB_TRACE_INSECURE:-}" + - "INFRAHUB_TRACE_EXPORTER_ENDPOINT=${INFRAHUB_TRACE_EXPORTER_ENDPOINT:-}" + - "OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES:-}" - "INFRAHUB_DB_TYPE=${INFRAHUB_DB_TYPE}" volumes: - "git_data:/opt/infrahub/git" diff --git a/development/infrahub.toml b/development/infrahub.toml index c8aec827fc..b9bca4fc1a 100644 --- a/development/infrahub.toml +++ b/development/infrahub.toml @@ -30,8 +30,7 @@ enable = false insecure = "True" exporter_type = "otlp" exporter_protocol = "grpc" -exporter_endpoint = "jaeger" -exporter_port = 4317 +exporter_endpoint = "http://jaeger:4317" # [experimental_features]