how does grafana work by ploting graphs at regular intervals - grafana

i'm new to Grafana i want information regarding the back end operation of Grafana,how it works using java script?and how the graph will plot continuously at regular time_interval

The Grafana docs has some of information you are looking for.
Reg the internal working.
Taking example of graph panel.
A service called timeSrv broadcasts a refresh event depending on the timer set on the dashboard.
This request is caught at several places in grafana. The one we are interested in is MetricsPanelCtrl which is a parent of the graph panel.
From there it issues a call to the data-source query method, which will fetch the data.
Once the data has been recieved, it emits a 'data-received' event, with is caught and handled by the graph panel controller to render the graph.

Related

Can I plot a graph showing the number of simultaneosly raised alerts in Grafana?

Can I handle the alerting information or statistic to plot my custom graphs, showing how many alerts we have now in the whole Grafana? Can it be accesses as some kind of internal datasource to be used for graph plotting (may be not documented and used for the internal needs, but still accessible)?

flutter bar charts show live data fetched from webpage

I want to plot bar charts to show live data fetched from webpage.
I have managed to get response from webpage in json format then convert it to List and plot the data, but it doesn't get refreshed.
There are 3 ways to achieve this.
Make self-calling a future method that calls itself until the screen is disposed of.
Create socket and listeners every time update data. You can listen to change and update the pie chart. Same as a real-time chat application.
You can use firebase's real-time database for this solution.Every time data update in schema,Application will state recalls via streams automatically

Track data for my own action dimension in Matomo (without custom dimensions plugin)

I need to track some user activity like special clicks, scrolls, and mouse drags, combined with the data I get from the website's back-end.
At first I did it using custom events and created a plugin to read them and generate the reports. But events have their own limitations (like number of archived table rows, ...) and did not fit my use case. Besides events get shown on other reports and views and I don't want to clutter them by my too many events which do not have any meaning out of my plugin's reports.
Using the custom dimensions plugin would not work for me. It is limited and I want to develop and publish my own plugin to my customers.
So I created my own action dimensions.
My plugin works well with the action dimensions I added, and can receive the data from user's activity if I use my previous custom events to send the data. But I don't know how to send my tracking data to it without using events.
I searched for it in Matomo forum, just found some similar questions beening unanswered for a long time.
So my main question is:
How I can send the data of user actions to my plugin's dimension without using events?
Also, am I on the right track? Is creating my own action dimension the correct way to do it?

Tableau Live Connection Action Filters

I have a dashboard that uses live data connection in order to extract the data, based on custom SQL with embedded parameters (The complete data is too heavy to extract).
This dashboard contains Action Filters.
When I load the dashboard, the data is being refreshed due to the live connection.
After this refresh, I want to interact with the action filters without triggering the live connection extract.
Although I choose "Pause Automatic Updates" the data source keeps being refreshed after every filter action.
Is there a way to stop those refreshes entirely while interacting with the action filters?
What do you mean by 'too heavy to extract?' will an incremental refresh alleviate some of the load on the extract?
In my experience, action filters work best with data extracted to Tableau Server.

Map Widgets recibing data from different Context Brokers and the workspace tabs

In my Wire Cloud mashup I want to use two different maps, each maps get data from a different operator and each operator consult a different instance of ORION context broker.
When I put this two operators and the two maps in differents workspaces, this components work fine. If I put all this components in the same mashup and the same tab, also works fine. In this two cases, I recieve the data from the context broker, the operator send this data adapted for the map and this one represent the data perfectly.
My problem occurs when I put these operators and maps in the same mashup but in different tab each one. In this case i always obtain the following error:
Exception catched while processing an event that reached the "notiCAM" input endpoint fdcae15cbdc8.js:775
log fdcae15cbdc8.js:775
propagate fdcae15cbdc8.js:853
_notifyLoaded fdcae15cbdc8.js:744
After many hours trying to fix this case, I canĀ“t find why this maps and operators does not work in this third case, is someone in this same situation? which solution worked in your case?
thanks
P.D: For my maps im using google maps API
I'm assuming you're not using the "Map Viewer" widget available on the FI-LAB store.
The problem seems to be related to the way your map widget handles incoming events. Take into account that:
Widgets are loaded when the tab where they are located is displayed or when a first event arrives on any of their input endpoints
Any event arriving on an input endpoint of an unloaded widget/operator gets queued until that widget/operator is fully loaded
WireCloud assumes widget/operators are fully loaded by capturing the "load" event of their iframe
The Google Map API is usually loaded asynchronously, making your widget unable to manage those incoming events until that API get ready (some time after the load event).
Currently, the only viable solution is to buffer events arriving on the "notiCAM" endpoint after the load event but before the google maps api is loaded, handling them just when that api notifies you that it's ready.