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

Global Analysis View: error + console output traces #618

Open
25 of 28 tasks
Tracked by #561
Domiii opened this issue Nov 30, 2021 · 0 comments
Open
25 of 28 tasks
Tracked by #561

Global Analysis View: error + console output traces #618

Domiii opened this issue Nov 30, 2021 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@Domiii
Copy link
Owner

Domiii commented Nov 30, 2021

  • review comments of GlobalErrorsNode related changes #641
  • Add a new Global view beneath TDView (class GlobalAnalysisView)
    • since this should collect information spread over all active apps, we probably could benefit from a new function ApplicationSet.collectGlobalStats(utilName, ...args) that returns an array of const f = dpUtil[utilName]; return f.call(dpUtil, ...args); of all apps in the set.
    • fix DebugAppTDNode to be GlobalDebugNode, change it to get all app data, and move it to this view.
  • move Pathways button to ApplicationView, add a copy of call graph button to GlobalView
    • (maybe add a copy of call graph button to the top/tab bar, if there are any recorded applications?
  • add a new GlobalErrorsNode (lists all error traces) to it (see ErrorTraceManager?)
    • roots = leafs of error tree (leafs are a subset of all root causes)
    • each error's children are its asynchronous stack's error traces (in DESC order of traceId)
    • add some tests w/ asynchronous error stack
      • await
      • promise
    • when clicking the error button:
      • cycle through the "error leaves"
      • reveal the relevant error node in this view
    • add a copy of the "error button" to the header of this view as well
    • test w/
      • express#5
      • sequelize#4
      • sequelize#5
  • create a new generalized node class TraceContainerNode that provides the same interface for grouping (maybe sorting) of traces. It should only be used to contain TraceNode children.
    • it should provide the same grouping buttons as ExecutionsTDNode
    • ExecutionsTDNode should instead inherit from TraceContainerNode
    • can we also generalize the system so it works for DataFlow nodes in the DataFlowView?
  • add a console node
    • add instrumentation to identify console BCE traces
    • render all such traces as its children (and ofc add to DataProviderUtil)
      • -> dp.indexes.traces.byPurpose.get(TracePurpose.Console)
      • -> dp.util.renderConsoleMessage(consoleCallId)
    • class ConsoleNode extends TraceContainerNode { }

Remaining problems:

  • Only works with a singular application (→ enable multi application support)
    • → this affects groups, because they don't take applicationId into account when grouping
    • → for now:
      • if a set of candidate traces is from more than one application: add them to separate "application super groups"
      • else (only one application): no change
  • a context on an already erroneous error stack could throw a new error (in case of catch and finally)
    • -> find those and add those to root as well
    • -> needs CatchExit?
  • add pretty/representative screenshot to docs
    • (at docs_site/content/02-using-dbux/07-global.mdx)
@Domiii Domiii added enhancement New feature or request priority labels Nov 30, 2021
@Domiii Domiii changed the title Global Analysis View + tracing console output Global Analysis View: errors + console correlation views Dec 21, 2021
@Domiii Domiii changed the title Global Analysis View: errors + console correlation views Global Analysis View: error + console output traces Dec 21, 2021
@Domiii Domiii removed the priority label Mar 2, 2022
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
None yet
Development

No branches or pull requests

2 participants