I want to display those images depending on the time range selector of Grafana together with other recorded data like temperatures etc.
Images are stored on a local drive which can be made accessible through a webserver.
I found this discussion here, but it does not really solve my problem:
What is the best way to archive this? I could store the appropriate image file location in postgres and maybe even store the whole images as binary data in the database. But I would prefer a way to load them via the web server using the file timestamp, since loading images from postgres would be not too easy…
Base64 Image/PDF plugins seems to be a good choice. If I got it right, the plugin will be able to render the raw data coming from postgresql. With this solution, I will store the image data inside the database.
I think, you probably meant Dynamic Image panel plugin? Dynamic text plugin does not seem to have the right functionality. Using it, I will store the image on the file system and only put the reference to the file on postgresql. Dynamic Image will be able to render the right image depending on the selected time interval, right (reading the corresponding filename from postgres)?
@sebastianebert Correct, Base64 Image/PDF was created exactly for that. You are welcome to ask any questions or suggest improvements on the GitHub repository.
The Dynamic Image panel may work in your case. I suggested Dynamic Text panel which can retrieve the reference to the file from the Postgres database and then you can simply use HTML or markdown to display it from the webserver:
As you can see, there are multiple options to achieve what you are looking for and this is the beauty of Grafana.
Kudos to @mikhailvolkov but I would prefer solution from Grafana first. Problem with 3rd party plugins is that they may work now, but they may not work in the future (or when new major Grafana version with some new UI feature/change is released).
I would use standard Grafana table panel with Cell display mode: Image, e.g.:
I dealt a bit with Grafana’s table and image displaying.
I assume your image is not displaying there cause it’s missing the base64 header.
To display images with table you need this : data:image/jpeg;base64,
written just before the rest of your encoded image.
That’s how my encoded image is written in the table.
Hope it helps.