Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enabled debug logging for every job task run through a file, which is accessible from both workspace UI and Databricks CLI #426

Merged
merged 10 commits into from
Oct 11, 2023

Conversation

FastLee
Copy link
Contributor

@FastLee FastLee commented Oct 10, 2023

This PR improves debuggability of UCX.

More concise error messaging from job run

image

Viewing logs via Databricks CLI

image

Added .ucx/logs folder in the installation

image

where every executes workflow has a folder per job run, with ability to get back to Job Run in Workspace UI
image

Viewing full debug logs via workspace UI

image

Closes #86

@FastLee FastLee added the pr/do-not-merge this pull request is not ready to merge label Oct 10, 2023
@FastLee FastLee added this to the 1 week milestone Oct 10, 2023
Copy link
Collaborator

@nfx nfx left a comment

Choose a reason for hiding this comment

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

Missing modifications to job parameters in installer

src/databricks/labs/ucx/framework/tasks.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/framework/tasks.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/framework/tasks.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/framework/tasks.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/framework/logger.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/framework/tasks.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/framework/tasks.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/install.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/install.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/install.py Show resolved Hide resolved
src/databricks/labs/ucx/install.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/install.py Outdated Show resolved Hide resolved
@codecov
Copy link

codecov bot commented Oct 10, 2023

Codecov Report

Merging #426 (f90ad13) into main (1d9219c) will decrease coverage by 1.04%.
Report is 1 commits behind head on main.
The diff coverage is 14.00%.

@@            Coverage Diff             @@
##             main     #426      +/-   ##
==========================================
- Coverage   84.45%   83.41%   -1.04%     
==========================================
  Files          31       31              
  Lines        2850     2889      +39     
  Branches      539      542       +3     
==========================================
+ Hits         2407     2410       +3     
- Misses        323      359      +36     
  Partials      120      120              
Files Coverage Δ
src/databricks/labs/ucx/framework/logger.py 87.23% <100.00%> (+0.27%) ⬆️
src/databricks/labs/ucx/install.py 84.07% <100.00%> (+0.07%) ⬆️
src/databricks/labs/ucx/runtime.py 49.47% <25.00%> (-1.07%) ⬇️
src/databricks/labs/ucx/framework/tasks.py 36.26% <0.00%> (-21.64%) ⬇️

... and 1 file with indirect coverage changes

Copy link
Collaborator

@nfx nfx left a comment

Choose a reason for hiding this comment

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

Okay, logging code seems to be fine, but I think you didn't rebase this branch correctly, because you pulled the irrelevant changes in. Please make sure this pr contains only the relevant diff

src/databricks/labs/ucx/framework/tasks.py Show resolved Hide resolved
src/databricks/labs/ucx/framework/tasks.py Outdated Show resolved Hide resolved
Copy link
Collaborator

@nfx nfx left a comment

Choose a reason for hiding this comment

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

Please also attach a screenshot of successful run of test installation and how does the log and created notebooks look like in the workspace

src/databricks/labs/ucx/framework/tasks.py Outdated Show resolved Hide resolved
src/databricks/labs/ucx/framework/tasks.py Outdated Show resolved Hide resolved
@FastLee FastLee added enhancement New feature or request and removed pr/do-not-merge this pull request is not ready to merge labels Oct 11, 2023
@FastLee FastLee requested a review from nfx October 11, 2023 13:35
@nfx nfx changed the title Added file logging for jobs/tasks Enabled debug logging for every job task run through a file, which is accessible from both workspace UI and Databricks CLI Oct 11, 2023
@nfx nfx marked this pull request as ready for review October 11, 2023 13:42
@nfx nfx requested review from a team October 11, 2023 13:42
@nfx nfx merged commit a3c325a into main Oct 11, 2023
3 of 5 checks passed
@nfx nfx deleted the feature/file_logging branch October 11, 2023 14:18
@nfx nfx mentioned this pull request Oct 12, 2023
nfx added a commit that referenced this pull request Oct 12, 2023
# Version changelog

## 0.4.0

* Added exception handling for secret scope not found.
([#418](#418)).
* Added a crawler for creating an inventory of Azure Service Principals
([#326](#326)).
* Added check if account group already exists during failure recovery
([#446](#446)).
* Added checking for index out of range.
([#429](#429)).
* Added hyperlink to UCX releases in the main readme
([#408](#408)).
* Added integration test to check backup groups get deleted
([#387](#387)).
* Added logging of errors during threadpool operations.
([#376](#376)).
* Added recovery mode for workspace-local groups from temporary groups
([#435](#435)).
* Added support for migrating Legacy Table ACLs from workspace-local to
account-level groups
([#412](#412)).
* Added detection for installations of unreleased versions
([#399](#399)).
* Decoupled `PermissionsManager` from `GroupMigrationToolkit`
([#407](#407)).
* Enabled debug logging for every job task run through a file, which is
accessible from both workspace UI and Databricks CLI
([#426](#426)).
* Ensured that table exists, even when crawlers produce zero records
([#373](#373)).
* Extended test suite for HMS->HMS TACL migration
([#439](#439)).
* Fixed handling of secret scope responses
([#431](#431)).
* Fixed `crawl_permissions` task to respect 'workspace_start_path'
config ([#444](#444)).
* Fixed broken logic in `parallel` module and applied hardened error
handling design for parallel code
([#405](#405)).
* Fixed codecov.io reporting
([#403](#403)).
* Fixed integration tests for crawlers
([#379](#379)).
* Improved README.py and logging messages
([#433](#433)).
* Improved cleanup for workspace backup groups by adding more retries on
errors ([#375](#375)).
* Improved dashboard queries to show unsupported storage types.
([#398](#398)).
* Improved documentation for readme notebook
([#257](#257)).
* Improved test coverage for installer
([#371](#371)).
* Introduced deterministic `env_or_skip` fixture for integration tests
([#396](#396)).
* Made HMS & UC fixtures return `CatalogInfo`, `SchemaInfo`, and
`TableInfo` ([#409](#409)).
* Merge `workspace_access.Crawler` and `workspace_access.Applier`
interfaces to `workspace_access.AclSupport`
([#436](#436)).
* Moved examples to docs
([#404](#404)).
* Properly isolated integration testing for workflows on an existing
shared cluster ([#414](#414)).
* Removed thread pool for any IAM Group removals and additions
([#394](#394)).
* Replace plus char with minus in version tag for GCP dev installation
of UCX ([#420](#420)).
* Run integration tests on shared clusters for a faster devloop
([#397](#397)).
* Show difference between serverless and PRO warehouses during
installation ([#385](#385)).
* Split `migrate-groups` workflow into three different stages for
reliability ([#442](#442)).
* Use groups instead of usernames in code owners file
([#389](#389)).
FastLee added a commit that referenced this pull request Oct 25, 2023
… accessible from both workspace UI and Databricks CLI (#426)

This PR improves debuggability of UCX.

## More concise error messaging from job run
<img width="1390" alt="image"
src="https://github.com/databrickslabs/ucx/assets/259697/be4dc82c-3724-4684-b8cd-a77a05f24d67">

## Viewing logs via Databricks CLI
<img width="929" alt="image"
src="https://github.com/databrickslabs/ucx/assets/259697/b1901d03-1c9a-4c63-81c7-501f0f3e4e48">

## Added `.ucx/logs` folder in the installation
<img width="313" alt="image"
src="https://github.com/databrickslabs/ucx/assets/259697/a396b637-308a-4791-9cc5-dbd0494431c4">

where every executes workflow has a folder per job run, with ability to
get back to Job Run in Workspace UI
<img width="1092" alt="image"
src="https://github.com/databrickslabs/ucx/assets/259697/1bf60990-eab6-4866-b0b5-a75c8a44674e">

## Viewing full debug logs via workspace UI

<img width="1218" alt="image"
src="https://github.com/databrickslabs/ucx/assets/259697/0d1a84bb-0af9-4cbc-b662-77c1715ff4b1">

Closes #86

---------

Co-authored-by: Serge Smertin <serge.smertin@databricks.com>
FastLee pushed a commit that referenced this pull request Oct 25, 2023
# Version changelog

## 0.4.0

* Added exception handling for secret scope not found.
([#418](#418)).
* Added a crawler for creating an inventory of Azure Service Principals
([#326](#326)).
* Added check if account group already exists during failure recovery
([#446](#446)).
* Added checking for index out of range.
([#429](#429)).
* Added hyperlink to UCX releases in the main readme
([#408](#408)).
* Added integration test to check backup groups get deleted
([#387](#387)).
* Added logging of errors during threadpool operations.
([#376](#376)).
* Added recovery mode for workspace-local groups from temporary groups
([#435](#435)).
* Added support for migrating Legacy Table ACLs from workspace-local to
account-level groups
([#412](#412)).
* Added detection for installations of unreleased versions
([#399](#399)).
* Decoupled `PermissionsManager` from `GroupMigrationToolkit`
([#407](#407)).
* Enabled debug logging for every job task run through a file, which is
accessible from both workspace UI and Databricks CLI
([#426](#426)).
* Ensured that table exists, even when crawlers produce zero records
([#373](#373)).
* Extended test suite for HMS->HMS TACL migration
([#439](#439)).
* Fixed handling of secret scope responses
([#431](#431)).
* Fixed `crawl_permissions` task to respect 'workspace_start_path'
config ([#444](#444)).
* Fixed broken logic in `parallel` module and applied hardened error
handling design for parallel code
([#405](#405)).
* Fixed codecov.io reporting
([#403](#403)).
* Fixed integration tests for crawlers
([#379](#379)).
* Improved README.py and logging messages
([#433](#433)).
* Improved cleanup for workspace backup groups by adding more retries on
errors ([#375](#375)).
* Improved dashboard queries to show unsupported storage types.
([#398](#398)).
* Improved documentation for readme notebook
([#257](#257)).
* Improved test coverage for installer
([#371](#371)).
* Introduced deterministic `env_or_skip` fixture for integration tests
([#396](#396)).
* Made HMS & UC fixtures return `CatalogInfo`, `SchemaInfo`, and
`TableInfo` ([#409](#409)).
* Merge `workspace_access.Crawler` and `workspace_access.Applier`
interfaces to `workspace_access.AclSupport`
([#436](#436)).
* Moved examples to docs
([#404](#404)).
* Properly isolated integration testing for workflows on an existing
shared cluster ([#414](#414)).
* Removed thread pool for any IAM Group removals and additions
([#394](#394)).
* Replace plus char with minus in version tag for GCP dev installation
of UCX ([#420](#420)).
* Run integration tests on shared clusters for a faster devloop
([#397](#397)).
* Show difference between serverless and PRO warehouses during
installation ([#385](#385)).
* Split `migrate-groups` workflow into three different stages for
reliability ([#442](#442)).
* Use groups instead of usernames in code owners file
([#389](#389)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Add ability to also write log output to a configured file
2 participants