Git Product home page Git Product logo

flowtrace's People

Contributors

bergie avatar dependabot[bot] avatar greenkeeper[bot] avatar greenkeeperio-bot avatar jonnor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

flowtrace's Issues

Show and replay completely missing tests

Right now there is nothing with is very scary. Should just take some input trace files, process/setup using various (high-level) options and verify regular output.

For replay this means the FBP protocol, for show it means the strings outputted.

flowtrace-record: Tool for recording trace using FBP runtime protocol

Would connect to a runtime over the FBP runtime protocol, and listen there for messages and from those produce a flowtrace file.

This allow to listen remotely, for instance if the runtime under investigation does not have capacity/permissions to write a flowtrace to disk. Often it is also more convenient to have the files on a developer machine. And it enables using flowtrace with FBP runtimes which do not have integrated support for flowtrace (but support the protocol).

This is basically the opposite of the already existing flowtrace-replay.

Allow looking up component code from trace

Would require the trace to either:

  • Have code of all components included (very large, and won't work for non-component things included by component)
  • Have enough info to know which component versions where, and how to look up the info. For node.js, this could based on a npm list dump, though maybe one should extract repo (typically but not alway github) from the package.json right away. Then would have to get the path from base of repo to the particular component. And have a way to HTTP GET the actual source code..

Since we want this in a non-NPM specific manner in general, there are some relationships here to noflo/noflo#247

flowtrace-show: Don't output control chars when not a terminal

Looks like this now when redirecting output to a file...

�[34m�[3m-> CSS image/GetColors_at7fj�[23m�[39m �[33mCONN�[39m
�[34m�[3m-> CSS image/GetColors_at7fj�[23m�[39m �[32mDATA�[39m false
�[34m�[3m-> CSS image/GetColors_at7fj�[23m�[39m �[33mDISC�[39m

An in-range update of commander is breaking the build 🚨

Version 2.16.0 of commander was just published.

Branch Build failing 🚨
Dependency commander
Current Version 2.15.1
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

commander is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v2.16.0
  • Remove Makefile and test/run (#821)
  • Make 'npm test' run on Windows (#820)
  • Add badge to display install size (#807)
  • chore: cache node_modules (#814)
  • chore: remove Node.js 4 (EOL), add Node.js 10 (#813)
  • fixed typo in readme (#812)
  • Fix types (#804)
  • Update eslint to resolve vulnerabilities in lodash (#799)
  • updated readme with custom event listeners. (#791)
  • fix tests (#794)
Commits

The new version differs by 17 commits.

  • 4cc348b Merge pull request #822 from abetomo/version_bump_2.16.0
  • 8db14db version bump 2.16.0
  • 1f9354f Remove Makefile and test/run (#821)
  • 3f4f5ca Make 'npm test' run on Windows (#820)
  • 3b8e519 Merge pull request #807 from styfle/patch-1
  • 77ffd4f Merge pull request #814 from DanielRuf/chore/cache-node-modules
  • 6889693 chore: cache node_modules
  • ff2f618 Merge pull request #813 from DanielRuf/chore/remove-nodejs-4-add-nodejs-10
  • d5c1d7d chore: remove Node.js 4 (EOL), add Node.js 10
  • c05ed98 Merge pull request #812 from yausername/fixReadme
  • 55ff22f fixed typo in readme
  • 2415089 Add badge to display install size
  • 89edef0 Fix types (#804)
  • 001d560 Update eslint to resolve vulnerabilities in lodash
  • 988d09b Merge pull request #791 from yausername/master

There are 17 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Make format streamable

This way debugging tools can be live updated with changes to the system.

One possibility is to use text/event-stream format. It is a simple \n\n delimited format, with good support for JSON payloads.
https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format
It has the benefit of also being used in server-side-events which is supported by webbrowsers.

The header information like the graph should also be sent as an event. It should be supported to have this change in the middle of a stream also.
Ideally tools can also deal with the header not being present, and recontructing information from data events (to the extent possible)

UI: Support text-based rendering mode

Just using the code also from the command-line tool for instance.
Especially since the graphical timeline etc is kinda useless right now.

Should also be configurable as a URL parameter (ref #24).

Support matching on data

For instance interesting to find which connections have certain data come past. Also what groups it was included with it at that time. Mostly so one can find a particular request, and then do other filtering later.

Support annotations

It should be possible to annotate a trace, with comments / metadata. This is especially useful when collaborating, as a developer can add their analysis/questions in a way that other tools can then display.
It may also be useful for semi/automated analysis tools to inject annotations, to point to specific areas of interest.

Annotations should be stored outside the events stream, as an event is considered immutable.
Possibly we should add an 'event id', to allow such references to be done in an unambigious way (even when trace is/has-been transformed). As a prototype one could use the array index though.

An in-range update of grunt is breaking the build 🚨

Version 1.0.3 of grunt was just published.

Branch Build failing 🚨
Dependency grunt
Current Version 1.0.2
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

grunt is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Commits

The new version differs by 10 commits.

  • 9ba3a99 1.0.3
  • eee4c33 Changelog v1.0.3
  • 46da7f2 Merge pull request #1636 from gruntjs/upt
  • 00f4d8a Drop support for Node 0.10 and 0.12
  • e852727 util update
  • 56d702e Update deps
  • 0105524 Fix race condition with file.mkdir and make it operate more similarily to mkdir -p (#1627) r=@vladikoff
  • 303d445 https links (#1629)
  • d969132 Merge pull request #1624 from gruntjs/rm-bump-deps
  • 289ff91 Remove old bump task and deps

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of grunt-bower-install-simple is breaking the build 🚨

Version 1.2.5 of grunt-bower-install-simple was just published.

Branch Build failing 🚨
Dependency grunt-bower-install-simple
Current Version 1.2.4
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

grunt-bower-install-simple is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Commits

The new version differs by 5 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! 🎊

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Added the new Node.js version to your .travis.yml

If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didn’t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖


FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Searching & clustering traces

When capturing traces from production environment with lots of processing, one often encounters scenarios where many failures are in fact caused by same bug/issue. And that small changes in inputs often are difference between triggering an issue or not, and that such differences can say a lot about the nature of the bug.

Interesting questions include:

  • How many distinct failure classes exists, and how many of each are there
  • What are the boundary conditions between fail and success

With the ability to upload traces to a service (#2), it becomes interesting to have cloud-based tools which help answer these problem at scale. Performance of making the needed analysis - both how quick to get results, and how much it costs, are key considerations.

References

An in-range update of grunt-contrib-watch is breaking the build 🚨

Version 1.1.0 of grunt-contrib-watch was just published.

Branch Build failing 🚨
Dependency grunt-contrib-watch
Current Version 1.0.1
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

grunt-contrib-watch is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Commits

The new version differs by 4 commits.

  • 3b7ddf4 v1.1.0
  • 72b1214 Updating dependencies, async, lodash and tiny-lr
  • 5adb27c Merge pull request #543 from digitalbazaar/master
  • f07311b Update tiny-lr dependency to 1.x

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of mocha is breaking the build 🚨

Version 5.2.0 of mocha was just published.

Branch Build failing 🚨
Dependency mocha
Current Version 5.1.1
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

mocha is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v5.2.0

5.2.0 / 2018-05-18

🎉 Enhancements

🐛 Fixes

📖 Documentation

🔩 Other

Commits

The new version differs by 30 commits.

  • 5bd33a0 Release v5.2.0
  • 0a5604f reformat missed files
  • 7c8f551 ensure scripts/*.js gets prettiered
  • d8ea2ba update CHANGELOG.md for v5.2.0 [ci skip]
  • 7203ed7 update all dependencies
  • fb5393b migrate Mocha's tests to Unexpected assertion library (#3343)
  • fae9af2 docs(docs/index.md): Update "mocha.opts" documentation
  • 9d9e6c6 feat(bin/options.js): Add support for comment lines in "mocha.opts"
  • e0306ff fix busted lint-staged config
  • f2be6d4 Annotate when exceptions are caught but ignored; closes #3354 (#3356)
  • 889e681 remove dead code in bin/_mocha
  • 8712b95 fix(ocd): re-order Node.js tests in .travis.yml (descending)
  • 3ab0e7e fix to exit correctly when using bail flag
  • d87b12e add Node.js v10 to build; fix win32 issues (#3350)
  • b392af5 update package-lock.json for npm@6 [ci skip]

There are 30 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Discussion: Allow embedding stack trace

Sometimes the issue/bug is caused inside component code, like an exception / returned Error.

In this case it would be nice to be able to look inside the component, and see exception wrt to that. Like a regular imperative/OOP debugger.

Must be able to look up component code, #6

flowtrace-replay: persist runtime identifier

Now the runtime gets a random UUID every time it is started, which is somewhat confusing to clients like noflo-ui. It would be better to generate a UUID and persist it in the pwd in a dotfile.

flowtrace-show: Allow events filtering based on groups

At least

  • Show only events with a particular group
  • Show events with no group (major warning for concurrent graphs!)
  • (for completeness) Everything not matching a particular group

Should be possible to add multiple such matching rules.

Later we'd probably also want:

  • Maybe want regexp matching for groups
  • Matching against a particular level of group

Add schema/spec for trace format

Basically we're reusing a lot of other FBP formats, like the protocol and graph format.

Ideally those would have JSON schemas which we could just refer, but that is currently not in a good shape. Might be good to start with a top-level schema here, where we are starting from scratch and plug in more as we improve the other specs.

flowtrace-extract: Tool for extracting particular data

Should give machine-readable data, to compliment flowtrace-show (which gives human-friendly output).

Should reuse the filtering options (#10 #11 #12). By default should probably create a new Flowtrace file with "subtrace". But should also have other options to extract other things, for working onwards using other tools.

  • Extract a particular graph
  • Extract only data on edges
  • (for completeness) Extract only groups

Maybe option for

Diffing traces

For many bugs, it is often possible to narrow things down to get one (or more) test run which succeeds, and one (or more) test runs which fails.
Sometimes the cause for difference is in input data, and sometimes in the (version of) code used. Or in some cases, the environment the code is executing in.

But then to figure out why exactly this makes causes difference in behavior. In dataflow/FBP that usually means following the data until it starts diverging. A tricky/tedious part is usually being able to distinguish the insignificant from significant differences.
There might be timestamps, payload sizes etcs that continiously vary, but are not of interest. Or in other cases, there are slight differences which are functionally equivalent. For instance existance or value of some keys in an object might not matter at all. Or addition/removal of some elements of an array (but not others).
In general we'd need tooling that brings down the differences enough to be analyzed/understood easily/quickly by the developer. It should allow to progressively tighten whats shown when one has narrowed down possibilities.

If one does not know if difference is input or code/graphs, it may be useful with tools to help figure that out. For diffing the graphs, some integration with (yet to be developed) fbp-diff may be useful. Alternatively, one could use require user to combine (proposed)[https://github.com/flowbased/flowtrace/issue/13] flowtrace-extract --graph + fbp-spec for that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.