Code Monkey home page Code Monkey logo

tipboard's Introduction

Tipboard

Documentation Status

Introduction

Tipboard is a system for creating dashboards, written in JavaScript and Python. Its widgets ('tiles' in Tipboard's terminology) are completely separated from data sources, which provides great flexibility and relatively high degree of possible customizations.

Because of its intended target (displaying various data and statistics in your office), it is optimized for larger screens.

Similar projects: Geckoboard, Dashing.

A detailed, technical documentation for Tipboard can be found here.

Quick start

Requirements

Assuming Ubuntu or similar Linux distribution, some required packages need to be installed first:

$ sudo apt-get install python-dev python-virtualenv redis-server

Virtual environment

Continue by creating a virtual environment that will help you conveniently separate your instance from what you already have installed in the system (let's say we will name it "tb-env"):

$ virtualenv tb-env

Activate the created virtual environment with the following command:

$ source tb-env/bin/activate

Installation with pip

After creating and activating virtualenv, install the latest (current) version of Tipboard package available on pypi ("Python Package Index") with the following command:

(tb-env)$ pip install tipboard

Next, you need to create a configuration template for your dashboard - let's say we will call it 'my_test_dashboard':

(tb-env)$ tipboard create_project my_test_dashboard

This command will create .tipboard directory in your home dir and will fill it with default settings for your dashboard.

Verification

To verify your installation, launch this command:

(tb-env)$ tipboard runserver

If you see the message Listening on port... instead of any errors, it means that installation was successful and you may now configure your newly installed Tipboard instance. You may also point your favorite web browser to http://localhost:7272 to see the current state of your dashboard.

License

Tipboard is licensed under the Apache License, v2.0.

Copyright (c) 2013-2017 Allegro Group.

tipboard's People

Contributors

anemcov avatar ar4s avatar daviewales avatar drewkhoury avatar eraac avatar krepflap avatar misiek08 avatar mkurek avatar netoarmando avatar noisy avatar privong avatar syphernl avatar vi4m avatar xor-xor avatar ziollek 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  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  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  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

tipboard's Issues

Problem installing with Ansible

Hi,

I'm hoping you can help me with the folllowing: For a collaborative tipboard-based project I'm trying to set up a Vagrant box (debian based) with Ansible.

- name: Install pip libraries
  pip:
    name: "{{ item }}"
  with_items:
    - tipboard

When running vagrant provision I get the following error:

    "item": "tipboard",
    "msg": "stdout: Collecting tipboard\n  Using cached tipboard-1.4.1.tar.gz\nCollecting mock==1.0.1 (from tipboard)\n  Using cached mock-1.0.1.zip\nCollecting PyYAML==3.10 (from tipboard)\n  Using cached PyYAML-3.10.tar.gz\nCollecting redis==2.7.5 (from tipboard)\n  Using cached redis-2.7.5.tar.gz\nCollecting requests==1.2.3 (from tipboard)\n  Using cached requests-1.2.3.tar.gz\n    Complete output from command python setup.py egg_info:\n    Traceback (most recent call last):\n      File \"<string>\", line 1, in <module>\n      File \"/tmp/pip-build-kBU_Al/requests/setup.py\", line 6, in <module>\n        import requests\n      File \"requests/__init__.py\", line 53, in <module>\n        from requests.packages.urllib3.contrib import pyopenssl\n      File \"requests/packages/urllib3/contrib/pyopenssl.py\", line 42, in <module>\n        ssl.PROTOCOL_SSLv3: OpenSSL.SSL.SSLv3_METHOD,\n    AttributeError: 'module' object has no attribute 'PROTOCOL_SSLv3'\n    \n    ----------------------------------------\n\n:stderr: Command \"python setup.py egg_info\" failed with error code 1 in /tmp/pip-build-kBU_Al/requests/\n"
}

It seems there's an issue with requests 1.2.3 perhaps in combination with other packages in the box?

Need Some Basic Help Getting Started

Installation went fine and all the default functionality is working.

The trouble starts when I tried to create my own layout_config.yaml and send data to my tiles.

The tiles are visible when browsing to http://serverIP:7272/ but attempts to send data or configuration to the tiles results in HTTP 404: Not Found. Indeed it does appear that there are NO keys in redis, as shown by:

(tb-env) [pylabs@rdu-vs-abe .tipboard]$ redis-cli
127.0.0.1:6379> KEYS *
(empty list or set)
127.0.0.1:6379>

Based on reading various sources it seems the keys for tiles should be created on initial data POSTing (push), correct? If my assumption is not correct, please clarify when are the database entries for the tiles created?

Any suggestions on why I have no keys? Troubleshooting tips are sparse in the docs. Any additional tip are appreciated.

Here is my layout, which is mostly based on the default. Just some renaming of elements and title.

(tb-env) [pylabs@my_server .tipboard]$ cat layout_config.yaml
details:
page_title: System Statistics Dashboard
layout:
- row_1_of_2:
- col_1_of_4:
- tile_template: big_value
tile_id: tile1
title: Monitored Systems

    - col_1_of_4:
        - tile_template: text
          tile_id: tile2
          title: Text Tile1
          classes:

    - col_1_of_4:
        - tile_template: text
          tile_id: tile3
          title: Text Tile
          classes:

    - col_1_of_4:
        - tile_template: text
          tile_id: tile4
          title: Text Tile
          classes:

- row_1_of_2:
    - col_1_of_4:
        - tile_template: text
          tile_id: tile5
          title: Text Tile
          classes:

    - col_1_of_4:
        - tile_template: text
          tile_id: tile6
          title: Text Tile
          classes:

    - col_1_of_4:
        - tile_template: text
          tile_id: tile7
          title: Text Tile
          classes:

    - col_1_of_4:
        - tile_template: text
          tile_id: tile8
          title: Text Tile
          classes:

(tb-env) [pylabs@

Here are my local settings:

(tb-env) [pylabs@rdu-vs-abe .tipboard]$ cat settings-local.py
#!/usr/bin/env python

-- coding: utf-8 --

from future import absolute_import
from future import division
from future import print_function
from future import unicode_literals

PROJECT_NAME = 'soak_dashboard'
API_KEY = '6730c0dd0f334cb483e2a0b0d9f9cdb7'

REDIS_HOST = '0.0.0.0'
HOST = '0.0.0.0'
DEBUG = True
JS_LOG_LEVEL = 2

Here is a sample POST:

http://my_server:7272/api/v0.1/6730c0dd0f334cb483e2a0b0d9f9cdb7/push/?tile=text&key=tile2&data=%7B%22text%22%3A%20%22Hello world!%22%7D

Thanks for your assistance in getting me up and running.

text tile color changes get applied to all tiles

Pip installed latest tipboard (1.4.0) and created the following layout

details:
    page_title: test
layout:
    - row_1_of_2:
        - col_1_of_2:
            - tile_template: text
              tile_id: test1
              title: status test 1
              classes:
        - col_1_of_2:
            - tile_template: text
              tile_id: test2
              title: status test 2
              classes:
    - row_1_of_2:
        - col_1_of_1:
            - tile_template: empty
              tile_id:
              title:
              classes:

running the following against that tipboard

    curl ${URL}/push -X POST -d "tile=text" -d "key=test1" -d 'data={"text": "green" }'
    curl ${URL}/tileconfig/test1 -X POST -d 'value={"font_color": "green" }'
    curl ${URL}/push -X POST -d "tile=text" -d "key=test2" -d 'data={"text": "red" }'
    curl ${URL}/tileconfig/test2 -X POST -d 'value={"font_color": "red" }'

results in the text in test1 and test2 changing first to green and then to red - rather than the expected result of test1 changing to green and staying green, and only test2 changing to red.

Tipboard data

We would like to use Tipboard as a dashboard for the usage of our API, server status and number of records in the database, etc. Tipboard supports a REST interface which works quite nice, but I have to push the complete content of a tile to the API. So I have to keep my own administration of e.g. number of API calls. It would be more convenient to send an update for each new API request and Tipboard would handle calculating the total number of API calls. Redis should be easily capable of handling these amount of data.

The other point is that since my use-case is about our API it would be neat that Tipboard would pull new data from our API, e.g. the total number of API calls, server status, etc. Instead of me writing a cron job to update Tipboard…

Is there any way my use-case can be solved within Tipboard, or is the solution to write my own connector or a layer in between to accumulate the data from our API and push it to Tipboard?

Visual effects when data changes

If a value is being updated (via the API), this is just "set".

It would be nice if there could be some graphical effect when this happens.
For instance, a simple_percentage updates its big_value from 50 to 80, it would be nice if it would count up until it reaches 80. Same for if it goes down.

404: Not Found when pushing

Hi! Giving a try... ;)

Wthats wrong with me?

lufa@lufa-work:~$ http POST http://192.168.0.116:8080/api/v0.1/8caa55c1688e48c28cdf1f8a5e88bd1f/push tile=text key=id_1 data={"text":"Hello World"}
HTTP/1.1 404 Not Found
Content-Length: 69
Content-Type: text/html; charset=UTF-8
Date: Fri, 25 Sep 2015 12:54:35 GMT
Server: TornadoServer/3.0.1

<html><title>404: Not Found</title><body>404: Not Found</body></html>

Server:

root@vm116:~/.tipboard# tipboard runserver 192.168.0.116 8080
Raven is not configured (logging is disabled). Please see the documentation for more information.
[I 150925 15:55:30 console:145] Following keys already in Redis:

[I 150925 15:55:30 console:160] Listening on port 192.168.0.116:8080...
[I 150925 15:55:31 app:160] Web socket opened.
[I 150925 15:55:31 app:166] Subscribed to telelan:events on Redis.
[I 150925 15:55:31 app:123] Message received: update.
[W 150925 15:55:34 web:1514] 404 POST /api/v0.1/8caa55c1688e48c28cdf1f8a5e88bd1f/push/id_1 (192.168.0.150) 0.54ms

Config:

root@vm116:~/.tipboard# cat layout_config.yaml 
details:
    page_title: Empty Dashboard
layout:
    - row_1_of_2:
        - col_1_of_4 flip-time-2:
            - tile_template: text
              tile_id: id_1
              title: text
              classes:

        - col_1_of_4:
            - tile_template: empty
              tile_id: empty
              title: Empty Tile
              classes:

        - col_1_of_4:
            - tile_template: empty
              tile_id: empty
              title: Empty Tile
              classes:

        - col_1_of_4:
            - tile_template: empty
              tile_id: empty
              title: Empty Tile
              classes:

    - row_1_of_2:
        - col_1_of_4:
            - tile_template: empty
              tile_id: empty
              title: Empty Tile
              classes:

        - col_1_of_4:
            - tile_template: empty
              tile_id: empty
              title: Empty Tile
              classes:

        - col_1_of_4:
            - tile_template: empty
              tile_id: empty
              title: Empty Tile
              classes:

        - col_1_of_4:
            - tile_template: empty
              tile_id: empty
              title: Empty Tile
              classes:

Logic api push

I started to write a client to push data on tipboard, so after looking the different data to send to the tile, I see the same field with a different name on different tile, and I want to know if is just a lack of comprehension or a problem of logic ?

tile title description
pie_chart title N/A
line_chart subtitle description
cumulative_flow title N/A
simple_percentage title subtitle
bar_chart title subtitle
big_value title description
just_value title description
advanced_plot title description
norm_chart title description

I suppose they too late to change that now ? (for backwards compatibility)

row_1_of_1 doesn't work but row_2_of_2 does

details:
    page_title: GM - Dashboard
layout:
    - row_1_of_1:
        - col_1_of_1:
            - tile_template: bar_chart
            tile_id: gross_margin
            title: Gross Margin (quarterly)

Produces this error

Uncaught Error: Target dimension not set

whereas this works:

layout:
    - row_2_of_2:

Error when trying to update a simple tile

I'm trying to push data to a simple "text" tile using the curl command.

This is erroring out with

AttributeError: 'NoneType' object has no attribute 'write_message'
[E 181022 16:21:44 iostream:319] Uncaught exception, closing connection.

If you need any more information, please let me know.

simple_percentage color

Pushing color update to simple_percentage isn't updating in any browser for me. Not sure if it's just me but was hoping someone else could try.

Per the documentation this is how i'm pushing colors for now.

curl http://localhost:7272/api/v0.1/api_key/tileconfig/<tile_id>
-X POST -d 'value={"big_value_color": "green", "fading_background": true}'

I return tile's config updated however no color change.

Confusing docs / getting started guide

I have read through the entire docs at http://tipboard.readthedocs.org/en/latest/ several times and it is making me feel very dumb. I have got my layout set (i used the default) I set the first tile template to "text" and gave it a title. I go through the documentation and eventually i come across the page with info on the "text" template, but no where can I find WHERE to input or HOW to input any of that data. I see NO lines in either config file (the yaml layout or the general settings), there is no instruction on WHERE something like the curl example would go. I am new to dashboards and even API's in general but I was hoping that there would be some ACTUAL EXAMPLES where they show you the file that needs to be edited and an example of HOW they edited it or where to put any data.

At this point I have the dashboard installed, and I can edit the layout and edit the tile_template, tile_id, title, and classes (though there is no indication as to what this does) fields but there is no understandable documentation that tells me where to input the DATA for that tile.

Please someone help :(

EDIT: I am not very smart at all....in the end I realized that I needed to push from somewhere to the tipboard. I tried running the curl command in the "text" template example and had no idea what "mykey" was (i used my api key, but that means its in the curl command twice, once in the url and once as a parameter). it turned out that key = the tile id (not too intuitive naming if you ask me). the tile= i guess is for type? I left this as "text" and its working ish now...

I will just keep at it and hopefully figure it out, but I came to tipboard because of its advertised ease of use, and unfortuantely disappointed to find out that its not for beginners at all. I am someone who has had great success setting up and managing my home servers and now I want to create a dashboard for them, but I have little to no API knowledge and while i Know its not oyur responsibility to assist, i think bridging the gap between what the user ALREADY NEEDS and how to give that to tipboard properly could be documented a bit better.....idk

[Suggestion] Add a comments searchbox

HI.
I have a suggestion.
When sellers sell hundreds of items a month it's hard to find comments for just one specific item (auction number).
My suggestion - on a seller comments page add a searchbox to input a desired auction number to limit comments just to this one item.
Regards.

How to display photo in the title?

Hello,
Tipboard is awensome. I got only one issue and I stuck. Question is how can i display photo in the title with two lines of text below? My goal is to display who is a shift manager so I'd like to have photo, name, and phone below. Unfortunately, I'm not a programmer, so maybe someone has a ready solution that I could implement. Thank you in advance

Light theme?

Searched the docs and found only a short reference to adding a theme in the changelog. No other information. Thanks! :)

basic setup - Super n00b - help needed

Hi Everyone, I am going to be honest...I love the idea of learning python but I've got a project at work that is needing this software - and I've got very little experience with python, environments - I'm typically comfortable in PHP, javascript, HTML, CSS...I am trying to learn as fast as I can but I was wondering if I can ask a couple stupid questions:

What I've done so far: I can run tipboard just fine. The dashboard comes up great.
My project using tipboard: connect to a Cisco ISE API, filter/parse xml results, and push it to the tiles in tipboard.

  1. Can someone point me in the direction on how to automatically have tipboard query the API for realtime numbers? I don't even know where to put my commands and/or python scripts. I did try to learn from the documentation. I'm sorry - I just learn slow.

  2. Can tipboard startup automatically without me having to log in to the machine it's installed on?

I would honestly include my sad python script to query the API in python - but currently, it only works if I do a curl command in terminal. The curl request works wonderfully using the tipboard API...i just don't know how to make that call automatically...cronjob? Or, does tipboard have it's own way?

I'll stop here...thank you for your time.

advanced_plot fails if MeterGaugeRenderer is used

pointLabels conflicts (?) with MeterGauge - it doesn't contain "_xaxis" and throws an exception:
"this[ax]._ticks[0] is undefined"
around line 283 in jqplot.pointLabels.js
Simply commenting out js from list in settings.py "repairs" MeterGauge, but probably break some other renderers.

Question : Any resources on how to setup tipboard with nginx?

I am new to tipboard and I find it extremely useful and interesting. I have setup a customized dashboard on AWS instance and it works beautifully. I was wondering if anyone can guide me towards the direction for setting up tipboard on apache, without the need to execute the "tipboard runserver" command to activate the dashboards?
Thank you in advance

Timed out data not recovering tile configuration

I have a pie_chart with a configured timeout of 300. After 5 minutes this widget goes to "Tile's data EXPIRED".

However, when the data feed for this tile is back it only removes the expiry warning and adds the title back in. The pie chart does not show up until the page has been refreshed.

Cannot install tipboard using pip (invalid install_requires)

When trying to install tipboard through pip, the following error occurs:

$ pip --no-cache-dir install tipboard
Collecting tipboard
  Downloading tipboard-1.4.0.tar.gz (1.5MB)
    100% |████████████████████████████████| 1.5MB 6.7MB/s 
    Complete output from command python setup.py egg_info:
    error in tipboard setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "','"
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/js/pip-build-8u8mD0/tipboard/

Python and PIP version:

Python 2.7.12
pip 9.0.1 from /home/js/.virtualenvs/tb-venv/lib/python2.7/site-packages (python 2.7)

The same happens on system-level pip/python as well as on virtualenv level.

Cols before Rows

Hello all!

Is it possible to put COLs before ROWs in config yaml file?
Secondly, how to make somthing like colspan / rowspan (as in html)?

Sorry for using issues on github, did not find any other means of contact.

Highcharts

Hi guy,
I am creating a tile to include in Tipboard highchart. I do not really know how to include the script in Tipboard hightchars.js. I would appreciate your help

Issue when creating more than 3 rows

Hello,

i tried to create a new tipboard dashboard with more than 3 rows.

details:
page_title: Test Dashboard DB Modular Cloud
layout:
- row_1_of_4:
- col_1_of_3:
- tile_template: big_value
tile_id: running_ec2s
title: Running EC2
classes:

    - col_1_of_3:
        - tile_template: big_value
          tile_id: stopped_ec2s
          title: Stopped EC2
          classes:

    - col_1_of_3:
        - tile_template: big_value
          tile_id: failed_ec2s
          title: Failed EC2
          classes:

- row_1_of_4:
    - col_1_of_3:
        - tile_template: big_value
          tile_id: running_rds
          title: Running RDS
          classes:

    - col_1_of_3:
        - tile_template: big_value
          tile_id: stopped_rds
          title: Stopped RDS
          classes:

    - col_1_of_3:
        - tile_template: big_value
          tile_id: failed_rds
          title: Failed RDS
          classes:

- row_1_of_4:
    - col_1_of_2:
        - tile_template: big_value
          tile_id: running_ssm_agent
          title: Running SSM Agents
          classes:

    - col_1_of_2:
        - tile_template: big_value
          tile_id: conn_lost_ssm
          title: SSM Agents - Connection Lost
          classes:

- row_1_of_4:
    - col_1_of_2:
        - tile_template: big_value
          tile_id: 2running_ssm_agent
          title: Running SSM Agents
          classes:

    - col_1_of_2:
        - tile_template: big_value
          tile_id: 2conn_lost_ssm
          title: SSM Agents - Connection Lost
          classes:

When i am using 3 rows then everything is fine and the dashboard is being displaying correctly. However when I am using 4 rows as stated above then all I see is a black screen but no tiles are being rendered.

Can you have a closer look at this?

TypeError: unsupported operand type(s) for +: 'int' and 'str'

If your layout config has a tile_id that is just numbers the yaml loading inturpurts it as an int and fails later when it attempts to concatenate two strings.

details:
    page_title: eve_dev_overview
layout:
    - row_1_of_1:
        - col_1_of_1:
            - tile_template: just_value
              tile_id: 01
              title: Hanna (Phoebe) Staging
[E 141104 11:38:08 web:1121] Uncaught exception GET /eve_dev_overview (10.0.2.2)
    HTTPRequest(protocol='http', host='localhost:8080', method='GET', uri='/eve_dev_overview', version='HTTP/1.1', remote_ip='10.0.2.2', body='', headers={'Accept-Language': 'en-US,en;q=0.8', 'Accept-Encoding': 'gzip, deflate, sdch', 'Host': 'localhost:8080', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2194.2 Safari/537.36', 'Connection': 'keep-alive', 'Cookie': '_pk_id.1.1fff=1c97657ca0dbe4ec.1410793043.8.1414163246.1412801664.', 'Cache-Control': 'max-age=0'})
    Traceback (most recent call last):
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tornado/web.py", line 1077, in _execute
        *self.path_args, **self.path_kwargs)
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tipboard/app.py", line 225, in get
        tile_path=_tile_path,
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tornado/web.py", line 524, in render
        html = self.render_string(template_name, **kwargs)
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tornado/web.py", line 631, in render_string
        return t.generate(**namespace)
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tornado/template.py", line 270, in generate
        return execute()
      File "layout_html.generated.py", line 95, in _execute
        timeout=tile.get('timeout', ''),
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tornado/web.py", line 1130, in render
        rendered = self._active_modules[name].render(*args, **kwargs)
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tornado/web.py", line 1985, in render
        **kwargs)
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tornado/web.py", line 1940, in render_string
        return self.handler.render_string(path, **kwargs)
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tornado/web.py", line 631, in render_string
        return t.generate(**namespace)
      File "/home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tornado/template.py", line 270, in generate
        return execute()
      File "/home/vagrant/tipboard/tb-env/local/lib/python2_7/site-packages/tipboard/tiles/just_value_html.generated.py", line 17, in _execute
        _tmp = tile_id + '-title'  # /home/vagrant/tipboard/tb-env/local/lib/python2.7/site-packages/tipboard/tiles/just_value.html:6
    TypeError: unsupported operand type(s) for +: 'int' and 'str'

Simplify API

  1. tile and key API params could be included in JSON data.
  2. Now API has 2 resources one for config, one for data. Config data and tile data could be simply in the same JSON data.

Custom Redis server location

Is there a way to specify a custom location for the Redis server? I'm trying to use an external Redis server, so it's not located at localhost: 6379.

NameError: name 'execfile' is not defined

Hey Team, I'm trying to setup tipboard on a fresh Ubuntu 18.04LTS VPS. I followed the quick start guide and installed via pip. However I'm getting this error when I try and create a new dashboard. Does tipboard work with Python3? Or is this caused by some other issue?

Traceback (most recent call last):
  File "/home/greg/virtualenvs/tipboard/bin/tipboard", line 6, in <module>
    from tipboard.console import main
  File "/home/greg/virtualenvs/tipboard/lib/python3.6/site-packages/tipboard/console.py", line 48, in <module>
    from tipboard import __version__, settings
  File "/home/greg/virtualenvs/tipboard/lib/python3.6/site-packages/tipboard/settings.py", line 56, in <module>
    execfile(
NameError: name 'execfile' is not defined

Pushing data to tile fails : WrongSumOfRows

python dictionary passed to request.post ->

{
'tile': 'cumulative_flow',
'data': {
'series_list': [
{
'series': [
'701',
'679',
'745',
'742',
'757',
'758',
'707',
'742',
'734',
'730'
],
'label': 'UpdateOperations'
},
{
'series': [
'2013',
'1967',
'1987',
'2049',
'2034',
'2017',
'2015',
'2025',
'2048',
'2004'
],
'label': 'SelectOperations'
}
],
'title': 'MySQLOperations: '
},
'key': 'zcs001a'
}

Uncaught exception POST /api/v0.1/1077920d63574166a6cfd8ca25d5a60f/push (192.168.5.19)
HTTPRequest(protocol='http', host='192.168.99.68:7272', method='POST', uri='/api/v0.1/1077920d63574166a6cfd8ca25d5a60f/push', version='HTTP/1.1', remote_ip='192.168.5.19', body='tile=cumulative_flow&data=series_list&data=title&key=zcs001a', headers={'Content-Length': '60', 'Host': '192.168.99.68:7272', 'Accept-Encoding': 'gzip, deflate', 'Content-Type': 'application/x-www-form-urlencoded', 'Connection': 'keep-alive', 'Accept': '/', 'User-Agent': 'python-requests/2.4.1 CPython/2.7.5 Darwin/13.4.0'})
Traceback (most recent call last):
File "/home/pylabs/tb-env/local/lib/python2.7/site-packages/tornado/web.py", line 1077, in _execute
_self.path_args, *_self.path_kwargs)
File "/home/pylabs/tb-env/local/lib/python2.7/site-packages/tipboard/api.py", line 105, in post
validation_error = self.validate_with_config_files(post_field)
File "/home/pylabs/tb-env/local/lib/python2.7/site-packages/tipboard/api.py", line 62, in validate_with_config_files
tiles_configs = get_tiles_configs()
File "/home/pylabs/tb-env/local/lib/python2.7/site-packages/tipboard/parser.py", line 105, in get_tiles_configs
parsed_config = process_layout_config(config_name)
File "/home/pylabs/tb-env/local/lib/python2.7/site-packages/tipboard/parser.py", line 116, in process_layout_config
config['tiles_names'], config['tiles_keys'] = _find_tiles_names(layout)
File "/home/pylabs/tb-env/local/lib/python2.7/site-packages/tipboard/parser.py", line 59, in _find_tiles_names
for row in _get_rows(layout):
File "/home/pylabs/tb-env/local/lib/python2.7/site-packages/tipboard/parser.py", line 49, in _get_rows
raise WrongSumOfRows('The sum of the lines is incorrect.')
WrongSumOfRows: The sum of the lines is incorrect.

When I attempt to post this data with curl ->

curl http://xxx.xxx.xxx.xxx:7272/api/v0.1//push -X POST -d "tile=cumulative_flow" -d "key=zcs001a" -d 'data={"title":"MySQL Operations","series_list": [{"label":"Update Operations","series":[710, 736, 763, 727, 758, 691, 767, 742, 737, 726]},{"label":"Select Operations","series":[1986,213,4235,3463,4364,664,74,576,74,74]}]}'

I get "WrongSumOfRows: The sum of the lines is incorrect.
[E 141006 14:40:36 web:1514] 500 POST /api/v0.1/107792"

Setup timeout to redis connexion

Hi, I figured there was no timeout to the redis connexion, and both need to up when tipboard starts, otherwise it'll the crash. Since I am trying to dockerize everything and put that in some swarm, I now have redis and tipboard that start separately in 2 different containers, that start in an unpredictable order, meaning that tipboard won't work if it boots before redis. Would it be possible to configure a timeout for the redis connexion ? That way tipboard could way for a specific amout of time before giving up on booting.

Nice tool btw, props to the team.

Tile Table not included into the Tiles Library

Hi,

I have been using Tipboard for the past year. Great Tool!. I have a new requirement from my manager and I would like your help:

  • Do you have a Template (Tile) for Tables. I would like to display data in a table format but none of the existing Templates (Tiles) allow me to do it.

Send REST using windows powershell

Hi All

I am searching to solve this problem for a long time, without success.
I am using tipboard for few weeks now, it is perfet, easy and efficient !

I know well how to send data using REST from linux, no problem. But I need to send data from a windows 10 pc now. I do not know powershell at all...

I try for example this, but get this result :

$params = @{ Uri = 'http://192.168.28.84:7272/api/v0.1/xxx/push' Body = @{ tile = 'pie_chart'; key = 'tuile2'; data = @{ title = 'BIDULE'; pie_data = @{ Pie1 = 100; Pie2 = 200} } | ConvertTo-Json } Method = 'POST' } Invoke-RestMethod @params

But tipboard log shows this

[D 210225 09:56:19 redis_utils:57] db key: u'snsght:tile:tuile2' set to value: '{"tile_template": "pie_chart", "meta": {}, "data": {"pie_data": {"Pie2": 200, "Pie1": 100}, "title": "BIDULE"}, "modified": "2021-02-25T09:56:19-00:00", "id": "tuile2"}'

I think it should receive something like this

{"pie_data": [["Pie2": 200, "Pie1": 100]], "title": "BIDULE"}

someone here knows windows powershell ?

thanks, best regards

Cyril

Installation failure - NameError: name 'execfile' is not defined

Hello,

I am trying to install tipboard but I am getting the following:

(tb-env) uat-user@prod-dashboard-01:/tb$ tipboard create_project my_test_dashboard
Traceback (most recent call last):
File "/home/uat-user/tb/tb-env/bin/tipboard", line 5, in
from tipboard.console import main
File "/home/uat-user/tb/tb-env/lib/python3.8/site-packages/tipboard/console.py", line 48, in
from tipboard import version, settings
File "/home/uat-user/tb/tb-env/lib/python3.8/site-packages/tipboard/settings.py", line 56, in
execfile(
NameError: name 'execfile' is not defined
(tb-env) uat-user@prod-dashboard-01:~/tb$ x

API Issues

I am unsure as to whether this is a problem with the API framwork or the Layout framework.

Each time I attempt to submit and API request, using the "tile ID" which is specified in the layout.yaml file.

I receive the response of "Key does not exist" when it very clearly does.

Example of API Request:

DELETE http://localhost:7272/api/v0.1/api/tiledata/tile01

Returns

Status Code: 404 Not Found
Content-Length: 27
Content-Type: text/html; charset=UTF-8
Date: Fri, 03 Oct 2014 17:50:39 GMT
Server: TornadoServer/3.0.1

tile01 key does not exist.

Custom layout

I wonder if is possible to have a specific custom layout. for more information check the attached file.
layout.txt

Thanks

Internet Explorer 11 error "Unable to get property 'Windows' of undefined or null reference"

Very minor issue, tipboard seems to function well even with this error happening.

Error message (visible in the Internet Explorer Javascript console):

Unable to get property 'Windows' of undefined or null reference

It occurs at this point:

var thisKeys = keys[BrowserDetect.browser][BrowserDetect.OS];

Reproduces on Internet Explorer 11.1066.14393.0

The jquery.fullscreen.js mentions that its source is http://www.quirksmode.org/js/detect.html, but it is no longer there.

How to use predictable colors and legend on line chart?

Currenlty line chart expects a 2D array, which makes it hard to name the series of data, and colors are assigned depending on the order of series.

If data could be sent in format like this:

data = {
    "subtitle": "<subtitle_text">,
    "description": "<description_text>",
    "series": {"serieA": [<series1>], 
                   "serieB" : [<series2>]}
}

then one could configure tile better:

"series": [
        {
            "color": "#19f48a",
            "label": "serieA"
        }
(...)

which should be applied both to legend and to real chart.

test_05_tiledata_resource_get fails

I have been working on setting up a flipboard instance, with some success. But the line_chart and norm_chart tiles have been giving me trouble. I have been getting the following error:

Tile aptwxhistP configuration error:
Error
No data specified

I tried running the test suites:

$ tipboard test
Raven is not configured (logging is disabled). Please see the documentation for more information.
test_collecting_tiles_data (test_config_parser.TestConfigFiles) ... ok
test_finding_configs_files (test_config_parser.TestConfigFiles) ... ok
test_get_rows (test_config_parser.TestConfigParser)
simple call of get_rows method and check rows count ... ok
test_get_rows_cols_validator (test_config_parser.TestConfigParser) ... ok
test_01_api_key (test_rest_api.TestRestApi) ... ok
test_02_info_resource (test_rest_api.TestRestApi) ... ok
test_03_push_resource (test_rest_api.TestRestApi) ... ok
test_04_tileconfig_resource_post (test_rest_api.TestRestApi) ... ok
test_05_tiledata_resource_get (test_rest_api.TestRestApi) ... ERROR
test_06_tileconfig_resource_delete (test_rest_api.TestRestApi) ... ok
test_07_tiledata_resource_delete (test_rest_api.TestRestApi) ... ok
test_all_files_created (test_console_commands.TestConfigFiles) ... ok
test_config_contains_api_key (test_console_commands.TestConfigFiles)
check if 'settings-local.py' contains API key ... ok
test_config_contains_project_name (test_console_commands.TestConfigFiles)
check if 'settings-local.py' contains project's name ... ok
test_recreate_project (test_console_commands.TestConfigFiles) ... ok

======================================================================
ERROR: test_05_tiledata_resource_get (test_rest_api.TestRestApi)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/dashboard/tb-env/lib/python2.7/site-packages/tipboard/tests/test_rest_api.py", line 135, in test_05_tiledata_resource_get
    '%Y-%m-%d %H:%M:%S')
  File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data '2015-07-18T00:16:27-00:00' does not match format '%Y-%m-%d %H:%M:%S'

----------------------------------------------------------------------
Ran 15 tests in 4.172s

FAILED (errors=1)

If I modify the comparison string in the test_rest_api.py file to include the "T" between the date and time, and re-run the test, I get the following output:

$ tipboard test
Raven is not configured (logging is disabled). Please see the documentation for more information.
test_collecting_tiles_data (test_config_parser.TestConfigFiles) ... ok
test_finding_configs_files (test_config_parser.TestConfigFiles) ... ok
test_get_rows (test_config_parser.TestConfigParser)
simple call of get_rows method and check rows count ... ok
test_get_rows_cols_validator (test_config_parser.TestConfigParser) ... ok
test_01_api_key (test_rest_api.TestRestApi) ... ok
test_02_info_resource (test_rest_api.TestRestApi) ... ok
test_03_push_resource (test_rest_api.TestRestApi) ... ok
test_04_tileconfig_resource_post (test_rest_api.TestRestApi) ... ok
test_05_tiledata_resource_get (test_rest_api.TestRestApi) ... ERROR
test_06_tileconfig_resource_delete (test_rest_api.TestRestApi) ... ok
test_07_tiledata_resource_delete (test_rest_api.TestRestApi) ... ok
test_all_files_created (test_console_commands.TestConfigFiles) ... ok
test_config_contains_api_key (test_console_commands.TestConfigFiles)
check if 'settings-local.py' contains API key ... ok
test_config_contains_project_name (test_console_commands.TestConfigFiles)
check if 'settings-local.py' contains project's name ... ok
test_recreate_project (test_console_commands.TestConfigFiles) ... ok

======================================================================
ERROR: test_05_tiledata_resource_get (test_rest_api.TestRestApi)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/dashboard/tb-env/lib/python2.7/site-packages/tipboard/tests/test_rest_api.py", line 135, in test_05_tiledata_resource_get
    '%Y-%m-%dT%H:%M:%S')
  File "/usr/lib/python2.7/_strptime.py", line 328, in _strptime
    data_string[found.end():])
ValueError: unconverted data remains: -00:00

----------------------------------------------------------------------
Ran 15 tests in 4.116s

FAILED (errors=1)

I am running Tipboard 1.4.0 (installed with pip) on Arch Linux on a Raspberry Pi B (v1). The Redis server is v=3.0.2.

For what is is worth, other tiles (simple_percentage, text, fancy_listing, cumulative_flow) seem to work fine.

Dependency issue when installing tipboard through pip

I was following the instructions closely, and upon reaching this step got slightly stuck:

(tb-env)$ pip install tipboard

On a Ubuntu 16.04.2 LTS computer, I had to use this version of that command to fix the dependency issue.

(tb-env)$ pip install tipboard --ignore-installed six

pypi package out of date - new release possible

Hi Guys,

We've implemented tipboard behind an SSL reverse proxy, this causes websockets to fail because secure websockets is required.

The fix is actually in the develop branch on this repo but a new version (1.4.3?) would be required to deploy from PyPI.

Is there a chance someone could tag 1.4.3 and push the update into PyPI?

]-[

404 error for static files

Hi, I'm getting several 404 errors for static files when I launch my dashboard:

(venv) CMac:Tipboard_app cosbgn$ tipboard runserver
Raven is not configured (logging is disabled). Please see the documentation for more information.
[I 160506 16:24:13 console:145] Following keys already in Redis:
[I 160506 16:24:13 console:160] Listening on port localhost:7272...
[I 160506 16:24:43 web:1946] 304 GET / (::1) 97.68ms
[W 160506 16:24:44 web:1946] 404 GET /static/css/reset.css (::1) 57.44ms
[W 160506 16:24:44 web:1946] 404 GET /static/css/jquery.jqplot.css (::1) 0.88ms
[W 160506 16:24:44 web:1946] 404 GET /static/css/layout.css (::1) 1.21ms
[W 160506 16:24:44 web:1946] 404 GET /static/js/lib/jquery.js (::1) 1.12ms
[W 160506 16:24:44 web:1946] 404 GET /static/js/flipboard.js (::1) 1.17ms
[W 160506 16:24:45 web:1946] 404 GET /static/js/lib/require.js (::1) 1.12ms
[I 160506 16:24:47 web:1946] 304 GET / (::1) 155.84ms
[W 160506 16:24:47 web:1946] 404 GET /static/css/reset.css (::1) 2.75ms
[W 160506 16:24:47 web:1946] 404 GET /static/css/layout.css (::1) 1.15ms
[W 160506 16:24:47 web:1946] 404 GET /static/css/jquery.jqplot.css (::1) 1.11ms
[W 160506 16:24:47 web:1946] 404 GET /static/js/lib/require.js (::1) 10.83ms
[W 160506 16:24:47 web:1946] 404 GET /static/js/flipboard.js (::1) 1.45ms
[W 160506 16:24:47 web:1946] 404 GET /static/js/lib/jquery.js (::1) 1.42ms

Then when I go on localhost:7272 I see only this white box and not the dashboard, do you know why this happens?

Thanks!

image

403 Forbidden when pushing

Hi, I'm getting always a 403 error, no matter how I change the syntax,
I've tried:

url = 'http://my_ip:7272/api/v0.1/a8e0e4e8f58f4c0aa4f3e9ef2afc73b2/push'
data_push = 'tile=text, key=id_1, data={"text":"Hello World"}'
r = requests.post(url, data=data_push)
r
print(r.status_code, r.reason)

or

data = 'tile=text&key=id_1&data={"text": "Hello World!"}'
requests.post('http://my_ip:7272/api/v0.1/a8e0e4e8f58f4c0aa4f3e9ef2afc73b2/push', data=data)
print(r.status_code, r.reason)
requests.post('http://my_ip:7272/api/v0.1/a8e0e4e8f58f4c0aa4f3e9ef2afc73b2/push', data={"tile": "text", "key": "id_1", "text": "Hello World!"})
print(r.status_code, r.reason)

The API key is 100% correct and when I visit my_ip:7272 I can see the dashboard working perfectly..

What I'm doing wrong?
Thanks for your help!

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.