Menu

Raspberry Pi integration for Grafana Cloud

The Raspberry Pi integration for Grafana Cloud uses the agent to collect metrics related to the operating system (Linux-based), including aspects like CPU usage, load average, memory usage, and disk and networking I/O. It also supports system logs being scraped by the agent using promtail.

This integration includes eight useful alerts and two pre-built dashboards to help monitor and visualize your Raspberry Pi metrics and logs.

Install Raspberry Pi integration for Grafana Cloud

  1. In your Grafana instance, click Integrations and Connections (lightning bolt icon)
  2. Navigate to the Raspberry Pi tile and review the prerequisites. Then click Install integration.
  3. Once the integration is installed, follow the steps on the Configuration Details page to setup Grafana Agent and start sending Raspberry Pi metrics to your Grafana Cloud instance.

Post-install configuration for the Raspberry Pi integration

If you want to show logs and metrics signals correlated in your dashboards, ensure the following:

  • job and instance label values must match for node_exporter integration config under metrics and logs.
  • job label must be set to integrations/raspberrypi-node both for the integration and log scrapes.
  • instance label must be set to a value that uniquely identifies your Raspberry Pi node. Replace the default hostname value according to your environment. Note that if you use localhost for multiple nodes, the dashboards will not be able to filter correctly by instance.

Note: Ensure each deployed Grafana Agent has a configuration that matches the node it is deployed to.

Refer to the following preferred agent configuration example, with logs collected from systemd:

integrations:
  node_exporter:
    enabled: true
    relabel_configs:
    - replacement: hostname
      target_label: instance
    - replacement: integrations/raspberrypi-node
      target_label: job

logs:
  configs:
  - name: integrations
    scrape_configs:
    - job_name: integrations/node_exporter_journal_scrape
      journal:
        max_age: 24h
        labels:
          instance: hostname
          job: integrations/raspberrypi-node
      relabel_configs:
      - source_labels: ['__journal__systemd_unit']
        target_label: 'unit'
      - source_labels: ['__journal__boot_id']
        target_label: 'boot_id'
      - source_labels: ['__journal__transport']
        target_label: 'transport'
      - source_labels: ['__journal_priority_keyword']
        target_label: 'level'

If systemd is not an option, you can scrape log files instead:

integrations:
  node_exporter:
    enabled: true
    relabel_configs:
    - replacement: hostname
      target_label: instance
    - replacement: integrations/raspberrypi-node
      target_label: job

logs:
  configs:
  - name: integrations
    scrape_configs:
    - job_name: integrations/node_exporter_direct_scrape
      static_configs:
      - targets:
        - localhost
        labels:
          instance: hostname
          __path__: /var/log/{syslog,messages,*.log}
          job: integrations/raspberrypi-node

Dashboards

The Raspberry Pi integration installs the following dashboards in your Grafana Cloud instance to help monitor your metrics.

  • Node Exporter / Raspberry

Raspberry Pi overview

image

Raspberry Pi logs

image

Alerts

This integration includes the following useful alerts:

Group: node-exporter

AlertDescription
NodeFilesystemAlmostOutOfSpaceWarning: Filesystem has less than 5% space left.
NodeFilesystemAlmostOutOfSpaceCritical: Filesystem has less than 3% space left.
NodeFilesystemFilesFillingUpWarning: Filesystem is predicted to run out of inodes within the next 24 hours.
NodeFilesystemFilesFillingUpCritical: Filesystem is predicted to run out of inodes within the next 4 hours.
NodeFilesystemAlmostOutOfFilesWarning: Filesystem has less than 5% inodes left.
NodeFilesystemAlmostOutOfFilesCritical: Filesystem has less than 3% inodes left.
NodeNetworkReceiveErrsWarning: Network interface is reporting many receive errors.
NodeNetworkTransmitErrsWarning: Network interface is reporting many transmit errors.

Metrics

The following metrics are automatically written to your Grafana Cloud instance by connecting your Raspberry Pi instance through this integration:

  • node_cpu_seconds_total
  • node_disk_io_time_seconds_total
  • node_disk_io_time_weighted_seconds_total
  • node_disk_read_bytes_total
  • node_disk_written_bytes_total
  • node_filesystem_avail_bytes
  • node_filesystem_files
  • node_filesystem_files_free
  • node_filesystem_readonly
  • node_filesystem_size_bytes
  • node_load1
  • node_load15
  • node_load5
  • node_memory_Buffers_bytes
  • node_memory_Cached_bytes
  • node_memory_MemAvailable_bytes
  • node_memory_MemFree_bytes
  • node_memory_MemTotal_bytes
  • node_memory_Slab_bytes
  • node_network_receive_bytes_total
  • node_network_receive_drop_total
  • node_network_receive_errs_total
  • node_network_receive_packets_total
  • node_network_transmit_bytes_total
  • node_network_transmit_drop_total
  • node_network_transmit_errs_total
  • node_network_transmit_packets_total
  • node_uname_info
  • node_vmstat_pgmajfault

Changelog

# 0.0.1 - September 2022

* Initial release

Cost

By connecting your Raspberry Pi instance to Grafana Cloud you might incur charges. To view information on the number of active series that your Grafana Cloud account uses for metrics included in each Cloud tier, see Active series and dpm usage and Cloud tier pricing.