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

Tracing #50

Merged
merged 23 commits into from
Mar 6, 2024
Merged

Tracing #50

merged 23 commits into from
Mar 6, 2024

Conversation

elijahbenizzy
Copy link
Contributor

@elijahbenizzy elijahbenizzy commented Mar 1, 2024

Ellipsis 🚀 This PR description was created by Ellipsis for commit 4455cf2.

Summary:

This PR introduces a new tracing feature, updates classes for asynchronous actions, introduces new models, modifies the UI layout, updates UI components, adds new chip colors, introduces a new get_uri function, simplifies the code, fixes a key issue, and corrects text.

Key points:

  • Introduced new tracing feature with TracerFactory class.
  • Updated Application class for asynchronous actions.
  • Introduced new models: BeginEntryModel, BeginSpanModel, EndEntryModel, Span, and Step.
  • Modified UI layout to include a 'minimize' feature.
  • Added new chip colors for 'demo' and 'test'.
  • Updated StepList and GraphView UI components to display new tracing feature.
  • Added get_uri function to map project IDs to URIs.
  • Simplified code by removing use of TracerFactory.
  • Fixed key issue in TableRow component in AppList.tsx.
  • Corrected text in /burr/cli/demo_data.py.

Generated with ❤️ by ellipsis.dev

@elijahbenizzy
Copy link
Contributor Author

See #51

@elijahbenizzy
Copy link
Contributor Author

elijahbenizzy commented Mar 1, 2024

TODO for implementation:

  • Implement basic context manager
  • Implement injection of parameters (don't expose yet)
  • Implement hooks
  • Test with hooks
  • Add more unit tests
  • Add documentation
  • Integrate with Tracker
  • Integrate with UI

Other changes:

  • span_dependencies -> dependencies or edges

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

❌ Changes requested.

  • Reviewed the entire pull request up to bc44d23
  • Looked at 311 lines of code in 7 files
  • Took 2 minutes and 17 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 0 additional comments because they didn't meet confidence threshold of 50%.

Workflow ID: wflow_xKpSW6J0Qr37IFnR


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. We'll respond in a few minutes. Learn more here.

burr/visibility/tracing.py Outdated Show resolved Hide resolved
burr/visibility/tracing.py Show resolved Hide resolved
burr/visibility/tracing.py Show resolved Hide resolved
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on 181c242
  • Looked at 946 lines of code in 8 files
  • Took 1 minute and 57 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 2 additional comments because they didn't meet confidence threshold of 50%.
1. tests/visibility/test_tracing.py:1:
  • Assessed confidence : 0%
  • Comment:
    The test cases in this file are well written and cover a wide range of scenarios. They test the functionality of the ActionSpanTracer and TracerFactory classes, including the correct span count, nested span count, and the correct functioning of lifecycle hooks. The tests also cover both synchronous and asynchronous scenarios. The code is clean, and the use of comments makes it easy to understand the purpose of each test case.
  • Reasoning:
    The test cases in the file test_tracing.py are well written and cover a wide range of scenarios. They test the functionality of the ActionSpanTracer and TracerFactory classes, including the correct span count, nested span count, and the correct functioning of lifecycle hooks. The tests also cover both synchronous and asynchronous scenarios. The code is clean, and the use of comments makes it easy to understand the purpose of each test case.
2. burr/visibility/tracing.py:1:
  • Assessed confidence : 0%
  • Comment:
    The TracerFactory class has been implemented correctly. It creates ActionSpanTracer instances and manages the state for the top-level span count. The _process_inputs method in the Application class has been updated to handle missing inputs and create required inputs using the dependency_factory. The step and astep methods in the Application class have been updated to process inputs and handle missing inputs. The tests have been updated to reflect these changes.
  • Reasoning:
    The TracerFactory class in burr/visibility/tracing.py has been implemented correctly. It creates ActionSpanTracer instances and manages the state for the top-level span count. The _process_inputs method in the Application class in burr/core/application.py has been updated to handle missing inputs and create required inputs using the dependency_factory. The step and astep methods in the Application class have been updated to process inputs and handle missing inputs. The tests in tests/core/test_application.py have been updated to reflect these changes.

Workflow ID: wflow_brz94TpdgAdJiju9


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

This is designed to work with hooks -- the spans just set
contexts/delegate to the hooks. We were inspired by, but elected not to
leverage Opentel/opentracing, for the following reasons:

1. Dependencies -- too big/ugly
2. API -- we can easily build an ergonomic subset that can delegate to
   openTel, but we'd be shoving what we want to log into opentel
   otherwise

We can still leverage opentel heavily, and maybe even expose it to the
user.

Overall design decisions:
1. Sequence ID is a first class field -- we can use this for
   tracing/generating UIds for spans.
2. Actions declare __tracer and it gets injected in. This is passed as
   an input
3. We have an (internal) concept of "injected parameters" that can be a
   factory that gets injected each time an action that declares them is
   run.
4. Tracers have sync and async respected, they're a dual context manager
5. We use context vars to determine the current one (need to ensure it
   works with parallelism, although context vars is specifically meant
   to do that)
6. The tracer factory gets passed to actions, meaning that you create a
   new span. We should rename it to spanfactory or something like that.
   This is not exposed directly, so we can fix it up later.
7. We have room for logging of artifacts, observations, etc... but it is
   currently unimplemented.
8. We don't error out if no hook for tracing is added. We will consider
   adding a warning..
Everything worked except it treated them as sync actions. This treats
them as async actions. We also duplicate sync tests to work for async
actions.
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on 320f8da
  • Looked at 112 lines of code in 3 files
  • Took 1 minute and 42 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 1 additional comments because they didn't meet confidence threshold of 50%.
1. burr/core/action.py:408:
  • Assessed confidence : 100%
  • Grade: 0%
  • Comment:
    The PR description mentions changes to the Application class and the addition of a TracerFactory class. However, these changes are not visible in the diff. Please ensure that all relevant changes are included in the PR.
  • Reasoning:
    The PR introduces a new tracing feature and modifies the Application class to include a dependency_factory. It also updates methods to process inputs and updates tests to reflect these changes. However, the diff does not show any changes in the Application class or the new TracerFactory class. It only shows changes in the test files. This could be a mistake in the PR or the diff might not be showing all the changes. I will need to check the entire codebase to understand the changes better.

Workflow ID: wflow_FDdBqxl9NK4e4F5p


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

This auto-increments it even after failure. This way we can store logs
of failed steps and not have it increment.
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on ecfdb37
  • Looked at 93 lines of code in 2 files
  • Took 1 minute and 11 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 1 additional comments because they didn't meet confidence threshold of 50%.
1. burr/core/application.py:248:
  • Assessed confidence : 10%
  • Comment:
    The changes in the PR seem to be focused on the sequence_id incrementation and its placement in the try/finally block. This ensures that the sequence_id is incremented even if an exception is thrown. The changes also include updates to the tests to check the sequence_id. The changes seem logical and I don't see any clear violations of best practices or potential bugs.
  • Reasoning:
    The changes in the PR seem to be focused on the sequence_id incrementation and its placement in the try/finally block. This ensures that the sequence_id is incremented even if an exception is thrown. The changes also include updates to the tests to check the sequence_id. The changes seem logical and I don't see any clear violations of best practices or potential bugs.

Workflow ID: wflow_c3p5dv6qZi8NZVbE


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on e5cacb6
  • Looked at 132 lines of code in 3 files
  • Took 1 minute and 25 seconds to review
More info
  • Skipped 6 files when reviewing.
  • Skipped posting 1 additional comments because they didn't meet confidence threshold of 50%.
1. burr/visibility/tracing.py:200:
  • Assessed confidence : 80%
  • Grade: 30%
  • Comment:
    The log_artifact method in the ActionSpanTracer class raises a NotImplementedError. If this method is being used anywhere in the codebase, it will cause a runtime error. Please implement this method or remove it if it's not needed.
  • Reasoning:
    The ActionSpanTracer class has a log_artifact method that raises a NotImplementedError. This could be a potential issue if the method is called somewhere in the codebase. I'll need to check if this method is being used anywhere.

Workflow ID: wflow_a4K4r0XDuGLOFXd8


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

This logs one to each line. This will be done in a "queue"-type format
in a more powerful client -- E.G. each log line telling its role so we
can add it to the db, then query later.

This will break the UI, currently.
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

❌ Changes requested.

  • Performed an incremental review on a9646b5
  • Looked at 148 lines of code in 2 files
  • Took 3 minutes and 24 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 1 additional comments because they didn't meet confidence threshold of 50%.
1. burr/tracking/server/backend.py:147:
  • Assessed confidence : 100%
  • Grade: 0%
  • Comment:
    There's a TODO comment about making certain values into constants. It's a good practice to avoid magic strings or numbers and instead use constants for better code readability and maintainability.
  • Reasoning:
    The function get_application_logs has a TODO comment about making certain values into constants. It's a good practice to avoid magic strings or numbers and instead use constants for better code readability and maintainability.

Workflow ID: wflow_R0uMA5VhJAKZNS8V


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. We'll respond in a few minutes. Learn more here.

burr/tracking/server/backend.py Show resolved Hide resolved
burr/tracking/server/backend.py Outdated Show resolved Hide resolved
This functions on the idea of messages logged -- its carried through to
the FE. This just does a pretty simple loa load of local files to
display.
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on 1c96a71
  • Looked at 1859 lines of code in 26 files
  • Took 5 minutes and 11 seconds to review
More info
  • Skipped 2 files when reviewing.
  • Skipped posting 7 additional comments because they didn't meet confidence threshold of 50%.
1. telemetry/ui/src/api/models/BeginEntryModel.ts:13:
  • Assessed confidence : 0%
  • Comment:
    The addition of the 'sequence_id' field is consistent with the PR description and there are no apparent issues with it.
  • Reasoning:
    The changes in the file 'telemetry/ui/src/api/models/BeginEntryModel.ts' are adding a new field 'sequence_id' to the 'BeginEntryModel' type. This field is of type 'number'. This change is consistent with the PR description and there are no apparent issues with it.
2. telemetry/ui/src/api/models/BeginSpanModel.ts:15:
  • Assessed confidence : 0%
  • Comment:
    The introduction of the 'BeginSpanModel' type is consistent with the PR description and there are no apparent issues with it.
  • Reasoning:
    The changes in the file 'telemetry/ui/src/api/models/BeginSpanModel.ts' are introducing a new type 'BeginSpanModel'. This type includes fields such as 'type', 'start_time', 'action_sequence_id', 'span_id', 'span_name', 'parent_span_id', and 'span_dependencies'. This change is consistent with the PR description and there are no apparent issues with it.
3. telemetry/ui/src/api/models/EndEntryModel.ts:15:
  • Assessed confidence : 0%
  • Comment:
    The addition of the 'sequence_id' field is consistent with the PR description and there are no apparent issues with it.
  • Reasoning:
    The changes in the file 'telemetry/ui/src/api/models/EndEntryModel.ts' are adding a new field 'sequence_id' to the 'EndEntryModel' type. This field is of type 'number'. This change is consistent with the PR description and there are no apparent issues with it.
4. telemetry/ui/src/api/models/Span.ts:14:
  • Assessed confidence : 0%
  • Comment:
    The introduction of the 'Span' type is consistent with the PR description and there are no apparent issues with it.
  • Reasoning:
    The changes in the file 'telemetry/ui/src/api/models/Span.ts' are introducing a new type 'Span'. This type includes fields such as 'begin_entry' and 'end_entry'. This change is consistent with the PR description and there are no apparent issues with it.
5. telemetry/ui/src/api/models/Step.ts:14:
  • Assessed confidence : 0%
  • Comment:
    The addition of the 'spans' field is consistent with the PR description and there are no apparent issues with it.
  • Reasoning:
    The changes in the file 'telemetry/ui/src/api/models/Step.ts' are adding a new field 'spans' to the 'Step' type. This field is of type 'Array'. This change is consistent with the PR description and there are no apparent issues with it.
6. telemetry/ui/src/api/services/DefaultService.ts:116:
  • Assessed confidence : 0%
  • Comment:
    The changes in this file are mostly formatting changes and there are no apparent issues with them.
  • Reasoning:
    The changes in the file 'telemetry/ui/src/api/services/DefaultService.ts' are mostly formatting changes. There are no new methods or significant changes to existing methods. This change is consistent with the PR description and there are no apparent issues with it.
7. telemetry/ui/src/components/common/dates.tsx:31:
  • Assessed confidence : 0%
  • Comment:
    The introduction of the 'TimeDisplay' component is consistent with the PR description and there are no apparent issues with it.
  • Reasoning:
    The changes in the file 'telemetry/ui/src/components/common/dates.tsx' are introducing a new component 'TimeDisplay'. This component takes a 'date' prop and displays it in a human-readable format. This change is consistent with the PR description and there are no apparent issues with it.

Workflow ID: wflow_7X6OQURznbri20i8


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

❌ Changes requested.

  • Performed an incremental review on a80cb5a
  • Looked at 381 lines of code in 3 files
  • Took 5 minutes and 21 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 2 additional comments because they didn't meet confidence threshold of 50%.
1. /telemetry/ui/src/components/routes/app/AppView.tsx:80:
  • Assessed confidence : 70%
  • Grade: 0%
  • Comment:
    Consider renaming the state variable 'minimizedTable' to a more descriptive name like 'isFirstColumnMinimal'.
const [isFirstColumnMinimal, setIsFirstColumnMinimal] = useState(false);
- **Reasoning**: 
  In the file 'AppView.tsx', a new state variable 'minimizedTable' has been introduced. This state variable is used to control the layout of the 'TwoColumnLayout' component. If 'minimizedTable' is true, the 'mode' prop of 'TwoColumnLayout' is set to 'first-minimal', else it is set to 'half'. This allows the layout of the 'TwoColumnLayout' component to be controlled based on the 'minimizedTable' state. This is a good practice as it allows the layout to be dynamically controlled based on the state of the component. However, the naming of the state variable could be improved. 'minimizedTable' does not clearly indicate its purpose. A name like 'isFirstColumnMinimal' would be more descriptive.

</details>



<details>
<summary>2. <code>/telemetry/ui/src/components/routes/app/StepList.tsx:285</code>:</summary>

- **Assessed confidence** : `70%`
- **Grade**: `30%`
- **Comment:** 
  Consider renaming the props 'minimized' and 'setMinimized' to more descriptive names like 'isMinimalView' and 'setIsMinimalView'.
```suggestion
isMinimalView: boolean;
setIsMinimalView: (b: boolean) => void;
- **Reasoning**: 
  In the file 'StepList.tsx', the 'StepList' component has been updated to include two new props 'minimized' and 'setMinimized'. The 'minimized' prop is used to control the visibility of certain table cells in the 'ActionTableRow' and 'TraceSubTable' components. The 'setMinimized' prop is used to update the 'minimized' state in the parent component. This is a good practice as it allows the visibility of the cells and the state of the parent component to be controlled dynamically based on the requirements of the parent component. However, the 'minimized' and 'setMinimized' props could be renamed to something more descriptive like 'isMinimalView' and 'setIsMinimalView' to clearly indicate their purpose.

</details>



Workflow ID: <workflowid>`wflow_ualrDtla8iP1IJaY`</workflowid>

</details>




----
**Want Ellipsis to fix these issues?** Tag `@ellipsis-dev` in a comment. We'll respond in a few minutes. Learn more [here](https://docs.ellipsis.dev/code#from-a-pr).

telemetry/ui/src/components/common/layout.tsx Show resolved Hide resolved
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

❌ Changes requested.

  • Performed an incremental review on 4b40133
  • Looked at 215 lines of code in 3 files
  • Took 4 minutes and 4 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 2 additional comments because they didn't meet confidence threshold of 50%.
1. /telemetry/ui/src/components/routes/app/AppView.tsx:170:
  • Assessed confidence : 50%
  • Comment:
    Consider adding a comment explaining why the scrollbar is hidden. This can help other developers understand the design decision.
{/* The scrollbar is hidden to improve the visual appearance of the component. */}
<div className="overflow-y-scroll hide-scrollbar h-full w-full">
  • Reasoning:
    In the file 'AppView.tsx', there is a div with the class 'overflow-y-scroll hide-scrollbar h-full w-full'. This is a good practice as it ensures that the content will be scrollable if it exceeds the height of the container and the scrollbar will be hidden. However, it would be better to add a comment explaining why the scrollbar is hidden, as this might not be immediately clear to other developers.
2. /telemetry/ui/src/components/common/layout.tsx:16:
  • Assessed confidence : 90%
  • Grade: 0%
  • Comment:
    Consider using strict equality check (===) instead of loose equality (==) for consistency and to avoid potential bugs due to type coercion.
if (mode === 'first-minimal') {
  • Reasoning:
    In the file 'layout.tsx', there is a strict equality check (===) used in the className string interpolation. This is a good practice as it avoids type coercion that can lead to unexpected results. However, the same check is not used in the if condition on the line above. It would be better to use strict equality check (===) instead of loose equality (==) to ensure consistency and avoid potential bugs due to type coercion.

Workflow ID: wflow_GiBP58vEcXwErXRT


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. We'll respond in a few minutes. Learn more here.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

❌ Changes requested.

  • Performed an incremental review on cf6159b
  • Looked at 99 lines of code in 2 files
  • Took 2 minutes and 57 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 0 additional comments because they didn't meet confidence threshold of 50%.

Workflow ID: wflow_P67LSy0ZAsjPN01N


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. We'll respond in a few minutes. Learn more here.

telemetry/ui/src/components/routes/ProjectList.tsx Outdated Show resolved Hide resolved
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

❌ Changes requested.

  • Performed an incremental review on 6726375
  • Looked at 167 lines of code in 4 files
  • Took 3 minutes and 8 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 0 additional comments because they didn't meet confidence threshold of 50%.

Workflow ID: wflow_99qdlaBNFETHrTYt


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. We'll respond in a few minutes. Learn more here.

burr/tracking/server/backend.py Show resolved Hide resolved
telemetry/ui/src/components/routes/ProjectList.tsx Outdated Show resolved Hide resolved
@@ -59,7 +59,11 @@ export const AppListTable = (props: { apps: ApplicationSummary[]; projectId: str
</TableHead>
<TableBody>
{appsToDisplay.map((app) => (
<TableRow key={app.app_id}>
<TableRow
key={props.projectId}
Copy link

Choose a reason for hiding this comment

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

Consider using app.app_id as the key for each TableRow to ensure it is unique.

@elijahbenizzy elijahbenizzy changed the title Tracing WIP Tracing Mar 4, 2024
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on 28b5897
  • Looked at 17 lines of code in 1 files
  • Took 2 minutes and 14 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 1 additional comments because they didn't meet confidence threshold of 50%.
1. burr/visibility/tracing.py:201:
  • Assessed confidence : 0%
  • Comment:
    The log_artifact method is raising a NotImplementedError. If this method is called in the code, it will cause an error. However, the error message indicates that this is a known issue and there is a GitHub issue link provided for more details. This suggests that the author is aware of this and it is likely intentional.
  • Reasoning:
    The log_artifact method in the ActionSpanTracer class is raising a NotImplementedError. This could potentially cause issues if the method is called in the code. However, the error message indicates that this is a known issue and there is a GitHub issue link provided for more details. This suggests that the author is aware of this and it is likely intentional. Therefore, I don't see any immediate issues with this PR.

Workflow ID: wflow_QnkAwIInybQLksZH


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on a04e19b
  • Looked at 210 lines of code in 2 files
  • Took 2 minutes and 55 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 2 additional comments because they didn't meet confidence threshold of 50%.
1. /telemetry/ui/src/components/routes/AppList.tsx:63:
  • Assessed confidence : 0%
  • Comment:
    Good fix. Using app.app_id as the key for each TableRow is the correct approach as keys should be unique to each row.
  • Reasoning:
    The key for each TableRow in the AppListTable component was previously set to the projectId, which is the same for all rows. This is incorrect as keys should be unique to each row. The change to use app.app_id as the key is correct and should resolve any potential issues with React not being able to correctly identify each row in the list.
2. /examples/gpt/application.py:21:
  • Assessed confidence : 50%
  • Comment:
    The TracerFactory has been removed from this file. If the new tracing feature is supposed to be used here, this could be an oversight.
  • Reasoning:
    The PR author removed the TracerFactory from the application.py file. This means that the tracing feature that was introduced is not being used in this file. This could be an oversight or intentional depending on whether the tracing feature is supposed to be used here or not. I would need to check other parts of the codebase to see if the TracerFactory is being used elsewhere.

Workflow ID: wflow_VKxei7jL2KUy9ibN


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

@elijahbenizzy
Copy link
Contributor Author

Note this will make current logs break, and I'm ok with that for now.

@elijahbenizzy elijahbenizzy requested a review from skrawcz March 4, 2024 23:55
Copy link

ellipsis-dev bot commented Mar 5, 2024

⚠️ This PR is too large for Ellipsis to review, but support for larger PRs is coming soon.


Generated with ❤️ by ellipsis.dev

Copy link

ellipsis-dev bot commented Mar 5, 2024

Sorry, Ellipsis encountered a problem while reviewing this PR at commit 69f45a1. Our team has been alerted and is investigating. (wflow_Q0iD16qrr5l3US90) 🤖

We may want this within the whole app, but for now this is a cute way of
visualizing it. Just a hint of what we could do.
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

❌ Changes requested.

  • Performed an incremental review on dd03737
  • Looked at 97 lines of code in 2 files
  • Took 2 minutes and 22 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 0 additional comments because they didn't meet confidence threshold of 50%.

Workflow ID: wflow_fSSkby6yVCRriLty


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. We'll respond in a few minutes. Learn more here.

We were previously using the step index as the ID, this replaces it with
the step sequence ID.
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

❌ Changes requested.

  • Performed an incremental review on 79ea2eb
  • Looked at 64 lines of code in 3 files
  • Took 3 minutes and 47 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 1 additional comments because they didn't meet confidence threshold of 50%.
1. /telemetry/ui/src/components/routes/app/StateMachine.tsx:39:
  • Assessed confidence : 80%
  • Grade: 0%
  • Comment:
    It seems like the currentSequenceID is being used as an index to find the currentAction. If the sequence IDs are not 0-indexed or if there are gaps in the sequence, this could lead to an incorrect action being selected. Please ensure that the sequence IDs correspond correctly to the indices of the steps array.
  • Reasoning:
    In the AppStateView component, the currentAction is being found using the currentSequenceID as an index in the steps array. However, if the sequence IDs are not 0-indexed or if there are gaps in the sequence, this could lead to an incorrect action being selected as the current action.

Workflow ID: wflow_nEGWUA54L267ZarB


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. We'll respond in a few minutes. Learn more here.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on af29e69
  • Looked at 17 lines of code in 1 files
  • Took 2 minutes and 0 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 1 additional comments because they didn't meet confidence threshold of 50%.
1. /telemetry/ui/src/components/routes/app/StateMachine.tsx:38:
  • Assessed confidence : 0%
  • Comment:
    This change simplifies the code by replacing a ternary operator with a variable that was defined earlier. This makes the code more readable and maintainable.
  • Reasoning:
    The change in this PR is replacing a ternary operator with a variable. The variable currentStep is defined earlier in the code and is equivalent to the ternary operator that was replaced. This change simplifies the code and makes it more readable.

Workflow ID: wflow_6kQOxodrMBM2efDv


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on 5437bd8
  • Looked at 62 lines of code in 1 files
  • Took 1 minute and 58 seconds to review
More info
  • Skipped 0 files when reviewing.
  • Skipped posting 1 additional comments because they didn't meet confidence threshold of 50%.
1. /telemetry/ui/src/components/routes/app/StepList.tsx:298:
  • Assessed confidence : 0%
  • Comment:
    Good UX improvement to disable the 'Expand All' button when there are no spans to expand. The implementation is correct and the code is clean.
  • Reasoning:
    The PR introduces a new feature to disable the 'Expand All' button when there are no spans to expand. This is a good UX improvement as it prevents users from trying to expand when there's nothing to expand. The implementation seems correct as it checks if there are any spans before enabling the button. The code is also clean and follows good practices.

Workflow ID: wflow_JfKeFWKXhjQOurbD


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

Copy link
Contributor Author

@elijahbenizzy elijahbenizzy left a comment

Choose a reason for hiding this comment

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

Needs a few things

from burr.visibility import TracingFactory
from burr.core import action

@action(reads=['input_var'], writes=['output_var'], __tracer: TracingFactory)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Wrong -- not valid python

from burr.core import action

@action(reads=['input_var'], writes=['output_var'], __tracer: TracingFactory)
def my_action(state: State) -> Tuple[dict, State]:
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Add __logger to demonstrate

Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

❌ Changes requested.

  • Performed an incremental review on 8de0304
  • Looked at 49 lines of code in 2 files
  • Took 1 minute and 31 seconds to review
More info
  • Skipped 1 files when reviewing.
  • Skipped posting 1 additional comments because they didn't meet confidence threshold of 50%.
1. /telemetry/ui/src/components/routes/ProjectList.tsx:49:
  • Assessed confidence : 100%
  • Grade: 0%
  • Comment:
    Consider using the Link component from react-router-dom for navigation instead of using an onClick event handler. This is a more standard practice and can prevent unexpected behavior.
<Link to={`/project/${project.id}`}>...</Link>
  • Reasoning:
    The onClick event handler in the TableRow component in ProjectList.tsx is used to navigate to a different page. This is not a good practice as it can lead to unexpected behavior. It's better to use the Link component from react-router-dom for navigation.

Workflow ID: wflow_Rj73xmsC9BkvkkXs


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. We'll respond in a few minutes. Learn more here.

telemetry/ui/src/components/common/href.tsx Show resolved Hide resolved
@elijahbenizzy elijahbenizzy merged commit 4455cf2 into main Mar 6, 2024
6 checks passed
@elijahbenizzy elijahbenizzy deleted the tracing branch March 6, 2024 04:54
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

👍 Looks good to me!

  • Performed an incremental review on 4455cf2
  • Looked at 49 lines of code in 2 files
  • Took 1 minute and 55 seconds to review
More info
  • Skipped 1 files when reviewing.
  • Skipped posting 2 additional comments because they didn't meet confidence threshold of 50%.
1. /telemetry/ui/src/components/common/href.tsx:10:
  • Assessed confidence : 80%
  • Grade: 0%
  • Comment:
    The stopPropagation method in the onClick event handler could potentially interfere with other event handlers that are expecting to receive this event. Please provide more context on why this is necessary and what the 'parent href' refers to.
  • Reasoning:
    The onClick event handler in the LinkText component is stopping propagation of the click event. This could potentially interfere with other event handlers that are expecting to receive this event. It's not clear why this is necessary from the PR description or the code comments. It's also not clear what the 'parent href' mentioned in the comment refers to.
2. /telemetry/ui/src/components/routes/ProjectList.tsx:49:
  • Assessed confidence : 90%
  • Grade: 0%
  • Comment:
    The TableRow component has an onClick event handler that navigates to a new page. However, it also contains a LinkText component which also navigates to a new page when clicked. This could potentially lead to unexpected behavior if both are triggered at the same time.
  • Reasoning:
    The TableRow component in the ProjectListTable component has an onClick event handler that navigates to a new page. However, it also contains a LinkText component which also navigates to a new page when clicked. This could potentially lead to unexpected behavior if both are triggered at the same time.

Workflow ID: wflow_jibD0f2jnKAqaeNM


Not what you expected? You can customize the content of the reviews using rules. Learn more here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants