Monitor raspberry device

I’m new with info-beamer and using the hosted version. Using a raspberry pi 3b+ and have installed the info-beamer OS there.

I want to monitor my raspberry device using “datadog”, and for that I need to run a bit of code on the terminal. But it seems it’s not allowed. Probably on purpose, but is there any way to install datadog anyway?

The info-beamer OS doesn’t use Raspbian, so you can’t install programs the depend on apt-get or similar infrastructure usually available. What kind of information are you interested in gathering on the device?

The OS was designed to not require detailed on-device monitoring as most of the common issues are handled automatically. You don’t have to monitor available disk space for example, as that’s completely handled by the OS: It will remove old cached content if space runs low automatically.

On the other hand, info-beamer hosted already gathers a few metrics and makes them available internally. If you enable [x] advanced/developer options on the account page, you’ll get four graphs on each device page showing fps, load, temperature and mem usage of the info-beamer process. These values are also available through the API.

For individual device realtime metrics, the device sensor API can be used to query live information from a device.

For monitoring overall device uptime/availability: Recently a Device Check API was added that can be queries by systems like nagios or similar pull based monitoring solutions.

Maybe one of those helps? If not, it should also be possible to wrap any kind of event gathering daemon into its own package service and install it on a device that way.

1 Like

Thanks for the clear and extended answer. I’m aware of all the metrics that are available by default, and while this does show essential data, we would still like to manage all our devices in one platform like Datadog. Instead of having to use info-beamer just for a few of our devices.

The package service seems like a solution, but is there any step by step tutorial how to implement this? It seems like a heavy roundabout way to execute just one line of code. It seems like info-beamer limits my device, like it’s basically owned and controlled by info-beamer now. I have almost no rights in terms of the command line. Or am I missing something?

That’s not what how that is going to work. Sorry for not making that clear. You still won’t be able to run the installation script, as most likely none of the dependencies exists and they also can’t be installed using anything that expects a normal Raspbian environment. info-beamer OS is a complete custom OS and there is no way to install any OS level tools like you normally would because the complete OS is managed by info-beamer itself. Everything is completely rewritten during system upgrades or configuration changes for example.

The package service mechanism is a way to run almost any kind of additional programs in a controlled and reproducible environment and is guaranteed to survive random power loss or even complete file system corruption.

That’s the point of the OS. You don’t need anything extra and the OS is intended to be installed once by unzipping the file. Users of info-beamer should never have to touch their installation again once it’s set up that way. System updates, storage management, problem notifications (like SD card problems) and self repairs in case of random SD card corruption are handled completely automated.

The way you might integrate datadog would be to bundle everything required to submit metrics within some program. I briefly looked at the API and it seems this might work with a smallish Python program that submits measured metrics to their HTTPS endpoint. What kind of metrics do you intend to record? And also why? Because there’s not really a lot to manage, because that would mean that info-beamer OS failed to do its job.

As for package services: Essentially you would create a new package with an additional file named service. This file can be a shell script, Python script or also something like a statically linked go binary that is then started automatically once its assigned to a device. is an example package that shows how that might work. Overall it’s a bit of work.

1 Like