grafana-agent

Grafana Agent

  • Canonical Observability
Channel Revision Published Runs on
latest/stable 335 21 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/stable 332 21 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/stable 334 21 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/stable 333 21 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/stable 319 07 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/candidate 368 21 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/candidate 365 21 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/candidate 367 21 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/candidate 366 21 Jan 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/candidate 319 10 Dec 2024
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/beta 390 21 Jan 2025
Ubuntu 22.04 Ubuntu 20.04
latest/beta 389 21 Jan 2025
Ubuntu 22.04 Ubuntu 20.04
latest/beta 391 21 Jan 2025
Ubuntu 22.04 Ubuntu 20.04
latest/beta 386 21 Jan 2025
Ubuntu 22.04 Ubuntu 20.04
latest/edge 407 Yesterday
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 406 Yesterday
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 405 Yesterday
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 404 Yesterday
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 356 10 Dec 2024
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
juju deploy grafana-agent --channel edge
Show information

Platform:

Ubuntu
24.04 22.04 20.04

The grafana-agent charm has two limitations:

  1. Only one instance of the charm should be related to each application.
  2. Only one instance should run per machine.

Failing to enforce these constraints can lead to configuration conflicts and errors.

When applications allow multiple relations with different instances of grafana-agent (e.g., ga-one and ga-two), or several instances of grafana-agent are running in the same machine, several issues can arise:

  1. Single service and config file: Even if multiple grafana-agent charms are related, only one service and one configuration file are installed on the machine, overwritten by all related charms.

  2. Conflicting confinement settings: If different grafana-agent instances use different confinement types (classic vs strict), the snap will apply only one type, potentially causing inconsistencies.

  3. Errors when removing relations: Removing a relation may uninstall the grafana-agent snap entirely, leaving other related charms in an error state as they attempt to manage a service that no longer exists.

More information about this, can be found in this post.

Recommended Implementation and Safeguards

  • Applications should use a limit in their metadata.yaml / charmcraft.yaml to restrict relations to only one instance of grafana-agent.

      cos-agent:
        interface: cos_agent
        limit: 1
    
  • Ensure that only one grafana-agent instance runs per machine to avoid configuration conflicts and unexpected behaviour.

  • Two probes (in draft state right now) can be executed in order to verify whether only one grafana-agent is related to a charm or only one grafana-agent deployed in a machine:

    juju export-bundle | ./probe_bundle.py
    juju status --format=yaml | ./probe_status.py
    

Following these practices ensures stable and predictable deployments in production environments.