Table of Contents |
---|
THIS IS WORK IN PROGRESS AND CAN CHANGE ANY TIME
Overview
At the moment we are developing a simple plugin for odysseus.
...
You will need to provide the server-adress: e.g. with ws://localhost:8888/
ATM there are some shotcommings shortcommings that will be removed in future versions:
...
Code Block |
---|
We need a grafana plugin to be able to receive data from Odysseus. Note that the current state of the plugin is experimental. Wiki-Page: https://wiki.odysseus.informatik.uni-oldenburg.de/display/ODYSSEUS/Grafana Requirements: docker 1. build a docker image based on the dockerfile in this folder docker build . -t grafana 2. build and run a docker container based on the created image docker run -d -p 3000:3000 --name grafana grafana 3. open grafana in a browser localhost:3000 username: admin password: admin 4. Add an Odysseus datasource Requirements: Running Odysseus Server (or monolithic of course) Configuration -> Data Sources Select Others -> odysseus Server URI: ws://localhost:8888/ (REST-port of a (here local) odysseus server) Leave API Key empty 5. Create Dashboard Create -> Dashboard 6. Create Panel Requirements: * To visualize single datastream attributes, there must be an operator that provides only the current timestamp named "time" and that attribute * To easily find the operator, give him a proper name * Query(s) should be installed Tipps: a) At the end of the query, create for each attribute you want to visualize a projection on "time" and the attribute b) Grafana can display historical values but to show the results in real-time, the timestamps of the results should be set to the current time (necessary if you, e.g., read from a CSV file with old timestamps) 6.1. select your Odysseus datasource as datasource 6.2. you need a websocket that provides the data 6.3. open in a browser localhost:8888/queries to get information about all installed queries (in chrome it is not formatted; copy the content in, e.g., https://jsonformatter.curiousconcept.com/) 6.4. find the websocket in the json go to the query id of your query -> rootOperators -> go to the operator providing the data to visualize -> ports -> websockets -> copy the JSON uri 6.5. Insert the copied URI in grafana into the websocket field of the panel query 6.6. Click on apply and after that on save dashboard |
Development
See https://grafana.com/docs/grafana/latest/developers/plugins/
and https://grafana.com/docs/grafana/latest/developers/plugins/build-a-streaming-data-source-plugin/ for further information how to extend the current implementation.
Quick start.
- Install e.g. MS Code for development
- Install anything necessary for grafana plugin development
- create a folder named /grafana-plugins
- inside this folder clone the plugin
switch into plugin folder and run:
Code Block yarn install yarn dev
- now start grafana e.g. with
Code Block docker run -d -e GF_DEFAULT_APP_MODE=development -p 3000:3000 -v "$(pwd)"/grafana-plugins:/var/lib/grafana/plugins --name=grafana grafana/grafana:latest
If you change anything inside the plugin, grafana needs to be restart. You could create a script:
Code Block docker stop grafana docker rm grafana docker run -d -e GF_DEFAULT_APP_MODE=development -p 3333:3000 -v "$(pwd)"/grafana-plugins:/var/lib/grafana/plugins --name=grafana grafana/grafana:latest