Heimdall
Heimdall, all-seeing and all-hearing
General behaviour
Heimdall is a scheduler application based on cron and http calls to Cloudflare's API.
Setting your organizationId, Heimdall retrieve all the zones configured in you account and get the metrics to collect.
Setting up the environment
Environment variables
export CLOUDFLARE_ORG_ID=<YOUR ORGANIZATION ID>\
export CLOUDFLARE_EMAIL=<YOUR EMAIL>\
export CLOUDFLARE_TOKEN=<YOUR TOKEN>\
export CONFIG_PATH=<CONFIGURATION FILE PATH>
this variables are required for the correct working of Heimdall
{
"collect_every_minutes" : "5",
"graphite_config": {
"host": "graphite.company.com",
"port": 2113
}
}
collect_every_minutes: mean that the metrics will be taken every interval defined.
eg.: 5 meaning: every 5th minute for the last 5 minute
graphite_config: is the configuration required to connect to your graphite host in order to push the metrics.
Setting up in kubernetes
Create the secrets as specified deployment file deployment example
{
"collect_every_minutes" : "5",
"graphite_config": {
"host": "graphite.company.com",
"port": 2113
},
"kubernetes": {
"management_port": "8888"
}
}
kubernetes is used to expose management ports used by liveness and readiness probes.
How to contribute to Heimdall
Did you find a bug?
- Ensure the bug was not already reported by searching on GitHub under Heimdall board.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
Did you write a patch that fixes a bug?
- Open a new GitHub pull request with the patch.
- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
Do you intend to add a new feature or change an existing one?
Do you have questions about the source code?
Grafana

This is an example of dashboard created using the data collected with Heimdall.
You can find the dashboard configuration at the following link cloudflare-dashboard.json.