FlameScope is a visualization tool for exploring different time ranges as Flame Graphs.

Overview

FlameScope

FlameScope

Gitter TravisCI NetflixOSS Lifecycle License

FlameScope is a visualization tool for exploring different time ranges as Flame Graphs, allowing quick analysis of performance issues such as perturbations, variance, single-threaded execution, and more.

FlameScope begins by displaying the input data as an interactive subsecond-offset heat map. This shows patterns in the data. You can then select a time range to highlight on different patterns, and a flame graph will be generated just for that time range.

Disclaimer

FlameScope is in early stages of development and under constant change, so bugs and issues are expected. We count on your support to find and report them!

Installation / Instructions

The quickest way to get started is to run the pre-built client bundle:

$ git clone https://github.com/Netflix/flamescope
$ cd flamescope
$ pip install -r requirements.txt
$ python run.py

(Note python3 is assumed, python2 may work)

Then browse to http://127.0.0.1:5000/, and you can begin exploring profiles from the examples directory. You can add new profiles to that directory, collected using Linux perf. Here are instructions for a generic CPU profile at 49 Hertz for 120 seconds:

$ sudo perf record -F 49 -a -g -- sleep 120
$ sudo perf script --header > stacks.myproductionapp.2018-03-30_01
$ gzip stacks.myproductionapp.2018-03-30_01	# optional

If you are profiling C++ code, you may want to pipe stacks through c++filt to get readable frames.

There are extra steps to fetch stacks correctly for some runtimes, depending on the runtime. For example, we've previously published Java steps in Java in Flames: java needs to be running with the -XX:+PreserveFramePointer option, and perf-map-agent must be run immediately after the perf record to dump a JIT symbol table in /tmp.

FlameScope can visualize any Linux perf script output that includes stack traces, including page faults, context switches, and other events. See the References section below for documentation.

FlameScope is composed of two main components, the Python backend, and a React client interface. A pre-built client bundle is distributed with the backend, so the quickest way to get started is to install the Python requirements and start the application, as described earlier.

Although not necessary, we strongly suggest using virtualenv to isolate your Python environment.

By default, FlameScope will load a list of files from the examples directory, which includes a two profile examples.

Configuration Options

FlameScope configuration file can be found in app/config.py.

DEBUG = True # run the web server in debug mode
PROFILE_DIR = 'examples' # path where flamescope will look for profiles
HOST = '127.0.0.1' # web server host
PORT = 5000 # web server port
JSONIFY_PRETTYPRINT_REGULAR = False # pretty print api json responses

Building Client from Source

In order to build the client application from source, the following command line tools must be installed:

Once those tools are available, you will be able to install the project dependencies and generate a build.

$ npm install
$ npm run webpack

The npm run webpack command will generate a new build under app/public. This directory is exposed by the Python web server.

Webpack can also watch and recompile files whenever they change. To build and start the watch task, run the following command:

$ npm run webpack-watch

Building a Docker Image

FlameScope provides a Dockerfile to build a Docker image:

$ cd flamescope
$ docker build -t flamescope .

The container expects the profiles to be bind-mounted into /profiles and listens on port 5000. To view profiles from /tmp/profiles, start the container with the following command:

$ docker run --rm -it -v /tmp/profiles:/profiles:ro -p 5000:5000 flamescope

Then access FlameScope on http://127.0.0.1:5000

References

Comments
  • feat:

    feat: "save as SVG" button

    This is in response to #2, and adds the minimal amount of code to do so. Unfortunately the way SVGs work I could only style the output image correctly by going through the individual elements and adding the styles that came from the css from the 3-flame-graph/dist/d3-flamegraph.css file.

    The flame graph is converted to a downloadable SVG with styling included, makes that the href of a hidden a tag, makes the a tag a download link, and finally clicks the link. The output file is called FlameGraph.svg, and the whole process happens instantly on my laptop.

    Let me know if anything seems incorrect, it's my first time contributing to a React app.

    opened by doug-skinner 10
  • Ability to view Golang graphs

    Ability to view Golang graphs

    This tool looks really awesome and I'd like to try it out on some profiles taken from our production services, but the tool seems to be having trouble with profiles generated using the go tool pprof command.

    Has anyone tried or gotten this to work with Golang profiles yet?

    Here's the stacktrace I'm getting:

    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1997, in __call__
        return self.wsgi_app(environ, start_response)
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
        response = self.handle_exception(e)
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
        reraise(exc_type, exc_value, tb)
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
        response = self.full_dispatch_request()
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
        rv = self.handle_user_exception(e)
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
        reraise(exc_type, exc_value, tb)
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
        rv = self.dispatch_request()
      File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
        return self.view_functions[rule.endpoint](**req.view_args)
      File "/Users/richardartoul/Documents/flamescope/app/views/heatmap.py", line 34, in get_heatmap
        return jsonify(generate_heatmap(filename, rows))
      File "/Users/richardartoul/Documents/flamescope/app/util/heatmap.py", line 120, in generate_heatmap
        cols = int(ceil(end) - floor(start))
    OverflowError: cannot convert float infinity to integer
    

    EDIT: Ah ok it looks like this tool is designed to handle the linux perf output whereas golang generates pprof-formatted files.

    opened by richardartoul 10
  • OverflowError: cannot convert float infinity to integer

    OverflowError: cannot convert float infinity to integer

    Ended up being caused by an empty file: -rw-rw-r-- 1 dan dan 0 Apr 4 20:30 stacks.mysql-64-oltp_read_only_1.2018-04-04 20:30:08-05:00

    Traceback (most recent call last):
      File "/home/dan/pyenv/lib/python2.7/site-packages/flask/app.py", line 1997, in __call__
        return self.wsgi_app(environ, start_response)
      File "/home/dan/pyenv/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
        response = self.handle_exception(e)
      File "/home/dan/pyenv/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
        reraise(exc_type, exc_value, tb)
      File "/home/dan/pyenv/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
        response = self.full_dispatch_request()
      File "/home/dan/pyenv/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
        rv = self.handle_user_exception(e)
      File "/home/dan/pyenv/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
        reraise(exc_type, exc_value, tb)
      File "/home/dan/pyenv/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
        rv = self.dispatch_request()
      File "/home/dan/pyenv/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
        return self.view_functions[rule.endpoint](**req.view_args)
      File "/home/dan/flamescope/app/views/heatmap.py", line 34, in get_heatmap
        return jsonify(generate_heatmap(filename, rows))
      File "/home/dan/flamescope/app/util/heatmap.py", line 120, in generate_heatmap
        cols = int(ceil(end) - floor(start))
    OverflowError: cannot convert float infinity to integer
    
    
    		                                  
    		                                    bug invalid 
    	                                    
    opened by grooverdan 9
  • Remove invalid chars from the stack file in medium.com blog (was - README example).

    Remove invalid chars from the stack file in medium.com blog (was - README example).

    Hello and thanks for flamescope, In https://medium.com/netflix-techblog/netflix-flamescope-a57ca19d47bb and https://github.com/Netflix/flamescope/blob/master/README.md#installation--instructions the example filename used is stacks.myproductionapp.2018-03-30_01 , (UPDATE - the first dash on the medium site is a non ASCII char), as of https://github.com/Netflix/flamescope/commit/cbd13e187d913cc522c512ed4725a4bd79209078 for https://github.com/Netflix/flamescope/issues/7 this is now invalid and the heatmap generation fails with a 500 from app/util/heatmap.py::read_offsets when fileutil.validpath returns false. I was thinking that in addition to a change to the filename used in the example (UPDATE - on medium.com), that an error could be printed to the terminal, something like:

         if not fileutil.validpath(path):
    +        print("ERROR: File %s path %s is not valid" % (filename, path) )
             return abort(500)
    

    Thanks.

    Reproducer:

    > cp examples/perf.test01 examples/stacks.myproductionapp.2018-03-30_01 (copy-and-paste from blog on medium.com)
    > python run.py
    Click on link for the heatmap.
    

    Error in terminal is:

    [16/Apr/2018 07:38:09] "GET /heatmap/?filename=stacks.myproductionapp.2018%E2%80%9303%E2%80%9330_01&rows=50 HTTP/1.1" 500 -
    

    Error in the web app is a missing heatmap.

    documentation 
    opened by thatsafunnyname 6
  • perf flamegraphs: no tooltips

    perf flamegraphs: no tooltips

    flamescope used to show nice tooltips when hovering a stack frame. However now (commit 8eee5949c138c868895fa4db7982375f28b17cdf) there are no tooltips. Instead there are lots of error messages in the browser console:

    Uncaught TypeError: n.data.extras is undefined
        e http://HHHH.local:5000/main.js:43
        e http://HHHH.local:5000/main.js:43
        show http://HHHH.local:5000/main.js:43
        H http://HHHH.local:5000/main.js:11
        J http://HHHH.local:5000/main.js:11
    main.js:43:1021238
    
    bug javascript 
    opened by asheplyakov 5
  • flame graphs sometimes do not render correctly; uncaught exception

    flame graphs sometimes do not render correctly; uncaught exception

    Sometimes when I select ranges of time the flamegraph comes out broken (no text and not clickable). Looking at my console I see the following exception:

    Uncaught (in promise) TypeError: Cannot read property 'match' of undefined
        at main.js:17
        at F (main.js:17)
        at SVGRectElement.<anonymous> (main.js:17)
        at SVGRectElement.<anonymous> (main.js:1)
        at G.each (main.js:1)
        at G.attr (main.js:1)
        at HTMLDivElement.<anonymous> (main.js:17)
        at G.each (main.js:1)
        at T (main.js:17)
        at O (main.js:17)
    

    It appears to happen when I pick bigger time windows. Attached a stack file that you can drop into examples. Selecting the bottom left to top right pixels leads to a broken flame graph. Smaller selections can also trigger the issue.

    mesos-agent.stacks.1.zip

    Here's an example of what it looks like:

    image

    bug review 
    opened by bmahler 5
  • Enable Settings view for UI controls

    Enable Settings view for UI controls

    With more requests coming through for enhanced controls (#39 , #2 , #30 , ...), we should look at enabling the settings view or some other UI component and push some/all of the UI controls there that modify the view.

    enhancement review 
    opened by nhick 5
  • fix to allow to run the app on windows

    fix to allow to run the app on windows

    due to valid file path check regular expression, examples were not loading on windows. For windows path, it contains \ which is a part of valid path check in fileutils files.

    opened by koushiksaha89 5
  • Could not find a version that satisfies the requirement click==6.7 (from -r requirements.txt (line 1))

    Could not find a version that satisfies the requirement click==6.7 (from -r requirements.txt (line 1))

    When running pip install -r requirements.txt then I get the below error message:

    Could not find a version that satisfies the requirement click==6.7 (from -r requirements.txt (line 1)) (from versions: ) No matching distribution found for click==6.7 (from -r requirements.txt (line 1)) I am using Python 3.6.5. Also, when I then try to run python run.py then I get a error saying: ImportError: No module named flask.

    Thanks

    bug invalid 
    opened by i0na-k 5
  • ERROR: Bad range, 622353.26 -> 622351.26.

    ERROR: Bad range, 622353.26 -> 622351.26.

    Wondering if this could be less fatal. I'm assuming out of order or missed perf record elements.

    Got no output in browser with this error log:

    9.192.254.114 - - [04/Apr/2018 20:52:53] "GET /stack?filename=stacks.mysql-prep.2018-04-04%2020:49:33-05:00&start=18.26&end=16.26 HTTP/1.1" 301 -
    ERROR: Bad range, 622353.26 -> 622351.26.
    

    Decent file size:

    31235407 Apr  4 20:49 stacks.mysql-prep.2018-04-04 20:49:33-05:00
    

    Trying to look at data at 622353.26, 622351.26:

     grep  62235[13].26 stacks.mysql-prep.2018-04-04\ 20\:49\:33-05\:00
    mysqld 26608 [176] 622351.261861:  114686965 cycles:ppp:
    mysqld 26652 [116] 622351.262978:  114685776 cycles:ppp:
    mysqld 26060 [092] 622351.265249:  114685758 cycles:ppp:
    mysqld 26502 [176] 622353.262046:  114692803 cycles:ppp:
    mysqld 25987 [116] 622353.263136:  114683275 cycles:ppp:
    mysqld 26751 [092] 622353.265415:  114686145 cycles:ppp:
    swapper     0 [088] 622353.265751:  260814858 cycles:ppp:
    
     sudo perf script --debug-mode -i perf-prep.data --header > "stacks.mysql-prep.`date --rfc-3339=seconds`"
    Misordered timestamps: 0
    
    This generated a header only:
    # ========
    # captured on: Wed Apr  4 20:48:53 2018
    # hostname : bobby
    # os release : 4.13.0-37-generic
    # perf version : 4.15.0
    # arch : ppc64le
    # nrcpus online : 46
    # nrcpus avail : 184
    # cpudesc : POWER9, altivec supported
    # cpuid : 78,4609
    # total memory : 536032448 kB
    # cmdline : /usr/local/bin/perf record -F 20 --proc-map-timeout=50000 -o perf-prep.data -a -g -- sleep 30
    # event : name = cycles:ppp, , size = 112, { sample_period, sample_freq } = 20, sample_type = IP|TID|TIME|CALLCHAIN|CPU|PERIOD, disabled = 1, inherit = 1, mmap = 1, comm = 1, fre
    q = 1, task = 1, precise_ip = 3, sample_id_all = 1, exclude_guest = 1, mmap2 = 1, comm_exec = 1
    # CPU_TOPOLOGY info available, use -I to display
    # pmu mappings: nest_mba1_imc = 9, nest_mba5_imc = 13, nest_phb1_imc = 22, nest_phb5_imc = 26, nest_nvlink0_imc = 18, breakpoint = 5, nest_powerbus0_imc = 27, nest_mba2_imc = 10,
     nest_nx_imc = 20, nest_mba6_imc = 14, nest_phb2_imc = 23, cpu = 4, nest_nvlink1_imc = 19, nest_mcs01_imc = 16, software = 1, thread_imc = 28, nest_mba3_imc = 11, nest_mba7_imc =
     15, nest_phb3_imc = 24, nest_capp0_imc = 6, nest_xlink1_imc = 29, nest_mcs23_imc = 17, nest_mba0_imc = 8, nest_mba4_imc = 12, nest_phb0_imc = 21, tracepoint = 2, nest_phb4_imc =
     25, nest_xlink2_imc = 30, core_imc = 7
    # missing features: TRACING_DATA NUMA_TOPOLOGY BRANCH_STACK GROUP_DESC AUXTRACE STAT CACHE
    # ========
    #
    
    bug 
    opened by grooverdan 5
  •     ImportError: cannot import name 'Feature' from 'setuptools'

    ImportError: cannot import name 'Feature' from 'setuptools'

    ERROR: Command errored out with exit status 1:
     command: /Users/fwy/env/ksdb/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/p3/88pf4865713bvhx1g0qq07980000gn/T/pip-install-n_c6hrko/markupsafe_f7a88688051645a9b3bb18103afea1ba/setup.py'"'"'; __file__='"'"'/private/var/folders/p3/88pf4865713bvhx1g0qq07980000gn/T/pip-install-n_c6hrko/markupsafe_f7a88688051645a9b3bb18103afea1ba/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/p3/88pf4865713bvhx1g0qq07980000gn/T/pip-pip-egg-info-mabo4a6b
         cwd: /private/var/folders/p3/88pf4865713bvhx1g0qq07980000gn/T/pip-install-n_c6hrko/markupsafe_f7a88688051645a9b3bb18103afea1ba/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/p3/88pf4865713bvhx1g0qq07980000gn/T/pip-install-n_c6hrko/markupsafe_f7a88688051645a9b3bb18103afea1ba/setup.py", line 6, in <module>
        from setuptools import setup, Extension, Feature
    ImportError: cannot import name 'Feature' from 'setuptools' (/Users/fwy/env/ksdb/lib/python3.8/site-packages/setuptools/__init__.py)
    ----------------------------------------
    

    ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

    review python 
    opened by fengweiyuan 4
  • Nothing at this URL

    Nothing at this URL

    init info:

    • Serving Flask app 'app' (lazy loading)
    • Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
    • Debug mode: on
    • Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    • Restarting with stat
    • Debugger is active!
    • Debugger PIN: 302-914-847

    visit http://127.0.0.1:5000/, get { "error": "Sorry, Nothing at this URL." }

    opened by zpget 3
  • build(deps): bump express from 4.17.1 to 4.18.2

    build(deps): bump express from 4.17.1 to 4.18.2

    Bumps express from 4.17.1 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • build(deps): bump qs and express

    build(deps): bump qs and express

    Bumps qs and express. These dependencies needed to be updated together. Updates qs from 6.7.0 to 6.11.0

    Changelog

    Sourced from qs's changelog.

    6.11.0

    • [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option (#442)
    • [readme] fix version badge

    6.10.5

    • [Fix] stringify: with arrayFormat: comma, properly include an explicit [] on a single-item array (#434)

    6.10.4

    • [Fix] stringify: with arrayFormat: comma, include an explicit [] on a single-item array (#441)
    • [meta] use npmignore to autogenerate an npmignore file
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, object-inspect, tape

    6.10.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [actions] reuse common workflows
    • [Dev Deps] update eslint, @ljharb/eslint-config, object-inspect, tape

    6.10.2

    • [Fix] stringify: actually fix cyclic references (#426)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [actions] update codecov uploader
    • [actions] update workflows
    • [Tests] clean up stringify tests slightly
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, object-inspect, safe-publish-latest, tape

    6.10.1

    • [Fix] stringify: avoid exception on repeated object values (#402)

    6.10.0

    • [New] stringify: throw on cycles, instead of an infinite loop (#395, #394, #393)
    • [New] parse: add allowSparse option for collapsing arrays with missing indices (#312)
    • [meta] fix README.md (#399)
    • [meta] only run npm run dist in publish, not install
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbols, tape
    • [Tests] fix tests on node v0.6
    • [Tests] use ljharb/actions/node/install instead of ljharb/actions/node/run
    • [Tests] Revert "[meta] ignore eclint transitive audit warning"

    6.9.7

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [Tests] clean up stringify tests slightly
    • [meta] fix README.md (#399)
    • Revert "[meta] ignore eclint transitive audit warning"

    ... (truncated)

    Commits
    • 56763c1 v6.11.0
    • ddd3e29 [readme] fix version badge
    • c313472 [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option
    • 95bc018 v6.10.5
    • 0e903c0 [Fix] stringify: with arrayFormat: comma, properly include an explicit `[...
    • ba9703c v6.10.4
    • 4e44019 [Fix] stringify: with arrayFormat: comma, include an explicit [] on a s...
    • 113b990 [Dev Deps] update object-inspect
    • c77f38f [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, tape
    • 2cf45b2 [meta] use npmignore to autogenerate an npmignore file
    • Additional commits viewable in compare view

    Updates express from 4.17.1 to 4.18.2

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • build(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    build(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • build(deps): bump loader-utils from 1.2.3 to 1.4.2

    build(deps): bump loader-utils from 1.2.3 to 1.4.2

    Bumps loader-utils from 1.2.3 to 1.4.2.

    Release notes

    Sourced from loader-utils's releases.

    v1.4.2

    1.4.2 (2022-11-11)

    Bug Fixes

    v1.4.1

    1.4.1 (2022-11-07)

    Bug Fixes

    v1.4.0

    1.4.0 (2020-02-19)

    Features

    • the resourceQuery is passed to the interpolateName method (#163) (cd0e428)

    v1.3.0

    1.3.0 (2020-02-19)

    Features

    • support the [query] template for the interpolatedName method (#162) (469eeba)
    Changelog

    Sourced from loader-utils's changelog.

    1.4.2 (2022-11-11)

    Bug Fixes

    1.4.1 (2022-11-07)

    Bug Fixes

    1.4.0 (2020-02-19)

    Features

    • the resourceQuery is passed to the interpolateName method (#163) (cd0e428)

    1.3.0 (2020-02-19)

    Features

    • support the [query] template for the interpolatedName method (#162) (469eeba)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • build(deps): bump protobuf from 3.18.1 to 3.18.3

    build(deps): bump protobuf from 3.18.1 to 3.18.3

    Bumps protobuf from 3.18.1 to 3.18.3.

    Release notes

    Sourced from protobuf's releases.

    Protocol Buffers v3.18.3

    C++

    Protocol Buffers v3.18.2

    Java

    • Improve performance characteristics of UnknownFieldSet parsing (#9371)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 0
Owner
Netflix, Inc.
Netflix Open Source Platform
Netflix, Inc.
An ease to use finit state machine golang implementation.Turn any struct to a fsm with graphviz visualization supported.

go-fsm An ease to use finit state machine golang implementation.Turn any struct to a fsm with graphviz visualization supported. usage import github.co

FingerLiu 5 Dec 26, 2021
Examples on different options for implementing Flow Based Programming

Flow Based Programming This repository contains fragments and ideas related to Flow Based Programming. It shows different ways of implementing differe

Egon Elbre 10 Sep 22, 2022
Quick comparison between different Go walk implementations

Quick comparison between different Go walk implementations.

Kablamo 9 Dec 19, 2022
Project containing all scripts and descriptors to deploy Slurpanize in different ways

Slurpanize cloud infrastructure This project is built to install on any hardware or cloud infrastructure the Slurpanize platform. The installation is

null 0 Nov 24, 2021
Stackoverflow-Tag-Recommender - Calculate similarity of different tags based on the data of stackoverflow

Recommender System with Stackoverflow's Data This project is written to recommen

Roozbeh Sayadi 8 Apr 4, 2022
Real-time Charging System for Telecom & ISP environments

Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments Features Real-time Online/Offline Charging System (OCS). Account Balance

null 368 Dec 31, 2022
A toolkit for replaying time series data.

Replay Toolkit The replay package provides some simple tools for replaying captured data at realtime. I use this in various tools that take logged dat

Dustin Sallings 16 Aug 13, 2019
A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons.

Cron.go This is a simple library to handle scheduled tasks. Tasks can be run in a minimum delay of once a second--for which Cron isn't actually design

Robert K 215 Dec 17, 2022
Weaviate is a cloud-native, modular, real-time vector search engine

Weaviate is a cloud-native, real-time vector search engine (aka neural search engine or deep search engine). There are modules for specific use cases such as semantic search, plugins to integrate Weaviate in any application of your choice, and a console to visualize your data.

SeMI Technologies 3.1k Jan 5, 2023
Visualize plant growth over time with Go, WebDAV and WASM; @pojntfx's entry for #growlab.

Growlapse Visualize plant growth over time with Go, WebDAV and WASM; @pojntfx's entry for #growlab. Installation Containerized You can get the Docker

Felix Pojtinger 7 Feb 21, 2022
An effective time-series data compression/decompression method based on Facebook's Gorilla.

Gorilla This package provides the effective time-series data compression method based on Facebook's Gorilla.. In a nutshell, it uses delta-of-delta ti

Keisuke Umegaki 51 Sep 26, 2022
Code snippets by first time open source contributors

Introduction Golang code snippets by first time open source contributors Rules How to contribute Add a folder and create your desired code snippet fil

Luigi Morel 1 Oct 6, 2021
Solution to elevator test problem but this time recursive and in go

Synopsis A multi-floor building has a Lift in it. People are queued on different floors waiting for the Lift. Some people want to go up. Some people w

Alex Piemont 0 Nov 8, 2021
Typesafe lazy instantiation to improve service start time

Package lazy is a light wrapper around sync.Once providing support for return values. It removes the burden of capturing return values via closures from the caller.

Jeremy Loy 1 May 30, 2022
Advent of Code 2021 - Time to learn Go

aoc2021 Advent of Code 2021 - Time to learn Go Will contain my solutions for aoc2021, so avoid reading the files in .src/aoc2021/ unless you want spoi

null 1 Dec 22, 2021
Advent of Code 2021, this time in Go

Go Lang Notes Advent of Code Day 3 The distinction between chars and bytes is a bit annoying. I got tripped up by doing: int(str[pos]) which gives yo

Dan Vanderkam 16 Dec 10, 2022
You could leverage Alfred and Google Sheets to track your time with ease.

You could leverage Alfred and Google Sheets to track your time with ease. The goal is to track your time in a way that is easy to understand how much time you spend on.

Kai-Chu Chung 1 Dec 25, 2022
Solver for wordle hard mode - achieves 5 attempts or less 100% of the time

wordier Solver for wordle hard mode - achieves 5 attempts or less 100% of the time Example - Spoiler ➜ wordier git:(master) ✗ go run main.go scamp ➜

Adam Smith 0 Jan 12, 2022
The forgotten go tool that executes and caches binaries included in go.mod files.

The forgotten go tool that executes and caches binaries included in go.mod files. This makes it easy to version cli tools in your projects such as gol

Dustin Blackman 24 Sep 27, 2022