defaults = { 'apt': { 'packages': { 'telegraf': {}, }, 'sources': { 'deb https://repos.influxdata.com/debian {release} stable', }, }, 'telegraf': { 'config': { 'agent': { 'hostname': node.name, 'collection_jitter': '0s', 'flush_interval': '10s', 'flush_jitter': '0s', 'interval': '15s', 'metric_batch_size': 1000, 'metric_buffer_limit': 10000, 'omit_hostname': False, 'round_interval': True, }, 'inputs': { 'cpu': [{ 'collect_cpu_time': False, 'percpu': True, 'report_active': False, 'totalcpu': True, }], 'disk': [{ 'ignore_fs': [ 'tmpfs', 'devtmpfs', 'devfs', 'iso9660', 'overlay', 'aufs', 'squashfs', ], }], 'procstat': [{ 'interval': '1m', 'pattern': '.', 'fieldpass': [ 'cpu_usage', 'memory_rss', ], }], 'diskio': [{}], 'kernel': [{}], 'mem': [{}], 'processes': [{}], 'swap': [{}], 'system': [{}], 'net': [{}], }, }, }, 'grafana_rows': { 'cpu', 'mem', 'disk_io', 'disk_usage', 'net_io', 'proc_cpu', 'proc_ram', }, } @metadata_reactor.provides( 'telegraf/config/outputs/influxdb_v2', ) def influxdb(metadata): influxdb_metadata = repo.get_node(metadata.get('telegraf/influxdb_node')).metadata.get('influxdb') return { 'telegraf': { 'config': { 'outputs': { 'influxdb_v2': [{ 'urls': [f"http://{influxdb_metadata['hostname']}:{influxdb_metadata['port']}"], 'token': str(influxdb_metadata['writeonly_token']), 'organization': influxdb_metadata['org'], 'bucket': influxdb_metadata['bucket'], }] }, }, }, }