Git Product home page Git Product logo

statuswolf's Introduction

Project Status

StatusWolf

Configurable operations dashboard designed to bring together the disparate datasources that operations teams need to manage and present them in a flexible and beautiful way.

Announcing StatusWolf Version 0.9

You've heard this before, but this is a significant update to the StatusWolf code - the PHP backend has been completely rewritten using the Silex PHP framework.

Functionally this release is targeted at being on par with the previous version (but better :-)). To that end there aren't any big new features, but there has been work at improving performance and usability.

  • Various UI tweaks
  • Changed the interaction model for the D3 graphs.
  • Implemented downsampling using the Largest-Triangle-Three-Buckets algorithm.
    • Improves performance of the graphs and allows for display and/or downloading of the full, non-downsampled dataset.
  • Reworked the javascript widget model to begin to allow implementation of other types of widgets.
  • Updated the authentication model to allow anonymous access to view dashboards.
  • Automated upgrade from previous versions, simply put the new version in place, grab the dependencies with Composer, and go - the first time you connect StatusWolf will recognize that the updated code is in place and upgrade your configs and database for you.

One other note on this version - Anomaly detection has been disabled... This is primarily for performance reasons, I haven't had the time yet to really tackle refactoring anomaly detection, and the performance on any dataset of more than a few minutes span is abysmal. I'm also looking into anomaly detection theory for time-series metrics and am finding that the traditional methods applies (which were used by StatusWolf) are not well suited for time-series metric data. Next task for StatusWolf is determining the best method to use and implementing it in a way that delivers acceptable performance.

The adhoc search interface is still available, but the splash-screen giant button interface to take you there has been removed. It's been retained to support any saved search links you may have in docs, etc., but as StatusWolf moves to a multi-data-source, multi-widget-type ops dashboard the adhoc interface will be deprecated.

Installing StatusWolf

Read Installing StatusWolf v0.9 for a new install, or Upgrading from v0.8.x to v0.9 for upgrading.

Copyright and License

Copyright 2014 Box, Inc. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

statuswolf's People

Contributors

charlie-twilio avatar discogestalt avatar mburger avatar nzakas 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

statuswolf's Issues

Anomaly detection runs out of memory on larger datasets

On metrics with a lot of data, or on searches over longer time periods, the anomaly detection process will run out of allocated memory, tested up through a configured 4GB for the process. Need to optimize this process so that it works on smaller chunks of the data at a given time to better use server memory.

undefined function apache_getenv()

My webserver stack is CentOS 6.4 + Apache + php-fpm via mod_fastcgi.so. I've tried Ubuntu 12.04 also.

Everything seems to work up until I run a query for a graph, at which point the browser shows:

POST http://tsdbserver:8080/adhoc/search/OpenTSDB [HTTP/1.1 500 Internal Server Error 42ms]

In the php-fpm logs I see:

PHP Fatal error:  Call to undefined function apache_getenv() in /vm/prod/StatusWolf/lib/StatusWolf/Model/Datasource/OpenTSDB.php on line 277

Does StatusWolf depend on an Apache + mod_php setup? Thank you.

saving dashboards is unclear

If I refresh an unsaved dashboard I lose it. But if I make changes to a search on a previously saved dashboard, are they... saved automagically? I tried clicking "Save Dashboard" after modifying a widget and it complained I already had a dashboard with that name, so not sure about the widget status.

Graphing UI could allow for stacked graphs

One common use case is memory graphs - seeing each line unstacked makes less sense than seeing a flat line representing total resources at the top, and allocations as colored areas:

stacked area chart

PHP Parse Error '['

I keep seeing this with .73 of status wolf:

[Tue Oct 08 15:31:26 2013] [error] [client 10.131.252.254] PHP Parse error: syntax error, unexpected '[' in /var/www/StatusWolf/lib/StatusWolf/Model/Datasource/OpenTSDB.php on line 407, referer: https://10.131.253.226/dashboard/

Is it just me?

Passing tags is broken?

Were using 0.74 of Status Wolf on an Ubuntu 12.04 server.

If we call for a metric everything works. When we pass in a tag and it's value I see the following in the log:

[Thu Oct 10 15:54:23 2013] [error] [client 10.135.15.248] PHP Notice: Undefined index: atmos.posts in /var/www/StatusWolf/lib/StatusWolf/Model/Datasource/OpenTSDB.php on line 437, referer: https://wolf.roccops.com/adhoc

Thanks,

v0.8.8 syntax error in SWRouter.php

I noticed this entry in the Apache error log:

PHP Notice: Undefined offset: 0 in /var/www/StatusWolf/lib/StatusWolf/Router/SWRouter.php on line 57

Which is this line:
if (count($url_parts['url_path'] == 1) && strlen($url_parts['url_path'][0]) == 0)

It has a mis-placed right parenthesis, and should be:
if (count($url_parts['url_path']) == 1 && strlen($url_parts['url_path'][0]) == 0)

Tag replacement in dashboard can break some graphs

Right now with tag substitution you can add a tag to all graphs. If a particular metric doesn't have that tag it will cause it not to load.

One suggestion may be that tags passed in on the command line only replace tags if they already exist in the metric and never add them to metrics where they previously didn't exist.

The use case we have is that we have a mysql dashboard where we want to sub host & port tags, but we also have the proc.stat.cpu.percent_used which is global to the server and doesn't have a port tag.

GraphWidget doesn't set max variable properly

From 5f66ebbb77547d60b811d325dcc3830d7693534e Mon Sep 17 00:00:00 2001
From: Vicky Shrestha <[email protected]>
Date: Sun, 9 Mar 2014 19:31:57 -0700
Subject: [PATCH] GraphWidget doesn't set max variable properly
 if private_search is not zero
  max is always set to the number of private_search
  ignoring public_search count
 if private_search is zero,
  no public_search are listed.

---
 app/Widgets/GraphWidget/js/sw.graphwidget.js |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/app/Widgets/GraphWidget/js/sw.graphwidget.js b/app/Widgets/GraphWidget/js/sw.graphwidget.js
index 0a6e4c2..37606c8 100644
--- a/app/Widgets/GraphWidget/js/sw.graphwidget.js
+++ b/app/Widgets/GraphWidget/js/sw.graphwidget.js
@@ -1071,11 +1071,12 @@
                 var my_searches = data.user_searches;
                 var public_searches = data.public_searches;
                 var saved_search_list = widget.sw_graphwidget_backtitle.children('.saved-searches-menu').children('ul.saved-searches-options')
+                var max = menu_length;
                 saved_search_list.empty();
                 saved_search_list.append('<li class="menu-section"><span>My Searches</span></li>');
                 if (my_searches) {
                     widget.saved_searches.my_searches = my_searches;
-                    var max = (my_searches.length < menu_length ? my_searches.length : menu_length);
+                    max = (my_searches.length < menu_length ? my_searches.length : menu_length);
                     for (i = 0; i < max; i++) {
                         saved_search_list.append('<li><span data-name="search-' + my_searches[i].id + '">' + my_searches[i].title + '</span></li>');
                         menu_length--;
@@ -1086,6 +1087,7 @@
                     if (menu_length > 0) {
                         saved_search_list.append('<li class="menu-section"><span class="divider"></span></li>');
                         saved_search_list.append('<li class="menu-section"><span>Public Searches</span></li>');
+                        max = (public_searches.length < menu_length ? public_searches.length : menu_length);
                         for (i = 0; i < max; i++) {
                             if (public_searches[i].user_id === document._session_data.user_id) {
                                 saved_search_list.children('li.menu-section:last').after('<li><span data-name="search-' + public_searches[i].id + '">' + public_searches[i].title + '</span></li>');
-- 
1.7.1

Installation

Hi,

This looks very promising, but some sort of installation document is needed. I figured out dependency on Pear/Auth, MDB2 and mysqli extension. However I can't find a way to add users. So I turned authentication off. But now I am stuck trying to figure out apache setup to work with request router that seems to be used here.

Limus

Ability to Use Dashboards as Templates

It would be very useful to be able to build a dashboard, but also load the dashboard and plug in specific parameters.

The classic example of this would be to build a set of graphs for a specific host but also be able to load that dashboard and pug in a different host.

Dashboard substitute time interval

In the same way you can override tags for a dashboard it would be helful to be able to override the time window with a range or a fixed period of time. That would allow us to build one dashboard, and then see the last day by default, but also "zoom" in to see the last hour only for all graphs. This would be helpful to put in links to the dashboard as well.

v0.8.8 graph error: Invalid downsampling specifier 'nointerpolation'

I'm trying to create a graph, and it returns the following error:

Sorry but your request was rejected as being invalid.
The reason provided was:
Invalid downsampling specifier 'nointerpolation' in m=sum:nointerpolation:proc.loadavg.1min{host=DEV-TEST003}

Is our OpenTSDB version incompatible with StatusWolf v0.8.8?

Here's its manifest:

Specification-Title: OpenTSDB
Specification-Version: 1.1.0
Specification-Vendor: The OpenTSDB Authors
Implementation-Title: net.opentsdb
Implementation-Version: 6f1d105
Implementation-Vendor: The OpenTSDB Authors

And here are the StatusWolf debug log entries:

2014-01-09 10:02:32 - DEBUG --> (alan|192.168.100.102) OpenTSDB object created
2014-01-09 10:02:32 - DEBUG --> (alan|192.168.100.102) {"downsample_master_interval":"1","new_query":"true","title":"","period":"span-search","time_span":"14400","start_time":"1389276152","end_time":"1389290552","auto_update":"false","metrics":{"02d60f19bc88ffff6ce41e61c1227a0d":{"name":"proc.loadavg.1min","tags":["host=DEV-PROXY003"],"agg_type":"sum","ds_type":"sum","ds_interval":"1"}},"history_graph":"no","metrics_count":"1"}
2014-01-09 10:02:32 - ERROR --> (alan|192.168.100.102) Failed to retrieve metrics from OpenTSDB, start time was: 2014/01/09-06:02:32
2014-01-09 10:02:32 - ERROR --> (alan|192.168.100.102) Failed to fetch data from:
URL: http://localhost:4242/q?start=2014/01/09-06:02:32&end=2014/01/09-09:57:31&m=sum:nointerpolation:proc.loadavg.1min{host=DEV-TEST003}&ascii
Response Code: 400
Response Body: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Trans

If I load the URL into a browser, and remove the "nointerpolation" keyword, it works:

http://localhost:4242/q?start=2014/01/09-06:02:32&end=2014/01/09-09:57:31&m=sum:proc.loadavg.1min{host=DEV-TEST003}&ascii

Also, if I enable the Interpolation option in the graph parameters form, it also works because in that case the keyword is removed from the query:

2014-01-09 10:47:07,022 INFO [New I/O worker #5] HttpQuery: [id: 0x623250a6, /127.0.0.1:59138 => /127.0.0.1:4242] HTTP /q?start=2014/01/09-06:47:07&end=2014/01/09-10:42:06&m=sum:proc.loadavg.1min{host=DEV-TEST003}&ascii done in 17ms

Auto complete tags values

It looks like you're able to suggest a tag based on a metric however the suggestions for possible tag values don't seem to work.

From the opsnTSDB side when chooseing a tag = HTTP /suggest?type=tagk&q=hos
From the openTSDB side when chosing a tag value = HTTP /suggest?type=tagv&q=op

When using statuswolf = HTTP /suggest?type=metrics&q=proc.loadavg.1min+host%3D

I'll see if I can make a suggesting in the code and post an update. If there is a trick to getting this to work (autocompletion of possible tag values - please let me know)

Have "clone widget" button somewhere when building a dashboard.

For some dashboards where I have a graph widget that is particularly "full", I'd like an easy way to just clone that widget in the current dashboard and then quickly edit it to reflect another metric. The current behavior requires me to manually add a new graph widget and then configure it's time interval, plotting options, and just about everything that I'd like to be the same as another graph on the dashboard, except for the metric to plot.

Need admin interface

Must have an admin interface to manage users, saved searches, global config, etc.

Statuswolf - dashboard issue

Hi,

I came across statuswolf while trying to find a good way to display opentsdb data.

I followed the steps that you have mentioned, but I am not able to get anything on the web.

  1. I followed instruction to install pear . based on your instructions.
  2. I downloaded StatusWolf.tgz, un-tar`d it into my webroot which is /var/www/html.
  3. Created mysql DB, created the auth.conf, datasource.conf and statuswolf.conf. I left everything to default.
  4. I made the entry of the virtual host in /etc/httpd/conf/httpd.conf
  5. Restarted the web service.

Now when I launch the web page (http://x.x.x.x/app/) and login in, i get options to create dashboard, view my settings & Ad-Hoc search. I clicked on create dashboard, and i get this error,

File does not exist: /var/www/html/StatusWolf-0.8.5/dashboard

So, I created this directory and did chmod -R 777 dashboard.

Now when I again click on create dashboard, nothing gets displayed but the blank dashboard directory.

I am missing something ?

Keyboard shortcuts

editing / updating dashboards requires a lot of clicking. I can think of the following right now:

  • Add new graph
  • New ad-hoc search
  • arrow keys to select graphs on dashboard
  • e - edit current graph
  • n - change current graph title
  • u - toggle auto update
  • a - add new metric to current graph
  • t - change current graph time
  • g - go ( save current graph changes)

In addition, I would suggest that when using keyboard shortcuts you could skip the transition animations to speed up the process.

48 hour default interval

Many problems are cyclic over the period of a day, having a 48 hour graph pulls less data than a week, and still lets you compare today to yesterday.

Custom Short Names for Dashboards

It would be nice to assign short names to dashboards and reference them by those names:

Something like:

server.com/StatusWolf/go/My+Dash

Unable to configure statuswolf properly.

I followed all the steps as exactly mentioned in the Installation wiki page properly. I disabled the authentication.

While trying to open the dashboard and adhoc search page. I am getting the following errors:

File does not exist: /var/www/StatusWolf-0.5.2/dashboard, referer: http://opentsdb-1.*.com:9653/app/

File does not exist: /var/www/StatusWolf-0.5.2/adhoc, referer: http://opentsdb-1.*.com:9653/app/

Can someone please help me. Moreover i am getting errors like:

[Tue Sep 03 15:25:41 2013] [error] [client 172.17.81.236] PHP Notice: Undefined index: _sw_authsession in /var/www/StatusWolf-0.5.2/lib/StatusWolf/Router/SWRouter.php on line 26
[Tue Sep 03 15:25:41 2013] [error] [client 172.17.81.236] PHP Notice: Undefined index: _sw_authsession in /var/www/StatusWolf-0.5.2/lib/StatusWolf/Router/SWRouter.php on line 26
[Tue Sep 03 15:25:41 2013] [error] [client 172.17.81.236] PHP Notice: Undefined index: _sw_authsession in /var/www/StatusWolf-0.5.2/lib/StatusWolf/Views/header.php on line 21
[Tue Sep 03 15:25:41 2013] [error] [client 172.17.81.236] PHP Notice: Undefined index: _sw_authsession in /var/www/StatusWolf-0.5.2/lib/StatusWolf/Views/header.php on line 21

Hard to inspect data point values in d3 graph

Right now you need to precisely hover over the line chart point in order to get its value.
It would be much easier if the label would be activated when mouse is moving horizontally on oX axis

Search interface could provide tag suggestions once the metric is determined

We've done something similar in our own OpenTSDB frontend by using the etags attribute and picking out those etags from any metrics in the past hour.

def get_tag_suggestions(metric):
    response = requests.get(
        'http://127.0.0.1:4242/q?start=1h-ago&m=sum:rate:%s&json' % metric
    )

    response = json.loads(response.content)

    if 'etags' not in response:
        return []

    return response['etags'][0]

Planning on implementing this as another endpoint in ApiController.php similar to tsdb_metric_list.

Health/Status endpoint to hit via monitoring

It would be nice to have some sort of status or health end point that could be hit in statuswolf which would verify the functionality of mysql connection (if used) and opentsdb connection. Ideally I could point my monitoring system at our various statuswolf installations at say /health or /status or something and based on the return codes I could tell if statuswolf is ok or not.

Option to set graph labels

OpenTSDB does not store units by default, so it would be useful to be able to set graph title/x axis / y axis labels for units, etc..

Graphs currently broken in Firefox

currently the graphs rendered in firefox v 25 look like this:
statuswolf-08-firefox-bug

imho looks like some svg issue since the rect element has a reported width/height of 0px but i have no idea how to fix it

datetimepicker not working

followed install steps but getting some errors and graphs are not working.

2013-12-24 11:25:16 - DEBUG --> (statuswolf_user|127.0.0.1) ["undefined","api","get_saved_searches"]
2013-12-24 11:25:16 - DEBUG --> (statuswolf_user|127.0.0.1) {"scheme":"http","host":"localhost","port":9653,"path":"/undefined/api/get_saved_searches","url_path":["undefined","api","get_saved_searches"]}
2013-12-24 11:25:16 - DEBUG --> Controller UndefinedController was not found, punting to Home
2013-12-24 11:25:16 - DEBUG --> [{"priority":7,"message":"AUTH: Auth::checkAuth() called."}]
2013-12-24 11:25:16 - DEBUG --> [{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."}]
2013-12-24 11:25:16 - DEBUG --> [{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."},{"priority":7,"message":"AUTH: Auth::start() called."}]
2013-12-24 11:25:16 - DEBUG --> [{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."},{"priority":7,"message":"AUTH: Auth::start() called."},{"priority":7,"message":"AUTH: Auth::assignData() called."}]
2013-12-24 11:25:16 - DEBUG --> [{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."},{"priority":7,"message":"AUTH: Auth::start() called."},{"priority":7,"message":"AUTH: Auth::assignData() called."},{"priority":7,"message":"AUTH: Auth::checkAuth() called."}]
2013-12-24 11:25:16 - DEBUG --> [{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."},{"priority":7,"message":"AUTH: Auth::start() called."},{"priority":7,"message":"AUTH: Auth::assignData() called."},{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."}]
2013-12-24 11:25:16 - DEBUG --> [{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."},{"priority":7,"message":"AUTH: Auth::start() called."},{"priority":7,"message":"AUTH: Auth::assignData() called."},{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."},{"priority":7,"message":"AUTH: Auth::checkAuth() called."}]
2013-12-24 11:25:16 - DEBUG --> [{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."},{"priority":7,"message":"AUTH: Auth::start() called."},{"priority":7,"message":"AUTH: Auth::assignData() called."},{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."},{"priority":7,"message":"AUTH: Auth::checkAuth() called."},{"priority":6,"message":"AUTH: Session OK."}]
2013-12-24 11:25:16 - DEBUG --> (statuswolf_user|127.0.0.1) ["undefined","app","js","lib","bootstrap-datetimepicker.js"]
2013-12-24 11:25:16 - DEBUG --> (statuswolf_user|127.0.0.1) {"scheme":"http","host":"localhost","port":9653,"path":"/undefined/app/js/lib/bootstrap-datetimepicker.js","url_path":["undefined","app","js","lib","bootstrap-datetimepicker.js"]}
2013-12-24 11:25:16 - DEBUG --> Controller UndefinedController was not found, punting to Home

-- http conf--
Listen 9653
<VirtualHost *:9653>
DocumentRoot /data/statuswolf/

Options FollowSymLinks
AllowOverride All

Error handling on OpenTSDB search failures

StatusWolf does not gracefully handle situations where OpenTSDB searches fail to return data, the interface hangs at "Parsing Metric Data". Need to implement full error handling for these conditions and alert the user that the OpenTSDB search has failed and they should try again.

via ssabo

PHP syntax error with version 0.8 and php 5.3.3 (CentOS 6)

Hello,

Thanks for developing this great GUI for OpenTSDB.

I'm encountering some php syntax error while creating my graphs via OpenTSDB datasource.

Here is the error :

PHP Parse error: syntax error, unexpected '[' in /WEBS/opentsdb/opentsdb.priv.atos.fr/docs/lib/StatusWolf/Model/Datasource/OpenTSDB.php on line 339, referer: http://opentsdb.priv.atos.fr:9653/adhoc

The corresponding line is :

$search_key = (array_keys($query_bits['metrics'])[0]);

Any help will be greatly appreciated :) !

Regards,

François

Add manual threshold spec to ad-hoc searching

When building a graph you should be able to add a threshold, or a low and a high threshold, which will display on the graph as an indicator of max/min expected values.

Requested by Kunal

Styling problems

I got StatusWolf working with no errors in apache log. Thank you for the installation document. Need to add that php needs to be compiled with --with-curl and --with-mysqli options.

However, ad-hoc query screen looks pretty garbled. I am attaching image.

status_wolf

Firefox 22 on Windows. As far as I can tell all stylesheet and javascript files are downloaded. I am going to dig some more with firebug but in the meantime any suggestions would be welcome. Below is access log from apache:

10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /adhoc/ HTTP/1.1" 200 17662
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/statuswolf_base.css?v=1 HTTP/1.1" 200 14211
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/nav.css?v=1 HTTP/1.1" 200 419
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/adhoc.css?v=1.0 HTTP/1.1" 200 3811
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/popups.css?v=1.0 HTTP/1.1" 200 2673
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/sw_lib.js HTTP/1.1" 200 743
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/status_wolf_colors.js HTTP/1.1" 200 7539
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/lib/date.js HTTP/1.1" 200 25809
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/lib/magnific-popup.js HTTP/1.1" 200 23772
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/lib/bootstrap.js HTTP/1.1" 200 61764
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/lib/dygraph-combined.js HTTP/1.1" 200 135365
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/lib/jquery.js HTTP/1.1" 200 92556
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "POST /api/get_saved_searches HTTP/1.1" 200 2
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /favicon.ico HTTP/1.1" 200 70397
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /api/datasource_form/opentsdb_search HTTP/1.1" 200 67343
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/datetimepicker.css HTTP/1.1" 200 3208
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/toggle-buttons.css HTTP/1.1" 200 1177
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/push-button.css HTTP/1.1" 200 862
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/table.css HTTP/1.1" 200 487
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/tooltip.css HTTP/1.1" 200 1476
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/css/loader.css HTTP/1.1" 200 2122
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/lib/bootstrap-datetimepicker.js HTTP/1.1" 200 47138
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/toggle-buttons.js HTTP/1.1" 200 413
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/push-button.js HTTP/1.1" 200 759
10.180.4.250 - - [30/Jul/2013:09:12:48 -0700] "GET /app/js/lib/jquery.autocomplete.js HTTP/1.1" 200 20549

Limus

Saved dashboard search

Our list of saved dashboards is getting unmanageable. Some ways to help sort through them would be nice.

suggestions:

  1. Sort options (Alphabetical, Chronological from creation time, Owner, etc)
  2. A search bar (search for user, shared name, or metics used)

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.