I would like to have a bar chart in Grafana with number of requests exceeds SLA. Is there a function or how can I achieve this?
You'll need to connect to the database that stores the number of requests. To do this you'll have to have a datasource plugin that provides the connectivity within Grafana. There are a number of 'out of the box' data source plugins available with Grafana.
If your database isn't listed there you'll need to create your own data source plugin, following the instructions here. It's important to note that to create your own plugins you need to be able to code in either JavaScript or a language that compiles to JavaScript such as TypeScript.
Once you have your data source plugin connecting to you database it should be rather trivial to get a bar chart on screen using the Graph panel.
Related
Here is the case, i want to visualize a query result of data taken periodically into dashboard (like grafana or kibana), the problem is I don't know which technology stack to use, should I use ELK stack, Prometheus + Grafana, or using Tableau, the requirements are:
First, it has support for multiple (hundreds) of database server as data source, currently I use Postgresql.
Second, it has support for running one query to all database instance and collect the result into one centralized server to be then displayed on dashboard.
Third, it has support for period/schedule set up (cron-like scheduler) for managing how often data should be queried from all database servers.
Fourth, it has support for alerting/notification system, where i can use existing platform library without much code needed.
Fifth, it has to be opensource project, with good reputation and quite large community support.
Thanks
You can achieve your objective with ELK Stack. In Kibana, you will see basic Dashboard. If you want more detail Dashboard view, then you can integrate Elastic Search with Grafana as well using Lucene query.Below links will help you:
https://www.elastic.co/blog/logstash-jdbc-input-plugin
https://discuss.elastic.co/t/how-can-i-schedule-logstash-every-second-for-jdbc-input-plugin/27393/11
https://grafana.com/blog/2016/03/09/how-to-effectively-use-the-elasticsearch-data-source-in-grafana-and-solutions-to-common-pitfalls/#lucene
The time taken to load the charts(visualization) using tableau in my mobile app is close to 10 or 15 secs. So i am looking for alternative methods like creating my own chart but only to use the intelligence tableau provides on creating the visualizations.
In short, i want to know whether there is some support or API available from tableau using which i can draw the visualizations by myself in my mobile app without losing any chart data or functionality like digging deeper in charts.
For example, an API from tableau using which i can create the chart in my mobile app. After creating it, if user touches any data that should be sent again to tableau to get further event action like showing filters/tables etc.
Is this even possible? I did lot of research in tableau and got to know about tableau SDK, tableau API's, tableau extensions etc. but unable to find what i am looking for.
Tableau provides a thorough white paper Designing Efficient Workbooks. I would start by reading that and trying some of the recommendations.
If you are looking for an API driven visualization system, you can check out MuzeJS.
You load your data in an in-browser DataModel, run relational algebra enabled data operators to get the right subset of data, and then just pass to Muze engine, which automatically renders the best visualization for it.
It is similar to the kind of intelligence Tableau provides but since it is a developer first API, you can customize as you want, whether it be for the mobile or the desktop. In fact, most of the charts will be available for both seamlessly.
Any changes to data (including application of data operations) automatically updates the visualization, without you having to do anything else.
Add to that, if you’ve to connect multiple charts (for cross-interactivity, drill-down etc.), you’ve to manually write the ‘glue’ code. With Muze, all charts rendered from the same DataModel are automatically connected (enabling cross-filtering). It also provides composability and the ability to facet your visualization, providing a multi-grid layout.
You can go through some of the examples and the documentation to see if it suits your needs
I am installed and added data source (web data connector) inside tableau
Web data connector URL : http://localhost/datasouceexample/example.html
we data connector holds some data.
import data from web data connector and created graphs using the data's from the web data connector URL .Generated graph and saved in "tableau public" option.
Embed the code inside my web application . Graphs shows perfectly.
My question is about the automatic data updation .
1 ) I want to update graph automatically based on the value from web data connector URL
2 ) If any new updations are inside input datas (new inputs) , automatically sync with tableau and update the graph,so no changes in the embed code and graph updated automatically
Any settings available inside tableau for do this section? if it is possible ? Thanks
Only dashboards with a google sheets datasource can be automatically updated on Tableau Public. Maybe you could redesign your web service to write to a google sheets doc. If so, you could republish your dashboard to sync with that doc.
The scenario you are describing is not possible using Tableau Public (the free version of Tableau software) and the web data connector. Tableau Public does not support updating web data connector data once published on Public, you would need to refresh the data from your desktop application and republish.
The closest supported path to your use case would be, as Kara_F mentioned in the comments, to use Tableau Server. With that product, you can create web data connector datasources and publish them to your Server. You can then schedule a refresh job which will update your data at a certain interval. More info for keeping WDC data up to date can be found here: http://onlinehelp.tableau.com/v0.0/server/en-us/datasource_wdc.htm.
I have a postgres database with a large number of time series metrics
Various operators are interested in different information and I want to provide an interface where they can chart the data, make comparisons and optionally export data as a csv.
The two solutions I have come across so far are, graphite and grafana, but both these solutions tie you down to storage engines and none support postgres.
What I am looking for is an interface similar to grafana, but which allows me to hook up any backend I want. Are there any tools out there, similar to grafana, which allow you to hook up any backend you want (or even just postgres).
Note that the data I am collecting is highly sensitive, and is required by other areas of the application and so is not suitable for storing in graphite.
The other alternative I see would be to setup a trigger on the postgres DB to feed data into graphite as it arrives, but again, not ideal.
You may want to replace Graphite's storage backend with postgresql. Here is a good primer.
2018 update: Grafana now supports PostgreSQL (link).
What I am looking for is an interface similar to grafana, but which allows me to hook up any backend I want
Thats possible with grafana . Check this guide which shows how to create a datasource plugin for a datasource thats currently not supported.
Can one write plug-ins for Tableau? Is Tableau equipped with any sort of general-purpose scripting language?
e.g., for generating visualizations that cannot be created using the default Tableau tools, or for doing k-means clustering on a dataset using various metrics, etc...
Tableau has several extension points at the moment.
If you publish to Tableau Server, On-Line or Public, then you can use
Tableau's JavaScript API to interact between your web app client and
the Tableau visualization. Your javascript can be notified of events
in the Tableau viz, and also effectively command it.
Instead of using the JavaScript API, you can include URL query parameters to pass filters, adjust the sizes and control a few other aspects. Similarly, you can append a format string like ".png" or ".pdf" or ".csv" to request a static snapshot in a particular format instead of an interactive object. You can't control as much via the URL as you can via the Javascript API, but the URL approach is very simple and easy for common cases.
With both Tableau Server visualizations and Tableau desktop
visualizations, you can create URL actions, so that users can select
data and then cause HTTP GET requests to URLS that are based on info in the selected data.
If you have a data source that Tableau doesn't yet provide a driver
for (there are many including ODBC), then you can write a program
using their data extract API to extract data from your custom source
and make it available to Tableau. You can also publish that source to
Tableau server as frequently as needed to keep your visualizations
current.
If you have specialized functions on your database server, you can
access them from Tableau calculations using their SQL pass through
functions. You can also define a Tableau connection using arbitrary
custom SQL which gives you another place to insert customizations.
Version 8.1 added integration with R so you can call R scripts from
Tableau calculated fields.
Version 8.2 added a REST API to Tableau Server for administrative functions
Version 9.1 adds a Web Connector that is designed to let you provide custom code to connect to web accessible data sources
Version 10.1 Tableau added TabPy a local HTTP Python server that lets you execute Python functions from Tableau in the same way you can call R functions. The same hooks have now been extended to allow calls to Matlab functions.
There are also command line programs, tabcmd and tabadmin, that work with Tableau server that you can use to send commands to the server from your own scripts, but the REST API may be more convenient in many cases.
Tableau released several open source libraries, tools and examples at https://github.com/tableau One of these libraries, the document API, allows you to programmatically modify some attributes of Tableau workbook files.
Tableau released an extensions API in 2018 to allow developers to add custom functionality to Tableau dashboards.
Version 2019.3 adds a MetaData API using GraphQL to allow clients to query for information about the fields, types and attributes available in data sources published to Tableau Server's data catalog.
Hopefully, they'll continue to add additional APIs and integration hooks, but those are most of the options available now.
At present, Tableau does not support plug-ins and does not provide a general-purpose scripting language.
There is a currently an Idea on the Tableau website to add Ruby as a scripting language which may cover some of the functionality that is required. The Ideas section is regularly reviewed by Tableau's Product Management team and is the best way of suggesting new functionality for Tableau's products.