Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
10 changes: 10 additions & 0 deletions devservices/commands/down.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from argparse import Namespace

from sentry_sdk import capture_exception
from sentry_sdk import logger as sentry_logger

from devservices.constants import CONFIG_FILE_NAME
from devservices.constants import DEPENDENCY_CONFIG_VERSION
Expand Down Expand Up @@ -116,6 +117,15 @@ def down(args: Namespace) -> None:
== DependencyType.SUPERVISOR
]

sentry_logger.info(
"Stopping service",
extra={
"service_name": service.name,
"exclude_local": exclude_local,
"active_modes": list(active_modes),
},
)

with Status(
lambda: console.warning(f"Stopping {service.name}"),
) as status:
Expand Down
11 changes: 11 additions & 0 deletions devservices/commands/up.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from argparse import Namespace

from sentry_sdk import capture_exception
from sentry_sdk import logger as sentry_logger
from sentry_sdk import set_context
from sentry_sdk import start_span

Expand Down Expand Up @@ -94,6 +95,16 @@ def up(args: Namespace, existing_status: Status | None = None) -> None:
mode = args.mode
exclude_local = getattr(args, "exclude_local", False)

sentry_logger.info(
"Starting service",
extra={
"service_name": service.name,
"mode": mode,
"exclude_local": exclude_local,
"available_modes": list(modes.keys()),
},
)

state = State()

with Status(
Expand Down
7 changes: 6 additions & 1 deletion devservices/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from sentry_sdk import set_user
from sentry_sdk import start_transaction
from sentry_sdk.integrations.argv import ArgvIntegration
from sentry_sdk.integrations.logging import LoggingIntegration
from sentry_sdk.types import Event
from sentry_sdk.types import Hint

Expand Down Expand Up @@ -79,7 +80,11 @@ def before_send_transaction(event: Event, hint: Hint) -> Event:
dsn="https://[email protected]/4507946704961536",
traces_sample_rate=1.0,
profiles_sample_rate=1.0,
integrations=[ArgvIntegration()],
integrations=[
ArgvIntegration(),
LoggingIntegration(sentry_logs_level=logging.DEBUG),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sentry logs integrates directly with the logging library:
https://docs.sentry.io/platforms/python/logs/

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmmmm, looks like I'll actually need to instrument the sentry sdk since debug logs only appear when the debug flag is passed in

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

],
enable_logs=True,
environment=sentry_environment,
before_send=before_send_error,
before_send_transaction=before_send_transaction,
Expand Down
27 changes: 27 additions & 0 deletions devservices/utils/dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from typing import TypeGuard

from sentry_sdk import capture_message
from sentry_sdk import logger as sentry_logger
from sentry_sdk import set_context

from devservices.configs.service_config import Dependency
Expand Down Expand Up @@ -417,6 +418,16 @@ def install_dependency(dependency: RemoteConfig) -> set[InstalledRemoteDependenc
dependency.repo_name,
)

sentry_logger.info(
"Installing dependency",
extra={
"repo_name": dependency.repo_name,
"repo_link": dependency.repo_link,
"branch": dependency.branch,
"mode": dependency.mode,
},
)

os.makedirs(DEVSERVICES_DEPENDENCIES_CACHE_DIR, exist_ok=True)

# Ensure that only one process is installing a specific dependency at a time
Expand Down Expand Up @@ -498,6 +509,14 @@ def _update_dependency(
dependency: RemoteConfig,
dependency_repo_dir: str,
) -> None:
sentry_logger.info(
"Updating dependency",
extra={
"repo_name": dependency.repo_name,
"repo_link": dependency.repo_link,
"branch": dependency.branch,
},
)
git_config_manager = GitConfigManager(
dependency_repo_dir,
DEPENDENCY_GIT_PARTIAL_CLONE_CONFIG_OPTIONS,
Expand Down Expand Up @@ -580,6 +599,14 @@ def _checkout_dependency(
dependency: RemoteConfig,
dependency_repo_dir: str,
) -> None:
sentry_logger.info(
"Checking out dependency",
extra={
"repo_name": dependency.repo_name,
"repo_link": dependency.repo_link,
"branch": dependency.branch,
},
)
with tempfile.TemporaryDirectory() as temp_dir:
try:
_run_command(
Expand Down
9 changes: 9 additions & 0 deletions devservices/utils/docker_compose.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from typing import NamedTuple

from packaging import version
from sentry_sdk import logger as sentry_logger

from devservices.configs.service_config import load_service_config_from_file
from devservices.constants import CONFIG_FILE_NAME
Expand Down Expand Up @@ -306,6 +307,14 @@ def run_cmd(
console = Console()
cmd_pretty = shlex.join(cmd)

sentry_logger.info(
"Running docker compose command",
extra={
"command": cmd_pretty,
"max_retries": retries,
},
)

proc = None
retries += 1 # initial try

Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
pyyaml==6.0.2
packaging==24.0
sentry-devenv==1.9.0
sentry-sdk==2.27.0
sentry-sdk==2.39.0
supervisor==4.2.5
Loading