Skip to content

Add Grafana module to Icinga Web role - #494

Open
0uLoL wants to merge 3 commits into
NETWAYS:mainfrom
0uLoL:feature/icingaweb2-grafana-277
Open

Add Grafana module to Icinga Web role#494
0uLoL wants to merge 3 commits into
NETWAYS:mainfrom
0uLoL:feature/icingaweb2-grafana-277

Conversation

@0uLoL

@0uLoL 0uLoL commented Aug 21, 2026

Copy link
Copy Markdown
Member

Closes #277

Summary

Adds Grafana module support to the icingaweb2 role.

  • Installs the NETWAYS icinga-grafana package
  • Requires the NETWAYS Extras repository
  • Configures config.ini and graphs.ini
  • Enables the module through the existing Icinga Web module workflow
  • Adds argument specifications, documentation and a changelog fragment

Testing

  • ansible-galaxy collection build --force
  • molecule test -s default
    • 25 tests passed

@Donien Donien left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a few things I'd like to see adjusted slightly.

Regarding its function, this PR looks good to me 👍🏻

Comment thread doc/role-icingaweb2/module-grafana.md
Comment on lines +28 to +37
config:
grafana:
host: grafana.example.org:3000
protocol: https
datasource: icinga-influxdb
accessmode: direct
graphs:
Load:
dashboarduid: icinga-load
panelId: "1,2,3"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here regarding UIDs. Also, datasource is the datasource type, e.g. influxdb or graphite.

How did you end up with accessmode: direct?
I only know of indirectproxy and iframe.

assert config.contains('host = "grafana.example.org:3000"')
assert config.contains('protocol = "https"')
assert config.contains('datasource = "icinga-influxdb"')
assert config.contains('accessmode = "direct"')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This accessmode probably needs to be changed as well.

assert config.contains('accessmode = "direct"')

assert graphs.is_file
assert graphs.contains("[Load]")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, please keep load in lowercase, simply to avoid confusion as to why the first letter is capitalized.


assert graphs.is_file
assert graphs.contains("[Load]")
assert graphs.contains('dashboarduid = "icinga-load"')

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use a real UID here instead of icinga-load (also, just to avoid confusion)

Co-authored-by: Donien <88634789+Donien@users.noreply.github.com>
@0uLoL
0uLoL force-pushed the feature/icingaweb2-grafana-277 branch from 69cf543 to 9d4fcc1 Compare August 24, 2026 07:43
@0uLoL
0uLoL force-pushed the feature/icingaweb2-grafana-277 branch from 9d4fcc1 to b5b9355 Compare August 24, 2026 07:49
@0uLoL
0uLoL requested a review from Donien August 24, 2026 08:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Grafana Module to icingaweb2 role

2 participants