diff --git a/schemas/1-9-7-with-ports.json b/schemas/1-9-7-with-ports.json index e92982d..8428e77 100644 --- a/schemas/1-9-7-with-ports.json +++ b/schemas/1-9-7-with-ports.json @@ -1,7537 +1,8768 @@ { - "fluent-bit": { - "version": "1.9.7", - "schema_version": "1", - "os": "linux" + "fluent-bit": { + "version": "1.9.7", + "schema_version": "1", + "os": "linux" + }, + "customs": [ + { + "type": "custom", + "name": "calyptia", + "description": "Calyptia Cloud", + "properties": { + "options": [ + { + "name": "api_key", + "description": "Calyptia Cloud API Key.", + "default": null, + "type": "string" + }, + { + "name": "store_path", + "description": "", + "default": null, + "type": "string" + }, + { + "name": "calyptia_host", + "description": "", + "default": null, + "type": "string" + }, + { + "name": "calyptia_port", + "description": "", + "default": null, + "type": "string" + }, + { + "name": "calyptia_tls", + "description": "", + "default": "true", + "type": "boolean" + }, + { + "name": "calyptia_tls.verify", + "description": "", + "default": "true", + "type": "boolean" + }, + { + "name": "add_label", + "description": "Label to append to the generated metric.", + "default": null, + "type": "space delimited strings (minimum 1)" + }, + { + "name": "machine_id", + "description": "Custom machine_id to be used when registering agent", + "default": null, + "type": "string" + } + ] + } + } + ], + "inputs": [ + { + "type": "input", + "name": "cpu", + "description": "CPU Usage", + "properties": { + "options": [ + { + "name": "pid", + "description": "Configure a single process to measure usage via their PID", + "default": "-1", + "type": "integer" + }, + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (sub seconds)", + "default": "0", + "type": "integer" + } + ] + } }, - "customs": [ - { - "type": "custom", - "name": "calyptia", - "description": "Calyptia Cloud", - "properties": { - "options": [ - { - "name": "api_key", - "description": "Calyptia Cloud API Key.", - "default": null, - "type": "string" - }, - { - "name": "store_path", - "description": "", - "default": null, - "type": "string" - }, - { - "name": "calyptia_host", - "description": "", - "default": null, - "type": "string" - }, - { - "name": "calyptia_port", - "description": "", - "default": null, - "type": "string" - }, - { - "name": "calyptia_tls", - "description": "", - "default": "true", - "type": "boolean" - }, - { - "name": "calyptia_tls.verify", - "description": "", - "default": "true", - "type": "boolean" - }, - { - "name": "add_label", - "description": "Label to append to the generated metric.", - "default": null, - "type": "space delimited strings (minimum 1)" - }, - { - "name": "machine_id", - "description": "Custom machine_id to be used when registering agent", - "default": null, - "type": "string" - } - ] - } - } - ], - "inputs": [ - { - "type": "input", - "name": "cpu", - "description": "CPU Usage", - "properties": { - "options": [ - { - "name": "pid", - "description": "Configure a single process to measure usage via their PID", - "default": "-1", - "type": "integer" - }, - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (sub seconds)", - "default": "0", - "type": "integer" - } - ] - } - }, - { - "type": "input", + { + "type": "input", + "name": "mem", + "description": "Memory Usage", + "properties": { + "options": [ + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (subseconds)", + "default": "0", + "type": "integer" + }, + { + "name": "pid", + "description": "Set the PID of the process to measure", + "default": "0", + "type": "integer" + } + ] + } + }, + { + "type": "input", + "name": "thermal", + "description": "Thermal", + "properties": { + "options": [ + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (nanoseconds)", + "default": "0", + "type": "integer" + }, + { + "name": "name_regex", + "description": "Set thermal name regular expression filter", + "default": null, + "type": "string" + }, + { + "name": "type_regex", + "description": "Set thermal type regular expression filter", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "kmsg", + "description": "Kernel Log Buffer", + "properties": { + "options": [] + } + }, + { + "type": "input", + "name": "proc", + "description": "Check Process health", + "properties": { + "options": [ + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (nanoseconds)", + "default": "0", + "type": "integer" + }, + { + "name": "alert", + "description": "Only generate alerts if process is down", + "default": "false", + "type": "boolean" + }, + { "name": "mem", - "description": "Memory Usage", - "properties": { - "options": [ - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (subseconds)", - "default": "0", - "type": "integer" - }, - { - "name": "pid", - "description": "Set the PID of the process to measure", - "default": "0", - "type": "integer" - } - ] - } - }, - { - "type": "input", - "name": "thermal", - "description": "Thermal", - "properties": { - "options": [ - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (nanoseconds)", - "default": "0", - "type": "integer" - }, - { - "name": "name_regex", - "description": "Set thermal name regular expression filter", - "default": null, - "type": "string" - }, - { - "name": "type_regex", - "description": "Set thermal type regular expression filter", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "kmsg", - "description": "Kernel Log Buffer", - "properties": { - "options": [] - } - }, - { - "type": "input", - "name": "proc", - "description": "Check Process health", - "properties": { - "options": [ - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (nanoseconds)", - "default": "0", - "type": "integer" - }, - { - "name": "alert", - "description": "Only generate alerts if process is down", - "default": "false", - "type": "boolean" - }, - { - "name": "mem", - "description": "Append memory usage to record", - "default": "true", - "type": "boolean" - }, - { - "name": "fd", - "description": "Append fd count to record", - "default": "true", - "type": "boolean" - }, - { - "name": "proc_name", - "description": "Define process name to health check", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "disk", - "description": "Diskstats", - "properties": { - "options": [ - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (nanoseconds)", - "default": "0", - "type": "integer" - }, - { - "name": "dev_name", - "description": "Set the device name", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "systemd", - "description": "Systemd (Journal) reader", - "properties": { - "options": [ - { - "name": "path", - "description": "Set the systemd journal path", - "default": null, - "type": "string" - }, - { - "name": "max_fields", - "description": "Set the maximum fields per notification", - "default": "8000", - "type": "integer" - }, - { - "name": "max_entries", - "description": "Set the maximum entries per notification", - "default": "5000", - "type": "integer" - }, - { - "name": "systemd_filter_type", - "description": "Set the systemd filter type to either 'and' or 'or'", - "default": null, - "type": "string" - }, - { - "name": "systemd_filter", - "description": "Add a systemd filter, can be set multiple times", - "default": null, - "type": "string" - }, - { - "name": "read_from_tail", - "description": "Read the journal from the end (tail)", - "default": "false", - "type": "boolean" - }, - { - "name": "lowercase", - "description": "Lowercase the fields", - "default": "false", - "type": "boolean" - }, - { - "name": "strip_underscores", - "description": "Strip undersecores from fields", - "default": "false", - "type": "boolean" - }, - { - "name": "db.sync", - "description": "Set the database sync mode: extra, full, normal or off", - "default": null, - "type": "string" - }, - { - "name": "db", - "description": "Set the database path", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "netif", - "description": "Network Interface Usage", - "properties": { - "options": [ - { - "name": "interface", - "description": "Set the interface, eg: eth0 or enp1s0", - "default": null, - "type": "string" - }, - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (nanoseconds)", - "default": "0", - "type": "integer" - }, - { - "name": "verbose", - "description": "Enable verbosity", - "default": "false", - "type": "boolean" - }, - { - "name": "test_at_init", - "description": "Testing interface at initialization", - "default": "false", - "type": "boolean" - } - ] - } - }, - { - "type": "input", - "name": "docker", - "description": "Docker containers metrics", - "properties": { - "options": [ - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (nanoseconds)", - "default": "0", - "type": "integer" - }, - { - "name": "include", - "description": "A space-separated list of containers to include", - "default": null, - "type": "string" - }, - { - "name": "exclude", - "description": "A space-separated list of containers to exclude", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "docker_events", - "description": "Docker events", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - }, - { - "name": "unix_path", - "description": "Define Docker unix socket path to read events", - "default": "/var/run/docker.sock", - "type": "string" - }, - { - "name": "buffer_size", - "description": "Set buffer size to read events", - "default": "8k", - "type": "size" - }, - { - "name": "parser", - "description": "Optional parser for records, if not set, records are packages under 'key'", - "default": null, - "type": "string" - }, - { - "name": "key", - "description": "Set the key name to store unparsed Docker events", - "default": "message", - "type": "string" - }, - { - "name": "reconnect.retry_limits", - "description": "Maximum number to retry to connect docker socket", - "default": "5", - "type": "integer" - }, - { - "name": "reconnect.retry_interval", - "description": "Retry interval to connect docker socket", - "default": "1", - "type": "integer" - } - ] - } - }, - { - "type": "input", - "name": "node_exporter_metrics", - "description": "Node Exporter Metrics (Prometheus Compatible)", - "properties": { - "options": [ - { - "name": "scrape_interval", - "description": "scrape interval to collect metrics from the node.", - "default": "5", - "type": "time" - }, - { - "name": "path.procfs", - "description": "procfs mount point", - "default": "/proc", - "type": "string" - }, - { - "name": "path.sysfs", - "description": "sysfs mount point", - "default": "/sys", - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "fluentbit_metrics", - "description": "Fluent Bit internal metrics", - "properties": { - "options": [ - { - "name": "scrape_interval", - "description": "scrape interval to collect the internal metrics of Fluent Bit.", - "default": "2", - "type": "time" - }, - { - "name": "scrape_on_start", - "description": "scrape metrics upon start, useful to avoid waiting for 'scrape_interval' for the first round of metrics.", - "default": "false", - "type": "boolean" - } - ] - } - }, - { - "type": "input", - "name": "prometheus_scrape", - "description": "Scrape metrics from Prometheus Endpoint", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - }, - { - "name": "scrape_interval", - "description": "Scraping interval.", - "default": "10s", - "type": "time" - }, - { - "name": "metrics_path", - "description": "Set the metrics URI endpoint, it must start with a forward slash.", - "default": "/metrics", - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "tail", - "description": "Tail files", - "properties": { - "options": [ - { - "name": "path", - "description": "pattern specifying log files or multiple ones through the use of common wildcards.", - "default": null, - "type": "multiple comma delimited strings" - }, - { - "name": "exclude_path", - "description": "Set one or multiple shell patterns separated by commas to exclude files matching a certain criteria, e.g: 'exclude_path *.gz,*.zip'", - "default": null, - "type": "multiple comma delimited strings" - }, - { - "name": "key", - "description": "when a message is unstructured (no parser applied), it's appended as a string under the key name log. This option allows to define an alternative name for that key.", - "default": "log", - "type": "string" - }, - { - "name": "read_from_head", - "description": "For new discovered files on start (without a database offset/position), read the content from the head of the file, not tail.", - "default": "false", - "type": "boolean" - }, - { - "name": "refresh_interval", - "description": "interval to refresh the list of watched files expressed in seconds.", - "default": "60", - "type": "string" - }, - { - "name": "watcher_interval", - "description": "", - "default": "2s", - "type": "time" - }, - { - "name": "rotate_wait", - "description": "specify the number of extra time in seconds to monitor a file once is rotated in case some pending data is flushed.", - "default": "5", - "type": "time" - }, - { - "name": "docker_mode", - "description": "If enabled, the plugin will recombine split Docker log lines before passing them to any parser as configured above. This mode cannot be used at the same time as Multiline.", - "default": "false", - "type": "boolean" - }, - { - "name": "docker_mode_flush", - "description": "wait period time in seconds to flush queued unfinished split lines.", - "default": "4", - "type": "integer" - }, - { - "name": "docker_mode_parser", - "description": "specify the parser name to fetch log first line for muliline log", - "default": null, - "type": "string" - }, - { - "name": "path_key", - "description": "set the 'key' name where the name of monitored file will be appended.", - "default": null, - "type": "string" - }, - { - "name": "offset_key", - "description": "set the 'key' name where the offset of monitored file will be appended.", - "default": null, - "type": "string" - }, - { - "name": "ignore_older", - "description": "ignore records older than 'ignore_older'. Supports m,h,d (minutes, hours, days) syntax. Default behavior is to read all records. Option only available when a Parser is specified and it can parse the time of a record.", - "default": "0", - "type": "time" - }, - { - "name": "buffer_chunk_size", - "description": "set the initial buffer size to read data from files. This value is used too to increase buffer size.", - "default": "32768", - "type": "size" - }, - { - "name": "buffer_max_size", - "description": "set the limit of the buffer size per monitored file. When a buffer needs to be increased (e.g: very long lines), this value is used to restrict how much the memory buffer can grow. If reading a file exceed this limit, the file is removed from the monitored file list.", - "default": "32768", - "type": "size" - }, - { - "name": "static_batch_size", - "description": "On start, Fluent Bit might process files which already contains data, these files are called 'static' files. The configuration property in question set's the maximum number of bytes to process per iteration for the static files monitored.", - "default": "50M", - "type": "size" - }, - { - "name": "skip_long_lines", - "description": "if a monitored file reach it buffer capacity due to a very long line (buffer_max_size), the default behavior is to stop monitoring that file. This option alter that behavior and instruct Fluent Bit to skip long lines and continue processing other lines that fits into the buffer.", - "default": "false", - "type": "boolean" - }, - { - "name": "exit_on_eof", - "description": "exit Fluent Bit when reaching EOF on a monitored file.", - "default": "false", - "type": "boolean" - }, - { - "name": "skip_empty_lines", - "description": "Allows to skip empty lines.", - "default": "false", - "type": "boolean" - }, - { - "name": "inotify_watcher", - "description": "set to false to use file stat watcher instead of inotify.", - "default": "true", - "type": "boolean" - }, - { - "name": "parser", - "description": "specify the parser name to process an unstructured message.", - "default": null, - "type": "string" - }, - { - "name": "tag_regex", - "description": "set a regex to extract fields from the file name and use them later to compose the Tag.", - "default": null, - "type": "string" - }, - { - "name": "db", - "description": "set a database file to keep track of monitored files and it offsets.", - "default": null, - "type": "string" - }, - { - "name": "db.sync", - "description": "set a database sync method. values: extra, full, normal and off.", - "default": "normal", - "type": "string" - }, - { - "name": "db.locking", - "description": "set exclusive locking mode, increase performance but don't allow external connections to the database file.", - "default": "false", - "type": "boolean" - }, - { - "name": "db.journal_mode", - "description": "Option to provide WAL configuration for Work Ahead Logging mechanism (WAL). Enabling WAL provides higher performance. Note that WAL is not compatible with shared network file systems.", - "default": "WAL", - "type": "string" - }, - { - "name": "multiline", - "description": "if enabled, the plugin will try to discover multiline messages and use the proper parsers to compose the outgoing messages. Note that when this option is enabled the Parser option is not used.", - "default": "false", - "type": "boolean" - }, - { - "name": "multiline_flush", - "description": "wait period time in seconds to process queued multiline messages.", - "default": "4", - "type": "time" - }, - { - "name": "parser_firstline", - "description": "name of the parser that matches the beginning of a multiline message. Note that the regular expression defined in the parser must include a group name (named capture).", - "default": null, - "type": "string" - }, - { - "name": "parser_", - "description": "optional extra parser to interpret and structure multiline entries. This option can be used to define multiple parsers, e.g: Parser_1 ab1, Parser_2 ab2, Parser_N abN.", - "default": null, - "type": "prefixed string" - }, - { - "name": "multiline.parser", - "description": "specify one or multiple multiline parsers: docker, cri, go, java, etc.", - "default": null, - "type": "multiple comma delimited strings" - } - ] - } - }, - { - "type": "input", - "name": "dummy", - "description": "Generate dummy data", - "properties": { - "options": [ - { - "name": "samples", - "description": "set a number of times to generate event.", - "default": "0", - "type": "integer" - }, - { - "name": "dummy", - "description": "set the sample record to be generated. It should be a JSON object.", - "default": "{\"message\":\"dummy\"}", - "type": "string" - }, - { - "name": "rate", - "description": "set a number of events per second.", - "default": "1", - "type": "integer" - }, - { - "name": "start_time_sec", - "description": "set a dummy base timestamp in seconds.", - "default": "-1", - "type": "integer" - }, - { - "name": "start_time_nsec", - "description": "set a dummy base timestamp in nanoseconds.", - "default": "-1", - "type": "integer" - }, - { - "name": "fixed_timestamp", - "description": "used a fixed timestamp, allows the message to pre-generated once.", - "default": "off", - "type": "boolean" - } - ] - } - }, - { - "type": "input", - "name": "dummy_thread", - "description": "Generate dummy data in a separate thread", - "properties": { - "options": [ - { - "name": "message", - "description": "Define dummy message", - "default": "thready dummy", - "type": "string" - }, - { - "name": "samples", - "description": "Define the number of samples to send", - "default": "1000000", - "type": "integer" - } - ] - } - }, - { - "type": "input", - "name": "head", - "description": "Head Input", - "properties": { - "options": [ - { - "name": "file", - "description": "Set the file", - "default": null, - "type": "string" - }, - { - "name": "key", - "description": "Set the record key", - "default": "head", - "type": "string" - }, - { - "name": "buf_size", - "description": "Set the read buffer size", - "default": "256", - "type": "integer" - }, - { - "name": "split_line", - "description": "generate key/value pair per line", - "default": "false", - "type": "boolean" - }, - { - "name": "lines", - "description": "Line number to read", - "default": "0", - "type": "integer" - }, - { - "name": "add_path", - "description": "append filepath to records", - "default": "false", - "type": "boolean" - }, - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (nanoseconds)", - "default": "0", - "type": "integer" - } - ] - } - }, - { - "type": "input", - "name": "health", - "description": "Check TCP server health", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - }, - { - "name": "alert", - "description": "Only generate records when the port is down", - "default": "false", - "type": "boolean" - }, - { - "name": "add_host", - "description": "Append hostname to each record", - "default": "false", - "type": "boolean" - }, - { - "name": "add_port", - "description": "Append port to each record", - "default": "false", - "type": "boolean" - }, - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (nanoseconds)", - "default": "0", - "type": "integer" - } - ] - } - }, - { - "type": "input", - "name": "http", - "description": "HTTP", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - }, - { - "name": "buffer_max_size", - "description": "", - "default": "4M", - "type": "size" - }, - { - "name": "buffer_chunk_size", - "description": "", - "default": "512K", - "type": "size" - }, - { - "name": "tag_key", - "description": "", - "default": null, - "type": "string" - }, - { - "name": "successful_response_code", - "description": "Set successful response code. 200, 201 and 204 are supported.", - "default": "201", - "type": "integer" - } - ] - } - }, - { - "type": "input", - "name": "collectd", - "description": "collectd input plugin", - "properties": { - "options": [ - { - "name": "typesdb", - "description": "Set the types database filename", - "default": "/usr/share/collectd/types.db", - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "statsd", - "description": "StatsD input plugin", - "properties": { - "options": [] - } - }, - { - "type": "input", - "name": "opentelemetry", - "description": "OpenTelemetry", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - }, - { - "name": "buffer_max_size", - "description": "", - "default": "4M", - "type": "size" - }, - { - "name": "buffer_chunk_size", - "description": "", - "default": "512K", - "type": "size" - }, - { - "name": "tag_key", - "description": "", - "default": null, - "type": "string" - }, - { - "name": "successful_response_code", - "description": "Set successful response code. 200, 201 and 204 are supported.", - "default": "201", - "type": "integer" - } - ] - } - }, - { - "type": "input", - "name": "nginx_metrics", - "description": "Nginx status metrics", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - }, - { - "name": "status_url", - "description": "Define URL of stub status handler", - "default": "/status", - "type": "string" - }, - { - "name": "nginx_plus", - "description": "Turn on NGINX plus mode", - "default": "true", - "type": "boolean" - } - ] - } - }, - { - "type": "input", - "name": "serial", - "description": "Serial input", - "properties": { - "options": [ - { - "name": "file", - "description": "Set the serial character device file name", - "default": null, - "type": "string" - }, - { - "name": "bitrate", - "description": "Set the serial bitrate (baudrate)", - "default": null, - "type": "string" - }, - { - "name": "separator", - "description": "Set the record separator", - "default": null, - "type": "string" - }, - { - "name": "format", - "description": "Set the serial format: json or none", - "default": null, - "type": "string" - }, - { - "name": "min_bytes", - "description": "Set the serial minimum bytes", - "default": "0", - "type": "integer" - } - ] - } - }, - { - "type": "input", - "name": "stdin", - "description": "Standard Input", - "properties": { - "options": [ - { - "name": "parser", - "description": "Set and use a fluent-bit parser", - "default": null, - "type": "string" - }, - { - "name": "buffer_size", - "description": "Set the read buffer size", - "default": null, - "type": "size" - } - ] - } - }, - { - "type": "input", - "name": "syslog", - "description": "Syslog", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - }, - { - "name": "mode", - "description": "Set the socket mode: unix_tcp, unix_udp, tcp or udp", - "default": null, - "type": "string" - }, - { - "name": "path", - "description": "Set the path for the UNIX socket", - "default": null, - "type": "string" - }, - { - "name": "unix_perm", - "description": "Set the permissions for the UNIX socket", - "default": null, - "type": "string" - }, - { - "name": "buffer_chunk_size", - "description": "Set the buffer chunk size", - "default": "32768", - "type": "size" - }, - { - "name": "buffer_max_size", - "description": "Set the buffer chunk size", - "default": null, - "type": "size" - }, - { - "name": "parser", - "description": "Set the parser", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "exec", - "description": "Exec Input", - "properties": { - "options": [ - { - "name": "command", - "description": "Set the command to execute", - "default": null, - "type": "string" - }, - { - "name": "parser", - "description": "Set a parser", - "default": null, - "type": "string" - }, - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (nanoseconds)", - "default": "0", - "type": "integer" - }, - { - "name": "buf_size", - "description": "Set the buffer size", - "default": "4096", - "type": "size" - }, - { - "name": "oneshot", - "description": "execute the command only once", - "default": "false", - "type": "boolean" - } - ] - } - }, - { - "type": "input", - "name": "tcp", - "description": "TCP", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - }, - { - "name": "format", - "description": "Set the format: json or none", - "default": null, - "type": "string" - }, - { - "name": "separator", - "description": "Set separator", - "default": null, - "type": "string" - }, - { - "name": "chunk_size", - "description": "Set the chunk size", - "default": null, - "type": "string" - }, - { - "name": "buffer_size", - "description": "Set the buffer size", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "input", - "name": "mqtt", - "description": "MQTT, listen for Publish messages", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - } - ] - } - }, - { - "type": "input", - "name": "lib", - "description": "Library mode Input", - "properties": {} - }, - { - "type": "input", - "name": "forward", - "description": "Fluentd in-forward", - "properties": { - "options": [ - { - "name": "listen", - "description": "listen address for incoming connections", - "default": "0.0.0.0", - "type": "string" - }, - { - "name": "port", - "description": "port for incoming connections", - "default": null, - "type": "integer" - }, - { - "name": "tag_prefix", - "description": "Prefix incoming tag with the defined value.", - "default": null, - "type": "string" - }, - { - "name": "unix_path", - "description": "The path to unix socket to receive a Forward message.", - "default": null, - "type": "string" - }, - { - "name": "unix_perm", - "description": "Set the permissions for the UNIX socket", - "default": null, - "type": "string" - }, - { - "name": "buffer_chunk_size", - "description": "The buffer memory size used to receive a Forward message.", - "default": "1024000", - "type": "size" - }, - { - "name": "buffer_max_size", - "description": "The maximum buffer memory size used to receive a Forward message.", - "default": "6144000", - "type": "size" - } - ] - } - }, - { - "type": "input", - "name": "random", - "description": "Random", - "properties": { - "options": [ - { - "name": "samples", - "description": "Number of samples to send, -1 for infinite", - "default": "-1", - "type": "integer" - }, - { - "name": "interval_sec", - "description": "Set the collector interval", - "default": "1", - "type": "integer" - }, - { - "name": "interval_nsec", - "description": "Set the collector interval (sub seconds)", - "default": "0", - "type": "integer" - } - ] - } - } - ], - "filters": [ - { - "type": "filter", - "name": "alter_size", - "description": "Alter incoming chunk size", - "properties": { - "options": [ - { - "name": "add", - "description": "add N records to the chunk", - "default": "0", - "type": "integer" - }, - { - "name": "remove", - "description": "remove N records from the chunk", - "default": "0", - "type": "integer" - } - ] - } - }, - { - "type": "filter", - "name": "aws", - "description": "Add AWS Metadata", - "properties": { - "options": [ - { - "name": "imds_version", - "description": "Specifies which version of the EC2 instance metadata service will be used: 'v1' or 'v2'. 'v2' may not work if you run Fluent Bit in a container.", - "default": "v2", - "type": "string" - }, - { - "name": "az", - "description": "Enable EC2 instance availability zone", - "default": "true", - "type": "boolean" - }, - { - "name": "ec2_instance_id", - "description": "Enable EC2 instance ID", - "default": "true", - "type": "boolean" - }, - { - "name": "ec2_instance_type", - "description": "Enable EC2 instance type", - "default": "false", - "type": "boolean" - }, - { - "name": "private_ip", - "description": "Enable EC2 instance private IP", - "default": "false", - "type": "boolean" - }, - { - "name": "vpc_id", - "description": "Enable EC2 instance VPC ID", - "default": "false", - "type": "boolean" - }, - { - "name": "ami_id", - "description": "Enable EC2 instance Image ID", - "default": "false", - "type": "boolean" - }, - { - "name": "account_id", - "description": "Enable EC2 instance Account ID", - "default": "false", - "type": "boolean" - }, - { - "name": "hostname", - "description": "Enable EC2 instance hostname", - "default": "false", - "type": "boolean" - } - ] - } - }, - { - "type": "filter", - "name": "checklist", - "description": "Check records and flag them", - "properties": { - "options": [ - { - "name": "file", - "description": "Specify the file that contains the patterns to lookup.", - "default": null, - "type": "string" - }, - { - "name": "mode", - "description": "Set the check mode: 'exact' or 'partial'.", - "default": "exact", - "type": "string" - }, - { - "name": "print_query_time", - "description": "Print to stdout the elapseed query time for every matched record", - "default": "false", - "type": "boolean" - }, - { - "name": "ignore_case", - "description": "Compare strings by ignoring case.", - "default": "false", - "type": "boolean" - }, - { - "name": "lookup_key", - "description": "Name of the key to lookup.", - "default": "log", - "type": "string" - }, - { - "name": "record", - "description": "Name of record key to add and its value, it accept two values,e.g 'record mykey my val'. You can add many 'record' entries as needed.", - "default": null, - "type": "space delimited strings (minimum 2)" - } - ] - } - }, - { - "type": "filter", - "name": "record_modifier", - "description": "modify record", - "properties": { - "options": [ - { - "name": "record", - "description": "Append fields. This parameter needs key and value pair.", - "default": null, - "type": "space delimited strings (minimum 2)" - }, - { - "name": "remove_key", - "description": "If the key is matched, that field is removed.", - "default": null, - "type": "string" - }, - { - "name": "allowlist_key", - "description": "If the key is not matched, that field is removed.", - "default": null, - "type": "string" - }, - { - "name": "whitelist_key", - "description": "(Alias of allowlist_key)", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "filter", - "name": "throttle", - "description": "Throttle messages using sliding window algorithm", - "properties": { - "options": [ - { - "name": "rate", - "description": "Set throttle rate", - "default": "1", - "type": "double" - }, - { - "name": "window", - "description": "Set throttle window", - "default": "5", - "type": "integer" - }, - { - "name": "print_status", - "description": "Set whether or not to print status information", - "default": "false", - "type": "boolean" - }, - { - "name": "interval", - "description": "Set the slide interval", - "default": "1", - "type": "string" - } - ] - } - }, - { - "type": "filter", - "name": "type_converter", - "description": "Data type converter", - "properties": { - "options": [ - { - "name": "int_key", - "description": "Convert integer to other type. e.g. int_key id id_str string", - "default": null, - "type": "space delimited strings (minimum 3)" - }, - { - "name": "uint_key", - "description": "Convert unsinged integer to other type. e.g. uint_key id id_str string", - "default": null, - "type": "space delimited strings (minimum 3)" - }, - { - "name": "float_key", - "description": "Convert float to other type. e.g. float_key ratio id_str string", - "default": null, - "type": "space delimited strings (minimum 3)" - }, - { - "name": "str_key", - "description": "Convert string to other type. e.g. str_key id id_val integer", - "default": null, - "type": "space delimited strings (minimum 3)" - } - ] - } - }, - { - "type": "filter", - "name": "kubernetes", - "description": "Filter to append Kubernetes metadata", - "properties": { - "options": [ - { - "name": "buffer_size", - "description": "buffer size to receive response from API server", - "default": "32K", - "type": "size" - }, - { - "name": "tls.debug", - "description": "set TLS debug level: 0 (no debug), 1 (error), 2 (state change), 3 (info) and 4 (verbose)", - "default": "0", - "type": "integer" - }, - { - "name": "tls.verify", - "description": "enable or disable verification of TLS peer certificate", - "default": "true", - "type": "boolean" - }, - { - "name": "tls.vhost", - "description": "set optional TLS virtual host", - "default": null, - "type": "string" - }, - { - "name": "merge_log", - "description": "merge 'log' key content as individual keys", - "default": "false", - "type": "boolean" - }, - { - "name": "merge_parser", - "description": "specify a 'parser' name to parse the 'log' key content", - "default": null, - "type": "string" - }, - { - "name": "merge_log_key", - "description": "set the 'key' name where the content of 'key' will be placed. Only used if the option 'merge_log' is enabled", - "default": null, - "type": "string" - }, - { - "name": "merge_log_trim", - "description": "remove ending '\\n' or '\\r' characters from the log content", - "default": "true", - "type": "boolean" - }, - { - "name": "keep_log", - "description": "keep original log content if it was successfully parsed and merged", - "default": "true", - "type": "boolean" - }, - { - "name": "kube_url", - "description": "Kubernetes API server URL", - "default": "https://kubernetes.default.svc", - "type": "string" - }, - { - "name": "kube_meta_preload_cache_dir", - "description": "set directory with metadata files", - "default": null, - "type": "string" - }, - { - "name": "kube_ca_file", - "description": "Kubernetes TLS CA file", - "default": "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt", - "type": "string" - }, - { - "name": "kube_ca_path", - "description": "Kubernetes TLS ca path", - "default": null, - "type": "string" - }, - { - "name": "kube_tag_prefix", - "description": "prefix used in tag by the input plugin", - "default": "kube.var.log.containers.", - "type": "string" - }, - { - "name": "kube_token_file", - "description": "Kubernetes authorization token file", - "default": "/var/run/secrets/kubernetes.io/serviceaccount/token", - "type": "string" - }, - { - "name": "kube_token_command", - "description": "command to get Kubernetes authorization token", - "default": null, - "type": "string" - }, - { - "name": "labels", - "description": "include Kubernetes labels on every record", - "default": "true", - "type": "boolean" - }, - { - "name": "annotations", - "description": "include Kubernetes annotations on every record", - "default": "true", - "type": "boolean" - }, - { - "name": "k8s-logging.parser", - "description": "allow Pods to suggest a parser", - "default": "false", - "type": "boolean" - }, - { - "name": "k8s-logging.exclude", - "description": "allow Pods to exclude themselves from the logging pipeline", - "default": "false", - "type": "boolean" - }, - { - "name": "use_journal", - "description": "use Journald (Systemd) mode", - "default": "false", - "type": "boolean" - }, - { - "name": "regex_parser", - "description": "optional regex parser to extract metadata from container name or container log file name", - "default": null, - "type": "string" - }, - { - "name": "dummy_meta", - "description": "use 'dummy' metadata, do not talk to API server", - "default": "false", - "type": "boolean" - }, - { - "name": "dns_retries", - "description": "dns lookup retries N times until the network start working", - "default": "6", - "type": "integer" - }, - { - "name": "dns_wait_time", - "description": "dns interval between network status checks", - "default": "30", - "type": "time" - }, - { - "name": "cache_use_docker_id", - "description": "fetch K8s meta when docker_id is changed", - "default": "false", - "type": "boolean" - }, - { - "name": "use_tag_for_meta", - "description": "use tag associated to retrieve metadata instead of kube-server", - "default": "false", - "type": "boolean" - }, - { - "name": "use_kubelet", - "description": "use kubelet to get metadata instead of kube-server", - "default": "false", - "type": "boolean" - }, - { - "name": "kubelet_host", - "description": "kubelet host to connect with when using kubelet", - "default": "127.0.0.1", - "type": "string" - }, - { - "name": "kubelet_port", - "description": "kubelet port to connect with when using kubelet", - "default": "10250", - "type": "integer" - }, - { - "name": "kube_token_ttl", - "description": "kubernetes token ttl, until it is reread from the token file. Default: 10m", - "default": "10m", - "type": "time" - }, - { - "name": "kube_meta_cache_ttl", - "description": "configurable TTL for K8s cached metadata. By default, it is set to 0 which means TTL for cache entries is disabled and cache entries are evicted at random when capacity is reached. In order to enable this option, you should set the number to a time interval. For example, set this value to 60 or 60s and cache entries which have been created more than 60s will be evicted", - "default": "0", - "type": "time" - } - ] - } - }, - { - "type": "filter", - "name": "modify", - "description": "modify records by applying rules", - "properties": { - "options": [ - { - "name": "Set", - "description": "Add a key/value pair with key KEY and value VALUE. If KEY already exists, this field is overwritten.", - "default": null, - "type": "string" - }, - { - "name": "Add", - "description": "Add a key/value pair with key KEY and value VALUE if KEY does not exist", - "default": null, - "type": "string" - }, - { - "name": "Remove", - "description": "Remove a key/value pair with key KEY if it exists", - "default": null, - "type": "string" - }, - { - "name": "Remove_wildcard", - "description": "Remove all key/value pairs with key matching wildcard KEY", - "default": null, - "type": "string" - }, - { - "name": "Remove_regex", - "description": "Remove all key/value pairs with key matching regexp KEY", - "default": null, - "type": "string" - }, - { - "name": "Rename", - "description": "Rename a key/value pair with key KEY to RENAMED_KEY if KEY exists AND RENAMED_KEY does not exist", - "default": null, - "type": "string" - }, - { - "name": "Hard_Rename", - "description": "Rename a key/value pair with key KEY to RENAMED_KEY if KEY exists. If RENAMED_KEY already exists, this field is overwritten", - "default": null, - "type": "string" - }, - { - "name": "Copy", - "description": "Copy a key/value pair with key KEY to COPIED_KEY if KEY exists AND COPIED_KEY does not exist", - "default": null, - "type": "string" - }, - { - "name": "Hard_copy", - "description": "Copy a key/value pair with key KEY to COPIED_KEY if KEY exists. If COPIED_KEY already exists, this field is overwritten", - "default": null, - "type": "string" - }, - { - "name": "Condition", - "description": "Set the condition to modify. Key_exists, Key_does_not_exist, A_key_matches, No_key_matches, Key_value_equals, Key_value_does_not_equal, Key_value_matches, Key_value_does_not_match, Matching_keys_have_matching_values and Matching_keys_do_not_have_matching_values are supported.", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "filter", + "description": "Append memory usage to record", + "default": "true", + "type": "boolean" + }, + { + "name": "fd", + "description": "Append fd count to record", + "default": "true", + "type": "boolean" + }, + { + "name": "proc_name", + "description": "Define process name to health check", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "disk", + "description": "Diskstats", + "properties": { + "options": [ + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (nanoseconds)", + "default": "0", + "type": "integer" + }, + { + "name": "dev_name", + "description": "Set the device name", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "systemd", + "description": "Systemd (Journal) reader", + "properties": { + "options": [ + { + "name": "path", + "description": "Set the systemd journal path", + "default": null, + "type": "string" + }, + { + "name": "max_fields", + "description": "Set the maximum fields per notification", + "default": "8000", + "type": "integer" + }, + { + "name": "max_entries", + "description": "Set the maximum entries per notification", + "default": "5000", + "type": "integer" + }, + { + "name": "systemd_filter_type", + "description": "Set the systemd filter type to either 'and' or 'or'", + "default": null, + "type": "string" + }, + { + "name": "systemd_filter", + "description": "Add a systemd filter, can be set multiple times", + "default": null, + "type": "string" + }, + { + "name": "read_from_tail", + "description": "Read the journal from the end (tail)", + "default": "false", + "type": "boolean" + }, + { + "name": "lowercase", + "description": "Lowercase the fields", + "default": "false", + "type": "boolean" + }, + { + "name": "strip_underscores", + "description": "Strip undersecores from fields", + "default": "false", + "type": "boolean" + }, + { + "name": "db.sync", + "description": "Set the database sync mode: extra, full, normal or off", + "default": null, + "type": "string" + }, + { + "name": "db", + "description": "Set the database path", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "netif", + "description": "Network Interface Usage", + "properties": { + "options": [ + { + "name": "interface", + "description": "Set the interface, eg: eth0 or enp1s0", + "default": null, + "type": "string" + }, + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (nanoseconds)", + "default": "0", + "type": "integer" + }, + { + "name": "verbose", + "description": "Enable verbosity", + "default": "false", + "type": "boolean" + }, + { + "name": "test_at_init", + "description": "Testing interface at initialization", + "default": "false", + "type": "boolean" + } + ] + } + }, + { + "type": "input", + "name": "docker", + "description": "Docker containers metrics", + "properties": { + "options": [ + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (nanoseconds)", + "default": "0", + "type": "integer" + }, + { + "name": "include", + "description": "A space-separated list of containers to include", + "default": null, + "type": "string" + }, + { + "name": "exclude", + "description": "A space-separated list of containers to exclude", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "docker_events", + "description": "Docker events", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + }, + { + "name": "unix_path", + "description": "Define Docker unix socket path to read events", + "default": "/var/run/docker.sock", + "type": "string" + }, + { + "name": "buffer_size", + "description": "Set buffer size to read events", + "default": "8k", + "type": "size" + }, + { + "name": "parser", + "description": "Optional parser for records, if not set, records are packages under 'key'", + "default": null, + "type": "string" + }, + { + "name": "key", + "description": "Set the key name to store unparsed Docker events", + "default": "message", + "type": "string" + }, + { + "name": "reconnect.retry_limits", + "description": "Maximum number to retry to connect docker socket", + "default": "5", + "type": "integer" + }, + { + "name": "reconnect.retry_interval", + "description": "Retry interval to connect docker socket", + "default": "1", + "type": "integer" + } + ] + } + }, + { + "type": "input", + "name": "node_exporter_metrics", + "description": "Node Exporter Metrics (Prometheus Compatible)", + "properties": { + "options": [ + { + "name": "scrape_interval", + "description": "scrape interval to collect metrics from the node.", + "default": "5", + "type": "time" + }, + { + "name": "path.procfs", + "description": "procfs mount point", + "default": "/proc", + "type": "string" + }, + { + "name": "path.sysfs", + "description": "sysfs mount point", + "default": "/sys", + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "fluentbit_metrics", + "description": "Fluent Bit internal metrics", + "properties": { + "options": [ + { + "name": "scrape_interval", + "description": "scrape interval to collect the internal metrics of Fluent Bit.", + "default": "2", + "type": "time" + }, + { + "name": "scrape_on_start", + "description": "scrape metrics upon start, useful to avoid waiting for 'scrape_interval' for the first round of metrics.", + "default": "false", + "type": "boolean" + } + ] + } + }, + { + "type": "input", + "name": "prometheus_scrape", + "description": "Scrape metrics from Prometheus Endpoint", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + }, + { + "name": "scrape_interval", + "description": "Scraping interval.", + "default": "10s", + "type": "time" + }, + { + "name": "metrics_path", + "description": "Set the metrics URI endpoint, it must start with a forward slash.", + "default": "/metrics", + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "tail", + "description": "Tail files", + "properties": { + "options": [ + { + "name": "path", + "description": "pattern specifying log files or multiple ones through the use of common wildcards.", + "default": null, + "type": "multiple comma delimited strings" + }, + { + "name": "exclude_path", + "description": "Set one or multiple shell patterns separated by commas to exclude files matching a certain criteria, e.g: 'exclude_path *.gz,*.zip'", + "default": null, + "type": "multiple comma delimited strings" + }, + { + "name": "key", + "description": "when a message is unstructured (no parser applied), it's appended as a string under the key name log. This option allows to define an alternative name for that key.", + "default": "log", + "type": "string" + }, + { + "name": "read_from_head", + "description": "For new discovered files on start (without a database offset/position), read the content from the head of the file, not tail.", + "default": "false", + "type": "boolean" + }, + { + "name": "refresh_interval", + "description": "interval to refresh the list of watched files expressed in seconds.", + "default": "60", + "type": "string" + }, + { + "name": "watcher_interval", + "description": "", + "default": "2s", + "type": "time" + }, + { + "name": "rotate_wait", + "description": "specify the number of extra time in seconds to monitor a file once is rotated in case some pending data is flushed.", + "default": "5", + "type": "time" + }, + { + "name": "docker_mode", + "description": "If enabled, the plugin will recombine split Docker log lines before passing them to any parser as configured above. This mode cannot be used at the same time as Multiline.", + "default": "false", + "type": "boolean" + }, + { + "name": "docker_mode_flush", + "description": "wait period time in seconds to flush queued unfinished split lines.", + "default": "4", + "type": "integer" + }, + { + "name": "docker_mode_parser", + "description": "specify the parser name to fetch log first line for muliline log", + "default": null, + "type": "string" + }, + { + "name": "path_key", + "description": "set the 'key' name where the name of monitored file will be appended.", + "default": null, + "type": "string" + }, + { + "name": "offset_key", + "description": "set the 'key' name where the offset of monitored file will be appended.", + "default": null, + "type": "string" + }, + { + "name": "ignore_older", + "description": "ignore records older than 'ignore_older'. Supports m,h,d (minutes, hours, days) syntax. Default behavior is to read all records. Option only available when a Parser is specified and it can parse the time of a record.", + "default": "0", + "type": "time" + }, + { + "name": "buffer_chunk_size", + "description": "set the initial buffer size to read data from files. This value is used too to increase buffer size.", + "default": "32768", + "type": "size" + }, + { + "name": "buffer_max_size", + "description": "set the limit of the buffer size per monitored file. When a buffer needs to be increased (e.g: very long lines), this value is used to restrict how much the memory buffer can grow. If reading a file exceed this limit, the file is removed from the monitored file list.", + "default": "32768", + "type": "size" + }, + { + "name": "static_batch_size", + "description": "On start, Fluent Bit might process files which already contains data, these files are called 'static' files. The configuration property in question set's the maximum number of bytes to process per iteration for the static files monitored.", + "default": "50M", + "type": "size" + }, + { + "name": "skip_long_lines", + "description": "if a monitored file reach it buffer capacity due to a very long line (buffer_max_size), the default behavior is to stop monitoring that file. This option alter that behavior and instruct Fluent Bit to skip long lines and continue processing other lines that fits into the buffer.", + "default": "false", + "type": "boolean" + }, + { + "name": "exit_on_eof", + "description": "exit Fluent Bit when reaching EOF on a monitored file.", + "default": "false", + "type": "boolean" + }, + { + "name": "skip_empty_lines", + "description": "Allows to skip empty lines.", + "default": "false", + "type": "boolean" + }, + { + "name": "inotify_watcher", + "description": "set to false to use file stat watcher instead of inotify.", + "default": "true", + "type": "boolean" + }, + { + "name": "parser", + "description": "specify the parser name to process an unstructured message.", + "default": null, + "type": "string" + }, + { + "name": "tag_regex", + "description": "set a regex to extract fields from the file name and use them later to compose the Tag.", + "default": null, + "type": "string" + }, + { + "name": "db", + "description": "set a database file to keep track of monitored files and it offsets.", + "default": null, + "type": "string" + }, + { + "name": "db.sync", + "description": "set a database sync method. values: extra, full, normal and off.", + "default": "normal", + "type": "string" + }, + { + "name": "db.locking", + "description": "set exclusive locking mode, increase performance but don't allow external connections to the database file.", + "default": "false", + "type": "boolean" + }, + { + "name": "db.journal_mode", + "description": "Option to provide WAL configuration for Work Ahead Logging mechanism (WAL). Enabling WAL provides higher performance. Note that WAL is not compatible with shared network file systems.", + "default": "WAL", + "type": "string" + }, + { "name": "multiline", - "description": "Concatenate multiline messages", - "properties": { - "options": [ - { - "name": "debug_flush", - "description": "enable debugging for concatenation flush to stdout", - "default": "false", - "type": "boolean" - }, - { - "name": "buffer", - "description": "Enable buffered mode. In buffered mode, the filter can concatenate multilines from inputs that ingest records one by one (ex: Forward), rather than in chunks, re-emitting them into the beggining of the pipeline using the in_emitter instance. With buffer off, this filter will not work with most inputs, except tail.", - "default": "true", - "type": "boolean" - }, - { - "name": "mode", - "description": "Mode can be 'parser' for regex concat, or 'partial_message' to concat split docker logs.", - "default": "parser", - "type": "string" - }, - { - "name": "flush_ms", - "description": "Flush time for pending multiline records", - "default": "2000", - "type": "integer" - }, - { - "name": "multiline.parser", - "description": "specify one or multiple multiline parsers: docker, cri, go, java, etc.", - "default": null, - "type": "multiple comma delimited strings" - }, - { - "name": "multiline.key_content", - "description": "specify the key name that holds the content to process.", - "default": null, - "type": "string" - }, - { - "name": "emitter_name", - "description": "", - "default": null, - "type": "string" - }, - { - "name": "emitter_storage.type", - "description": "", - "default": "memory", - "type": "string" - }, - { - "name": "emitter_mem_buf_limit", - "description": "set a memory buffer limit to restrict memory usage of emitter", - "default": "10M", - "type": "size" - } - ] - } - }, - { - "type": "filter", - "name": "nest", - "description": "nest events by specified field values", - "properties": { - "options": [ - { - "name": "Operation", - "description": "Select the operation nest or lift", - "default": null, - "type": "string" - }, - { - "name": "Wildcard", - "description": "Nest records which field matches the wildcard", - "default": null, - "type": "string" - }, - { - "name": "Nest_under", - "description": "Nest records matching the Wildcard under this key", - "default": null, - "type": "string" - }, - { - "name": "Nested_under", - "description": "Lift records nested under the Nested_under key", - "default": null, - "type": "string" - }, - { - "name": "Add_prefix", - "description": "Prefix affected keys with this string", - "default": null, - "type": "string" - }, - { - "name": "Remove_prefix", - "description": "Remove prefix from affected keys if it matches this string", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "filter", + "description": "if enabled, the plugin will try to discover multiline messages and use the proper parsers to compose the outgoing messages. Note that when this option is enabled the Parser option is not used.", + "default": "false", + "type": "boolean" + }, + { + "name": "multiline_flush", + "description": "wait period time in seconds to process queued multiline messages.", + "default": "4", + "type": "time" + }, + { + "name": "parser_firstline", + "description": "name of the parser that matches the beginning of a multiline message. Note that the regular expression defined in the parser must include a group name (named capture).", + "default": null, + "type": "string" + }, + { + "name": "parser_", + "description": "optional extra parser to interpret and structure multiline entries. This option can be used to define multiple parsers, e.g: Parser_1 ab1, Parser_2 ab2, Parser_N abN.", + "default": null, + "type": "prefixed string" + }, + { + "name": "multiline.parser", + "description": "specify one or multiple multiline parsers: docker, cri, go, java, etc.", + "default": null, + "type": "multiple comma delimited strings" + } + ] + } + }, + { + "type": "input", + "name": "dummy", + "description": "Generate dummy data", + "properties": { + "options": [ + { + "name": "samples", + "description": "set a number of times to generate event.", + "default": "0", + "type": "integer" + }, + { + "name": "dummy", + "description": "set the sample record to be generated. It should be a JSON object.", + "default": "{\"message\":\"dummy\"}", + "type": "string" + }, + { + "name": "rate", + "description": "set a number of events per second.", + "default": "1", + "type": "integer" + }, + { + "name": "start_time_sec", + "description": "set a dummy base timestamp in seconds.", + "default": "-1", + "type": "integer" + }, + { + "name": "start_time_nsec", + "description": "set a dummy base timestamp in nanoseconds.", + "default": "-1", + "type": "integer" + }, + { + "name": "fixed_timestamp", + "description": "used a fixed timestamp, allows the message to pre-generated once.", + "default": "off", + "type": "boolean" + } + ] + } + }, + { + "type": "input", + "name": "dummy_thread", + "description": "Generate dummy data in a separate thread", + "properties": { + "options": [ + { + "name": "message", + "description": "Define dummy message", + "default": "thready dummy", + "type": "string" + }, + { + "name": "samples", + "description": "Define the number of samples to send", + "default": "1000000", + "type": "integer" + } + ] + } + }, + { + "type": "input", + "name": "head", + "description": "Head Input", + "properties": { + "options": [ + { + "name": "file", + "description": "Set the file", + "default": null, + "type": "string" + }, + { + "name": "key", + "description": "Set the record key", + "default": "head", + "type": "string" + }, + { + "name": "buf_size", + "description": "Set the read buffer size", + "default": "256", + "type": "integer" + }, + { + "name": "split_line", + "description": "generate key/value pair per line", + "default": "false", + "type": "boolean" + }, + { + "name": "lines", + "description": "Line number to read", + "default": "0", + "type": "integer" + }, + { + "name": "add_path", + "description": "append filepath to records", + "default": "false", + "type": "boolean" + }, + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (nanoseconds)", + "default": "0", + "type": "integer" + } + ] + } + }, + { + "type": "input", + "name": "health", + "description": "Check TCP server health", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + }, + { + "name": "alert", + "description": "Only generate records when the port is down", + "default": "false", + "type": "boolean" + }, + { + "name": "add_host", + "description": "Append hostname to each record", + "default": "false", + "type": "boolean" + }, + { + "name": "add_port", + "description": "Append port to each record", + "default": "false", + "type": "boolean" + }, + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (nanoseconds)", + "default": "0", + "type": "integer" + } + ] + } + }, + { + "type": "input", + "name": "http", + "description": "HTTP", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + }, + { + "name": "buffer_max_size", + "description": "", + "default": "4M", + "type": "size" + }, + { + "name": "buffer_chunk_size", + "description": "", + "default": "512K", + "type": "size" + }, + { + "name": "tag_key", + "description": "", + "default": null, + "type": "string" + }, + { + "name": "successful_response_code", + "description": "Set successful response code. 200, 201 and 204 are supported.", + "default": "201", + "type": "integer" + } + ] + } + }, + { + "type": "input", + "name": "collectd", + "description": "collectd input plugin", + "properties": { + "options": [ + { + "name": "typesdb", + "description": "Set the types database filename", + "default": "/usr/share/collectd/types.db", + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "statsd", + "description": "StatsD input plugin", + "properties": { + "options": [] + } + }, + { + "type": "input", + "name": "opentelemetry", + "description": "OpenTelemetry", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + }, + { + "name": "buffer_max_size", + "description": "", + "default": "4M", + "type": "size" + }, + { + "name": "buffer_chunk_size", + "description": "", + "default": "512K", + "type": "size" + }, + { + "name": "tag_key", + "description": "", + "default": null, + "type": "string" + }, + { + "name": "successful_response_code", + "description": "Set successful response code. 200, 201 and 204 are supported.", + "default": "201", + "type": "integer" + } + ] + } + }, + { + "type": "input", + "name": "nginx_metrics", + "description": "Nginx status metrics", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + }, + { + "name": "status_url", + "description": "Define URL of stub status handler", + "default": "/status", + "type": "string" + }, + { + "name": "nginx_plus", + "description": "Turn on NGINX plus mode", + "default": "true", + "type": "boolean" + } + ] + } + }, + { + "type": "input", + "name": "serial", + "description": "Serial input", + "properties": { + "options": [ + { + "name": "file", + "description": "Set the serial character device file name", + "default": null, + "type": "string" + }, + { + "name": "bitrate", + "description": "Set the serial bitrate (baudrate)", + "default": null, + "type": "string" + }, + { + "name": "separator", + "description": "Set the record separator", + "default": null, + "type": "string" + }, + { + "name": "format", + "description": "Set the serial format: json or none", + "default": null, + "type": "string" + }, + { + "name": "min_bytes", + "description": "Set the serial minimum bytes", + "default": "0", + "type": "integer" + } + ] + } + }, + { + "type": "input", + "name": "stdin", + "description": "Standard Input", + "properties": { + "options": [ + { + "name": "parser", + "description": "Set and use a fluent-bit parser", + "default": null, + "type": "string" + }, + { + "name": "buffer_size", + "description": "Set the read buffer size", + "default": null, + "type": "size" + } + ] + } + }, + { + "type": "input", + "name": "syslog", + "description": "Syslog", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + }, + { + "name": "mode", + "description": "Set the socket mode: unix_tcp, unix_udp, tcp or udp", + "default": null, + "type": "string" + }, + { + "name": "path", + "description": "Set the path for the UNIX socket", + "default": null, + "type": "string" + }, + { + "name": "unix_perm", + "description": "Set the permissions for the UNIX socket", + "default": null, + "type": "string" + }, + { + "name": "buffer_chunk_size", + "description": "Set the buffer chunk size", + "default": "32768", + "type": "size" + }, + { + "name": "buffer_max_size", + "description": "Set the buffer chunk size", + "default": null, + "type": "size" + }, + { + "name": "parser", + "description": "Set the parser", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "exec", + "description": "Exec Input", + "properties": { + "options": [ + { + "name": "command", + "description": "Set the command to execute", + "default": null, + "type": "string" + }, + { "name": "parser", - "description": "Parse events", - "properties": { - "options": [ - { - "name": "Key_Name", - "description": "Specify field name in record to parse.", - "default": null, - "type": "string" - }, - { - "name": "Parser", - "description": "Specify the parser name to interpret the field. Multiple Parser entries are allowed (one per line).", - "default": null, - "type": "string" - }, - { - "name": "Preserve_Key", - "description": "Keep original Key_Name field in the parsed result. If false, the field will be removed.", - "default": null, - "type": "boolean" - }, - { - "name": "Reserve_Data", - "description": "Keep all other original fields in the parsed result. If false, all other original fields will be removed.", - "default": null, - "type": "boolean" - }, - { - "name": "Unescape_key", - "description": "(deprecated)", - "default": null, - "type": "deprecated" - } - ] - } - }, - { - "type": "filter", - "name": "expect", - "description": "Validate expected keys and values", - "properties": { - "options": [ - { - "name": "key_exists", - "description": "check that the given key name exists in the record", - "default": null, - "type": "string" - }, - { - "name": "key_not_exists", - "description": "check that the given key name do not exists in the record", - "default": null, - "type": "string" - }, - { - "name": "key_val_is_null", - "description": "check that the value of the key is NULL", - "default": null, - "type": "string" - }, - { - "name": "key_val_is_not_null", - "description": "check that the value of the key is NOT NULL", - "default": null, - "type": "string" - }, - { - "name": "key_val_eq", - "description": "check that the value of the key equals the given value", - "default": null, - "type": "space delimited strings (minimum 1)" - }, - { - "name": "action", - "description": "action to take when a rule does not match: 'warn', 'exit' or 'result_key'.", - "default": "warn", - "type": "string" - }, - { - "name": "result_key", - "description": "specify the key name to append a boolean that indicates rule is matched or not. This key is to be used only when 'action' is 'result_key'.", - "default": "matched", - "type": "string" - } - ] - } - }, - { - "type": "filter", - "name": "grep", - "description": "grep events by specified field values", - "properties": { - "options": [ - { - "name": "regex", - "description": "Keep records in which the content of KEY matches the regular expression.", - "default": null, - "type": "string" - }, - { - "name": "exclude", - "description": "Exclude records in which the content of KEY matches the regular expression.", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "filter", - "name": "rewrite_tag", - "description": "Rewrite records tags", - "properties": { - "options": [ - { - "name": "rule", - "description": "", - "default": null, - "type": "space delimited strings (minimum 4)" - }, - { - "name": "emitter_name", - "description": "", - "default": null, - "type": "string" - }, - { - "name": "emitter_storage.type", - "description": "", - "default": "memory", - "type": "string" - }, - { - "name": "emitter_mem_buf_limit", - "description": "set a memory buffer limit to restrict memory usage of emitter", - "default": "10M", - "type": "size" - } - ] - } - }, - { - "type": "filter", - "name": "lua", - "description": "Lua Scripting Filter", - "properties": { - "options": [ - { - "name": "script", - "description": "The path of lua script.", - "default": null, - "type": "string" - }, - { - "name": "code", - "description": "String that contains the Lua script source code", - "default": null, - "type": "string" - }, - { - "name": "call", - "description": "Lua function name that will be triggered to do filtering.", - "default": null, - "type": "string" - }, - { - "name": "type_int_key", - "description": "If these keys are matched, the fields are converted to integer. If more than one key, delimit by space.", - "default": null, - "type": "string" - }, - { - "name": "type_array_key", - "description": "If these keys are matched, the fields are converted to array. If more than one key, delimit by space.", - "default": null, - "type": "string" - }, - { - "name": "protected_mode", - "description": "If enabled, Lua script will be executed in protected mode. It prevents to crash when invalid Lua script is executed.", - "default": "true", - "type": "boolean" - }, - { - "name": "time_as_table", - "description": "If enabled, Fluent-bit will pass the timestamp as a Lua table with keys \"sec\" for seconds since epoch and \"nsec\" for nanoseconds.", - "default": "false", - "type": "boolean" - } - ] - } - }, - { - "type": "filter", - "name": "stdout", - "description": "Filter events to STDOUT", - "properties": { - "options": [] - } - }, - { - "type": "filter", - "name": "geoip2", - "description": "add geoip information to records", - "properties": { - "options": [ - { - "name": "database", - "description": "Set the geoip2 database path", - "default": null, - "type": "string" - }, - { - "name": "lookup_key", - "description": "Add a lookup_key", - "default": null, - "type": "string" - }, - { - "name": "record", - "description": "Add a record to the output base on geoip2", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "filter", - "name": "nightfall", - "description": "scans records for sensitive content", - "properties": { - "options": [ - { - "name": "nightfall_api_key", - "description": "The Nightfall API key to scan your logs with.", - "default": null, - "type": "string" - }, - { - "name": "policy_id", - "description": "The Nightfall policy ID to scan your logs with.", - "default": null, - "type": "string" - }, - { - "name": "sampling_rate", - "description": "The sampling rate for scanning, must be (0,1]. 1 means all logs will be scanned.", - "default": "1", - "type": "double" - }, - { - "name": "tls.debug", - "description": "Set TLS debug level: 0 (no debug), 1 (error), 2 (state change), 3 (info) and 4 (verbose)", - "default": "0", - "type": "integer" - }, - { - "name": "tls.verify", - "description": "Enable or disable verification of TLS peer certificate", - "default": "true", - "type": "boolean" - }, - { - "name": "tls.vhost", - "description": "Set optional TLS virtual host", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Path to root certificates on the system", - "default": null, - "type": "string" - } - ] - } - } - ], - "outputs": [ - { - "type": "output", - "name": "azure", - "description": "Send events to Azure HTTP Event Collector", - "properties": { - "options": [ - { - "name": "customer_id", - "description": "Customer ID or WorkspaceID string.", - "default": null, - "type": "string" - }, - { - "name": "shared_key", - "description": "The primary or the secondary Connected Sources client authentication key.", - "default": null, - "type": "string" - }, - { - "name": "log_type", - "description": "The name of the event type.", - "default": "fluentbit", - "type": "string" - }, - { - "name": "time_key", - "description": "Optional parameter to specify the key name where the timestamp will be stored.", - "default": "@timestamp", - "type": "string" - }, - { - "name": "time_generated", - "description": "If enabled, the HTTP request header 'time-generated-field' will be included so Azure can override the timestamp with the key specified by 'time_key' option.", - "default": "false", - "type": "boolean" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "azure_blob", - "description": "Azure Blob Storage", - "properties": { - "options": [ - { - "name": "account_name", - "description": "Azure account name (mandatory)", - "default": null, - "type": "string" - }, - { - "name": "container_name", - "description": "Container name (mandatory)", - "default": null, - "type": "string" - }, - { - "name": "auto_create_container", - "description": "Auto create container if it don't exists", - "default": "true", - "type": "boolean" - }, - { - "name": "blob_type", - "description": "Set the block type: appendblob or blockblob", - "default": "appendblob", - "type": "string" - }, - { - "name": "compress", - "description": "Set payload compression in network transfer. Option available is 'gzip'", - "default": null, - "type": "string" - }, - { - "name": "compress_blob", - "description": "Enable block blob GZIP compression in the final blob file. This option is not compatible with 'appendblob' block type", - "default": "false", - "type": "boolean" - }, - { - "name": "emulator_mode", - "description": "Use emulator mode, enable it if you want to use Azurite", - "default": "false", - "type": "boolean" - }, - { - "name": "shared_key", - "description": "Azure shared key", - "default": null, - "type": "string" - }, - { - "name": "endpoint", - "description": "Custom full URL endpoint to use an emulator", - "default": null, - "type": "string" - }, - { - "name": "path", - "description": "Set a path for your blob", - "default": null, - "type": "string" - }, - { - "name": "date_key", - "description": "Name of the key that will have the record timestamp", - "default": "@timestamp", - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "bigquery", - "description": "Send events to BigQuery via streaming insert", - "properties": { - "options": [ - { - "name": "google_service_credentials", - "description": "Set the path for the google service credentials file", - "default": null, - "type": "string" - }, - { - "name": "enable_identity_federation", - "description": "Enable identity federation", - "default": "false", - "type": "boolean" - }, - { - "name": "aws_region", - "description": "Enable identity federation", - "default": null, - "type": "string" - }, - { - "name": "project_number", - "description": "Set project number", - "default": null, - "type": "string" - }, - { - "name": "pool_id", - "description": "Set the pool id", - "default": null, - "type": "string" - }, - { - "name": "provider_id", - "description": "Set the provider id", - "default": null, - "type": "string" - }, - { - "name": "google_service_account", - "description": "Set the google service account", - "default": null, - "type": "string" - }, - { - "name": "service_account_email", - "description": "Set the service account email", - "default": null, - "type": "string" - }, - { - "name": "service_account_secret", - "description": "Set the service account secret", - "default": null, - "type": "string" - }, - { - "name": "project_id", - "description": "Set the project id", - "default": null, - "type": "string" - }, - { - "name": "dataset_id", - "description": "Set the dataset id", - "default": null, - "type": "string" - }, - { - "name": "table_id", - "description": "Set the table id", - "default": null, - "type": "string" - }, - { - "name": "skip_invalid_rows", - "description": "Enable skipping of invalid rows", - "default": "false", - "type": "boolean" - }, - { - "name": "ignore_unknown_values", - "description": "Enable ignoring unknown value", - "default": "false", - "type": "boolean" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "counter", - "description": "Records counter", - "properties": { - "options": [] - } - }, - { - "type": "output", - "name": "datadog", - "description": "Send events to DataDog HTTP Event Collector", - "properties": { - "options": [ - { - "name": "compress", - "description": "compresses the payload in GZIP format, Datadog supports and recommends setting this to 'gzip'.", - "default": "false", - "type": "string" - }, - { - "name": "apikey", - "description": "Datadog API key", - "default": null, - "type": "string" - }, - { - "name": "dd_service", - "description": "The human readable name for your service generating the logs - the name of your application or database.", - "default": null, - "type": "string" - }, - { - "name": "dd_source", - "description": "A human readable name for the underlying technology of your service. For example, 'postgres' or 'nginx'.", - "default": null, - "type": "string" - }, - { - "name": "dd_tags", - "description": "The tags you want to assign to your logs in Datadog.", - "default": null, - "type": "string" - }, - { - "name": "proxy", - "description": "Specify an HTTP Proxy. The expected format of this value is http://host:port. Note that https is not supported yet.", - "default": null, - "type": "string" - }, - { - "name": "include_tag_key", - "description": "If enabled, tag is appended to output. The key name is used 'tag_key' property.", - "default": "false", - "type": "boolean" - }, - { - "name": "tag_key", - "description": "The key name of tag. If 'include_tag_key' is false, This property is ignored", - "default": "tagkey", - "type": "string" - }, - { - "name": "dd_message_key", - "description": "By default, the plugin searches for the key 'log' and remap the value to the key 'message'. If the property is set, the plugin will search the property name key.", - "default": null, - "type": "string" - }, - { - "name": "provider", - "description": "To activate the remapping, specify configuration flag provider with value 'ecs'", - "default": null, - "type": "string" - }, - { - "name": "json_date_key", - "description": "Date key name for output.", - "default": "timestamp", - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "es", - "description": "Elasticsearch", - "properties": { - "options": [ - { - "name": "index", - "description": "Set an index name", - "default": "fluent-bit", - "type": "string" - }, - { - "name": "type", - "description": "Set the document type property", - "default": "_doc", - "type": "string" - }, - { - "name": "suppress_type_name", - "description": "If true, mapping types is removed. (for v7.0.0 or later)", - "default": "false", - "type": "boolean" - }, - { - "name": "http_user", - "description": "Optional username credential for Elastic X-Pack access", - "default": null, - "type": "string" - }, - { - "name": "http_passwd", - "description": "Password for user defined in HTTP_User", - "default": "", - "type": "string" - }, - { - "name": "cloud_id", - "description": "Elastic cloud ID of the cluster to connect to", - "default": null, - "type": "string" - }, - { - "name": "cloud_auth", - "description": "Elastic cloud authentication credentials", - "default": null, - "type": "string" - }, - { - "name": "aws_auth", - "description": "Enable AWS Sigv4 Authentication", - "default": "false", - "type": "boolean" - }, - { - "name": "aws_region", - "description": "AWS Region of your Amazon OpenSearch Service cluster", - "default": null, - "type": "string" - }, - { - "name": "aws_sts_endpoint", - "description": "Custom endpoint for the AWS STS API, used with the AWS_Role_ARN option", - "default": null, - "type": "string" - }, - { - "name": "aws_role_arn", - "description": "AWS IAM Role to assume to put records to your Amazon OpenSearch cluster", - "default": null, - "type": "string" - }, - { - "name": "aws_external_id", - "description": "External ID for the AWS IAM Role specified with `aws_role_arn`", - "default": null, - "type": "string" - }, - { - "name": "logstash_format", - "description": "Enable Logstash format compatibility", - "default": "false", - "type": "boolean" - }, - { - "name": "logstash_prefix", - "description": "When Logstash_Format is enabled, the Index name is composed using a prefix and the date, e.g: If Logstash_Prefix is equals to 'mydata' your index will become 'mydata-YYYY.MM.DD'. The last string appended belongs to the date when the data is being generated", - "default": "logstash", - "type": "string" - }, - { - "name": "logstash_prefix_key", - "description": "When included: the value in the record that belongs to the key will be looked up and over-write the Logstash_Prefix for index generation. If the key/value is not found in the record then the Logstash_Prefix option will act as a fallback. Nested keys are supported through record accessor pattern", - "default": null, - "type": "string" - }, - { - "name": "logstash_dateformat", - "description": "Time format (based on strftime) to generate the second part of the Index name", - "default": "%Y.%m.%d", - "type": "string" - }, - { - "name": "time_key", - "description": "When Logstash_Format is enabled, each record will get a new timestamp field. The Time_Key property defines the name of that field", - "default": "@timestamp", - "type": "string" - }, - { - "name": "time_key_format", - "description": "When Logstash_Format is enabled, this property defines the format of the timestamp", - "default": "%Y-%m-%dT%H:%M:%S", - "type": "string" - }, - { - "name": "time_key_nanos", - "description": "When Logstash_Format is enabled, enabling this property sends nanosecond precision timestamps", - "default": "false", - "type": "boolean" - }, - { - "name": "include_tag_key", - "description": "When enabled, it append the Tag name to the record", - "default": "false", - "type": "boolean" - }, - { - "name": "tag_key", - "description": "When Include_Tag_Key is enabled, this property defines the key name for the tag", - "default": "flb-key", - "type": "string" - }, - { - "name": "buffer_size", - "description": "Specify the buffer size used to read the response from the Elasticsearch HTTP service. This option is useful for debugging purposes where is required to read full responses, note that response size grows depending of the number of records inserted. To set an unlimited amount of memory set this value to 'false', otherwise the value must be according to the Unit Size specification", - "default": "512k", - "type": "size" - }, - { - "name": "path", - "description": "Elasticsearch accepts new data on HTTP query path '/_bulk'. But it is also possible to serve Elasticsearch behind a reverse proxy on a subpath. This option defines such path on the fluent-bit side. It simply adds a path prefix in the indexing HTTP POST URI", - "default": null, - "type": "string" - }, - { - "name": "pipeline", - "description": "Newer versions of Elasticsearch allows to setup filters called pipelines. This option allows to define which pipeline the database should use. For performance reasons is strongly suggested to do parsing and filtering on Fluent Bit side, avoid pipelines", - "default": null, - "type": "string" - }, - { - "name": "generate_id", - "description": "When enabled, generate _id for outgoing records. This prevents duplicate records when retrying ES", - "default": "false", - "type": "boolean" - }, - { - "name": "write_operation", - "description": "Operation to use to write in bulk requests", - "default": "create", - "type": "string" - }, - { - "name": "id_key", - "description": "If set, _id will be the value of the key from incoming record.", - "default": null, - "type": "string" - }, - { - "name": "replace_dots", - "description": "When enabled, replace field name dots with underscore, required by Elasticsearch 2.0-2.3.", - "default": "false", - "type": "boolean" - }, - { - "name": "current_time_index", - "description": "Use current time for index generation instead of message record", - "default": "false", - "type": "boolean" - }, - { - "name": "trace_output", - "description": "When enabled print the Elasticsearch API calls to stdout (for diag only)", - "default": "false", - "type": "boolean" - }, - { - "name": "trace_error", - "description": "When enabled print the Elasticsearch exception to stderr (for diag only)", - "default": "false", - "type": "boolean" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "exit", - "description": "Exit after a number of flushes (test purposes)", - "properties": { - "options": [ - { - "name": "flush_count", - "description": "", - "default": "1", - "type": "integer" - } - ] - } - }, - { - "type": "output", + "description": "Set a parser", + "default": null, + "type": "string" + }, + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (nanoseconds)", + "default": "0", + "type": "integer" + }, + { + "name": "buf_size", + "description": "Set the buffer size", + "default": "4096", + "type": "size" + }, + { + "name": "oneshot", + "description": "execute the command only once", + "default": "false", + "type": "boolean" + } + ] + } + }, + { + "type": "input", + "name": "tcp", + "description": "TCP", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + }, + { + "name": "format", + "description": "Set the format: json or none", + "default": null, + "type": "string" + }, + { + "name": "separator", + "description": "Set separator", + "default": null, + "type": "string" + }, + { + "name": "chunk_size", + "description": "Set the chunk size", + "default": null, + "type": "string" + }, + { + "name": "buffer_size", + "description": "Set the buffer size", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "input", + "name": "mqtt", + "description": "MQTT, listen for Publish messages", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + } + ] + } + }, + { + "type": "input", + "name": "lib", + "description": "Library mode Input", + "properties": {} + }, + { + "type": "input", + "name": "forward", + "description": "Fluentd in-forward", + "properties": { + "options": [ + { + "name": "listen", + "description": "Listen Address", + "default": "0.0.0.0", + "type": "string" + }, + { + "name": "port", + "description": "Listen Port", + "default": "0", + "type": "integer" + }, + { + "name": "tag_prefix", + "description": "Prefix incoming tag with the defined value.", + "default": null, + "type": "string" + }, + { + "name": "unix_path", + "description": "The path to unix socket to receive a Forward message.", + "default": null, + "type": "string" + }, + { + "name": "unix_perm", + "description": "Set the permissions for the UNIX socket", + "default": null, + "type": "string" + }, + { + "name": "buffer_chunk_size", + "description": "The buffer memory size used to receive a Forward message.", + "default": "1024000", + "type": "size" + }, + { + "name": "buffer_max_size", + "description": "The maximum buffer memory size used to receive a Forward message.", + "default": "6144000", + "type": "size" + } + ] + } + }, + { + "type": "input", + "name": "random", + "description": "Random", + "properties": { + "options": [ + { + "name": "samples", + "description": "Number of samples to send, -1 for infinite", + "default": "-1", + "type": "integer" + }, + { + "name": "interval_sec", + "description": "Set the collector interval", + "default": "1", + "type": "integer" + }, + { + "name": "interval_nsec", + "description": "Set the collector interval (sub seconds)", + "default": "0", + "type": "integer" + } + ] + } + } + ], + "filters": [ + { + "type": "filter", + "name": "alter_size", + "description": "Alter incoming chunk size", + "properties": { + "options": [ + { + "name": "add", + "description": "add N records to the chunk", + "default": "0", + "type": "integer" + }, + { + "name": "remove", + "description": "remove N records from the chunk", + "default": "0", + "type": "integer" + } + ] + } + }, + { + "type": "filter", + "name": "aws", + "description": "Add AWS Metadata", + "properties": { + "options": [ + { + "name": "imds_version", + "description": "Specifies which version of the EC2 instance metadata service will be used: 'v1' or 'v2'. 'v2' may not work if you run Fluent Bit in a container.", + "default": "v2", + "type": "string" + }, + { + "name": "az", + "description": "Enable EC2 instance availability zone", + "default": "true", + "type": "boolean" + }, + { + "name": "ec2_instance_id", + "description": "Enable EC2 instance ID", + "default": "true", + "type": "boolean" + }, + { + "name": "ec2_instance_type", + "description": "Enable EC2 instance type", + "default": "false", + "type": "boolean" + }, + { + "name": "private_ip", + "description": "Enable EC2 instance private IP", + "default": "false", + "type": "boolean" + }, + { + "name": "vpc_id", + "description": "Enable EC2 instance VPC ID", + "default": "false", + "type": "boolean" + }, + { + "name": "ami_id", + "description": "Enable EC2 instance Image ID", + "default": "false", + "type": "boolean" + }, + { + "name": "account_id", + "description": "Enable EC2 instance Account ID", + "default": "false", + "type": "boolean" + }, + { + "name": "hostname", + "description": "Enable EC2 instance hostname", + "default": "false", + "type": "boolean" + } + ] + } + }, + { + "type": "filter", + "name": "checklist", + "description": "Check records and flag them", + "properties": { + "options": [ + { "name": "file", - "description": "Generate log file", - "properties": { - "options": [ - { - "name": "path", - "description": "Absolute path to store the files. This parameter is optional", - "default": null, - "type": "string" - }, - { - "name": "file", - "description": "Name of the target file to write the records. If 'path' is specified, the value is prefixed", - "default": null, - "type": "string" - }, - { - "name": "format", - "description": "Specify the output data format, the available options are: plain (json), csv, ltsv and template. If no value is set the outgoing data is formatted using the tag and the record in json", - "default": null, - "type": "string" - }, - { - "name": "delimiter", - "description": "Set a custom delimiter for the records", - "default": null, - "type": "string" - }, - { - "name": "label_delimiter", - "description": "Set a custom label delimiter, to be used with 'ltsv' format", - "default": null, - "type": "string" - }, - { - "name": "template", - "description": "Set a custom template format for the data", - "default": "{time} {message}", - "type": "string" - }, - { - "name": "csv_column_names", - "description": "Add column names (keys) in the first line of the target file", - "default": "false", - "type": "boolean" - }, - { - "name": "mkdir", - "description": "Recursively create output directory if it does not exist. Permissions set to 0755", - "default": "false", - "type": "boolean" - } - ] - } - }, - { - "type": "output", - "name": "forward", - "description": "Forward (Fluentd protocol)", - "properties": { - "options": [ - { - "name": "time_as_integer", - "description": "Set timestamp in integer format (compat mode for old Fluentd v0.12)", - "default": "false", - "type": "boolean" - }, - { - "name": "shared_key", - "description": "Shared key for authentication", - "default": null, - "type": "string" - }, - { - "name": "self_hostname", - "description": "Hostname", - "default": null, - "type": "string" - }, - { - "name": "empty_shared_key", - "description": "Set an empty shared key for authentication", - "default": "false", - "type": "boolean" - }, - { - "name": "send_options", - "description": "Send 'forward protocol options' to remote endpoint", - "default": "false", - "type": "boolean" - }, - { - "name": "require_ack_response", - "description": "Require that remote endpoint confirms data reception", - "default": "false", - "type": "boolean" - }, - { - "name": "username", - "description": "Username for authentication", - "default": "", - "type": "string" - }, - { - "name": "password", - "description": "Password for authentication", - "default": "", - "type": "string" - }, - { - "name": "unix_path", - "description": "Path to unix socket. It is ignored when 'upstream' property is set", - "default": null, - "type": "string" - }, - { - "name": "upstream", - "description": "Path to 'upstream' configuration file (define multiple nodes)", - "default": null, - "type": "string" - }, - { - "name": "tag", - "description": "Set a custom Tag for the outgoing records", - "default": null, - "type": "string" - }, - { - "name": "compress", - "description": "Compression mode", - "default": null, - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "http", - "description": "HTTP Output", - "properties": { - "options": [ - { - "name": "proxy", - "description": "Specify an HTTP Proxy. The expected format of this value is http://host:port. ", - "default": null, - "type": "string" - }, - { - "name": "allow_duplicated_headers", - "description": "Specify if duplicated headers are allowed or not", - "default": "true", - "type": "boolean" - }, - { - "name": "log_response_payload", - "description": "Specify if the response paylod should be logged or not", - "default": "true", - "type": "boolean" - }, - { - "name": "http_user", - "description": "Set HTTP auth user", - "default": null, - "type": "string" - }, - { - "name": "http_passwd", - "description": "Set HTTP auth password", - "default": "", - "type": "string" - }, - { - "name": "aws_auth", - "description": "Enable AWS SigV4 authentication", - "default": "false", - "type": "boolean" - }, - { - "name": "aws_service", - "description": "AWS destination service code, used by SigV4 authentication", - "default": null, - "type": "string" - }, - { - "name": "aws_region", - "description": "AWS region of your service", - "default": null, - "type": "string" - }, - { - "name": "aws_sts_endpoint", - "description": "Custom endpoint for the AWS STS API, used with the `aws_role_arn` option", - "default": null, - "type": "string" - }, - { - "name": "aws_role_arn", - "description": "ARN of an IAM role to assume (ex. for cross account access)", - "default": null, - "type": "string" - }, - { - "name": "aws_external_id", - "description": "Specify an external ID for the STS API, can be used with the `aws_role_arn` parameter if your role requires an external ID.", - "default": null, - "type": "string" - }, - { - "name": "header_tag", - "description": "Set a HTTP header which value is the Tag", - "default": null, - "type": "string" - }, - { - "name": "format", - "description": "Set desired payload format: json, json_stream, json_lines, gelf or msgpack", - "default": null, - "type": "string" - }, - { - "name": "json_date_format", - "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", - "default": null, - "type": "string" - }, - { - "name": "json_date_key", - "description": "Specify the name of the date field in output", - "default": "date", - "type": "string" - }, - { - "name": "compress", - "description": "Set payload compression mechanism. Option available is 'gzip'", - "default": null, - "type": "string" - }, - { - "name": "header", - "description": "Add a HTTP header key/value pair. Multiple headers can be set", - "default": null, - "type": "space delimited strings (minimum 1)" - }, - { - "name": "uri", - "description": "Specify an optional HTTP URI for the target web server, e.g: /something", - "default": null, - "type": "string" - }, - { - "name": "gelf_timestamp_key", - "description": "Specify the key to use for 'timestamp' in gelf format", - "default": null, - "type": "string" - }, - { - "name": "gelf_host_key", - "description": "Specify the key to use for the 'host' in gelf format", - "default": null, - "type": "string" - }, - { - "name": "gelf_short_message_key", - "description": "Specify the key to use as the 'short' message in gelf format", - "default": null, - "type": "string" - }, - { - "name": "gelf_full_message_key", - "description": "Specify the key to use for the 'full' message in gelf format", - "default": null, - "type": "string" - }, - { - "name": "gelf_level_key", - "description": "Specify the key to use for the 'level' in gelf format", - "default": null, - "type": "string" - }, - { - "name": "body_key", - "description": "Specify the key which contains the body", - "default": null, - "type": "string" - }, - { - "name": "headers_key", - "description": "Specify the key which contains the headers", - "default": null, - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "influxdb", - "description": "InfluxDB Time Series", - "properties": { - "options": [ - { - "name": "database", - "description": "Set the database name.", - "default": "fluentbit", - "type": "string" - }, - { - "name": "bucket", - "description": "Specify the bucket name, used on InfluxDB API v2.", - "default": null, - "type": "string" - }, - { - "name": "org", - "description": "Set the Organization name.", - "default": "fluent", - "type": "string" - }, - { - "name": "sequence_tag", - "description": "Specify the sequence tag.", - "default": null, - "type": "string" - }, - { - "name": "uri", - "description": "Specify a custom URI endpoint (must start with '/').", - "default": null, - "type": "string" - }, - { - "name": "http_user", - "description": "HTTP Basic Auth username.", - "default": null, - "type": "string" - }, - { - "name": "http_passwd", - "description": "HTTP Basic Auth password.", - "default": "", - "type": "string" - }, - { - "name": "http_token", - "description": "Set InfluxDB HTTP Token API v2.", - "default": null, - "type": "string" - }, - { - "name": "http_header", - "description": "Add a HTTP header key/value pair. Multiple headers can be set", - "default": null, - "type": "space delimited strings (minimum 1)" - }, - { - "name": "auto_tags", - "description": "Automatically tag keys where value is string.", - "default": "false", - "type": "boolean" - }, - { - "name": "tag_keys", - "description": "Space separated list of keys that needs to be tagged.", - "default": null, - "type": "boolean" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "logdna", - "description": "LogDNA", - "properties": { - "options": [ - { - "name": "logdna_host", - "description": "LogDNA Host address", - "default": "logs.logdna.com", - "type": "string" - }, - { - "name": "logdna_port", - "description": "LogDNA TCP port", - "default": "443", - "type": "integer" - }, - { - "name": "api_key", - "description": "Logdna API key", - "default": null, - "type": "string" - }, - { - "name": "hostname", - "description": "Local Server or device host name", - "default": null, - "type": "string" - }, - { - "name": "mac", - "description": "MAC address (optional)", - "default": "", - "type": "string" - }, - { - "name": "ip", - "description": "IP address (optional)", - "default": "", - "type": "string" - }, - { - "name": "tags", - "description": "Tags (optional)", - "default": "", - "type": "multiple comma delimited strings" - }, - { - "name": "file", - "description": "Name of the monitored file (optional)", - "default": null, - "type": "string" - }, - { - "name": "app", - "description": "Name of the application generating the data (optional)", - "default": "Fluent Bit", - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "loki", - "description": "Loki", - "properties": { - "options": [ - { - "name": "tenant_id", - "description": "Tenant ID used by default to push logs to Loki. If omitted or empty it assumes Loki is running in single-tenant mode and no X-Scope-OrgID header is sent.", - "default": null, - "type": "string" - }, - { - "name": "tenant_id_key", - "description": "If set, X-Scope-OrgID will be the value of the key from incoming record. It is useful to set X-Scode-OrgID dynamically.", - "default": null, - "type": "string" - }, - { - "name": "labels", - "description": "labels for API requests. If no value is set, the default label is 'job=fluent-bit'", - "default": null, - "type": "multiple comma delimited strings" - }, - { - "name": "auto_kubernetes_labels", - "description": "If set to true, it will add all Kubernetes labels to Loki labels.", - "default": "false", - "type": "boolean" - }, - { - "name": "drop_single_key", - "description": "If set to true and only a single key remains, the log line sent to Loki will be the value of that key.", - "default": "false", - "type": "boolean" - }, - { - "name": "label_keys", - "description": "Comma separated list of keys to use as stream labels.", - "default": null, - "type": "multiple comma delimited strings" - }, - { - "name": "remove_keys", - "description": "Comma separated list of keys to remove.", - "default": null, - "type": "multiple comma delimited strings" - }, - { - "name": "line_format", - "description": "Format to use when flattening the record to a log line. Valid values are 'json' or 'key_value'. If set to 'json' the log line sent to Loki will be the Fluent Bit record dumped as json. If set to 'key_value', the log line will be each item in the record concatenated together (separated by a single space) in the format '='.", - "default": "json", - "type": "string" - }, - { - "name": "http_user", - "description": "Set HTTP auth user", - "default": null, - "type": "string" - }, - { - "name": "http_passwd", - "description": "Set HTTP auth password", - "default": "", - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "kafka-rest", - "description": "Kafka REST Proxy", - "properties": { - "options": [ - { - "name": "message_key", - "description": "Specify a message key. ", - "default": null, - "type": "string" - }, - { - "name": "time_key", - "description": "Specify the name of the field that holds the record timestamp. ", - "default": null, - "type": "string" - }, - { - "name": "topic", - "description": "Specify the kafka topic. ", - "default": "fluent-bit", - "type": "string" - }, - { - "name": "url_path", - "description": "Specify an optional HTTP URL path for the target web server, e.g: /something", - "default": null, - "type": "string" - }, - { - "name": "partition", - "description": "Specify kafka partition number. ", - "default": "-1", - "type": "double" - }, - { - "name": "time_key_format", - "description": "Specify the format of the timestamp. ", - "default": "%Y-%m-%dT%H:%M:%S", - "type": "string" - }, - { - "name": "include_tag_key", - "description": "Specify whether to append tag name to final record. ", - "default": "false", - "type": "boolean" - }, - { - "name": "tag_key", - "description": "Specify the key name of the record if include_tag_key is enabled. ", - "default": "_flb-key", - "type": "string" - }, - { - "name": "avro_http_header", - "description": "Specify if the format has avro header in http request", - "default": "false", - "type": "boolean" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "nats", - "description": "NATS Server", - "properties": { - "options": [], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ] - } - }, - { - "type": "output", - "name": "nrlogs", - "description": "New Relic", - "properties": { - "options": [ - { - "name": "base_uri", - "description": "New Relic Host address", - "default": "https://log-api.newrelic.com/log/v1", - "type": "string" - }, - { - "name": "api_key", - "description": "New Relic API Key", - "default": null, - "type": "string" - }, - { - "name": "license_key", - "description": "New Relic License Key", - "default": null, - "type": "string" - }, - { - "name": "compress", - "description": "Set payload compression mechanism", - "default": "gzip", - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "null", - "description": "Throws away events", - "properties": { - "options": [ - { - "name": "format", - "description": "Specifies the data format to be printed. Supported formats are msgpack json, json_lines and json_stream.", - "default": null, - "type": "string" - }, - { - "name": "json_date_format", - "description": "Specifies the name of the date field in output.", - "default": null, - "type": "string" - }, - { - "name": "json_date_key", - "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", - "default": "date", - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "opensearch", - "description": "OpenSearch", - "properties": { - "options": [ - { - "name": "index", - "description": "Set an index name", - "default": "fluent-bit", - "type": "string" - }, - { - "name": "type", - "description": "Set the document type property", - "default": "_doc", - "type": "string" - }, - { - "name": "suppress_type_name", - "description": "If true, mapping types is removed. (for v7.0.0 or later)", - "default": "false", - "type": "boolean" - }, - { - "name": "http_user", - "description": "Optional username credential for access", - "default": null, - "type": "string" - }, - { - "name": "http_passwd", - "description": "Password for user defined in 'http_user'", - "default": "", - "type": "string" - }, - { - "name": "aws_auth", - "description": "Enable AWS Sigv4 Authentication", - "default": "false", - "type": "boolean" - }, - { - "name": "aws_region", - "description": "AWS Region of your Amazon OpenSearch Service cluster", - "default": null, - "type": "string" - }, - { - "name": "aws_sts_endpoint", - "description": "Custom endpoint for the AWS STS API, used with the AWS_Role_ARN option", - "default": null, - "type": "string" - }, - { - "name": "aws_role_arn", - "description": "AWS IAM Role to assume to put records to your Amazon OpenSearch cluster", - "default": null, - "type": "string" - }, - { - "name": "aws_external_id", - "description": "External ID for the AWS IAM Role specified with `aws_role_arn`", - "default": null, - "type": "string" - }, - { - "name": "logstash_format", - "description": "Enable Logstash format compatibility", - "default": "false", - "type": "boolean" - }, - { - "name": "logstash_prefix", - "description": "When Logstash_Format is enabled, the Index name is composed using a prefix and the date, e.g: If Logstash_Prefix is equals to 'mydata' your index will become 'mydata-YYYY.MM.DD'. The last string appended belongs to the date when the data is being generated", - "default": "logstash", - "type": "string" - }, - { - "name": "logstash_prefix_key", - "description": "When included: the value in the record that belongs to the key will be looked up and over-write the Logstash_Prefix for index generation. If the key/value is not found in the record then the Logstash_Prefix option will act as a fallback. Nested keys are supported through record accessor pattern", - "default": null, - "type": "string" - }, - { - "name": "logstash_dateformat", - "description": "Time format (based on strftime) to generate the second part of the Index name", - "default": "%Y.%m.%d", - "type": "string" - }, - { - "name": "time_key", - "description": "When Logstash_Format is enabled, each record will get a new timestamp field. The Time_Key property defines the name of that field", - "default": "@timestamp", - "type": "string" - }, - { - "name": "time_key_format", - "description": "When Logstash_Format is enabled, this property defines the format of the timestamp", - "default": "%Y-%m-%dT%H:%M:%S", - "type": "string" - }, - { - "name": "time_key_nanos", - "description": "When Logstash_Format is enabled, enabling this property sends nanosecond precision timestamps", - "default": "false", - "type": "boolean" - }, - { - "name": "include_tag_key", - "description": "When enabled, it append the Tag name to the record", - "default": "false", - "type": "boolean" - }, - { - "name": "tag_key", - "description": "When Include_Tag_Key is enabled, this property defines the key name for the tag", - "default": "flb-key", - "type": "string" - }, - { - "name": "buffer_size", - "description": "Specify the buffer size used to read the response from the OpenSearch HTTP service. This option is useful for debugging purposes where is required to read full responses, note that response size grows depending of the number of records inserted. To set an unlimited amount of memory set this value to 'false', otherwise the value must be according to the Unit Size specification", - "default": "512k", - "type": "size" - }, - { - "name": "path", - "description": "OpenSearch accepts new data on HTTP query path '/_bulk'. But it is also possible to serve OpenSearch behind a reverse proxy on a subpath. This option defines such path on the fluent-bit side. It simply adds a path prefix in the indexing HTTP POST URI", - "default": null, - "type": "string" - }, - { - "name": "pipeline", - "description": "OpenSearch allows to setup filters called pipelines. This option allows to define which pipeline the database should use. For performance reasons is strongly suggested to do parsing and filtering on Fluent Bit side, avoid pipelines", - "default": null, - "type": "string" - }, - { - "name": "generate_id", - "description": "When enabled, generate _id for outgoing records. This prevents duplicate records when retrying", - "default": "false", - "type": "boolean" - }, - { - "name": "write_operation", - "description": "Operation to use to write in bulk requests", - "default": "create", - "type": "string" - }, - { - "name": "id_key", - "description": "If set, _id will be the value of the key from incoming record.", - "default": null, - "type": "string" - }, - { - "name": "replace_dots", - "description": "When enabled, replace field name dots with underscore.", - "default": "false", - "type": "boolean" - }, - { - "name": "current_time_index", - "description": "Use current time for index generation instead of message record", - "default": "false", - "type": "boolean" - }, - { - "name": "trace_output", - "description": "When enabled print the OpenSearch API calls to stdout (for diag only)", - "default": "false", - "type": "boolean" - }, - { - "name": "trace_error", - "description": "When enabled print the OpenSearch exception to stderr (for diag only)", - "default": "false", - "type": "boolean" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "plot", - "description": "Generate data file for GNU Plot", - "properties": { - "options": [ - { - "name": "key", - "description": "set a number of times to generate event.", - "default": null, - "type": "string" - }, - { - "name": "file", - "description": "set a number of times to generate event.", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "skywalking", - "description": "Send logs into log collector on SkyWalking OAP", - "properties": { - "options": [ - { - "name": "auth_token", - "description": "Auth token for SkyWalking OAP", - "default": null, - "type": "string" - }, - { - "name": "svc_name", - "description": "Service name", - "default": "sw-service", - "type": "string" - }, - { - "name": "svc_inst_name", - "description": "Instance name", - "default": "fluent-bit", - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "slack", - "description": "Send events to a Slack channel", - "properties": { - "options": [ - { - "name": "webhook", - "description": "", - "default": null, - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "splunk", - "description": "Send events to Splunk HTTP Event Collector", - "properties": { - "options": [ - { - "name": "compress", - "description": "Set payload compression mechanism. Option available is 'gzip'", - "default": null, - "type": "string" - }, - { - "name": "http_user", - "description": "Set HTTP auth user", - "default": null, - "type": "string" - }, - { - "name": "http_passwd", - "description": "Set HTTP auth password", - "default": "", - "type": "string" - }, - { - "name": "http_buffer_size", - "description": "Specify the buffer size used to read the response from the Splunk HTTP service. This option is useful for debugging purposes where is required to read full responses, note that response size grows depending of the number of records inserted. To set an unlimited amount of memory set this value to 'false', otherwise the value must be according to the Unit Size specification", - "default": null, - "type": "size" - }, - { - "name": "http_debug_bad_request", - "description": "If the HTTP server response code is 400 (bad request) and this flag is enabled, it will print the full HTTP request and response to the stdout interface. This feature is available for debugging purposes.", - "default": "false", - "type": "boolean" - }, - { - "name": "event_key", - "description": "Specify the key name that will be used to send a single value as part of the record.", - "default": null, - "type": "string" - }, - { - "name": "event_host", - "description": "Set the host value to the event data. The value allows a record accessor pattern.", - "default": null, - "type": "string" - }, - { - "name": "event_source", - "description": "Set the source value to assign to the event data.", - "default": null, - "type": "string" - }, - { - "name": "event_sourcetype", - "description": "Set the sourcetype value to assign to the event data.", - "default": null, - "type": "string" - }, - { - "name": "event_sourcetype_key", - "description": "Set a record key that will populate 'sourcetype'. If the key is found, it will have precedence over the value set in 'event_sourcetype'.", - "default": null, - "type": "string" - }, - { - "name": "event_index", - "description": "The name of the index by which the event data is to be indexed.", - "default": null, - "type": "string" - }, - { - "name": "event_index_key", - "description": "Set a record key that will populate the 'index' field. If the key is found, it will have precedence over the value set in 'event_index'.", - "default": null, - "type": "string" - }, - { - "name": "event_field", - "description": "Set event fields for the record. This option can be set multiple times and the format is 'key_name record_accessor_pattern'.", - "default": null, - "type": "space delimited strings (minimum 2)" - }, - { - "name": "splunk_token", - "description": "Specify the Authentication Token for the HTTP Event Collector interface.", - "default": null, - "type": "string" - }, - { - "name": "splunk_send_raw", - "description": "When enabled, the record keys and values are set in the top level of the map instead of under the event key. Refer to the Sending Raw Events section from the docs for more details to make this option work properly.", - "default": "off", - "type": "boolean" - }, - { - "name": "channel", - "description": "Specify X-Splunk-Request-Channel Header for the HTTP Event Collector interface.", - "default": null, - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "stackdriver", - "description": "Send events to Google Stackdriver Logging", - "properties": { - "options": [ - { - "name": "google_service_credentials", - "description": "Set the path for the google service credentials file", - "default": null, - "type": "string" - }, - { - "name": "metadata_server", - "description": "Set the metadata server", - "default": null, - "type": "string" - }, - { - "name": "service_account_email", - "description": "Set the service account email", - "default": null, - "type": "string" - }, - { - "name": "service_account_secret", - "description": "Set the service account secret", - "default": null, - "type": "string" - }, - { - "name": "export_to_project_id", - "description": "Export to project id", - "default": null, - "type": "string" - }, - { - "name": "resource", - "description": "Set the resource", - "default": "global", - "type": "string" - }, - { - "name": "severity_key", - "description": "Set the severity key", - "default": "logging.googleapis.com/severity", - "type": "string" - }, - { - "name": "autoformat_stackdriver_trace", - "description": "Autoformat the stacrdriver trace", - "default": "false", - "type": "boolean" - }, - { - "name": "trace_key", - "description": "Set the trace key", - "default": "logging.googleapis.com/trace", - "type": "string" - }, - { - "name": "log_name_key", - "description": "Set the logname key", - "default": "logging.googleapis.com/logName", - "type": "string" - }, - { - "name": "http_request_key", - "description": "Set the http request key", - "default": "logging.googleapis.com/http_request", - "type": "string" - }, - { - "name": "k8s_cluster_name", - "description": "Set the kubernetes cluster name", - "default": null, - "type": "string" - }, - { - "name": "k8s_cluster_location", - "description": "Set the kubernetes cluster location", - "default": null, - "type": "string" - }, - { - "name": "location", - "description": "Set the resource location", - "default": null, - "type": "string" - }, - { - "name": "namespace", - "description": "Set the resource namespace", - "default": null, - "type": "string" - }, - { - "name": "node_id", - "description": "Set the resource node id", - "default": null, - "type": "string" - }, - { - "name": "job", - "description": "Set the resource job", - "default": null, - "type": "string" - }, - { - "name": "task_id", - "description": "Set the resource task id", - "default": null, - "type": "string" - }, - { - "name": "labels", - "description": "Set the labels", - "default": null, - "type": "multiple comma delimited strings" - }, - { - "name": "labels_key", - "description": "Set the labels key", - "default": "logging.googleapis.com/labels", - "type": "string" - }, - { - "name": "tag_prefix", - "description": "Set the tag prefix", - "default": null, - "type": "string" - }, - { - "name": "stackdriver_agent", - "description": "Set the stackdriver agent", - "default": null, - "type": "string" - }, - { - "name": "custom_k8s_regex", - "description": "Set a custom kubernetes regex filter", - "default": "(?[a-z0-9](?:[-a-z0-9]*[a-z0-9])?(?:\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)_(?[^_]+)_(?.+)-(?[a-z0-9]{64})\\.log$", - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "stdout", - "description": "Prints events to STDOUT", - "properties": { - "options": [ - { - "name": "format", - "description": "Specifies the data format to be printed. Supported formats are msgpack json, json_lines and json_stream.", - "default": null, - "type": "string" - }, - { - "name": "json_date_format", - "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", - "default": null, - "type": "string" - }, - { - "name": "json_date_key", - "description": "Specifies the name of the date field in output.", - "default": "date", - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "syslog", - "description": "Syslog", - "properties": { - "options": [ - { - "name": "mode", - "description": "Set the desired transport type, the available options are tcp and udp. If you need to use a TLS secure channel, choose 'tcp' mode here and enable the 'tls' option separately.", - "default": "udp", - "type": "string" - }, - { - "name": "syslog_format", - "description": "Specify the Syslog protocol format to use, the available options are rfc3164 and rfc5424.", - "default": "rfc5424", - "type": "string" - }, - { - "name": "syslog_maxsize", - "description": "Set the maximum size allowed per message. The value must be only integers representing the number of bytes allowed. If no value is provided, the default size is set depending of the protocol version specified by syslog_format , rfc3164 sets max size to 1024 bytes, while rfc5424 sets the size to 2048 bytes.", - "default": "0", - "type": "size" - }, - { - "name": "syslog_severity_key", - "description": "Specify the name of the key from the original record that contains the Syslog severity number. This configuration is optional.", - "default": null, - "type": "string" - }, - { - "name": "syslog_facility_key", - "description": "Specify the name of the key from the original record that contains the Syslog facility number. This configuration is optional.", - "default": null, - "type": "string" - }, - { - "name": "syslog_hostname_key", - "description": "Specify the key name from the original record that contains the hostname that generated the message. This configuration is optional.", - "default": null, - "type": "string" - }, - { - "name": "syslog_appname_key", - "description": "Specify the key name from the original record that contains the application name that generated the message. This configuration is optional.", - "default": null, - "type": "string" - }, - { - "name": "syslog_procid_key", - "description": "Specify the key name from the original record that contains the Process ID that generated the message. This configuration is optional.", - "default": null, - "type": "string" - }, - { - "name": "syslog_msgid_key", - "description": "Specify the key name from the original record that contains the Message ID associated to the message. This configuration is optional.", - "default": null, - "type": "string" - }, - { - "name": "syslog_sd_key", - "description": "Specify the key name from the original record that contains the Structured Data (SD) content. If set, the value of the key must be a map.This option can be set multiple times.", - "default": null, - "type": "string" - }, - { - "name": "syslog_message_key", - "description": "Specify the key name that contains the message to deliver. Note that if this property is mandatory, otherwise the message will be empty.", - "default": null, - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "tcp", - "description": "TCP Output", - "properties": { - "options": [ - { - "name": "format", - "description": "Specify the payload format, supported formats: msgpack, json, json_lines or json_stream.", - "default": "msgpack", - "type": "string" - }, - { - "name": "json_date_format", - "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", - "default": "double", - "type": "string" - }, - { - "name": "json_date_key", - "description": "Specify the name of the date field in output.", - "default": "date", - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "td", - "description": "Treasure Data", - "properties": { - "options": [ - { - "name": "API", - "description": "Set the API key", - "default": null, - "type": "string" - }, - { - "name": "Database", - "description": "Set the Database file", - "default": null, - "type": "string" - }, - { - "name": "Table", - "description": "Set the Database Table", - "default": null, - "type": "string" - }, - { - "name": "Region", - "description": "Set the Region: us or jp", - "default": null, - "type": "string" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "lib", - "description": "Library mode Output", - "properties": {} - }, - { - "type": "output", - "name": "flowcounter", - "description": "FlowCounter", - "properties": { - "options": [ - { - "name": "unit", - "description": "", - "default": null, - "type": "string" - }, - { - "name": "event_based", - "description": "", - "default": "false", - "type": "boolean" - } - ] - } - }, - { - "type": "output", - "name": "gelf", - "description": "GELF Output", - "properties": { - "options": [ - { - "name": "mode", - "description": "The protocol to use. 'tls', 'tcp' or 'udp'", - "default": "udp", - "type": "string" - }, - { - "name": "gelf_short_message_key", - "description": "A short descriptive message (MUST be set in GELF)", - "default": null, - "type": "string" - }, - { - "name": "gelf_timestamp_key", - "description": "Timestamp key name (SHOULD be set in GELF)", - "default": null, - "type": "string" - }, - { - "name": "gelf_host_key", - "description": "Key which its value is used as the name of the host,source or application that sent this message. (MUST be set in GELF) ", - "default": null, - "type": "string" - }, - { - "name": "gelf_full_message_key", - "description": "Key to use as the long message that can i.e. contain a backtrace. (Optional in GELF)", - "default": null, - "type": "string" - }, - { - "name": "gelf_level_key", - "description": "Key to be used as the log level. Its value must be in standard syslog levels (between 0 and 7). (Optional in GELF)", - "default": null, - "type": "string" - }, - { - "name": "packet_size", - "description": "If transport protocol is udp, you can set the size of packets to be sent.", - "default": "1420", - "type": "integer" - }, - { - "name": "compress", - "description": "If transport protocol is udp, you can set this if you want your UDP packets to be compressed.", - "default": "true", - "type": "boolean" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "websocket", - "description": "Websocket", - "properties": { - "options": [ - { - "name": "uri", - "description": "Specify an optional URI for the target web socket server, e.g: /something", - "default": null, - "type": "string" - }, - { - "name": "format", - "description": "Set desired payload format: json, json_stream, json_lines, gelf or msgpack", - "default": null, - "type": "string" - }, - { - "name": "json_date_format", - "description": "Specify the format of the date", - "default": "double", - "type": "string" - }, - { - "name": "json_date_key", - "description": "Specify the name of the date field in output", - "default": "date", - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "cloudwatch_logs", - "description": "Send logs to Amazon CloudWatch", - "properties": { - "options": [ - { - "name": "region", - "description": "The AWS region to send logs to", - "default": null, - "type": "string" - }, - { - "name": "log_group_name", - "description": "CloudWatch Log Group Name", - "default": null, - "type": "string" - }, - { - "name": "log_stream_name", - "description": "CloudWatch Log Stream Name; not compatible with `log_stream_prefix`", - "default": null, - "type": "string" - }, - { - "name": "log_stream_prefix", - "description": "Prefix for CloudWatch Log Stream Name; the tag is appended to the prefix to form the stream name", - "default": null, - "type": "string" - }, - { - "name": "log_group_template", - "description": "Template for CW Log Group name using record accessor syntax. Plugin falls back to the log_group_name configured if needed.", - "default": null, - "type": "string" - }, - { - "name": "log_stream_template", - "description": "Template for CW Log Stream name using record accessor syntax. Plugin falls back to the log_stream_name or log_stream_prefix configured if needed.", - "default": null, - "type": "string" - }, - { - "name": "log_key", - "description": "By default, the whole log record will be sent to CloudWatch. If you specify a key name with this option, then only the value of that key will be sent to CloudWatch. For example, if you are using the Fluentd Docker log driver, you can specify log_key log and only the log message will be sent to CloudWatch.", - "default": null, - "type": "string" - }, - { - "name": "extra_user_agent", - "description": "This option appends a string to the default user agent. AWS asks that you not manually set this field yourself, it is reserved for use in our vended configurations, for example, EKS Container Insights.", - "default": null, - "type": "string" - }, - { - "name": "log_format", - "description": "An optional parameter that can be used to tell CloudWatch the format of the data. A value of json/emf enables CloudWatch to extract custom metrics embedded in a JSON payload.", - "default": null, - "type": "string" - }, - { - "name": "role_arn", - "description": "ARN of an IAM role to assume (ex. for cross account access).", - "default": null, - "type": "string" - }, - { - "name": "auto_create_group", - "description": "Automatically create the log group (log streams will always automatically be created)", - "default": "false", - "type": "boolean" - }, - { - "name": "auto_retry_requests", - "description": "Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues.", - "default": "true", - "type": "boolean" - }, - { - "name": "log_retention_days", - "description": "If set to a number greater than zero, and newly create log group's retention policy is set to this many days. Valid values are: [1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653]", - "default": "0", - "type": "integer" - }, - { - "name": "endpoint", - "description": "Specify a custom endpoint for the CloudWatch Logs API", - "default": null, - "type": "string" - }, - { - "name": "sts_endpoint", - "description": "Specify a custom endpoint for the STS API, can be used with the role_arn parameter", - "default": null, - "type": "string" - }, - { - "name": "external_id", - "description": "Specify an external ID for the STS API, can be used with the role_arn parameter if your role requires an external ID.", - "default": null, - "type": "string" - }, - { - "name": "metric_namespace", - "description": "Metric namespace for CloudWatch EMF logs", - "default": null, - "type": "string" - }, - { - "name": "metric_dimensions", - "description": "Metric dimensions is a list of lists. If you have only one list of dimensions, put the values as a comma seperated string. If you want to put list of lists, use the list as semicolon seperated strings. If your value is 'd1,d2;d3', we will consider it as [[d1, d2],[d3]].", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "kinesis_firehose", - "description": "Send logs to Amazon Kinesis Firehose", - "properties": { - "options": [ - { - "name": "region", - "description": "The AWS region of your delivery stream", - "default": null, - "type": "string" - }, - { - "name": "delivery_stream", - "description": "Firehose delivery stream name", - "default": null, - "type": "string" - }, - { - "name": "time_key", - "description": "Add the timestamp to the record under this key. By default the timestamp from Fluent Bit will not be added to records sent to Kinesis.", - "default": null, - "type": "string" - }, - { - "name": "time_key_format", - "description": "strftime compliant format string for the timestamp; for example, the default is '%Y-%m-%dT%H:%M:%S'. This option is used with time_key. ", - "default": null, - "type": "string" - }, - { - "name": "role_arn", - "description": "ARN of an IAM role to assume (ex. for cross account access).", - "default": null, - "type": "string" - }, - { - "name": "endpoint", - "description": "Specify a custom endpoint for the Firehose API", - "default": null, - "type": "string" - }, - { - "name": "sts_endpoint", - "description": "Custom endpoint for the STS API.", - "default": null, - "type": "string" - }, - { - "name": "external_id", - "description": "Specify an external ID for the STS API, can be used with the role_arn parameter if your role requires an external ID.", - "default": null, - "type": "string" - }, - { - "name": "compression", - "description": "Compression type for Firehose records. Each log record is individually compressed and sent to Firehose. 'gzip' and 'arrow' are the supported values. 'arrow' is only an available if Apache Arrow was enabled at compile time. Defaults to no compression.", - "default": null, - "type": "string" - }, - { - "name": "log_key", - "description": "By default, the whole log record will be sent to Firehose. If you specify a key name with this option, then only the value of that key will be sent to Firehose. For example, if you are using the Fluentd Docker log driver, you can specify `log_key log` and only the log message will be sent to Firehose.", - "default": null, - "type": "string" - }, - { - "name": "auto_retry_requests", - "description": "Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues.", - "default": "true", - "type": "boolean" - } - ] - } - }, - { - "type": "output", - "name": "kinesis_streams", - "description": "Send logs to Amazon Kinesis Streams", - "properties": { - "options": [ - { - "name": "region", - "description": "The AWS region of your kinesis stream", - "default": null, - "type": "string" - }, - { - "name": "stream", - "description": "Kinesis stream name", - "default": null, - "type": "string" - }, - { - "name": "time_key", - "description": "Add the timestamp to the record under this key. By default the timestamp from Fluent Bit will not be added to records sent to Kinesis.", - "default": null, - "type": "string" - }, - { - "name": "time_key_format", - "description": "strftime compliant format string for the timestamp; for example, the default is '%Y-%m-%dT%H:%M:%S'. This option is used with time_key. ", - "default": null, - "type": "string" - }, - { - "name": "role_arn", - "description": "ARN of an IAM role to assume (ex. for cross account access).", - "default": null, - "type": "string" - }, - { - "name": "endpoint", - "description": "Specify a custom endpoint for the Kinesis API", - "default": null, - "type": "string" - }, - { - "name": "sts_endpoint", - "description": "Custom endpoint for the STS API.", - "default": null, - "type": "string" - }, - { - "name": "external_id", - "description": "Specify an external ID for the STS API, can be used with the role_arn parameter if your role requires an external ID.", - "default": null, - "type": "string" - }, - { - "name": "log_key", - "description": "By default, the whole log record will be sent to Kinesis. If you specify a key name with this option, then only the value of that key will be sent to Kinesis. For example, if you are using the Fluentd Docker log driver, you can specify `log_key log` and only the log message will be sent to Kinesis.", - "default": null, - "type": "string" - }, - { - "name": "auto_retry_requests", - "description": "Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues.", - "default": "true", - "type": "boolean" - } - ] - } - }, - { - "type": "output", - "name": "opentelemetry", - "description": "OpenTelemetry", - "properties": { - "options": [ - { - "name": "add_label", - "description": "Adds a custom label to the metrics use format: 'add_label name value'", - "default": null, - "type": "space delimited strings (minimum 1)" - }, - { - "name": "proxy", - "description": "Specify an HTTP Proxy. The expected format of this value is http://host:port. ", - "default": null, - "type": "string" - }, - { - "name": "http_user", - "description": "Set HTTP auth user", - "default": null, - "type": "string" - }, - { - "name": "http_passwd", - "description": "Set HTTP auth password", - "default": "", - "type": "string" - }, - { - "name": "header", - "description": "Add a HTTP header key/value pair. Multiple headers can be set", - "default": null, - "type": "space delimited strings (minimum 1)" - }, - { - "name": "uri", - "description": "Specify an optional HTTP URI for the target OTel endpoint.", - "default": "/v1/metrics", - "type": "string" - }, - { - "name": "log_response_payload", - "description": "Specify if the response paylod should be logged or not", - "default": "true", - "type": "boolean" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "prometheus_exporter", - "description": "Prometheus Exporter", - "properties": { - "options": [ - { - "name": "add_timestamp", - "description": "Add timestamp to every metric honoring collection time.", - "default": "false", - "type": "boolean" - }, - { - "name": "add_label", - "description": "TCP port for listening for HTTP connections.", - "default": null, - "type": "space delimited strings (minimum 1)" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ] - } - }, - { - "type": "output", - "name": "prometheus_remote_write", - "description": "Prometheus remote write", - "properties": { - "options": [ - { - "name": "add_label", - "description": "Adds a custom label to the metrics use format: 'add_label name value'", - "default": null, - "type": "space delimited strings (minimum 1)" - }, - { - "name": "proxy", - "description": "Specify an HTTP Proxy. The expected format of this value is http://host:port. ", - "default": null, - "type": "string" - }, - { - "name": "http_user", - "description": "Set HTTP auth user", - "default": null, - "type": "string" - }, - { - "name": "http_passwd", - "description": "Set HTTP auth password", - "default": "", - "type": "string" - }, - { - "name": "header", - "description": "Add a HTTP header key/value pair. Multiple headers can be set", - "default": null, - "type": "space delimited strings (minimum 1)" - }, - { - "name": "uri", - "description": "Specify an optional HTTP URI for the target web server, e.g: /something", - "default": null, - "type": "string" - }, - { - "name": "log_response_payload", - "description": "Specify if the response paylod should be logged or not", - "default": "true", - "type": "boolean" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - }, - { - "type": "output", - "name": "s3", - "description": "Send to S3", - "properties": { - "options": [ - { - "name": "json_date_format", - "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", - "default": null, - "type": "string" - }, - { - "name": "json_date_key", - "description": "Specifies the name of the date field in output.", - "default": "date", - "type": "string" - }, - { - "name": "total_file_size", - "description": "Specifies the size of files in S3. Maximum size is 50GB, minimum is 1MB", - "default": "100000000", - "type": "size" - }, - { - "name": "upload_chunk_size", - "description": "This plugin uses the S3 Multipart Upload API to stream data to S3, ensuring your data gets-off-the-box as quickly as possible. This parameter configures the size of each \u201cpart\u201d in the upload. The total_file_size option configures the size of the file you will see in S3; this option determines the size of chunks uploaded until that size is reached. These chunks are temporarily stored in chunk_buffer_path until their size reaches upload_chunk_size, which point the chunk is uploaded to S3. Default: 5M, Max: 50M, Min: 5M.", - "default": "5242880", - "type": "size" - }, - { - "name": "upload_timeout", - "description": "Optionally specify a timeout for uploads. Whenever this amount of time has elapsed, Fluent Bit will complete an upload and create a new file in S3. For example, set this value to 60m and you will get a new file in S3 every hour. Default is 10m.", - "default": "10m", - "type": "time" - }, - { - "name": "bucket", - "description": "S3 bucket name.", - "default": null, - "type": "string" - }, - { - "name": "region", - "description": "AWS region.", - "default": "us-east-1", - "type": "string" - }, - { - "name": "role_arn", - "description": "ARN of an IAM role to assume (ex. for cross account access).", - "default": null, - "type": "string" - }, - { - "name": "endpoint", - "description": "Custom endpoint for the S3 API.", - "default": null, - "type": "string" - }, - { - "name": "sts_endpoint", - "description": "Custom endpoint for the STS API.", - "default": null, - "type": "string" - }, - { - "name": "canned_acl", - "description": "Predefined Canned ACL policy for S3 objects.", - "default": null, - "type": "string" - }, - { - "name": "compression", - "description": "Compression type for S3 objects. 'gzip' and 'arrow' are the supported values. 'arrow' is only an available if Apache Arrow was enabled at compile time. Defaults to no compression. If 'gzip' is selected, the Content-Encoding HTTP Header will be set to 'gzip'.", - "default": null, - "type": "string" - }, - { - "name": "content_type", - "description": "A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header.", - "default": null, - "type": "string" - }, - { - "name": "store_dir", - "description": "Directory to locally buffer data before sending. Plugin uses the S3 Multipart upload API to send data in chunks of 5 MB at a time- only a small amount of data will be locally buffered at any given point in time.", - "default": "/tmp/fluent-bit/s3", - "type": "string" - }, - { - "name": "s3_key_format", - "description": "Format string for keys in S3. This option supports strftime time formatters and a syntax for selecting parts of the Fluent log tag using a syntax inspired by the rewrite_tag filter. Add $TAG in the format string to insert the full log tag; add $TAG[0] to insert the first part of the tag in the s3 key. The tag is split into \u201cparts\u201d using the characters specified with the s3_key_format_tag_delimiters option. Add $INDEX to enable sequential indexing for file names. Adding $INDEX will prevent random string being added to end of keywhen $UUID is not provided. See the in depth examples and tutorial in the documentation.", - "default": "/fluent-bit-logs/$TAG/%Y/%m/%d/%H/%M/%S", - "type": "string" - }, - { - "name": "s3_key_format_tag_delimiters", - "description": "A series of characters which will be used to split the tag into \u201cparts\u201d for use with the s3_key_format option. See the in depth examples and tutorial in the documentation.", - "default": ".", - "type": "string" - }, - { - "name": "auto_retry_requests", - "description": "Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues.", - "default": "true", - "type": "boolean" - }, - { - "name": "use_put_object", - "description": "Use the S3 PutObject API, instead of the multipart upload API", - "default": "false", - "type": "boolean" - }, - { - "name": "send_content_md5", - "description": "Send the Content-MD5 header with object uploads, as is required when Object Lock is enabled", - "default": "false", - "type": "boolean" - }, - { - "name": "preserve_data_ordering", - "description": "Normally, when an upload request fails, there is a high chance for the last received chunk to be swapped with a later chunk, resulting in data shuffling. This feature prevents this shuffling by using a queue logic for uploads.", - "default": "false", - "type": "boolean" - }, - { - "name": "log_key", - "description": "By default, the whole log record will be sent to S3. If you specify a key name with this option, then only the value of that key will be sent to S3.", - "default": null, - "type": "string" - }, - { - "name": "external_id", - "description": "Specify an external ID for the STS API, can be used with the role_arn parameter if your role requires an external ID.", - "default": null, - "type": "string" - }, - { - "name": "static_file_path", - "description": "Disables behavior where UUID string is automatically appended to end of S3 key name when $UUID is not provided in s3_key_format. $UUID, time formatters, $TAG, and other dynamic key formatters all work as expected while this feature is set to true.", - "default": "false", - "type": "boolean" - }, - { - "name": "storage_class", - "description": "Specify the storage class for S3 objects. If this option is not specified, objects will be stored with the default 'STANDARD' storage class.", - "default": null, - "type": "string" - } - ], - "networking": [ - { - "name": "net.dns.mode", - "description": "Select the primary DNS connection type (TCP or UDP)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.resolver", - "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", - "default": null, - "type": "string" - }, - { - "name": "net.dns.prefer_ipv4", - "description": "Prioritize IPv4 DNS results when trying to establish a connection", - "default": "false", - "type": "boolean" - }, - { - "name": "net.keepalive", - "description": "Enable or disable Keepalive support", - "default": "true", - "type": "boolean" - }, - { - "name": "net.keepalive_idle_timeout", - "description": "Set maximum time allowed for an idle Keepalive connection", - "default": "30s", - "type": "time" - }, - { - "name": "net.connect_timeout", - "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", - "default": "10s", - "type": "time" - }, - { - "name": "net.connect_timeout_log_error", - "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", - "default": "true", - "type": "boolean" - }, - { - "name": "net.source_address", - "description": "Specify network address to bind for data traffic", - "default": null, - "type": "string" - }, - { - "name": "net.keepalive_max_recycle", - "description": "Set maximum number of times a keepalive connection can be used before it is retired.", - "default": "2000", - "type": "integer" - } - ], - "network_tls": [ - { - "name": "tls", - "description": "Enable or disable TLS/SSL support", - "default": "off", - "type": "boolean" - }, - { - "name": "tls.verify", - "description": "Force certificate validation", - "default": "on", - "type": "boolean" - }, - { - "name": "tls.debug", - "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", - "default": "1", - "type": "integer" - }, - { - "name": "tls.ca_file", - "description": "Absolute path to CA certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.ca_path", - "description": "Absolute path to scan for certificate files", - "default": null, - "type": "string" - }, - { - "name": "tls.crt_file", - "description": "Absolute path to Certificate file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_file", - "description": "Absolute path to private Key file", - "default": null, - "type": "string" - }, - { - "name": "tls.key_passwd", - "description": "Optional password for tls.key_file file", - "default": null, - "type": "string" - }, - { - "name": "tls.vhost", - "description": "Hostname to be used for TLS SNI extension", - "default": null, - "type": "string" - } - ] - } - } - ] + "description": "Specify the file that contains the patterns to lookup.", + "default": null, + "type": "string" + }, + { + "name": "mode", + "description": "Set the check mode: 'exact' or 'partial'.", + "default": "exact", + "type": "string" + }, + { + "name": "print_query_time", + "description": "Print to stdout the elapseed query time for every matched record", + "default": "false", + "type": "boolean" + }, + { + "name": "ignore_case", + "description": "Compare strings by ignoring case.", + "default": "false", + "type": "boolean" + }, + { + "name": "lookup_key", + "description": "Name of the key to lookup.", + "default": "log", + "type": "string" + }, + { + "name": "record", + "description": "Name of record key to add and its value, it accept two values,e.g 'record mykey my val'. You can add many 'record' entries as needed.", + "default": null, + "type": "space delimited strings (minimum 2)" + } + ] + } + }, + { + "type": "filter", + "name": "record_modifier", + "description": "modify record", + "properties": { + "options": [ + { + "name": "record", + "description": "Append fields. This parameter needs key and value pair.", + "default": null, + "type": "space delimited strings (minimum 2)" + }, + { + "name": "remove_key", + "description": "If the key is matched, that field is removed.", + "default": null, + "type": "string" + }, + { + "name": "allowlist_key", + "description": "If the key is not matched, that field is removed.", + "default": null, + "type": "string" + }, + { + "name": "whitelist_key", + "description": "(Alias of allowlist_key)", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "filter", + "name": "throttle", + "description": "Throttle messages using sliding window algorithm", + "properties": { + "options": [ + { + "name": "rate", + "description": "Set throttle rate", + "default": "1", + "type": "double" + }, + { + "name": "window", + "description": "Set throttle window", + "default": "5", + "type": "integer" + }, + { + "name": "print_status", + "description": "Set whether or not to print status information", + "default": "false", + "type": "boolean" + }, + { + "name": "interval", + "description": "Set the slide interval", + "default": "1", + "type": "string" + } + ] + } + }, + { + "type": "filter", + "name": "type_converter", + "description": "Data type converter", + "properties": { + "options": [ + { + "name": "int_key", + "description": "Convert integer to other type. e.g. int_key id id_str string", + "default": null, + "type": "space delimited strings (minimum 3)" + }, + { + "name": "uint_key", + "description": "Convert unsinged integer to other type. e.g. uint_key id id_str string", + "default": null, + "type": "space delimited strings (minimum 3)" + }, + { + "name": "float_key", + "description": "Convert float to other type. e.g. float_key ratio id_str string", + "default": null, + "type": "space delimited strings (minimum 3)" + }, + { + "name": "str_key", + "description": "Convert string to other type. e.g. str_key id id_val integer", + "default": null, + "type": "space delimited strings (minimum 3)" + } + ] + } + }, + { + "type": "filter", + "name": "kubernetes", + "description": "Filter to append Kubernetes metadata", + "properties": { + "options": [ + { + "name": "buffer_size", + "description": "buffer size to receive response from API server", + "default": "32K", + "type": "size" + }, + { + "name": "tls.debug", + "description": "set TLS debug level: 0 (no debug), 1 (error), 2 (state change), 3 (info) and 4 (verbose)", + "default": "0", + "type": "integer" + }, + { + "name": "tls.verify", + "description": "enable or disable verification of TLS peer certificate", + "default": "true", + "type": "boolean" + }, + { + "name": "tls.vhost", + "description": "set optional TLS virtual host", + "default": null, + "type": "string" + }, + { + "name": "merge_log", + "description": "merge 'log' key content as individual keys", + "default": "false", + "type": "boolean" + }, + { + "name": "merge_parser", + "description": "specify a 'parser' name to parse the 'log' key content", + "default": null, + "type": "string" + }, + { + "name": "merge_log_key", + "description": "set the 'key' name where the content of 'key' will be placed. Only used if the option 'merge_log' is enabled", + "default": null, + "type": "string" + }, + { + "name": "merge_log_trim", + "description": "remove ending '\\n' or '\\r' characters from the log content", + "default": "true", + "type": "boolean" + }, + { + "name": "keep_log", + "description": "keep original log content if it was successfully parsed and merged", + "default": "true", + "type": "boolean" + }, + { + "name": "kube_url", + "description": "Kubernetes API server URL", + "default": "https://kubernetes.default.svc", + "type": "string" + }, + { + "name": "kube_meta_preload_cache_dir", + "description": "set directory with metadata files", + "default": null, + "type": "string" + }, + { + "name": "kube_ca_file", + "description": "Kubernetes TLS CA file", + "default": "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt", + "type": "string" + }, + { + "name": "kube_ca_path", + "description": "Kubernetes TLS ca path", + "default": null, + "type": "string" + }, + { + "name": "kube_tag_prefix", + "description": "prefix used in tag by the input plugin", + "default": "kube.var.log.containers.", + "type": "string" + }, + { + "name": "kube_token_file", + "description": "Kubernetes authorization token file", + "default": "/var/run/secrets/kubernetes.io/serviceaccount/token", + "type": "string" + }, + { + "name": "kube_token_command", + "description": "command to get Kubernetes authorization token", + "default": null, + "type": "string" + }, + { + "name": "labels", + "description": "include Kubernetes labels on every record", + "default": "true", + "type": "boolean" + }, + { + "name": "annotations", + "description": "include Kubernetes annotations on every record", + "default": "true", + "type": "boolean" + }, + { + "name": "k8s-logging.parser", + "description": "allow Pods to suggest a parser", + "default": "false", + "type": "boolean" + }, + { + "name": "k8s-logging.exclude", + "description": "allow Pods to exclude themselves from the logging pipeline", + "default": "false", + "type": "boolean" + }, + { + "name": "use_journal", + "description": "use Journald (Systemd) mode", + "default": "false", + "type": "boolean" + }, + { + "name": "regex_parser", + "description": "optional regex parser to extract metadata from container name or container log file name", + "default": null, + "type": "string" + }, + { + "name": "dummy_meta", + "description": "use 'dummy' metadata, do not talk to API server", + "default": "false", + "type": "boolean" + }, + { + "name": "dns_retries", + "description": "dns lookup retries N times until the network start working", + "default": "6", + "type": "integer" + }, + { + "name": "dns_wait_time", + "description": "dns interval between network status checks", + "default": "30", + "type": "time" + }, + { + "name": "cache_use_docker_id", + "description": "fetch K8s meta when docker_id is changed", + "default": "false", + "type": "boolean" + }, + { + "name": "use_tag_for_meta", + "description": "use tag associated to retrieve metadata instead of kube-server", + "default": "false", + "type": "boolean" + }, + { + "name": "use_kubelet", + "description": "use kubelet to get metadata instead of kube-server", + "default": "false", + "type": "boolean" + }, + { + "name": "kubelet_host", + "description": "kubelet host to connect with when using kubelet", + "default": "127.0.0.1", + "type": "string" + }, + { + "name": "kubelet_port", + "description": "kubelet port to connect with when using kubelet", + "default": "10250", + "type": "integer" + }, + { + "name": "kube_token_ttl", + "description": "kubernetes token ttl, until it is reread from the token file. Default: 10m", + "default": "10m", + "type": "time" + }, + { + "name": "kube_meta_cache_ttl", + "description": "configurable TTL for K8s cached metadata. By default, it is set to 0 which means TTL for cache entries is disabled and cache entries are evicted at random when capacity is reached. In order to enable this option, you should set the number to a time interval. For example, set this value to 60 or 60s and cache entries which have been created more than 60s will be evicted", + "default": "0", + "type": "time" + } + ] + } + }, + { + "type": "filter", + "name": "modify", + "description": "modify records by applying rules", + "properties": { + "options": [ + { + "name": "Set", + "description": "Add a key/value pair with key KEY and value VALUE. If KEY already exists, this field is overwritten.", + "default": null, + "type": "string" + }, + { + "name": "Add", + "description": "Add a key/value pair with key KEY and value VALUE if KEY does not exist", + "default": null, + "type": "string" + }, + { + "name": "Remove", + "description": "Remove a key/value pair with key KEY if it exists", + "default": null, + "type": "string" + }, + { + "name": "Remove_wildcard", + "description": "Remove all key/value pairs with key matching wildcard KEY", + "default": null, + "type": "string" + }, + { + "name": "Remove_regex", + "description": "Remove all key/value pairs with key matching regexp KEY", + "default": null, + "type": "string" + }, + { + "name": "Rename", + "description": "Rename a key/value pair with key KEY to RENAMED_KEY if KEY exists AND RENAMED_KEY does not exist", + "default": null, + "type": "string" + }, + { + "name": "Hard_Rename", + "description": "Rename a key/value pair with key KEY to RENAMED_KEY if KEY exists. If RENAMED_KEY already exists, this field is overwritten", + "default": null, + "type": "string" + }, + { + "name": "Copy", + "description": "Copy a key/value pair with key KEY to COPIED_KEY if KEY exists AND COPIED_KEY does not exist", + "default": null, + "type": "string" + }, + { + "name": "Hard_copy", + "description": "Copy a key/value pair with key KEY to COPIED_KEY if KEY exists. If COPIED_KEY already exists, this field is overwritten", + "default": null, + "type": "string" + }, + { + "name": "Condition", + "description": "Set the condition to modify. Key_exists, Key_does_not_exist, A_key_matches, No_key_matches, Key_value_equals, Key_value_does_not_equal, Key_value_matches, Key_value_does_not_match, Matching_keys_have_matching_values and Matching_keys_do_not_have_matching_values are supported.", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "filter", + "name": "multiline", + "description": "Concatenate multiline messages", + "properties": { + "options": [ + { + "name": "debug_flush", + "description": "enable debugging for concatenation flush to stdout", + "default": "false", + "type": "boolean" + }, + { + "name": "buffer", + "description": "Enable buffered mode. In buffered mode, the filter can concatenate multilines from inputs that ingest records one by one (ex: Forward), rather than in chunks, re-emitting them into the beggining of the pipeline using the in_emitter instance. With buffer off, this filter will not work with most inputs, except tail.", + "default": "true", + "type": "boolean" + }, + { + "name": "mode", + "description": "Mode can be 'parser' for regex concat, or 'partial_message' to concat split docker logs.", + "default": "parser", + "type": "string" + }, + { + "name": "flush_ms", + "description": "Flush time for pending multiline records", + "default": "2000", + "type": "integer" + }, + { + "name": "multiline.parser", + "description": "specify one or multiple multiline parsers: docker, cri, go, java, etc.", + "default": null, + "type": "multiple comma delimited strings" + }, + { + "name": "multiline.key_content", + "description": "specify the key name that holds the content to process.", + "default": null, + "type": "string" + }, + { + "name": "emitter_name", + "description": "", + "default": null, + "type": "string" + }, + { + "name": "emitter_storage.type", + "description": "", + "default": "memory", + "type": "string" + }, + { + "name": "emitter_mem_buf_limit", + "description": "set a memory buffer limit to restrict memory usage of emitter", + "default": "10M", + "type": "size" + } + ] + } + }, + { + "type": "filter", + "name": "nest", + "description": "nest events by specified field values", + "properties": { + "options": [ + { + "name": "Operation", + "description": "Select the operation nest or lift", + "default": null, + "type": "string" + }, + { + "name": "Wildcard", + "description": "Nest records which field matches the wildcard", + "default": null, + "type": "string" + }, + { + "name": "Nest_under", + "description": "Nest records matching the Wildcard under this key", + "default": null, + "type": "string" + }, + { + "name": "Nested_under", + "description": "Lift records nested under the Nested_under key", + "default": null, + "type": "string" + }, + { + "name": "Add_prefix", + "description": "Prefix affected keys with this string", + "default": null, + "type": "string" + }, + { + "name": "Remove_prefix", + "description": "Remove prefix from affected keys if it matches this string", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "filter", + "name": "parser", + "description": "Parse events", + "properties": { + "options": [ + { + "name": "Key_Name", + "description": "Specify field name in record to parse.", + "default": null, + "type": "string" + }, + { + "name": "Parser", + "description": "Specify the parser name to interpret the field. Multiple Parser entries are allowed (one per line).", + "default": null, + "type": "string" + }, + { + "name": "Preserve_Key", + "description": "Keep original Key_Name field in the parsed result. If false, the field will be removed.", + "default": null, + "type": "boolean" + }, + { + "name": "Reserve_Data", + "description": "Keep all other original fields in the parsed result. If false, all other original fields will be removed.", + "default": null, + "type": "boolean" + }, + { + "name": "Unescape_key", + "description": "(deprecated)", + "default": null, + "type": "deprecated" + } + ] + } + }, + { + "type": "filter", + "name": "expect", + "description": "Validate expected keys and values", + "properties": { + "options": [ + { + "name": "key_exists", + "description": "check that the given key name exists in the record", + "default": null, + "type": "string" + }, + { + "name": "key_not_exists", + "description": "check that the given key name do not exists in the record", + "default": null, + "type": "string" + }, + { + "name": "key_val_is_null", + "description": "check that the value of the key is NULL", + "default": null, + "type": "string" + }, + { + "name": "key_val_is_not_null", + "description": "check that the value of the key is NOT NULL", + "default": null, + "type": "string" + }, + { + "name": "key_val_eq", + "description": "check that the value of the key equals the given value", + "default": null, + "type": "space delimited strings (minimum 1)" + }, + { + "name": "action", + "description": "action to take when a rule does not match: 'warn', 'exit' or 'result_key'.", + "default": "warn", + "type": "string" + }, + { + "name": "result_key", + "description": "specify the key name to append a boolean that indicates rule is matched or not. This key is to be used only when 'action' is 'result_key'.", + "default": "matched", + "type": "string" + } + ] + } + }, + { + "type": "filter", + "name": "grep", + "description": "grep events by specified field values", + "properties": { + "options": [ + { + "name": "regex", + "description": "Keep records in which the content of KEY matches the regular expression.", + "default": null, + "type": "string" + }, + { + "name": "exclude", + "description": "Exclude records in which the content of KEY matches the regular expression.", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "filter", + "name": "rewrite_tag", + "description": "Rewrite records tags", + "properties": { + "options": [ + { + "name": "rule", + "description": "", + "default": null, + "type": "space delimited strings (minimum 4)" + }, + { + "name": "emitter_name", + "description": "", + "default": null, + "type": "string" + }, + { + "name": "emitter_storage.type", + "description": "", + "default": "memory", + "type": "string" + }, + { + "name": "emitter_mem_buf_limit", + "description": "set a memory buffer limit to restrict memory usage of emitter", + "default": "10M", + "type": "size" + } + ] + } + }, + { + "type": "filter", + "name": "lua", + "description": "Lua Scripting Filter", + "properties": { + "options": [ + { + "name": "script", + "description": "The path of lua script.", + "default": null, + "type": "string" + }, + { + "name": "code", + "description": "String that contains the Lua script source code", + "default": null, + "type": "string" + }, + { + "name": "call", + "description": "Lua function name that will be triggered to do filtering.", + "default": null, + "type": "string" + }, + { + "name": "type_int_key", + "description": "If these keys are matched, the fields are converted to integer. If more than one key, delimit by space.", + "default": null, + "type": "string" + }, + { + "name": "type_array_key", + "description": "If these keys are matched, the fields are converted to array. If more than one key, delimit by space.", + "default": null, + "type": "string" + }, + { + "name": "protected_mode", + "description": "If enabled, Lua script will be executed in protected mode. It prevents to crash when invalid Lua script is executed.", + "default": "true", + "type": "boolean" + }, + { + "name": "time_as_table", + "description": "If enabled, Fluent-bit will pass the timestamp as a Lua table with keys \"sec\" for seconds since epoch and \"nsec\" for nanoseconds.", + "default": "false", + "type": "boolean" + } + ] + } + }, + { + "type": "filter", + "name": "stdout", + "description": "Filter events to STDOUT", + "properties": { + "options": [] + } + }, + { + "type": "filter", + "name": "geoip2", + "description": "add geoip information to records", + "properties": { + "options": [ + { + "name": "database", + "description": "Set the geoip2 database path", + "default": null, + "type": "string" + }, + { + "name": "lookup_key", + "description": "Add a lookup_key", + "default": null, + "type": "string" + }, + { + "name": "record", + "description": "Add a record to the output base on geoip2", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "filter", + "name": "nightfall", + "description": "scans records for sensitive content", + "properties": { + "options": [ + { + "name": "nightfall_api_key", + "description": "The Nightfall API key to scan your logs with.", + "default": null, + "type": "string" + }, + { + "name": "policy_id", + "description": "The Nightfall policy ID to scan your logs with.", + "default": null, + "type": "string" + }, + { + "name": "sampling_rate", + "description": "The sampling rate for scanning, must be (0,1]. 1 means all logs will be scanned.", + "default": "1", + "type": "double" + }, + { + "name": "tls.debug", + "description": "Set TLS debug level: 0 (no debug), 1 (error), 2 (state change), 3 (info) and 4 (verbose)", + "default": "0", + "type": "integer" + }, + { + "name": "tls.verify", + "description": "Enable or disable verification of TLS peer certificate", + "default": "true", + "type": "boolean" + }, + { + "name": "tls.vhost", + "description": "Set optional TLS virtual host", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Path to root certificates on the system", + "default": null, + "type": "string" + } + ] + } + } + ], + "outputs": [ + { + "type": "output", + "name": "azure", + "description": "Send events to Azure HTTP Event Collector", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "customer_id", + "description": "Customer ID or WorkspaceID string.", + "default": null, + "type": "string" + }, + { + "name": "shared_key", + "description": "The primary or the secondary Connected Sources client authentication key.", + "default": null, + "type": "string" + }, + { + "name": "log_type", + "description": "The name of the event type.", + "default": "fluentbit", + "type": "string" + }, + { + "name": "time_key", + "description": "Optional parameter to specify the key name where the timestamp will be stored.", + "default": "@timestamp", + "type": "string" + }, + { + "name": "time_generated", + "description": "If enabled, the HTTP request header 'time-generated-field' will be included so Azure can override the timestamp with the key specified by 'time_key' option.", + "default": "false", + "type": "boolean" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "azure_blob", + "description": "Azure Blob Storage", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "account_name", + "description": "Azure account name (mandatory)", + "default": null, + "type": "string" + }, + { + "name": "container_name", + "description": "Container name (mandatory)", + "default": null, + "type": "string" + }, + { + "name": "auto_create_container", + "description": "Auto create container if it don't exists", + "default": "true", + "type": "boolean" + }, + { + "name": "blob_type", + "description": "Set the block type: appendblob or blockblob", + "default": "appendblob", + "type": "string" + }, + { + "name": "compress", + "description": "Set payload compression in network transfer. Option available is 'gzip'", + "default": null, + "type": "string" + }, + { + "name": "compress_blob", + "description": "Enable block blob GZIP compression in the final blob file. This option is not compatible with 'appendblob' block type", + "default": "false", + "type": "boolean" + }, + { + "name": "emulator_mode", + "description": "Use emulator mode, enable it if you want to use Azurite", + "default": "false", + "type": "boolean" + }, + { + "name": "shared_key", + "description": "Azure shared key", + "default": null, + "type": "string" + }, + { + "name": "endpoint", + "description": "Custom full URL endpoint to use an emulator", + "default": null, + "type": "string" + }, + { + "name": "path", + "description": "Set a path for your blob", + "default": null, + "type": "string" + }, + { + "name": "date_key", + "description": "Name of the key that will have the record timestamp", + "default": "@timestamp", + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "bigquery", + "description": "Send events to BigQuery via streaming insert", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "google_service_credentials", + "description": "Set the path for the google service credentials file", + "default": null, + "type": "string" + }, + { + "name": "enable_identity_federation", + "description": "Enable identity federation", + "default": "false", + "type": "boolean" + }, + { + "name": "aws_region", + "description": "Enable identity federation", + "default": null, + "type": "string" + }, + { + "name": "project_number", + "description": "Set project number", + "default": null, + "type": "string" + }, + { + "name": "pool_id", + "description": "Set the pool id", + "default": null, + "type": "string" + }, + { + "name": "provider_id", + "description": "Set the provider id", + "default": null, + "type": "string" + }, + { + "name": "google_service_account", + "description": "Set the google service account", + "default": null, + "type": "string" + }, + { + "name": "service_account_email", + "description": "Set the service account email", + "default": null, + "type": "string" + }, + { + "name": "service_account_secret", + "description": "Set the service account secret", + "default": null, + "type": "string" + }, + { + "name": "project_id", + "description": "Set the project id", + "default": null, + "type": "string" + }, + { + "name": "dataset_id", + "description": "Set the dataset id", + "default": null, + "type": "string" + }, + { + "name": "table_id", + "description": "Set the table id", + "default": null, + "type": "string" + }, + { + "name": "skip_invalid_rows", + "description": "Enable skipping of invalid rows", + "default": "false", + "type": "boolean" + }, + { + "name": "ignore_unknown_values", + "description": "Enable ignoring unknown value", + "default": "false", + "type": "boolean" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "counter", + "description": "Records counter", + "properties": { + "options": [] + } + }, + { + "type": "output", + "name": "datadog", + "description": "Send events to DataDog HTTP Event Collector", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "compress", + "description": "compresses the payload in GZIP format, Datadog supports and recommends setting this to 'gzip'.", + "default": "false", + "type": "string" + }, + { + "name": "apikey", + "description": "Datadog API key", + "default": null, + "type": "string" + }, + { + "name": "dd_service", + "description": "The human readable name for your service generating the logs - the name of your application or database.", + "default": null, + "type": "string" + }, + { + "name": "dd_source", + "description": "A human readable name for the underlying technology of your service. For example, 'postgres' or 'nginx'.", + "default": null, + "type": "string" + }, + { + "name": "dd_tags", + "description": "The tags you want to assign to your logs in Datadog.", + "default": null, + "type": "string" + }, + { + "name": "proxy", + "description": "Specify an HTTP Proxy. The expected format of this value is http://host:port. Note that https is not supported yet.", + "default": null, + "type": "string" + }, + { + "name": "include_tag_key", + "description": "If enabled, tag is appended to output. The key name is used 'tag_key' property.", + "default": "false", + "type": "boolean" + }, + { + "name": "tag_key", + "description": "The key name of tag. If 'include_tag_key' is false, This property is ignored", + "default": "tagkey", + "type": "string" + }, + { + "name": "dd_message_key", + "description": "By default, the plugin searches for the key 'log' and remap the value to the key 'message'. If the property is set, the plugin will search the property name key.", + "default": null, + "type": "string" + }, + { + "name": "provider", + "description": "To activate the remapping, specify configuration flag provider with value 'ecs'", + "default": null, + "type": "string" + }, + { + "name": "json_date_key", + "description": "Date key name for output.", + "default": "timestamp", + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "es", + "description": "Elasticsearch", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "index", + "description": "Set an index name", + "default": "fluent-bit", + "type": "string" + }, + { + "name": "type", + "description": "Set the document type property", + "default": "_doc", + "type": "string" + }, + { + "name": "suppress_type_name", + "description": "If true, mapping types is removed. (for v7.0.0 or later)", + "default": "false", + "type": "boolean" + }, + { + "name": "http_user", + "description": "Optional username credential for Elastic X-Pack access", + "default": null, + "type": "string" + }, + { + "name": "http_passwd", + "description": "Password for user defined in HTTP_User", + "default": "", + "type": "string" + }, + { + "name": "cloud_id", + "description": "Elastic cloud ID of the cluster to connect to", + "default": null, + "type": "string" + }, + { + "name": "cloud_auth", + "description": "Elastic cloud authentication credentials", + "default": null, + "type": "string" + }, + { + "name": "aws_auth", + "description": "Enable AWS Sigv4 Authentication", + "default": "false", + "type": "boolean" + }, + { + "name": "aws_region", + "description": "AWS Region of your Amazon OpenSearch Service cluster", + "default": null, + "type": "string" + }, + { + "name": "aws_sts_endpoint", + "description": "Custom endpoint for the AWS STS API, used with the AWS_Role_ARN option", + "default": null, + "type": "string" + }, + { + "name": "aws_role_arn", + "description": "AWS IAM Role to assume to put records to your Amazon OpenSearch cluster", + "default": null, + "type": "string" + }, + { + "name": "aws_external_id", + "description": "External ID for the AWS IAM Role specified with `aws_role_arn`", + "default": null, + "type": "string" + }, + { + "name": "logstash_format", + "description": "Enable Logstash format compatibility", + "default": "false", + "type": "boolean" + }, + { + "name": "logstash_prefix", + "description": "When Logstash_Format is enabled, the Index name is composed using a prefix and the date, e.g: If Logstash_Prefix is equals to 'mydata' your index will become 'mydata-YYYY.MM.DD'. The last string appended belongs to the date when the data is being generated", + "default": "logstash", + "type": "string" + }, + { + "name": "logstash_prefix_key", + "description": "When included: the value in the record that belongs to the key will be looked up and over-write the Logstash_Prefix for index generation. If the key/value is not found in the record then the Logstash_Prefix option will act as a fallback. Nested keys are supported through record accessor pattern", + "default": null, + "type": "string" + }, + { + "name": "logstash_dateformat", + "description": "Time format (based on strftime) to generate the second part of the Index name", + "default": "%Y.%m.%d", + "type": "string" + }, + { + "name": "time_key", + "description": "When Logstash_Format is enabled, each record will get a new timestamp field. The Time_Key property defines the name of that field", + "default": "@timestamp", + "type": "string" + }, + { + "name": "time_key_format", + "description": "When Logstash_Format is enabled, this property defines the format of the timestamp", + "default": "%Y-%m-%dT%H:%M:%S", + "type": "string" + }, + { + "name": "time_key_nanos", + "description": "When Logstash_Format is enabled, enabling this property sends nanosecond precision timestamps", + "default": "false", + "type": "boolean" + }, + { + "name": "include_tag_key", + "description": "When enabled, it append the Tag name to the record", + "default": "false", + "type": "boolean" + }, + { + "name": "tag_key", + "description": "When Include_Tag_Key is enabled, this property defines the key name for the tag", + "default": "flb-key", + "type": "string" + }, + { + "name": "buffer_size", + "description": "Specify the buffer size used to read the response from the Elasticsearch HTTP service. This option is useful for debugging purposes where is required to read full responses, note that response size grows depending of the number of records inserted. To set an unlimited amount of memory set this value to 'false', otherwise the value must be according to the Unit Size specification", + "default": "512k", + "type": "size" + }, + { + "name": "path", + "description": "Elasticsearch accepts new data on HTTP query path '/_bulk'. But it is also possible to serve Elasticsearch behind a reverse proxy on a subpath. This option defines such path on the fluent-bit side. It simply adds a path prefix in the indexing HTTP POST URI", + "default": null, + "type": "string" + }, + { + "name": "pipeline", + "description": "Newer versions of Elasticsearch allows to setup filters called pipelines. This option allows to define which pipeline the database should use. For performance reasons is strongly suggested to do parsing and filtering on Fluent Bit side, avoid pipelines", + "default": null, + "type": "string" + }, + { + "name": "generate_id", + "description": "When enabled, generate _id for outgoing records. This prevents duplicate records when retrying ES", + "default": "false", + "type": "boolean" + }, + { + "name": "write_operation", + "description": "Operation to use to write in bulk requests", + "default": "create", + "type": "string" + }, + { + "name": "id_key", + "description": "If set, _id will be the value of the key from incoming record.", + "default": null, + "type": "string" + }, + { + "name": "replace_dots", + "description": "When enabled, replace field name dots with underscore, required by Elasticsearch 2.0-2.3.", + "default": "false", + "type": "boolean" + }, + { + "name": "current_time_index", + "description": "Use current time for index generation instead of message record", + "default": "false", + "type": "boolean" + }, + { + "name": "trace_output", + "description": "When enabled print the Elasticsearch API calls to stdout (for diag only)", + "default": "false", + "type": "boolean" + }, + { + "name": "trace_error", + "description": "When enabled print the Elasticsearch exception to stderr (for diag only)", + "default": "false", + "type": "boolean" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "exit", + "description": "Exit after a number of flushes (test purposes)", + "properties": { + "options": [ + { + "name": "flush_count", + "description": "", + "default": "1", + "type": "integer" + } + ] + } + }, + { + "type": "output", + "name": "file", + "description": "Generate log file", + "properties": { + "options": [ + { + "name": "path", + "description": "Absolute path to store the files. This parameter is optional", + "default": null, + "type": "string" + }, + { + "name": "file", + "description": "Name of the target file to write the records. If 'path' is specified, the value is prefixed", + "default": null, + "type": "string" + }, + { + "name": "format", + "description": "Specify the output data format, the available options are: plain (json), csv, ltsv and template. If no value is set the outgoing data is formatted using the tag and the record in json", + "default": null, + "type": "string" + }, + { + "name": "delimiter", + "description": "Set a custom delimiter for the records", + "default": null, + "type": "string" + }, + { + "name": "label_delimiter", + "description": "Set a custom label delimiter, to be used with 'ltsv' format", + "default": null, + "type": "string" + }, + { + "name": "template", + "description": "Set a custom template format for the data", + "default": "{time} {message}", + "type": "string" + }, + { + "name": "csv_column_names", + "description": "Add column names (keys) in the first line of the target file", + "default": "false", + "type": "boolean" + }, + { + "name": "mkdir", + "description": "Recursively create output directory if it does not exist. Permissions set to 0755", + "default": "false", + "type": "boolean" + } + ] + } + }, + { + "type": "output", + "name": "forward", + "description": "Forward (Fluentd protocol)", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "time_as_integer", + "description": "Set timestamp in integer format (compat mode for old Fluentd v0.12)", + "default": "false", + "type": "boolean" + }, + { + "name": "shared_key", + "description": "Shared key for authentication", + "default": null, + "type": "string" + }, + { + "name": "self_hostname", + "description": "Hostname", + "default": null, + "type": "string" + }, + { + "name": "empty_shared_key", + "description": "Set an empty shared key for authentication", + "default": "false", + "type": "boolean" + }, + { + "name": "send_options", + "description": "Send 'forward protocol options' to remote endpoint", + "default": "false", + "type": "boolean" + }, + { + "name": "require_ack_response", + "description": "Require that remote endpoint confirms data reception", + "default": "false", + "type": "boolean" + }, + { + "name": "username", + "description": "Username for authentication", + "default": "", + "type": "string" + }, + { + "name": "password", + "description": "Password for authentication", + "default": "", + "type": "string" + }, + { + "name": "unix_path", + "description": "Path to unix socket. It is ignored when 'upstream' property is set", + "default": null, + "type": "string" + }, + { + "name": "upstream", + "description": "Path to 'upstream' configuration file (define multiple nodes)", + "default": null, + "type": "string" + }, + { + "name": "tag", + "description": "Set a custom Tag for the outgoing records", + "default": null, + "type": "string" + }, + { + "name": "compress", + "description": "Compression mode", + "default": null, + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "http", + "description": "HTTP Output", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "proxy", + "description": "Specify an HTTP Proxy. The expected format of this value is http://host:port. ", + "default": null, + "type": "string" + }, + { + "name": "allow_duplicated_headers", + "description": "Specify if duplicated headers are allowed or not", + "default": "true", + "type": "boolean" + }, + { + "name": "log_response_payload", + "description": "Specify if the response paylod should be logged or not", + "default": "true", + "type": "boolean" + }, + { + "name": "http_user", + "description": "Set HTTP auth user", + "default": null, + "type": "string" + }, + { + "name": "http_passwd", + "description": "Set HTTP auth password", + "default": "", + "type": "string" + }, + { + "name": "aws_auth", + "description": "Enable AWS SigV4 authentication", + "default": "false", + "type": "boolean" + }, + { + "name": "aws_service", + "description": "AWS destination service code, used by SigV4 authentication", + "default": null, + "type": "string" + }, + { + "name": "aws_region", + "description": "AWS region of your service", + "default": null, + "type": "string" + }, + { + "name": "aws_sts_endpoint", + "description": "Custom endpoint for the AWS STS API, used with the `aws_role_arn` option", + "default": null, + "type": "string" + }, + { + "name": "aws_role_arn", + "description": "ARN of an IAM role to assume (ex. for cross account access)", + "default": null, + "type": "string" + }, + { + "name": "aws_external_id", + "description": "Specify an external ID for the STS API, can be used with the `aws_role_arn` parameter if your role requires an external ID.", + "default": null, + "type": "string" + }, + { + "name": "header_tag", + "description": "Set a HTTP header which value is the Tag", + "default": null, + "type": "string" + }, + { + "name": "format", + "description": "Set desired payload format: json, json_stream, json_lines, gelf or msgpack", + "default": null, + "type": "string" + }, + { + "name": "json_date_format", + "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", + "default": null, + "type": "string" + }, + { + "name": "json_date_key", + "description": "Specify the name of the date field in output", + "default": "date", + "type": "string" + }, + { + "name": "compress", + "description": "Set payload compression mechanism. Option available is 'gzip'", + "default": null, + "type": "string" + }, + { + "name": "header", + "description": "Add a HTTP header key/value pair. Multiple headers can be set", + "default": null, + "type": "space delimited strings (minimum 1)" + }, + { + "name": "uri", + "description": "Specify an optional HTTP URI for the target web server, e.g: /something", + "default": null, + "type": "string" + }, + { + "name": "gelf_timestamp_key", + "description": "Specify the key to use for 'timestamp' in gelf format", + "default": null, + "type": "string" + }, + { + "name": "gelf_host_key", + "description": "Specify the key to use for the 'host' in gelf format", + "default": null, + "type": "string" + }, + { + "name": "gelf_short_message_key", + "description": "Specify the key to use as the 'short' message in gelf format", + "default": null, + "type": "string" + }, + { + "name": "gelf_full_message_key", + "description": "Specify the key to use for the 'full' message in gelf format", + "default": null, + "type": "string" + }, + { + "name": "gelf_level_key", + "description": "Specify the key to use for the 'level' in gelf format", + "default": null, + "type": "string" + }, + { + "name": "body_key", + "description": "Specify the key which contains the body", + "default": null, + "type": "string" + }, + { + "name": "headers_key", + "description": "Specify the key which contains the headers", + "default": null, + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "influxdb", + "description": "InfluxDB Time Series", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "database", + "description": "Set the database name.", + "default": "fluentbit", + "type": "string" + }, + { + "name": "bucket", + "description": "Specify the bucket name, used on InfluxDB API v2.", + "default": null, + "type": "string" + }, + { + "name": "org", + "description": "Set the Organization name.", + "default": "fluent", + "type": "string" + }, + { + "name": "sequence_tag", + "description": "Specify the sequence tag.", + "default": null, + "type": "string" + }, + { + "name": "uri", + "description": "Specify a custom URI endpoint (must start with '/').", + "default": null, + "type": "string" + }, + { + "name": "http_user", + "description": "HTTP Basic Auth username.", + "default": null, + "type": "string" + }, + { + "name": "http_passwd", + "description": "HTTP Basic Auth password.", + "default": "", + "type": "string" + }, + { + "name": "http_token", + "description": "Set InfluxDB HTTP Token API v2.", + "default": null, + "type": "string" + }, + { + "name": "http_header", + "description": "Add a HTTP header key/value pair. Multiple headers can be set", + "default": null, + "type": "space delimited strings (minimum 1)" + }, + { + "name": "auto_tags", + "description": "Automatically tag keys where value is string.", + "default": "false", + "type": "boolean" + }, + { + "name": "tag_keys", + "description": "Space separated list of keys that needs to be tagged.", + "default": null, + "type": "boolean" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "logdna", + "description": "LogDNA", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "logdna_host", + "description": "LogDNA Host address", + "default": "logs.logdna.com", + "type": "string" + }, + { + "name": "logdna_port", + "description": "LogDNA TCP port", + "default": "443", + "type": "integer" + }, + { + "name": "api_key", + "description": "Logdna API key", + "default": null, + "type": "string" + }, + { + "name": "hostname", + "description": "Local Server or device host name", + "default": null, + "type": "string" + }, + { + "name": "mac", + "description": "MAC address (optional)", + "default": "", + "type": "string" + }, + { + "name": "ip", + "description": "IP address (optional)", + "default": "", + "type": "string" + }, + { + "name": "tags", + "description": "Tags (optional)", + "default": "", + "type": "multiple comma delimited strings" + }, + { + "name": "file", + "description": "Name of the monitored file (optional)", + "default": null, + "type": "string" + }, + { + "name": "app", + "description": "Name of the application generating the data (optional)", + "default": "Fluent Bit", + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "loki", + "description": "Loki", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "tenant_id", + "description": "Tenant ID used by default to push logs to Loki. If omitted or empty it assumes Loki is running in single-tenant mode and no X-Scope-OrgID header is sent.", + "default": null, + "type": "string" + }, + { + "name": "tenant_id_key", + "description": "If set, X-Scope-OrgID will be the value of the key from incoming record. It is useful to set X-Scode-OrgID dynamically.", + "default": null, + "type": "string" + }, + { + "name": "labels", + "description": "labels for API requests. If no value is set, the default label is 'job=fluent-bit'", + "default": null, + "type": "multiple comma delimited strings" + }, + { + "name": "auto_kubernetes_labels", + "description": "If set to true, it will add all Kubernetes labels to Loki labels.", + "default": "false", + "type": "boolean" + }, + { + "name": "drop_single_key", + "description": "If set to true and only a single key remains, the log line sent to Loki will be the value of that key.", + "default": "false", + "type": "boolean" + }, + { + "name": "label_keys", + "description": "Comma separated list of keys to use as stream labels.", + "default": null, + "type": "multiple comma delimited strings" + }, + { + "name": "remove_keys", + "description": "Comma separated list of keys to remove.", + "default": null, + "type": "multiple comma delimited strings" + }, + { + "name": "line_format", + "description": "Format to use when flattening the record to a log line. Valid values are 'json' or 'key_value'. If set to 'json' the log line sent to Loki will be the Fluent Bit record dumped as json. If set to 'key_value', the log line will be each item in the record concatenated together (separated by a single space) in the format '='.", + "default": "json", + "type": "string" + }, + { + "name": "http_user", + "description": "Set HTTP auth user", + "default": null, + "type": "string" + }, + { + "name": "http_passwd", + "description": "Set HTTP auth password", + "default": "", + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "kafka-rest", + "description": "Kafka REST Proxy", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "message_key", + "description": "Specify a message key. ", + "default": null, + "type": "string" + }, + { + "name": "time_key", + "description": "Specify the name of the field that holds the record timestamp. ", + "default": null, + "type": "string" + }, + { + "name": "topic", + "description": "Specify the kafka topic. ", + "default": "fluent-bit", + "type": "string" + }, + { + "name": "url_path", + "description": "Specify an optional HTTP URL path for the target web server, e.g: /something", + "default": null, + "type": "string" + }, + { + "name": "partition", + "description": "Specify kafka partition number. ", + "default": "-1", + "type": "double" + }, + { + "name": "time_key_format", + "description": "Specify the format of the timestamp. ", + "default": "%Y-%m-%dT%H:%M:%S", + "type": "string" + }, + { + "name": "include_tag_key", + "description": "Specify whether to append tag name to final record. ", + "default": "false", + "type": "boolean" + }, + { + "name": "tag_key", + "description": "Specify the key name of the record if include_tag_key is enabled. ", + "default": "_flb-key", + "type": "string" + }, + { + "name": "avro_http_header", + "description": "Specify if the format has avro header in http request", + "default": "false", + "type": "boolean" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "nats", + "description": "NATS Server", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ] + } + }, + { + "type": "output", + "name": "nrlogs", + "description": "New Relic", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "base_uri", + "description": "New Relic Host address", + "default": "https://log-api.newrelic.com/log/v1", + "type": "string" + }, + { + "name": "api_key", + "description": "New Relic API Key", + "default": null, + "type": "string" + }, + { + "name": "license_key", + "description": "New Relic License Key", + "default": null, + "type": "string" + }, + { + "name": "compress", + "description": "Set payload compression mechanism", + "default": "gzip", + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "null", + "description": "Throws away events", + "properties": { + "options": [ + { + "name": "format", + "description": "Specifies the data format to be printed. Supported formats are msgpack json, json_lines and json_stream.", + "default": null, + "type": "string" + }, + { + "name": "json_date_format", + "description": "Specifies the name of the date field in output.", + "default": null, + "type": "string" + }, + { + "name": "json_date_key", + "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", + "default": "date", + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "opensearch", + "description": "OpenSearch", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "index", + "description": "Set an index name", + "default": "fluent-bit", + "type": "string" + }, + { + "name": "type", + "description": "Set the document type property", + "default": "_doc", + "type": "string" + }, + { + "name": "suppress_type_name", + "description": "If true, mapping types is removed. (for v7.0.0 or later)", + "default": "false", + "type": "boolean" + }, + { + "name": "http_user", + "description": "Optional username credential for access", + "default": null, + "type": "string" + }, + { + "name": "http_passwd", + "description": "Password for user defined in 'http_user'", + "default": "", + "type": "string" + }, + { + "name": "aws_auth", + "description": "Enable AWS Sigv4 Authentication", + "default": "false", + "type": "boolean" + }, + { + "name": "aws_region", + "description": "AWS Region of your Amazon OpenSearch Service cluster", + "default": null, + "type": "string" + }, + { + "name": "aws_sts_endpoint", + "description": "Custom endpoint for the AWS STS API, used with the AWS_Role_ARN option", + "default": null, + "type": "string" + }, + { + "name": "aws_role_arn", + "description": "AWS IAM Role to assume to put records to your Amazon OpenSearch cluster", + "default": null, + "type": "string" + }, + { + "name": "aws_external_id", + "description": "External ID for the AWS IAM Role specified with `aws_role_arn`", + "default": null, + "type": "string" + }, + { + "name": "logstash_format", + "description": "Enable Logstash format compatibility", + "default": "false", + "type": "boolean" + }, + { + "name": "logstash_prefix", + "description": "When Logstash_Format is enabled, the Index name is composed using a prefix and the date, e.g: If Logstash_Prefix is equals to 'mydata' your index will become 'mydata-YYYY.MM.DD'. The last string appended belongs to the date when the data is being generated", + "default": "logstash", + "type": "string" + }, + { + "name": "logstash_prefix_key", + "description": "When included: the value in the record that belongs to the key will be looked up and over-write the Logstash_Prefix for index generation. If the key/value is not found in the record then the Logstash_Prefix option will act as a fallback. Nested keys are supported through record accessor pattern", + "default": null, + "type": "string" + }, + { + "name": "logstash_dateformat", + "description": "Time format (based on strftime) to generate the second part of the Index name", + "default": "%Y.%m.%d", + "type": "string" + }, + { + "name": "time_key", + "description": "When Logstash_Format is enabled, each record will get a new timestamp field. The Time_Key property defines the name of that field", + "default": "@timestamp", + "type": "string" + }, + { + "name": "time_key_format", + "description": "When Logstash_Format is enabled, this property defines the format of the timestamp", + "default": "%Y-%m-%dT%H:%M:%S", + "type": "string" + }, + { + "name": "time_key_nanos", + "description": "When Logstash_Format is enabled, enabling this property sends nanosecond precision timestamps", + "default": "false", + "type": "boolean" + }, + { + "name": "include_tag_key", + "description": "When enabled, it append the Tag name to the record", + "default": "false", + "type": "boolean" + }, + { + "name": "tag_key", + "description": "When Include_Tag_Key is enabled, this property defines the key name for the tag", + "default": "flb-key", + "type": "string" + }, + { + "name": "buffer_size", + "description": "Specify the buffer size used to read the response from the OpenSearch HTTP service. This option is useful for debugging purposes where is required to read full responses, note that response size grows depending of the number of records inserted. To set an unlimited amount of memory set this value to 'false', otherwise the value must be according to the Unit Size specification", + "default": "512k", + "type": "size" + }, + { + "name": "path", + "description": "OpenSearch accepts new data on HTTP query path '/_bulk'. But it is also possible to serve OpenSearch behind a reverse proxy on a subpath. This option defines such path on the fluent-bit side. It simply adds a path prefix in the indexing HTTP POST URI", + "default": null, + "type": "string" + }, + { + "name": "pipeline", + "description": "OpenSearch allows to setup filters called pipelines. This option allows to define which pipeline the database should use. For performance reasons is strongly suggested to do parsing and filtering on Fluent Bit side, avoid pipelines", + "default": null, + "type": "string" + }, + { + "name": "generate_id", + "description": "When enabled, generate _id for outgoing records. This prevents duplicate records when retrying", + "default": "false", + "type": "boolean" + }, + { + "name": "write_operation", + "description": "Operation to use to write in bulk requests", + "default": "create", + "type": "string" + }, + { + "name": "id_key", + "description": "If set, _id will be the value of the key from incoming record.", + "default": null, + "type": "string" + }, + { + "name": "replace_dots", + "description": "When enabled, replace field name dots with underscore.", + "default": "false", + "type": "boolean" + }, + { + "name": "current_time_index", + "description": "Use current time for index generation instead of message record", + "default": "false", + "type": "boolean" + }, + { + "name": "trace_output", + "description": "When enabled print the OpenSearch API calls to stdout (for diag only)", + "default": "false", + "type": "boolean" + }, + { + "name": "trace_error", + "description": "When enabled print the OpenSearch exception to stderr (for diag only)", + "default": "false", + "type": "boolean" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "plot", + "description": "Generate data file for GNU Plot", + "properties": { + "options": [ + { + "name": "key", + "description": "set a number of times to generate event.", + "default": null, + "type": "string" + }, + { + "name": "file", + "description": "set a number of times to generate event.", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "skywalking", + "description": "Send logs into log collector on SkyWalking OAP", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "auth_token", + "description": "Auth token for SkyWalking OAP", + "default": null, + "type": "string" + }, + { + "name": "svc_name", + "description": "Service name", + "default": "sw-service", + "type": "string" + }, + { + "name": "svc_inst_name", + "description": "Instance name", + "default": "fluent-bit", + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "slack", + "description": "Send events to a Slack channel", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "webhook", + "description": "", + "default": null, + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "splunk", + "description": "Send events to Splunk HTTP Event Collector", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "compress", + "description": "Set payload compression mechanism. Option available is 'gzip'", + "default": null, + "type": "string" + }, + { + "name": "http_user", + "description": "Set HTTP auth user", + "default": null, + "type": "string" + }, + { + "name": "http_passwd", + "description": "Set HTTP auth password", + "default": "", + "type": "string" + }, + { + "name": "http_buffer_size", + "description": "Specify the buffer size used to read the response from the Splunk HTTP service. This option is useful for debugging purposes where is required to read full responses, note that response size grows depending of the number of records inserted. To set an unlimited amount of memory set this value to 'false', otherwise the value must be according to the Unit Size specification", + "default": null, + "type": "size" + }, + { + "name": "http_debug_bad_request", + "description": "If the HTTP server response code is 400 (bad request) and this flag is enabled, it will print the full HTTP request and response to the stdout interface. This feature is available for debugging purposes.", + "default": "false", + "type": "boolean" + }, + { + "name": "event_key", + "description": "Specify the key name that will be used to send a single value as part of the record.", + "default": null, + "type": "string" + }, + { + "name": "event_host", + "description": "Set the host value to the event data. The value allows a record accessor pattern.", + "default": null, + "type": "string" + }, + { + "name": "event_source", + "description": "Set the source value to assign to the event data.", + "default": null, + "type": "string" + }, + { + "name": "event_sourcetype", + "description": "Set the sourcetype value to assign to the event data.", + "default": null, + "type": "string" + }, + { + "name": "event_sourcetype_key", + "description": "Set a record key that will populate 'sourcetype'. If the key is found, it will have precedence over the value set in 'event_sourcetype'.", + "default": null, + "type": "string" + }, + { + "name": "event_index", + "description": "The name of the index by which the event data is to be indexed.", + "default": null, + "type": "string" + }, + { + "name": "event_index_key", + "description": "Set a record key that will populate the 'index' field. If the key is found, it will have precedence over the value set in 'event_index'.", + "default": null, + "type": "string" + }, + { + "name": "event_field", + "description": "Set event fields for the record. This option can be set multiple times and the format is 'key_name record_accessor_pattern'.", + "default": null, + "type": "space delimited strings (minimum 2)" + }, + { + "name": "splunk_token", + "description": "Specify the Authentication Token for the HTTP Event Collector interface.", + "default": null, + "type": "string" + }, + { + "name": "splunk_send_raw", + "description": "When enabled, the record keys and values are set in the top level of the map instead of under the event key. Refer to the Sending Raw Events section from the docs for more details to make this option work properly.", + "default": "off", + "type": "boolean" + }, + { + "name": "channel", + "description": "Specify X-Splunk-Request-Channel Header for the HTTP Event Collector interface.", + "default": null, + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "stackdriver", + "description": "Send events to Google Stackdriver Logging", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "google_service_credentials", + "description": "Set the path for the google service credentials file", + "default": null, + "type": "string" + }, + { + "name": "metadata_server", + "description": "Set the metadata server", + "default": null, + "type": "string" + }, + { + "name": "service_account_email", + "description": "Set the service account email", + "default": null, + "type": "string" + }, + { + "name": "service_account_secret", + "description": "Set the service account secret", + "default": null, + "type": "string" + }, + { + "name": "export_to_project_id", + "description": "Export to project id", + "default": null, + "type": "string" + }, + { + "name": "resource", + "description": "Set the resource", + "default": "global", + "type": "string" + }, + { + "name": "severity_key", + "description": "Set the severity key", + "default": "logging.googleapis.com/severity", + "type": "string" + }, + { + "name": "autoformat_stackdriver_trace", + "description": "Autoformat the stacrdriver trace", + "default": "false", + "type": "boolean" + }, + { + "name": "trace_key", + "description": "Set the trace key", + "default": "logging.googleapis.com/trace", + "type": "string" + }, + { + "name": "log_name_key", + "description": "Set the logname key", + "default": "logging.googleapis.com/logName", + "type": "string" + }, + { + "name": "http_request_key", + "description": "Set the http request key", + "default": "logging.googleapis.com/http_request", + "type": "string" + }, + { + "name": "k8s_cluster_name", + "description": "Set the kubernetes cluster name", + "default": null, + "type": "string" + }, + { + "name": "k8s_cluster_location", + "description": "Set the kubernetes cluster location", + "default": null, + "type": "string" + }, + { + "name": "location", + "description": "Set the resource location", + "default": null, + "type": "string" + }, + { + "name": "namespace", + "description": "Set the resource namespace", + "default": null, + "type": "string" + }, + { + "name": "node_id", + "description": "Set the resource node id", + "default": null, + "type": "string" + }, + { + "name": "job", + "description": "Set the resource job", + "default": null, + "type": "string" + }, + { + "name": "task_id", + "description": "Set the resource task id", + "default": null, + "type": "string" + }, + { + "name": "labels", + "description": "Set the labels", + "default": null, + "type": "multiple comma delimited strings" + }, + { + "name": "labels_key", + "description": "Set the labels key", + "default": "logging.googleapis.com/labels", + "type": "string" + }, + { + "name": "tag_prefix", + "description": "Set the tag prefix", + "default": null, + "type": "string" + }, + { + "name": "stackdriver_agent", + "description": "Set the stackdriver agent", + "default": null, + "type": "string" + }, + { + "name": "custom_k8s_regex", + "description": "Set a custom kubernetes regex filter", + "default": "(?[a-z0-9](?:[-a-z0-9]*[a-z0-9])?(?:\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)_(?[^_]+)_(?.+)-(?[a-z0-9]{64})\\.log$", + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "stdout", + "description": "Prints events to STDOUT", + "properties": { + "options": [ + { + "name": "format", + "description": "Specifies the data format to be printed. Supported formats are msgpack json, json_lines and json_stream.", + "default": null, + "type": "string" + }, + { + "name": "json_date_format", + "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", + "default": null, + "type": "string" + }, + { + "name": "json_date_key", + "description": "Specifies the name of the date field in output.", + "default": "date", + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "syslog", + "description": "Syslog", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "mode", + "description": "Set the desired transport type, the available options are tcp and udp. If you need to use a TLS secure channel, choose 'tcp' mode here and enable the 'tls' option separately.", + "default": "udp", + "type": "string" + }, + { + "name": "syslog_format", + "description": "Specify the Syslog protocol format to use, the available options are rfc3164 and rfc5424.", + "default": "rfc5424", + "type": "string" + }, + { + "name": "syslog_maxsize", + "description": "Set the maximum size allowed per message. The value must be only integers representing the number of bytes allowed. If no value is provided, the default size is set depending of the protocol version specified by syslog_format , rfc3164 sets max size to 1024 bytes, while rfc5424 sets the size to 2048 bytes.", + "default": "0", + "type": "size" + }, + { + "name": "syslog_severity_key", + "description": "Specify the name of the key from the original record that contains the Syslog severity number. This configuration is optional.", + "default": null, + "type": "string" + }, + { + "name": "syslog_facility_key", + "description": "Specify the name of the key from the original record that contains the Syslog facility number. This configuration is optional.", + "default": null, + "type": "string" + }, + { + "name": "syslog_hostname_key", + "description": "Specify the key name from the original record that contains the hostname that generated the message. This configuration is optional.", + "default": null, + "type": "string" + }, + { + "name": "syslog_appname_key", + "description": "Specify the key name from the original record that contains the application name that generated the message. This configuration is optional.", + "default": null, + "type": "string" + }, + { + "name": "syslog_procid_key", + "description": "Specify the key name from the original record that contains the Process ID that generated the message. This configuration is optional.", + "default": null, + "type": "string" + }, + { + "name": "syslog_msgid_key", + "description": "Specify the key name from the original record that contains the Message ID associated to the message. This configuration is optional.", + "default": null, + "type": "string" + }, + { + "name": "syslog_sd_key", + "description": "Specify the key name from the original record that contains the Structured Data (SD) content. If set, the value of the key must be a map.This option can be set multiple times.", + "default": null, + "type": "string" + }, + { + "name": "syslog_message_key", + "description": "Specify the key name that contains the message to deliver. Note that if this property is mandatory, otherwise the message will be empty.", + "default": null, + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "tcp", + "description": "TCP Output", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "format", + "description": "Specify the payload format, supported formats: msgpack, json, json_lines or json_stream.", + "default": "msgpack", + "type": "string" + }, + { + "name": "json_date_format", + "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", + "default": "double", + "type": "string" + }, + { + "name": "json_date_key", + "description": "Specify the name of the date field in output.", + "default": "date", + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "td", + "description": "Treasure Data", + "properties": { + "options": [ + { + "name": "API", + "description": "Set the API key", + "default": null, + "type": "string" + }, + { + "name": "Database", + "description": "Set the Database file", + "default": null, + "type": "string" + }, + { + "name": "Table", + "description": "Set the Database Table", + "default": null, + "type": "string" + }, + { + "name": "Region", + "description": "Set the Region: us or jp", + "default": null, + "type": "string" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "lib", + "description": "Library mode Output", + "properties": {} + }, + { + "type": "output", + "name": "flowcounter", + "description": "FlowCounter", + "properties": { + "options": [ + { + "name": "unit", + "description": "", + "default": null, + "type": "string" + }, + { + "name": "event_based", + "description": "", + "default": "false", + "type": "boolean" + } + ] + } + }, + { + "type": "output", + "name": "gelf", + "description": "GELF Output", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "mode", + "description": "The protocol to use. 'tls', 'tcp' or 'udp'", + "default": "udp", + "type": "string" + }, + { + "name": "gelf_short_message_key", + "description": "A short descriptive message (MUST be set in GELF)", + "default": null, + "type": "string" + }, + { + "name": "gelf_timestamp_key", + "description": "Timestamp key name (SHOULD be set in GELF)", + "default": null, + "type": "string" + }, + { + "name": "gelf_host_key", + "description": "Key which its value is used as the name of the host,source or application that sent this message. (MUST be set in GELF) ", + "default": null, + "type": "string" + }, + { + "name": "gelf_full_message_key", + "description": "Key to use as the long message that can i.e. contain a backtrace. (Optional in GELF)", + "default": null, + "type": "string" + }, + { + "name": "gelf_level_key", + "description": "Key to be used as the log level. Its value must be in standard syslog levels (between 0 and 7). (Optional in GELF)", + "default": null, + "type": "string" + }, + { + "name": "packet_size", + "description": "If transport protocol is udp, you can set the size of packets to be sent.", + "default": "1420", + "type": "integer" + }, + { + "name": "compress", + "description": "If transport protocol is udp, you can set this if you want your UDP packets to be compressed.", + "default": "true", + "type": "boolean" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "websocket", + "description": "Websocket", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "uri", + "description": "Specify an optional URI for the target web socket server, e.g: /something", + "default": null, + "type": "string" + }, + { + "name": "format", + "description": "Set desired payload format: json, json_stream, json_lines, gelf or msgpack", + "default": null, + "type": "string" + }, + { + "name": "json_date_format", + "description": "Specify the format of the date", + "default": "double", + "type": "string" + }, + { + "name": "json_date_key", + "description": "Specify the name of the date field in output", + "default": "date", + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "cloudwatch_logs", + "description": "Send logs to Amazon CloudWatch", + "properties": { + "options": [ + { + "name": "region", + "description": "The AWS region to send logs to", + "default": null, + "type": "string" + }, + { + "name": "log_group_name", + "description": "CloudWatch Log Group Name", + "default": null, + "type": "string" + }, + { + "name": "log_stream_name", + "description": "CloudWatch Log Stream Name; not compatible with `log_stream_prefix`", + "default": null, + "type": "string" + }, + { + "name": "log_stream_prefix", + "description": "Prefix for CloudWatch Log Stream Name; the tag is appended to the prefix to form the stream name", + "default": null, + "type": "string" + }, + { + "name": "log_group_template", + "description": "Template for CW Log Group name using record accessor syntax. Plugin falls back to the log_group_name configured if needed.", + "default": null, + "type": "string" + }, + { + "name": "log_stream_template", + "description": "Template for CW Log Stream name using record accessor syntax. Plugin falls back to the log_stream_name or log_stream_prefix configured if needed.", + "default": null, + "type": "string" + }, + { + "name": "log_key", + "description": "By default, the whole log record will be sent to CloudWatch. If you specify a key name with this option, then only the value of that key will be sent to CloudWatch. For example, if you are using the Fluentd Docker log driver, you can specify log_key log and only the log message will be sent to CloudWatch.", + "default": null, + "type": "string" + }, + { + "name": "extra_user_agent", + "description": "This option appends a string to the default user agent. AWS asks that you not manually set this field yourself, it is reserved for use in our vended configurations, for example, EKS Container Insights.", + "default": null, + "type": "string" + }, + { + "name": "log_format", + "description": "An optional parameter that can be used to tell CloudWatch the format of the data. A value of json/emf enables CloudWatch to extract custom metrics embedded in a JSON payload.", + "default": null, + "type": "string" + }, + { + "name": "role_arn", + "description": "ARN of an IAM role to assume (ex. for cross account access).", + "default": null, + "type": "string" + }, + { + "name": "auto_create_group", + "description": "Automatically create the log group (log streams will always automatically be created)", + "default": "false", + "type": "boolean" + }, + { + "name": "auto_retry_requests", + "description": "Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues.", + "default": "true", + "type": "boolean" + }, + { + "name": "log_retention_days", + "description": "If set to a number greater than zero, and newly create log group's retention policy is set to this many days. Valid values are: [1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653]", + "default": "0", + "type": "integer" + }, + { + "name": "endpoint", + "description": "Specify a custom endpoint for the CloudWatch Logs API", + "default": null, + "type": "string" + }, + { + "name": "sts_endpoint", + "description": "Specify a custom endpoint for the STS API, can be used with the role_arn parameter", + "default": null, + "type": "string" + }, + { + "name": "external_id", + "description": "Specify an external ID for the STS API, can be used with the role_arn parameter if your role requires an external ID.", + "default": null, + "type": "string" + }, + { + "name": "metric_namespace", + "description": "Metric namespace for CloudWatch EMF logs", + "default": null, + "type": "string" + }, + { + "name": "metric_dimensions", + "description": "Metric dimensions is a list of lists. If you have only one list of dimensions, put the values as a comma seperated string. If you want to put list of lists, use the list as semicolon seperated strings. If your value is 'd1,d2;d3', we will consider it as [[d1, d2],[d3]].", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "kinesis_firehose", + "description": "Send logs to Amazon Kinesis Firehose", + "properties": { + "options": [ + { + "name": "region", + "description": "The AWS region of your delivery stream", + "default": null, + "type": "string" + }, + { + "name": "delivery_stream", + "description": "Firehose delivery stream name", + "default": null, + "type": "string" + }, + { + "name": "time_key", + "description": "Add the timestamp to the record under this key. By default the timestamp from Fluent Bit will not be added to records sent to Kinesis.", + "default": null, + "type": "string" + }, + { + "name": "time_key_format", + "description": "strftime compliant format string for the timestamp; for example, the default is '%Y-%m-%dT%H:%M:%S'. This option is used with time_key. ", + "default": null, + "type": "string" + }, + { + "name": "role_arn", + "description": "ARN of an IAM role to assume (ex. for cross account access).", + "default": null, + "type": "string" + }, + { + "name": "endpoint", + "description": "Specify a custom endpoint for the Firehose API", + "default": null, + "type": "string" + }, + { + "name": "sts_endpoint", + "description": "Custom endpoint for the STS API.", + "default": null, + "type": "string" + }, + { + "name": "external_id", + "description": "Specify an external ID for the STS API, can be used with the role_arn parameter if your role requires an external ID.", + "default": null, + "type": "string" + }, + { + "name": "compression", + "description": "Compression type for Firehose records. Each log record is individually compressed and sent to Firehose. 'gzip' and 'arrow' are the supported values. 'arrow' is only an available if Apache Arrow was enabled at compile time. Defaults to no compression.", + "default": null, + "type": "string" + }, + { + "name": "log_key", + "description": "By default, the whole log record will be sent to Firehose. If you specify a key name with this option, then only the value of that key will be sent to Firehose. For example, if you are using the Fluentd Docker log driver, you can specify `log_key log` and only the log message will be sent to Firehose.", + "default": null, + "type": "string" + }, + { + "name": "auto_retry_requests", + "description": "Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues.", + "default": "true", + "type": "boolean" + } + ] + } + }, + { + "type": "output", + "name": "kinesis_streams", + "description": "Send logs to Amazon Kinesis Streams", + "properties": { + "options": [ + { + "name": "region", + "description": "The AWS region of your kinesis stream", + "default": null, + "type": "string" + }, + { + "name": "stream", + "description": "Kinesis stream name", + "default": null, + "type": "string" + }, + { + "name": "time_key", + "description": "Add the timestamp to the record under this key. By default the timestamp from Fluent Bit will not be added to records sent to Kinesis.", + "default": null, + "type": "string" + }, + { + "name": "time_key_format", + "description": "strftime compliant format string for the timestamp; for example, the default is '%Y-%m-%dT%H:%M:%S'. This option is used with time_key. ", + "default": null, + "type": "string" + }, + { + "name": "role_arn", + "description": "ARN of an IAM role to assume (ex. for cross account access).", + "default": null, + "type": "string" + }, + { + "name": "endpoint", + "description": "Specify a custom endpoint for the Kinesis API", + "default": null, + "type": "string" + }, + { + "name": "sts_endpoint", + "description": "Custom endpoint for the STS API.", + "default": null, + "type": "string" + }, + { + "name": "external_id", + "description": "Specify an external ID for the STS API, can be used with the role_arn parameter if your role requires an external ID.", + "default": null, + "type": "string" + }, + { + "name": "log_key", + "description": "By default, the whole log record will be sent to Kinesis. If you specify a key name with this option, then only the value of that key will be sent to Kinesis. For example, if you are using the Fluentd Docker log driver, you can specify `log_key log` and only the log message will be sent to Kinesis.", + "default": null, + "type": "string" + }, + { + "name": "auto_retry_requests", + "description": "Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues.", + "default": "true", + "type": "boolean" + } + ] + } + }, + { + "type": "output", + "name": "opentelemetry", + "description": "OpenTelemetry", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "add_label", + "description": "Adds a custom label to the metrics use format: 'add_label name value'", + "default": null, + "type": "space delimited strings (minimum 1)" + }, + { + "name": "proxy", + "description": "Specify an HTTP Proxy. The expected format of this value is http://host:port. ", + "default": null, + "type": "string" + }, + { + "name": "http_user", + "description": "Set HTTP auth user", + "default": null, + "type": "string" + }, + { + "name": "http_passwd", + "description": "Set HTTP auth password", + "default": "", + "type": "string" + }, + { + "name": "header", + "description": "Add a HTTP header key/value pair. Multiple headers can be set", + "default": null, + "type": "space delimited strings (minimum 1)" + }, + { + "name": "uri", + "description": "Specify an optional HTTP URI for the target OTel endpoint.", + "default": "/v1/metrics", + "type": "string" + }, + { + "name": "log_response_payload", + "description": "Specify if the response paylod should be logged or not", + "default": "true", + "type": "boolean" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "prometheus_exporter", + "description": "Prometheus Exporter", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "add_timestamp", + "description": "Add timestamp to every metric honoring collection time.", + "default": "false", + "type": "boolean" + }, + { + "name": "add_label", + "description": "TCP port for listening for HTTP connections.", + "default": null, + "type": "space delimited strings (minimum 1)" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ] + } + }, + { + "type": "output", + "name": "prometheus_remote_write", + "description": "Prometheus remote write", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + }, + { + "name": "add_label", + "description": "Adds a custom label to the metrics use format: 'add_label name value'", + "default": null, + "type": "space delimited strings (minimum 1)" + }, + { + "name": "proxy", + "description": "Specify an HTTP Proxy. The expected format of this value is http://host:port. ", + "default": null, + "type": "string" + }, + { + "name": "http_user", + "description": "Set HTTP auth user", + "default": null, + "type": "string" + }, + { + "name": "http_passwd", + "description": "Set HTTP auth password", + "default": "", + "type": "string" + }, + { + "name": "header", + "description": "Add a HTTP header key/value pair. Multiple headers can be set", + "default": null, + "type": "space delimited strings (minimum 1)" + }, + { + "name": "uri", + "description": "Specify an optional HTTP URI for the target web server, e.g: /something", + "default": null, + "type": "string" + }, + { + "name": "log_response_payload", + "description": "Specify if the response paylod should be logged or not", + "default": "true", + "type": "boolean" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + }, + { + "type": "output", + "name": "s3", + "description": "Send to S3", + "properties": { + "options": [ + { + "name": "host", + "description": "Host Address", + "default": "", + "type": "string" + }, + { + "name": "port", + "description": "host Port", + "default": "0", + "type": "integer" + }, + { + "name": "json_date_format", + "description": "Specify the format of the date, supported formats: double, iso8601 (e.g: 2018-05-30T09:39:52.000681Z), java_sql_timestamp (e.g: 2018-05-30 09:39:52.000681, useful for AWS Athena), and epoch.", + "default": null, + "type": "string" + }, + { + "name": "json_date_key", + "description": "Specifies the name of the date field in output.", + "default": "date", + "type": "string" + }, + { + "name": "total_file_size", + "description": "Specifies the size of files in S3. Maximum size is 50GB, minimum is 1MB", + "default": "100000000", + "type": "size" + }, + { + "name": "upload_chunk_size", + "description": "This plugin uses the S3 Multipart Upload API to stream data to S3, ensuring your data gets-off-the-box as quickly as possible. This parameter configures the size of each “part” in the upload. The total_file_size option configures the size of the file you will see in S3; this option determines the size of chunks uploaded until that size is reached. These chunks are temporarily stored in chunk_buffer_path until their size reaches upload_chunk_size, which point the chunk is uploaded to S3. Default: 5M, Max: 50M, Min: 5M.", + "default": "5242880", + "type": "size" + }, + { + "name": "upload_timeout", + "description": "Optionally specify a timeout for uploads. Whenever this amount of time has elapsed, Fluent Bit will complete an upload and create a new file in S3. For example, set this value to 60m and you will get a new file in S3 every hour. Default is 10m.", + "default": "10m", + "type": "time" + }, + { + "name": "bucket", + "description": "S3 bucket name.", + "default": null, + "type": "string" + }, + { + "name": "region", + "description": "AWS region.", + "default": "us-east-1", + "type": "string" + }, + { + "name": "role_arn", + "description": "ARN of an IAM role to assume (ex. for cross account access).", + "default": null, + "type": "string" + }, + { + "name": "endpoint", + "description": "Custom endpoint for the S3 API.", + "default": null, + "type": "string" + }, + { + "name": "sts_endpoint", + "description": "Custom endpoint for the STS API.", + "default": null, + "type": "string" + }, + { + "name": "canned_acl", + "description": "Predefined Canned ACL policy for S3 objects.", + "default": null, + "type": "string" + }, + { + "name": "compression", + "description": "Compression type for S3 objects. 'gzip' and 'arrow' are the supported values. 'arrow' is only an available if Apache Arrow was enabled at compile time. Defaults to no compression. If 'gzip' is selected, the Content-Encoding HTTP Header will be set to 'gzip'.", + "default": null, + "type": "string" + }, + { + "name": "content_type", + "description": "A standard MIME type for the S3 object; this will be set as the Content-Type HTTP header.", + "default": null, + "type": "string" + }, + { + "name": "store_dir", + "description": "Directory to locally buffer data before sending. Plugin uses the S3 Multipart upload API to send data in chunks of 5 MB at a time- only a small amount of data will be locally buffered at any given point in time.", + "default": "/tmp/fluent-bit/s3", + "type": "string" + }, + { + "name": "s3_key_format", + "description": "Format string for keys in S3. This option supports strftime time formatters and a syntax for selecting parts of the Fluent log tag using a syntax inspired by the rewrite_tag filter. Add $TAG in the format string to insert the full log tag; add $TAG[0] to insert the first part of the tag in the s3 key. The tag is split into “parts” using the characters specified with the s3_key_format_tag_delimiters option. Add $INDEX to enable sequential indexing for file names. Adding $INDEX will prevent random string being added to end of keywhen $UUID is not provided. See the in depth examples and tutorial in the documentation.", + "default": "/fluent-bit-logs/$TAG/%Y/%m/%d/%H/%M/%S", + "type": "string" + }, + { + "name": "s3_key_format_tag_delimiters", + "description": "A series of characters which will be used to split the tag into “parts” for use with the s3_key_format option. See the in depth examples and tutorial in the documentation.", + "default": ".", + "type": "string" + }, + { + "name": "auto_retry_requests", + "description": "Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues.", + "default": "true", + "type": "boolean" + }, + { + "name": "use_put_object", + "description": "Use the S3 PutObject API, instead of the multipart upload API", + "default": "false", + "type": "boolean" + }, + { + "name": "send_content_md5", + "description": "Send the Content-MD5 header with object uploads, as is required when Object Lock is enabled", + "default": "false", + "type": "boolean" + }, + { + "name": "preserve_data_ordering", + "description": "Normally, when an upload request fails, there is a high chance for the last received chunk to be swapped with a later chunk, resulting in data shuffling. This feature prevents this shuffling by using a queue logic for uploads.", + "default": "false", + "type": "boolean" + }, + { + "name": "log_key", + "description": "By default, the whole log record will be sent to S3. If you specify a key name with this option, then only the value of that key will be sent to S3.", + "default": null, + "type": "string" + }, + { + "name": "external_id", + "description": "Specify an external ID for the STS API, can be used with the role_arn parameter if your role requires an external ID.", + "default": null, + "type": "string" + }, + { + "name": "static_file_path", + "description": "Disables behavior where UUID string is automatically appended to end of S3 key name when $UUID is not provided in s3_key_format. $UUID, time formatters, $TAG, and other dynamic key formatters all work as expected while this feature is set to true.", + "default": "false", + "type": "boolean" + }, + { + "name": "storage_class", + "description": "Specify the storage class for S3 objects. If this option is not specified, objects will be stored with the default 'STANDARD' storage class.", + "default": null, + "type": "string" + } + ], + "networking": [ + { + "name": "net.dns.mode", + "description": "Select the primary DNS connection type (TCP or UDP)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.resolver", + "description": "Select the primary DNS resolver type (LEGACY or ASYNC)", + "default": null, + "type": "string" + }, + { + "name": "net.dns.prefer_ipv4", + "description": "Prioritize IPv4 DNS results when trying to establish a connection", + "default": "false", + "type": "boolean" + }, + { + "name": "net.keepalive", + "description": "Enable or disable Keepalive support", + "default": "true", + "type": "boolean" + }, + { + "name": "net.keepalive_idle_timeout", + "description": "Set maximum time allowed for an idle Keepalive connection", + "default": "30s", + "type": "time" + }, + { + "name": "net.connect_timeout", + "description": "Set maximum time allowed to establish a connection, this time includes the TLS handshake", + "default": "10s", + "type": "time" + }, + { + "name": "net.connect_timeout_log_error", + "description": "On connection timeout, specify if it should log an error. When disabled, the timeout is logged as a debug message", + "default": "true", + "type": "boolean" + }, + { + "name": "net.source_address", + "description": "Specify network address to bind for data traffic", + "default": null, + "type": "string" + }, + { + "name": "net.keepalive_max_recycle", + "description": "Set maximum number of times a keepalive connection can be used before it is retired.", + "default": "2000", + "type": "integer" + } + ], + "network_tls": [ + { + "name": "tls", + "description": "Enable or disable TLS/SSL support", + "default": "off", + "type": "boolean" + }, + { + "name": "tls.verify", + "description": "Force certificate validation", + "default": "on", + "type": "boolean" + }, + { + "name": "tls.debug", + "description": "Set TLS debug verbosity level. It accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose", + "default": "1", + "type": "integer" + }, + { + "name": "tls.ca_file", + "description": "Absolute path to CA certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.ca_path", + "description": "Absolute path to scan for certificate files", + "default": null, + "type": "string" + }, + { + "name": "tls.crt_file", + "description": "Absolute path to Certificate file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_file", + "description": "Absolute path to private Key file", + "default": null, + "type": "string" + }, + { + "name": "tls.key_passwd", + "description": "Optional password for tls.key_file file", + "default": null, + "type": "string" + }, + { + "name": "tls.vhost", + "description": "Hostname to be used for TLS SNI extension", + "default": null, + "type": "string" + } + ] + } + } + ] } diff --git a/validator_test.go b/validator_test.go index 199ae84..3a31d7b 100644 --- a/validator_test.go +++ b/validator_test.go @@ -280,6 +280,24 @@ func TestConfig_Validate(t *testing.T) { pull_interval 10s `, }, + { + name: "output_http_with_host_and_port", + ini: ` + [OUTPUT] + Name http + Host api.example.org + Port 443 + `, + }, + // TODO: fix parser + // { + // name: "output_http_header", + // ini: ` + // [OUTPUT] + // Name http + // Header private_key 008(test) + // `, + // }, } for _, tc := range tt { t.Run(tc.name, func(t *testing.T) {