Skip to main content

Balena Application

Grafana 9 Language grade: JavaScript CI codecov Balena

Introduction

The Balena Application plugin for Grafana allows to display device information and manage services using Balena Supervisor API.

Application

Requirements

  • Grafana 9.0+ is required.

Getting Started

The Balena application is not included in the Grafana Marketplace. It can be installed manually from our Private Repository or downloaded directly from the GitHub repository:

grafana-cli --repo https://volkovlabs.io/plugins plugins install volkovlabs-balena-app

balenaCloud

Our custom Grafana build with the Balena Application plugin can be deployed directly to balenaCloud:

Deploy with balena

We recommend to add it to your docker-compose.yml together with NGINX reverse proxy (example configuration in the repository):

version: "2.1"

services:
grafana:
image: ghcr.io/volkovlabs/balena-app:latest
network_mode: host
restart: always
labels:
io.balena.features.supervisor-api: "1"
volumes:
- grafana-data:/var/lib/grafana

nginx:
build:
context: ./nginx
dockerfile: Dockerfile
network_mode: host
restart: always
depends_on:
- grafana

volumes:
grafana-data:

Default Grafana username and password is admin/admin.

You can learn more about balena Labels in the Documentation.

Features

  • Allows to display device, release information and service logs using Balena Supervisor API.
  • Provides Services Panel to start, stop, restart Containers.
  • Allows to filter Logs using Regex pattern.
  • Requires Confirmation to restart all Services and reboot the device.

Balena Supervisor

The balena Supervisor is balena's agent that runs on devices. Its main role is to ensure your app is running, and keep communications with the balenaCloud API server.

The Supervisor has its own set of APIs providing means for services to communicate and execute some special actions that affect the host OS or the services itself.

Provisioning

Grafana supports managing data sources by adding one or more YAML config files in the provisioning/datasources folder.

Example of provisioning the Balena Supervisor Data Source.

datasources:
- name: API
type: volkovlabs-balenasupervisor-datasource
uid: P9E471951A1B4106C
jsonData:
url: ${BALENA_SUPERVISOR_ADDRESS}
secureJsonData:
apiKey: ${BALENA_SUPERVISOR_API_KEY}

Feedback

We love to hear from users, developers, and the whole community interested in this plugin. These are various ways to get in touch with us:

  • Ask a question, request a new feature, and file a bug with GitHub issues.
  • Star the repository to show your support.

License

  • Apache License Version 2.0, see LICENSE.