* Fix link tags in deploy. * Add initial tooling for generating integrations.js file. * Skip integrations directory for eslint. * Add README to explain how to generate integrations.js locally. * Fix ID/name for top-level categories. * Deduplicate categories entries. * Properly render related resources information. * Warn on and skip bad references for related resources. * Add CI workflow to rebuild integrations as-needed. * Add integrations.js to build artifacts. * Fix actionlint complaints. * Assorted template fixes. * Add script to check collector metadata. * Add default categories for collectors when they have no categories. * Fix template formatting issues. * Link related resources properly. * Skip more sections in rendered output if they are not present in source data. * Temporarily skip config syntax section. It needs further work and is not critical at the moment. * Fix metrics table rendering. * Hide most overview content if method_description is empty. * Fix metrics table rendering (again). * Add detailed description to setup options section. * Fix detailed description handling for config options. * Fix config example folding logic. * Fix multi-instance selection. * Properly fix multi-instance selection. * Add titles for labels and metrics charts. * Include monitored instance name in integration ID. This is required to disambiguate some ‘virtual’ integrations. * Indicate if there are no alerts defined for an integration. * Fix multi-instance in template. * Improve warning handling in script and fix category handling. * Hide debug messages by default. * Fix invalid category name in cgroups plugin. * Completely fix invalid categories in cgroups plugin. * Warn about and ignore duplicate integration ids. * Flag integration type in integrations list. * Add configuration syntax samples. * Fix issues in gen_integrations.py * Validate categories.yaml on load. * Add support for handling deployment information. * Fix bugs in gen_integrations.py * Add code to handle exporters. * Add link to integrations pointing to their source files. * Fix table justification. * Add notification handling to script. Also tidy up a few other things. * Fix numerous bugs in gen_integrations.py * remove trailing space from deploy.yaml command * make availability one column * Switch back to multiple columns for availability. And also switch form +/- to a dot for positive and empty cell for negative. * Render setup description. * Fix platform info rendering in deploy integrations. * Fix sourcing of cloud-notifications metadata. * Fix rendering of empty metrics. * Fix alerts template. * Add per-instance templating for templated keys. * Fix go plugin links. * Fix overview template. * Fix handling of exporters. * Fix loading of cloud notification integrations. * Always show full collector overview. * Add static troubleshooting content when appropriate. * Assorted deploy integration updates. * Add initial copy of integrations.js. --------- Co-authored-by: Fotis Voutsas <fotis@netdata.cloud>
1.4 KiB
This directory contains templates used to generate the integrations.js
file.
Templating is done using Jinja2 as a templating engine. Full documentation can be found at https://jinja.palletsprojects.com/en/ (the ‘Template Designer Documentation’ is the relevant part for people looking to edit the templates, it’s not linked directly here to avoid embedding version numbers in the links).
The particular instance of Jinja2 used has the following configuration differences from the defaults:
- Any instances of curly braces in are replaced with square brackets
(so instead of
{{ variable }}
, the syntax used here is[[ variable ]]
. This is done so that templating commands for the frontend can be included without having to do any special escaping for them. trim_blocks
andlstrip_blocks
are both enabled, meaning that the first newline after a block will be removed, as will any leading whitespace on the same line as a block.
Each markdown template corresponds to the key of the same name in the
integrations objects in that file. Those templates get passed the
integration data using the name entry
, plus the composed related
resource data using the name rel_res
.
The integrations.js
template is used to compose the final file. It gets
passed the JSON-formatted category and integration data using the names
categories
and integrations
respectively.