{ "info": { "author": "Dieter Plaetinck", "author_email": "dieter@plaetinck.be", "bugtrack_url": null, "classifiers": [], "description": "# Graph explorer\n\nA highly interactive dashboard to satisfy varying ad-hoc information needs across a multitude of metrics in a very powerful way: \n\n* The core of graph-explorer is a database containing your metrics extended with tags\n(key-value pairs that represent server, service, type, unit, ...)\n* You can use expressive queries which leverage this metadata to filter targets, group them into graphs, process and aggregate them on the fly.\nSomething like SQL but metrics for rows and a list of graph definitions as a result set. All graphs are built dynamically.\n\nThe graphs themselves support annotated events and are also interactive because it uses [timeserieswidget](https://github.com/vimeo/timeserieswidget)\nFurthermore, we aim for minimal, hackable code and as simple as possible deploy/install.\n\n![Screenshot](https://raw.github.com/vimeo/graph-explorer/master/screenshots/screenshot.png)\n\nIt also has:\n\n* [dashboards](https://github.com/vimeo/graph-explorer/wiki/Dashboards) which are pages that show N queries along with their results (0-N graphs each) and a (url-driven) field that gets applied to all queries, which you can use to narrow down to a specific server, apply a timeframe, etc.\n* an [alerting system](https://github.com/vimeo/graph-explorer/wiki/Alerting) allowing you to set tresholds on queries or plain old graphite query strings.\n\n## Learn the basics\n\n* [Tutorial](https://github.com/vimeo/graph-explorer/wiki/Tutorial)\n* [The query interface explained](https://github.com/vimeo/graph-explorer/wiki/the-Query-interface)\n* introduction to metrics 2.0 & Graph-Explorer: [https://vimeo.com/87194301](https://vimeo.com/87194301)\n\n## Metrics 2.0\n\nIn graphite, a metric has a name and a corresponding time series of values.\nGraph-explorer's metrics are structured: they contain key-value tags that describe all their attributes, the unit, the metric type, etc.\nYou can generate the tag database by using plugins that parse metrics using regular expressions, or by tagging them as they flow into graphite.\nSee the [Structured Metrics page](https://github.com/vimeo/graph-explorer/wiki/Structured-Metrics)\n\n\n## GEQL, the Graph-Explorer Query Language\n\nthe Graph-Explorer Query Language is designed to:\n\n* be minimal, use a simple syntax and get a lot done with little input.\n* let you compose graphs from metrics in a flexible way:\n you can use tags and pattern matching to filter, group, process and aggregate targets and manipulate how the graph gets displayed.\n* let you create custom views of the exact information you need, and let you compare and correlate across different aspects.\n\nAt the most basic level you start by typing patterns that will filter out the metrics you're looking for.\nThen, you can extend the query by typing statements that have special meanings.\n\nFor more information see the [Graph-Explorer Query Language](https://github.com/vimeo/graph-explorer/wiki/GEQL) page\n\n\n## Dependencies\n\n* python2: python2.6 or higher\n* install elasticsearch and run it (super easy, see [docs](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup.html) just set a unique cluster name)\n* Graphite 0.9.10 or higher (tested with 0.9.12)\n* python2-pysqlite (if you want to use the alerting feature)\n\n## Installation\n\n### Via operating system packages\n\nnot sure which distros have graph-explorer packages. TBA.\n\n### Via python\n\nThere's two ways to go about this, from source and via pypi (see below).\n\nBut first an optional, though recommended step.\nUsing [virtualenv](http://www.virtualenv.org/en/latest/), you can install all packages in an isolated directory, so that you never\nhave issues with conflicting library versions, conflicts with packages from other package managers, you can easily remove the install, etc.\n\n```\npath=/where/do/you/want/to/install # this can be anywhere\nvirtualenv $path\nsource $path/bin/activate\n```\n\nThe actual installation takes care of all dependencies and works the same whether you use virtualenv or not.\nSee below for either the pypi or the git source approach.\n\n#### From pypi\n\nPypi is the python package repository.\n\n```\npip install graph-explorer\n```\n\n#### From source\n\nGet a code checkout, initialize all git submodules and go in the directory, like so:\n\n```\ngit clone --recursive https://github.com/vimeo/graph-explorer.git && cd graph-explorer\n```\nThis will give you the latest bleeding edge code (master branch), which may be buggy.\nYou can switch to the latest stable release with `git checkout v`\n\nThe [releases page](https://github.com/vimeo/graph-explorer/releases) has more info, but don't download from there, the downloads don't contain\nthe needed submodules!\nGraph Explorer version numbering is based on [semver](http://semver.org/).\n\nInstall:\n\n```\npython setup.py install\n```\n\nInstead of that, if you want to hack on Graph-Explorer, you can run.\n\n```\npython setup.py develop\n```\n\nThis is like an installation, but it links back to the code. So when you run graph-explorer,\nit will automatically reload the server when you modify any python file,\nand changes in assets (js, css, ...) are visible for new requests.\nTemplates however are cached by bottle and still need a manual restart for changes to become effective.\n\n\n## Configuration of graph-explorer\n\n* make a copy of config_example.cfg and edit it. Note that string values don't need wrapping quotes.\n* have a look at preferences.py, this is where you can configure timezone, targets colors, a few graph options, etc.\n* [populate an elasticsearch database with structured metrics](https://github.com/vimeo/graph-explorer/wiki/Structured-Metrics)\n\n## Configuration of graphite server\n\nyou'll need a small tweak to allow this app to request data from graphite.\nFor apache2 this works:\n\n Header set Access-Control-Allow-Origin \"*\"\n Header set Access-Control-Allow-Methods \"GET, OPTIONS, POST\"\n Header set Access-Control-Allow-Headers \"origin, authorization, accept\"\n\n## Running\n\nMake sure Graph-Explorer can write to the directories that you configured the log (and if enabled, alerting database file) to be in.\n\n### Linux / Unix\n\n* default, with Paste (included):\n\n`run_graph_explorer.py my_config_file.cfg` and your page is available at `:8080`\n\n* alternatively, if you use gunicorn, you can run it with multi-workers like so:\n`gunicorn -w 4 app:'default_app()' -b 0.0.0.0:8080`\n\n### Windows\n\n`python %VIRTUAL_ENV%\\scripts\\run_graph_explorer.py my_config_file.cfg` and your page is available at `:8080`\n\nor with Powershell:\n\n`python $env:VIRTUAL_ENV/scripts/run_graph_explorer.py my_config_file.cfg`\n\n\n## Troubleshooting\n* no graphs show up and I don't know why.\n\nfirst check in the top section if there are target matching and 'total graphs' is > 0. \nif not, your query expression might be too restricting,\nor maybe it didn't find your metrics from metrics.json (see 'targets matching: x/total') \nif yes, check for any errors in the javascript console, (in firefox you need firebug, in chrome and such 'tools->javascript console')\n\nalso check all network requests in the network tab, and make sure they return http 200 or 304\nespecially, check that the http requests to `graphite/render/?<...>` return actual data.\nyou may be suffering from [this graphite bug](https://github.com/graphite-project/graphite-web/issues/289)\nor [this graphite bug](https://github.com/graphite-project/graphite-web/issues/576) or maybe your graphite version is too old.\n\n* I get some error wrt graphite/apache cors access restriction\n\nsee section 'Configuration of graphite server' above\n\n* Graph Explorer pulls too much data over the network\n\nThis is because graphite \ndoesn't support consolidation on its data API yet.\n\n## Documentation\n\n[wiki page](https://github.com/vimeo/graph-explorer/wiki)\n\n\n## Unit tests\n\n```\npython setup.py test\n```\n\n## Getting in touch\n\n* irc: #graph-explorer on freenode\n* github issues for bugs, feature requests, questions, feedback\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://vimeo.github.io/graph-explorer/", "keywords": null, "license": "apache2", "maintainer": null, "maintainer_email": null, "name": "graph-explorer", "package_url": "https://pypi.org/project/graph-explorer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/graph-explorer/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://vimeo.github.io/graph-explorer/" }, "release_url": "https://pypi.org/project/graph-explorer/2.0.3/", "requires_dist": null, "requires_python": null, "summary": "A graphite dashboard powered by structured metrics", "version": "2.0.3" }, "last_serial": 1230961, "releases": { "2.0": [ { "comment_text": "", "digests": { "md5": "a539ac35dab250db2dcd8e01f2efd0cf", "sha256": "86c25e722231b5620c9b346bfdcdcc5b548ebb5512890c887caf162e585c459f" }, "downloads": -1, "filename": "graph-explorer-2.0.tar.gz", "has_sig": false, "md5_digest": "a539ac35dab250db2dcd8e01f2efd0cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3843173, "upload_time": "2014-05-06T03:10:32", "url": "https://files.pythonhosted.org/packages/1f/4e/033d99c8b36ea286bfbd61ee8cbe85a9deede6452d6263cd515779994bb2/graph-explorer-2.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "c268f4899179337857a6d0135aac2617", "sha256": "a4854f0ef8aa17db9339e0b84be2fb0dcfbab50b5afd0a47e5cf798ec01324eb" }, "downloads": -1, "filename": "graph-explorer-2.0.1.tar.gz", "has_sig": false, "md5_digest": "c268f4899179337857a6d0135aac2617", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3843535, "upload_time": "2014-05-07T06:16:54", "url": "https://files.pythonhosted.org/packages/50/bd/d7c077b6f3bdd8217a630b9f256c1989c2125c579ba89cd1730d1e47f855/graph-explorer-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "4f5df6dc5179fc014a12ca3fd8af2f40", "sha256": "007f37f3692e54aeb7ac7800fd90048c824b9445225cf6f92325ec3b6d6e39d2" }, "downloads": -1, "filename": "graph-explorer-2.0.2.tar.gz", "has_sig": false, "md5_digest": "4f5df6dc5179fc014a12ca3fd8af2f40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3843934, "upload_time": "2014-08-29T16:03:16", "url": "https://files.pythonhosted.org/packages/f6/ee/40d88c308b53fd43b2a2f32b1604bacce0335f0a939c62e8e91f49bc711f/graph-explorer-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "abc0bcb341ba9e6e77a80825652695b7", "sha256": "87bc9024c63f287d950bec03565dabd40b5af837c178828a0042453202fb349f" }, "downloads": -1, "filename": "graph-explorer-2.0.3.tar.gz", "has_sig": false, "md5_digest": "abc0bcb341ba9e6e77a80825652695b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3844046, "upload_time": "2014-09-19T20:07:32", "url": "https://files.pythonhosted.org/packages/cc/26/41872504baa29122230f25e113b9ba688de44eaddceffeebec298b0ae3bc/graph-explorer-2.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "abc0bcb341ba9e6e77a80825652695b7", "sha256": "87bc9024c63f287d950bec03565dabd40b5af837c178828a0042453202fb349f" }, "downloads": -1, "filename": "graph-explorer-2.0.3.tar.gz", "has_sig": false, "md5_digest": "abc0bcb341ba9e6e77a80825652695b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3844046, "upload_time": "2014-09-19T20:07:32", "url": "https://files.pythonhosted.org/packages/cc/26/41872504baa29122230f25e113b9ba688de44eaddceffeebec298b0ae3bc/graph-explorer-2.0.3.tar.gz" } ] }