Full Code of influxdata/telegraf for AI

master 665ea76969db cached
5868 files
23.1 MB
4.3M tokens
10004 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (17,044K chars total). Download the full file to get everything.
Repository: influxdata/telegraf
Branch: master
Commit: 665ea76969db
Files: 5868
Total size: 23.1 MB

Directory structure:
gitextract_d5khquh4/

├── .circleci/
│   └── config.yml
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── BUG_REPORT.yml
│   │   ├── FEATURE_REQUEST.yml
│   │   └── SUPPORT.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── linter.yml
│       ├── milestones.yml
│       ├── pr-target-branch.yml
│       ├── readme-linter.yml
│       └── semantic.yml
├── .gitignore
├── .golangci.yml
├── .markdownlint.jsonc
├── .markdownlintignore
├── CHANGELOG-1.13.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── EXTERNAL_PLUGINS.md
├── LICENSE
├── Makefile
├── README.md
├── SECURITY.md
├── accumulator.go
├── agent/
│   ├── README.md
│   ├── accumulator.go
│   ├── accumulator_test.go
│   ├── agent.go
│   ├── agent_posix.go
│   ├── agent_test.go
│   ├── agent_windows.go
│   └── testcases/
│       ├── aggregators-rerun-processors/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       ├── aggregators-skip-processors/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       ├── processor-order-appearance/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       ├── processor-order-explicit/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       ├── processor-order-mixed/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       └── processor-order-no-starlark/
│           ├── expected.out
│           ├── input.influx
│           └── telegraf.conf
├── aggregator.go
├── assets/
│   └── windows/
│       └── icon.icns
├── build_version.txt
├── cmd/
│   └── telegraf/
│       ├── agent.conf
│       ├── cmd_config.go
│       ├── cmd_plugins.go
│       ├── cmd_secretstore.go
│       ├── cmd_win_service.go
│       ├── cmd_win_service_notwindows.go
│       ├── main.go
│       ├── main_test.go
│       ├── main_win_test.go
│       ├── pprof.go
│       ├── printer.go
│       ├── telegraf.go
│       ├── telegraf_posix.go
│       └── telegraf_windows.go
├── config/
│   ├── config.go
│   ├── config_test.go
│   ├── deprecation.go
│   ├── deprecation_test.go
│   ├── envvar.go
│   ├── internal_test.go
│   ├── migration.go
│   ├── plugin_id.go
│   ├── plugin_printer.go
│   ├── plugin_selector.go
│   ├── plugin_selector_test.go
│   ├── secret.go
│   ├── secret_protected.go
│   ├── secret_test.go
│   ├── secret_unprotected.go
│   ├── testdata/
│   │   ├── addressbook.proto
│   │   ├── azure_monitor.toml
│   │   ├── default_parser.toml
│   │   ├── default_parser_exec.toml
│   │   ├── deprecated_field_filter.toml
│   │   ├── envvar_comments.toml
│   │   ├── envvar_comments_expected.toml
│   │   ├── envvar_malicious.conf
│   │   ├── envvar_non_string.conf
│   │   ├── envvar_non_string_multiline.conf
│   │   ├── envvar_valid.conf
│   │   ├── envvar_valid_multiline.conf
│   │   ├── filter_metricpass.toml
│   │   ├── inline_table.toml
│   │   ├── invalid_field.toml
│   │   ├── invalid_field_in_parser_table.toml
│   │   ├── invalid_field_in_parserfunc_table.toml
│   │   ├── invalid_field_processor.toml
│   │   ├── invalid_field_processor_in_parser.toml
│   │   ├── invalid_field_processor_in_parser_table.toml
│   │   ├── invalid_field_processor_in_parserfunc.toml
│   │   ├── invalid_field_processor_in_parserfunc_table.toml
│   │   ├── invalid_field_processor_with_parser.toml
│   │   ├── invalid_field_processor_with_parserfunc.toml
│   │   ├── invalid_field_with_parser.toml
│   │   ├── invalid_field_with_parserfunc.toml
│   │   ├── non_slice_slice.toml
│   │   ├── parsers_new.toml
│   │   ├── processor_order/
│   │   │   ├── multiple_processors.toml
│   │   │   ├── multiple_processors_messy_order.toml
│   │   │   └── multiple_processors_simple_order.toml
│   │   ├── processors_with_parsers.toml
│   │   ├── serializers_new.toml
│   │   ├── serializers_old.toml
│   │   ├── single_plugin.toml
│   │   ├── single_plugin_env_vars.toml
│   │   ├── single_plugin_with_comment_in_array.toml
│   │   ├── single_plugin_with_separators.toml
│   │   ├── slice_comment.toml
│   │   ├── special_types.key
│   │   ├── special_types.pem
│   │   ├── special_types.toml
│   │   ├── state_persistence_input_all_different.toml
│   │   ├── state_persistence_input_all_same.toml
│   │   ├── state_persistence_input_store_load.toml
│   │   ├── state_persistence_processors.toml
│   │   ├── subconfig/
│   │   │   ├── exec.conf
│   │   │   ├── memcached.conf
│   │   │   └── procstat.conf
│   │   ├── telegraf-agent.toml
│   │   ├── wrong_cert_path.toml
│   │   ├── wrong_field_type.toml
│   │   └── wrong_field_type2.toml
│   ├── types.go
│   └── types_test.go
├── docs/
│   ├── AGGREGATORS.md
│   ├── AGGREGATORS_AND_PROCESSORS.md
│   ├── APPARMOR.md
│   ├── COMMANDS_AND_FLAGS.md
│   ├── CONFIGURATION.md
│   ├── CUSTOMIZATION.md
│   ├── DATA_FORMATS_INPUT.md
│   ├── DATA_FORMATS_OUTPUT.md
│   ├── DOCKER.md
│   ├── EXTERNAL_PLUGINS.md
│   ├── FAQ.md
│   ├── INPUTS.md
│   ├── INSTALL_GUIDE.md
│   ├── INTEGRATION_TESTS.md
│   ├── LICENSE_OF_DEPENDENCIES.md
│   ├── METRICS.md
│   ├── NIGHTLIES.md
│   ├── OUTPUTS.md
│   ├── PARSING_DATA.md
│   ├── PROCESSORS.md
│   ├── PROFILING.md
│   ├── QUICK_START.md
│   ├── README.md
│   ├── RELEASES.md
│   ├── SECRETSTORES.md
│   ├── SQL_DRIVERS_INPUT.md
│   ├── SUPPORTED_PLATFORMS.md
│   ├── TEMPLATE_PATTERN.md
│   ├── TLS.md
│   ├── TOML.md
│   ├── WINDOWS_SERVICE.md
│   ├── developers/
│   │   ├── CODE_STYLE.md
│   │   ├── DEBUG.md
│   │   ├── DEPRECATION.md
│   │   ├── LOGGING.md
│   │   ├── METRIC_FORMAT_CHANGES.md
│   │   ├── PACKAGING.md
│   │   ├── PROFILING.md
│   │   ├── REVIEWS.md
│   │   ├── SAMPLE_CONFIG.md
│   │   └── STATE_PERSISTENCE.md
│   ├── includes/
│   │   ├── plugin_config.md
│   │   ├── secret_usage.md
│   │   ├── service_input.md
│   │   └── startup_error_behavior.md
│   └── specs/
│       ├── README.md
│       ├── template.md
│       ├── tsd-001-deprecation.md
│       ├── tsd-002-custom-builder.md
│       ├── tsd-003-state-persistence.md
│       ├── tsd-004-configuration-migration.md
│       ├── tsd-005-output-buffer-strategy.md
│       ├── tsd-006-startup-error-behavior.md
│       ├── tsd-007-url-config-behavior.md
│       ├── tsd-008-partial-write-error-handling.md
│       ├── tsd-009-probe-on-startup.md
│       ├── tsd-010-labels-and-selectors.md
│       └── tsd-011-internal-plugin-statistics.md
├── etc/
│   └── logrotate.d/
│       └── telegraf
├── filter/
│   ├── filter.go
│   ├── filter_test.go
│   └── implementations.go
├── go.mod
├── go.sum
├── info.plist
├── input.go
├── internal/
│   ├── choice/
│   │   └── choice.go
│   ├── clock/
│   │   ├── options.go
│   │   ├── ticker.go
│   │   ├── ticker_aligned_test.go
│   │   ├── ticker_test.go
│   │   ├── ticker_unaligned_test.go
│   │   ├── timer.go
│   │   └── timer_test.go
│   ├── content_coding.go
│   ├── content_coding_test.go
│   ├── customized_no.go
│   ├── customized_yes.go
│   ├── docker/
│   │   ├── docker.go
│   │   └── docker_test.go
│   ├── env.go
│   ├── errors.go
│   ├── exec.go
│   ├── exec_unix.go
│   ├── exec_windows.go
│   ├── fuzz/
│   │   └── json.go
│   ├── globpath/
│   │   ├── globpath.go
│   │   ├── globpath_test.go
│   │   └── testdata/
│   │       ├── log1.log
│   │       ├── log2.log
│   │       ├── log[!.log
│   │       ├── nested1/
│   │       │   └── nested2/
│   │       │       └── nested.txt
│   │       └── test.conf
│   ├── goplugin/
│   │   ├── noplugin.go
│   │   └── plugin.go
│   ├── host_endianness_be.go
│   ├── host_endianness_le.go
│   ├── http.go
│   ├── internal.go
│   ├── internal_test.go
│   ├── limiter/
│   │   └── limiter.go
│   ├── network.go
│   ├── process/
│   │   ├── process.go
│   │   ├── process_posix.go
│   │   ├── process_test.go
│   │   └── process_windows.go
│   ├── rotate/
│   │   ├── file_writer.go
│   │   └── file_writer_test.go
│   ├── templating/
│   │   ├── engine.go
│   │   ├── engine_test.go
│   │   ├── matcher.go
│   │   ├── node.go
│   │   ├── template.go
│   │   └── template_test.go
│   └── type_conversions.go
├── logger/
│   ├── event_logger.go
│   ├── event_logger_test.go
│   ├── handler.go
│   ├── logger.go
│   ├── logger_test.go
│   ├── registry.go
│   ├── stdlog_redirector.go
│   ├── structured_logger.go
│   ├── structured_logger_test.go
│   ├── text_logger.go
│   └── text_logger_test.go
├── logger.go
├── metric/
│   ├── deserialize.go
│   ├── init.go
│   ├── metric.go
│   ├── metric_test.go
│   ├── series_grouper.go
│   ├── series_grouper_test.go
│   ├── tracking.go
│   └── tracking_test.go
├── metric.go
├── migrations/
│   ├── all/
│   │   ├── all.go
│   │   ├── general_common_tls.go
│   │   ├── general_metricfilter.go
│   │   ├── global_agent.go
│   │   ├── inputs.nats_consumer.go
│   │   ├── inputs_KNXListener.go
│   │   ├── inputs_amqp_consumer
│   │   ├── inputs_cassandra.go
│   │   ├── inputs_cisco_telemetry_gnmi.go
│   │   ├── inputs_cloudwatch.go
│   │   ├── inputs_consul.go
│   │   ├── inputs_disk.go
│   │   ├── inputs_docker.go
│   │   ├── inputs_elasticsearch.go
│   │   ├── inputs_filecount.go
│   │   ├── inputs_gnmi.go
│   │   ├── inputs_http.go
│   │   ├── inputs_http_listener.go
│   │   ├── inputs_http_listener_v2.go
│   │   ├── inputs_http_response.go
│   │   ├── inputs_httpjson.go
│   │   ├── inputs_icinga2.go
│   │   ├── inputs_influxdb_listener.go
│   │   ├── inputs_internet_speed.go
│   │   ├── inputs_io.go
│   │   ├── inputs_jolokia.go
│   │   ├── inputs_kafka_consumer_legacy.go
│   │   ├── inputs_kube_inventory.go
│   │   ├── inputs_kubernetes.go
│   │   ├── inputs_logparser.go
│   │   ├── inputs_mqtt_consumer.go
│   │   ├── inputs_nsq_consumer.go
│   │   ├── inputs_ntpq.go
│   │   ├── inputs_openldap.go
│   │   ├── inputs_procstat.go
│   │   ├── inputs_rabbitmq.go
│   │   ├── inputs_sflow.go
│   │   ├── inputs_smart.go
│   │   ├── inputs_snmp_legacy.go
│   │   ├── inputs_sqlserver.go
│   │   ├── inputs_statsd.go
│   │   ├── inputs_tcp_listener.go
│   │   ├── inputs_udp_listener.go
│   │   ├── inputs_vsphere.go
│   │   ├── outputs_amqp.go
│   │   ├── outputs_influxdb.go
│   │   ├── outputs_kinesis.go
│   │   ├── outputs_librato.go
│   │   ├── outputs_mqtt.go
│   │   ├── outputs_remotefile.go
│   │   ├── outputs_riemann_legacy.go
│   │   └── outputs_wavefront.go
│   ├── common/
│   │   ├── filter_options.go
│   │   ├── input_options.go
│   │   └── output_options.go
│   ├── general_common_tls/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_ssl/
│   │           ├── dummy
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── general_metricfilter/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_drop/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_fielddrop/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_fieldpass/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_pass/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_all_overlap/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_fieldexclude/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_fieldexclude_overlap/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_fieldinclude/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── merge_fieldinclude_overlap/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── global_agent/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── default.conf
│   │       ├── logtarget_eventlog/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── logtarget_eventlog_collision.conf
│   │       ├── logtarget_eventlog_with_logfile/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── logtarget_file/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── logtarget_file_no_logfile/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── logtarget_stderr/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── logtarget_stderr_with_logfile/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_KNXListener/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── expected.conf
│   │       └── telegraf.conf
│   ├── inputs_amqp_consumer/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_url/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_url_existing_brokers/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_url_existing_brokers_duplicate/
│   │           ├── deprecated_url_existing_brokers/
│   │           │   ├── expected.conf
│   │           │   └── telegraf.conf
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_cassandra/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── filter_options/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── general_options/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_cisco_telemetry_gnmi/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_alias/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_cloudwatch/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── multiple_cloudwatch_instances/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── namespace_duplicate_in_namespaces/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── namespace_merge_with_namespaces/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── namespace_to_namespaces/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_consul/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_centre_existing/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_datacentre/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_disk/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_mountpoints/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_mountpoints_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_docker/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── all_deprecated_options/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── conflict_resolution/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── container_names_merge/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── container_names_migration/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── perdevice_false_migration/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── perdevice_true_migration/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── total_false_migration/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── total_true_migration/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_elasticsearch/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── http_timeout_to_timeout/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── http_timeout_with_auth/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── http_timeout_with_existing_timeout/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── http_timeout_with_tls/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── multiple_elasticsearch_instances/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_filecount/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_directory/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_directory_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_directory_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_gnmi/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_enable_tls/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_guess_path/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_guess_path_false/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_http/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_bearer_token/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_bearer_token_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_http_listener/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_alias/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_http_listener_v2/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_path/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_path_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_path_existing/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_port/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_port_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_http_response/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_address/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_address_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_address_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_httpjson/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── array/
│   │       │   ├── expected.conf
│   │       │   ├── input.json
│   │       │   ├── output.influx
│   │       │   └── telegraf.conf
│   │       ├── filters/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── headers/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── params/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── single/
│   │           ├── expected.conf
│   │           ├── input.json
│   │           ├── output.influx
│   │           └── telegraf.conf
│   ├── inputs_icinga2/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_object_type/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_object_type_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_object_type_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_influxdb_listener/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_max_line_size/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_internet_speed/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_enable_file_download/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_enable_file_download_existing/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_enable_file_download_false/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_io/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── empty/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── full/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_jolokia/
│   │   ├── README.md
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── agent_default/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── agent_more_complex/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── agent_response_timeout/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── proxy_default/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_kafka_consumer_legacy/
│   │   ├── README.md
│   │   ├── migration.go
│   │   └── migration_test.go
│   ├── inputs_kube_inventory/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── bearer_token_string_only/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── mixed_tokens/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_kubernetes/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── bearer_token_string_only/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── default_case/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── mixed_tokens/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_logparser/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── full/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_mqtt_consumer/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_metric_buffer/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_metric_buffer_parser/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_nats_consumer/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_metric_buffer/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_metric_buffer_parser/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_nsq_consumer/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_server/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_server_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_server_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_ntpq/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_dns_lookup/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_dns_lookup_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_dns_lookup_existing/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_dns_lookup_true/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_openldap/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── ca_only/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── mixed_config/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── ssl_only/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_procstat/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_supervisor_unit/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_supervisor_unit merge/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_tagging_false/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_tagging_true/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_tagging_true_merge/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_tagging_true_merge_overlap/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_rabbitmq/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── name/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── name_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── queues/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── queues_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── queues_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_sflow/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── filters/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── minimal/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── read_buffer_size/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_smart/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── standard/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_snmp_legacy/
│   │   ├── migration.go
│   │   └── migration_test.go
│   ├── inputs_sqlserver/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── azuredb_false/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── azuredb_true/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── both_deprecated/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── existing_database_type/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── query_version_1/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── query_version_2/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_statsd/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_parse_data_dog_tags/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_parse_data_dog_tags_false/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_udp_packet_size/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_tcp_listener/
│   │   ├── README.md
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── allow_pending_messages/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── parser/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_udp_listener/
│   │   ├── README.md
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── all_deprecated_messages/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── allow_pending_messages/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── parser/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_vsphere/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_force_discover_on_init/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_amqp/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── minimal/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_influxdb/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── convert_url/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_precision/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_url/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_url_overlap/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── url_and_precision/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_kinesis/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── only_randomkey_set/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── randomkey_not_set/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── randomkey_set/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_librato/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_mqtt/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_topic_prefix/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_topic_prefix_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_topic_prefix_duplicate_slash/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_topic_prefix_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_remotefile/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_riemann_legacy/
│   │   ├── README.md
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── general_options/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_wavefront/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── host_port/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── registry.go
│   └── utils.go
├── models/
│   ├── buffer.go
│   ├── buffer_disk.go
│   ├── buffer_disk_test.go
│   ├── buffer_mem.go
│   ├── buffer_mem_test.go
│   ├── buffer_suite_test.go
│   ├── common.go
│   ├── filter.go
│   ├── filter_test.go
│   ├── makemetric.go
│   ├── running_aggregator.go
│   ├── running_aggregator_test.go
│   ├── running_input.go
│   ├── running_input_test.go
│   ├── running_output.go
│   ├── running_output_test.go
│   ├── running_parsers.go
│   ├── running_processor.go
│   ├── running_processor_test.go
│   └── running_serializer.go
├── output.go
├── parser.go
├── persister/
│   └── persister.go
├── plugin.go
├── plugins/
│   ├── aggregators/
│   │   ├── all/
│   │   │   ├── all.go
│   │   │   ├── basicstats.go
│   │   │   ├── derivative.go
│   │   │   ├── final.go
│   │   │   ├── histogram.go
│   │   │   ├── merge.go
│   │   │   ├── minmax.go
│   │   │   ├── quantile.go
│   │   │   ├── starlark.go
│   │   │   └── valuecounter.go
│   │   ├── basicstats/
│   │   │   ├── README.md
│   │   │   ├── basicstats.go
│   │   │   ├── basicstats_test.go
│   │   │   └── sample.conf
│   │   ├── deprecations.go
│   │   ├── derivative/
│   │   │   ├── README.md
│   │   │   ├── derivative.go
│   │   │   ├── derivative_test.go
│   │   │   └── sample.conf
│   │   ├── final/
│   │   │   ├── README.md
│   │   │   ├── final.go
│   │   │   ├── final_test.go
│   │   │   └── sample.conf
│   │   ├── histogram/
│   │   │   ├── README.md
│   │   │   ├── histogram.go
│   │   │   ├── histogram_test.go
│   │   │   └── sample.conf
│   │   ├── merge/
│   │   │   ├── README.md
│   │   │   ├── merge.go
│   │   │   ├── merge_test.go
│   │   │   └── sample.conf
│   │   ├── minmax/
│   │   │   ├── README.md
│   │   │   ├── minmax.go
│   │   │   ├── minmax_test.go
│   │   │   └── sample.conf
│   │   ├── quantile/
│   │   │   ├── README.md
│   │   │   ├── algorithms.go
│   │   │   ├── quantile.go
│   │   │   ├── quantile_test.go
│   │   │   └── sample.conf
│   │   ├── registry.go
│   │   ├── starlark/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── starlark.go
│   │   │   ├── starlark_test.go
│   │   │   └── testdata/
│   │   │       ├── merge.star
│   │   │       └── min_max.star
│   │   └── valuecounter/
│   │       ├── README.md
│   │       ├── sample.conf
│   │       ├── valuecounter.go
│   │       └── valuecounter_test.go
│   ├── all_test.go
│   ├── common/
│   │   ├── adx/
│   │   │   ├── adx.go
│   │   │   └── adx_test.go
│   │   ├── auth/
│   │   │   ├── basic_auth.go
│   │   │   └── basic_auth_test.go
│   │   ├── aws/
│   │   │   └── credentials.go
│   │   ├── cookie/
│   │   │   ├── cookie.go
│   │   │   └── cookie_test.go
│   │   ├── docker/
│   │   │   └── stats_helpers.go
│   │   ├── encoding/
│   │   │   ├── decoder.go
│   │   │   ├── decoder_reader.go
│   │   │   └── decoder_test.go
│   │   ├── gcp/
│   │   │   └── auth.go
│   │   ├── http/
│   │   │   ├── client.conf
│   │   │   ├── client.conf.in
│   │   │   ├── config.go
│   │   │   ├── transport.conf
│   │   │   └── transport.conf.in
│   │   ├── jolokia2/
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── gatherer.go
│   │   │   ├── gatherer_test.go
│   │   │   ├── metric.go
│   │   │   └── point_builder.go
│   │   ├── kafka/
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── logger.go
│   │   │   ├── sasl.go
│   │   │   ├── sasl_aws_iam_msk.go
│   │   │   ├── sasl_oauth_file.go
│   │   │   └── scram_client.go
│   │   ├── logrus/
│   │   │   └── hook.go
│   │   ├── mqtt/
│   │   │   ├── mqtt.go
│   │   │   ├── mqtt_logger.go
│   │   │   ├── mqtt_test.go
│   │   │   ├── mqtt_v3.go
│   │   │   └── mqtt_v5.go
│   │   ├── oauth/
│   │   │   └── config.go
│   │   ├── opcua/
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── errors.go
│   │   │   ├── errors_test.go
│   │   │   ├── input/
│   │   │   │   ├── input_client.go
│   │   │   │   └── input_client_test.go
│   │   │   ├── logger.go
│   │   │   ├── opcua_util.go
│   │   │   └── opcua_util_test.go
│   │   ├── parallel/
│   │   │   ├── ordered.go
│   │   │   ├── parallel.go
│   │   │   ├── parallel_test.go
│   │   │   └── unordered.go
│   │   ├── postgresql/
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   └── service.go
│   │   ├── proxy/
│   │   │   ├── connect.go
│   │   │   ├── dialer.go
│   │   │   ├── proxy.conf
│   │   │   ├── proxy.go
│   │   │   ├── socks5.go
│   │   │   └── socks5_test.go
│   │   ├── psutil/
│   │   │   ├── mock_ps.go
│   │   │   └── ps.go
│   │   ├── ratelimiter/
│   │   │   ├── config.go
│   │   │   ├── limiters.go
│   │   │   ├── limiters_test.go
│   │   │   ├── serializers.go
│   │   │   └── serializers_test.go
│   │   ├── shim/
│   │   │   ├── README.md
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── example/
│   │   │   │   └── cmd/
│   │   │   │       ├── main.go
│   │   │   │       └── plugin.conf
│   │   │   ├── goshim.go
│   │   │   ├── goshim_test.go
│   │   │   ├── input.go
│   │   │   ├── input_test.go
│   │   │   ├── output.go
│   │   │   ├── output_test.go
│   │   │   ├── processor.go
│   │   │   ├── processor_test.go
│   │   │   └── testdata/
│   │   │       ├── plugin.conf
│   │   │       ├── processor.conf
│   │   │       └── special.conf
│   │   ├── slog/
│   │   │   └── adapter.go
│   │   ├── snmp/
│   │   │   ├── config.go
│   │   │   ├── field.go
│   │   │   ├── field_test.go
│   │   │   ├── logger.go
│   │   │   ├── mib_loader.go
│   │   │   ├── mib_loader_test.go
│   │   │   ├── table.go
│   │   │   ├── table_test.go
│   │   │   ├── testdata/
│   │   │   │   ├── gosmi/
│   │   │   │   │   ├── bridgeMib
│   │   │   │   │   ├── bridgeMibImports
│   │   │   │   │   ├── foo
│   │   │   │   │   ├── fooImports
│   │   │   │   │   ├── ifPhysAddress
│   │   │   │   │   ├── ifPhysAddressImports
│   │   │   │   │   ├── server
│   │   │   │   │   ├── serverImports
│   │   │   │   │   ├── tableBuild
│   │   │   │   │   ├── tableMib
│   │   │   │   │   ├── tableMibImports
│   │   │   │   │   ├── tcpMib
│   │   │   │   │   └── tcpMibImports
│   │   │   │   ├── loadMibsFromPath/
│   │   │   │   │   ├── linkTarget/
│   │   │   │   │   │   └── emptyFile
│   │   │   │   │   └── root/
│   │   │   │   │       └── dirOne/
│   │   │   │   │           └── dirTwo/
│   │   │   │   │               └── empty
│   │   │   │   └── mibs/
│   │   │   │       └── testmib
│   │   │   ├── translator.go
│   │   │   ├── translator_gosmi.go
│   │   │   ├── translator_gosmi_test.go
│   │   │   ├── translator_netsnmp.go
│   │   │   ├── translator_netsnmp_mocks_generate.go
│   │   │   ├── translator_netsnmp_mocks_test.go
│   │   │   ├── translator_netsnmp_test.go
│   │   │   ├── wrapper.go
│   │   │   └── wrapper_test.go
│   │   ├── socket/
│   │   │   ├── datagram.go
│   │   │   ├── socket.conf
│   │   │   ├── socket.go
│   │   │   ├── socket_test.go
│   │   │   ├── splitter.conf
│   │   │   ├── splitters.go
│   │   │   └── stream.go
│   │   ├── starlark/
│   │   │   ├── builtins.go
│   │   │   ├── field_dict.go
│   │   │   ├── logging.go
│   │   │   ├── metric.go
│   │   │   ├── starlark.go
│   │   │   └── tag_dict.go
│   │   ├── tls/
│   │   │   ├── client.conf
│   │   │   ├── common.go
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   └── utils.go
│   │   └── yangmodel/
│   │       └── decoder.go
│   ├── inputs/
│   │   ├── activemq/
│   │   │   ├── README.md
│   │   │   ├── activemq.go
│   │   │   ├── activemq_test.go
│   │   │   └── sample.conf
│   │   ├── aerospike/
│   │   │   ├── README.md
│   │   │   ├── aerospike.go
│   │   │   ├── aerospike_test.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── aliyuncms/
│   │   │   ├── README.md
│   │   │   ├── aliyuncms.go
│   │   │   ├── aliyuncms_test.go
│   │   │   ├── discovery.go
│   │   │   └── sample.conf
│   │   ├── all/
│   │   │   ├── activemq.go
│   │   │   ├── aerospike.go
│   │   │   ├── aliyuncms.go
│   │   │   ├── all.go
│   │   │   ├── amd_rocm_smi.go
│   │   │   ├── amqp_consumer.go
│   │   │   ├── apache.go
│   │   │   ├── apcupsd.go
│   │   │   ├── aurora.go
│   │   │   ├── azure_monitor.go
│   │   │   ├── azure_storage_queue.go
│   │   │   ├── bcache.go
│   │   │   ├── beanstalkd.go
│   │   │   ├── beat.go
│   │   │   ├── bind.go
│   │   │   ├── bond.go
│   │   │   ├── burrow.go
│   │   │   ├── ceph.go
│   │   │   ├── cgroup.go
│   │   │   ├── chrony.go
│   │   │   ├── cisco_telemetry_mdt.go
│   │   │   ├── clickhouse.go
│   │   │   ├── cloud_pubsub.go
│   │   │   ├── cloud_pubsub_push.go
│   │   │   ├── cloudwatch.go
│   │   │   ├── cloudwatch_metric_streams.go
│   │   │   ├── conntrack.go
│   │   │   ├── consul.go
│   │   │   ├── consul_agent.go
│   │   │   ├── couchbase.go
│   │   │   ├── couchdb.go
│   │   │   ├── cpu.go
│   │   │   ├── csgo.go
│   │   │   ├── ctrlx_datalayer.go
│   │   │   ├── dcos.go
│   │   │   ├── directory_monitor.go
│   │   │   ├── disk.go
│   │   │   ├── diskio.go
│   │   │   ├── disque.go
│   │   │   ├── dmcache.go
│   │   │   ├── dns_query.go
│   │   │   ├── docker.go
│   │   │   ├── docker_log.go
│   │   │   ├── dovecot.go
│   │   │   ├── dpdk.go
│   │   │   ├── ecs.go
│   │   │   ├── elasticsearch.go
│   │   │   ├── elasticsearch_query.go
│   │   │   ├── ethtool.go
│   │   │   ├── eventhub_consumer.go
│   │   │   ├── exec.go
│   │   │   ├── execd.go
│   │   │   ├── fail2ban.go
│   │   │   ├── fibaro.go
│   │   │   ├── file.go
│   │   │   ├── filecount.go
│   │   │   ├── filestat.go
│   │   │   ├── fireboard.go
│   │   │   ├── firehose.go
│   │   │   ├── fluentd.go
│   │   │   ├── fritzbox.go
│   │   │   ├── github.go
│   │   │   ├── gnmi.go
│   │   │   ├── google_cloud_storage.go
│   │   │   ├── graylog.go
│   │   │   ├── haproxy.go
│   │   │   ├── hddtemp.go
│   │   │   ├── http.go
│   │   │   ├── http_listener_v2.go
│   │   │   ├── http_response.go
│   │   │   ├── huebridge.go
│   │   │   ├── hugepages.go
│   │   │   ├── icinga2.go
│   │   │   ├── infiniband.go
│   │   │   ├── influxdb.go
│   │   │   ├── influxdb_listener.go
│   │   │   ├── influxdb_v2_listener.go
│   │   │   ├── intel_baseband.go
│   │   │   ├── intel_dlb.go
│   │   │   ├── intel_pmt.go
│   │   │   ├── intel_pmu.go
│   │   │   ├── intel_powerstat.go
│   │   │   ├── intel_rdt.go
│   │   │   ├── internal.go
│   │   │   ├── internet_speed.go
│   │   │   ├── interrupts.go
│   │   │   ├── ipmi_sensor.go
│   │   │   ├── ipset.go
│   │   │   ├── iptables.go
│   │   │   ├── ipvs.go
│   │   │   ├── jenkins.go
│   │   │   ├── jolokia2_agent.go
│   │   │   ├── jolokia2_proxy.go
│   │   │   ├── jti_openconfig_telemetry.go
│   │   │   ├── kafka_consumer.go
│   │   │   ├── kapacitor.go
│   │   │   ├── kernel.go
│   │   │   ├── kernel_vmstat.go
│   │   │   ├── kibana.go
│   │   │   ├── kinesis_consumer.go
│   │   │   ├── knx_listener.go
│   │   │   ├── kube_inventory.go
│   │   │   ├── kubernetes.go
│   │   │   ├── lanz.go
│   │   │   ├── ldap.go
│   │   │   ├── leofs.go
│   │   │   ├── libvirt.go
│   │   │   ├── linux_cpu.go
│   │   │   ├── linux_sysctl_fs.go
│   │   │   ├── logql.go
│   │   │   ├── logstash.go
│   │   │   ├── lustre2.go
│   │   │   ├── lvm.go
│   │   │   ├── mailchimp.go
│   │   │   ├── marklogic.go
│   │   │   ├── mavlink.go
│   │   │   ├── mcrouter.go
│   │   │   ├── mdstat.go
│   │   │   ├── mem.go
│   │   │   ├── memcached.go
│   │   │   ├── mesos.go
│   │   │   ├── minecraft.go
│   │   │   ├── mock.go
│   │   │   ├── modbus.go
│   │   │   ├── mongodb.go
│   │   │   ├── monit.go
│   │   │   ├── mqtt_consumer.go
│   │   │   ├── multifile.go
│   │   │   ├── mysql.go
│   │   │   ├── nats.go
│   │   │   ├── nats_consumer.go
│   │   │   ├── neoom_beaam.go
│   │   │   ├── neptune_apex.go
│   │   │   ├── net.go
│   │   │   ├── net_response.go
│   │   │   ├── netflow.go
│   │   │   ├── netstat.go
│   │   │   ├── nfsclient.go
│   │   │   ├── nftables.go
│   │   │   ├── nginx.go
│   │   │   ├── nginx_plus.go
│   │   │   ├── nginx_plus_api.go
│   │   │   ├── nginx_sts.go
│   │   │   ├── nginx_upstream_check.go
│   │   │   ├── nginx_vts.go
│   │   │   ├── nomad.go
│   │   │   ├── nsd.go
│   │   │   ├── nsdp.go
│   │   │   ├── nsq.go
│   │   │   ├── nsq_consumer.go
│   │   │   ├── nstat.go
│   │   │   ├── ntpq.go
│   │   │   ├── nvidia_smi.go
│   │   │   ├── opcua.go
│   │   │   ├── opcua_listener.go
│   │   │   ├── openldap.go
│   │   │   ├── openntpd.go
│   │   │   ├── opensearch_query.go
│   │   │   ├── opensmtpd.go
│   │   │   ├── openstack.go
│   │   │   ├── opentelemetry.go
│   │   │   ├── openweathermap.go
│   │   │   ├── p4runtime.go
│   │   │   ├── passenger.go
│   │   │   ├── pf.go
│   │   │   ├── pgbouncer.go
│   │   │   ├── phpfpm.go
│   │   │   ├── ping.go
│   │   │   ├── postfix.go
│   │   │   ├── postgresql.go
│   │   │   ├── postgresql_extensible.go
│   │   │   ├── powerdns.go
│   │   │   ├── powerdns_recursor.go
│   │   │   ├── processes.go
│   │   │   ├── procstat.go
│   │   │   ├── prometheus.go
│   │   │   ├── promql.go
│   │   │   ├── proxmox.go
│   │   │   ├── puppetagent.go
│   │   │   ├── rabbitmq.go
│   │   │   ├── radius.go
│   │   │   ├── raindrops.go
│   │   │   ├── ras.go
│   │   │   ├── ravendb.go
│   │   │   ├── redfish.go
│   │   │   ├── redis.go
│   │   │   ├── redis_sentinel.go
│   │   │   ├── rethinkdb.go
│   │   │   ├── riak.go
│   │   │   ├── riemann_listener.go
│   │   │   ├── s7comm.go
│   │   │   ├── salesforce.go
│   │   │   ├── sensors.go
│   │   │   ├── sflow.go
│   │   │   ├── sip.go
│   │   │   ├── slab.go
│   │   │   ├── slurm.go
│   │   │   ├── smart.go
│   │   │   ├── smartctl.go
│   │   │   ├── snmp.go
│   │   │   ├── snmp_trap.go
│   │   │   ├── socket_listener.go
│   │   │   ├── socketstat.go
│   │   │   ├── solr.go
│   │   │   ├── sql.go
│   │   │   ├── sqlserver.go
│   │   │   ├── stackdriver.go
│   │   │   ├── statsd.go
│   │   │   ├── supervisor.go
│   │   │   ├── suricata.go
│   │   │   ├── swap.go
│   │   │   ├── synproxy.go
│   │   │   ├── syslog.go
│   │   │   ├── sysstat.go
│   │   │   ├── system.go
│   │   │   ├── systemd_units.go
│   │   │   ├── tacacs.go
│   │   │   ├── tail.go
│   │   │   ├── teamspeak.go
│   │   │   ├── temp.go
│   │   │   ├── tengine.go
│   │   │   ├── timex.go
│   │   │   ├── tomcat.go
│   │   │   ├── trig.go
│   │   │   ├── turbostat.go
│   │   │   ├── twemproxy.go
│   │   │   ├── unbound.go
│   │   │   ├── upsd.go
│   │   │   ├── uwsgi.go
│   │   │   ├── varnish.go
│   │   │   ├── vault.go
│   │   │   ├── vsphere.go
│   │   │   ├── webhooks.go
│   │   │   ├── whois.go
│   │   │   ├── win_eventlog.go
│   │   │   ├── win_perf_counters.go
│   │   │   ├── win_services.go
│   │   │   ├── win_wmi.go
│   │   │   ├── wireguard.go
│   │   │   ├── wireless.go
│   │   │   ├── x509_cert.go
│   │   │   ├── xtremio.go
│   │   │   ├── zfs.go
│   │   │   ├── zipkin.go
│   │   │   └── zookeeper.go
│   │   ├── amd_rocm_smi/
│   │   │   ├── README.md
│   │   │   ├── amd_rocm_smi.go
│   │   │   ├── amd_rocm_smi_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── mi100_rocm571.json
│   │   │       ├── mi100_rocm602.json
│   │   │       ├── rx6700xt_rocm430.json
│   │   │       ├── rx6700xt_rocm571.json
│   │   │       ├── rx6700xt_rocm602.json
│   │   │       ├── rx6700xt_rocm612.json
│   │   │       ├── vega-10-XT.json
│   │   │       └── vega-20-WKS-GL-XE.json
│   │   ├── amqp_consumer/
│   │   │   ├── README.md
│   │   │   ├── amqp_consumer.go
│   │   │   ├── amqp_consumer_test.go
│   │   │   └── sample.conf
│   │   ├── apache/
│   │   │   ├── README.md
│   │   │   ├── apache.go
│   │   │   ├── apache_test.go
│   │   │   └── sample.conf
│   │   ├── apcupsd/
│   │   │   ├── README.md
│   │   │   ├── apcupsd.go
│   │   │   ├── apcupsd_test.go
│   │   │   └── sample.conf
│   │   ├── aurora/
│   │   │   ├── README.md
│   │   │   ├── aurora.go
│   │   │   ├── aurora_test.go
│   │   │   └── sample.conf
│   │   ├── azure_monitor/
│   │   │   ├── README.md
│   │   │   ├── azure_monitor.go
│   │   │   ├── azure_monitor_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── json/
│   │   │       │   ├── azure_metric_definitions_responses.json
│   │   │       │   ├── azure_metrics_responses.json
│   │   │       │   └── azure_resources_response.json
│   │   │       └── toml/
│   │   │           ├── gather_success.toml
│   │   │           ├── gather_success_cloud_option_china.toml
│   │   │           ├── gather_success_cloud_option_government.toml
│   │   │           ├── gather_success_cloud_option_public.toml
│   │   │           ├── init_all_target_types.toml
│   │   │           ├── init_bad_credentials.toml
│   │   │           ├── init_no_client_id.toml
│   │   │           ├── init_no_client_secret.toml
│   │   │           ├── init_no_subscription_id.toml
│   │   │           ├── init_no_targets.toml
│   │   │           ├── init_no_tenant_id.toml
│   │   │           ├── init_resource_group_target_no_resource_found.toml
│   │   │           ├── init_resource_group_target_with_invalid_aggregation.toml
│   │   │           ├── init_resource_group_target_with_invalid_metric.toml
│   │   │           ├── init_resource_group_target_with_invalid_resource_group.toml
│   │   │           ├── init_resource_group_target_with_invalid_resource_type.toml
│   │   │           ├── init_resource_group_target_with_resource_without_resource_type.toml
│   │   │           ├── init_resource_group_target_without_resource_group.toml
│   │   │           ├── init_resource_group_target_without_resources.toml
│   │   │           ├── init_resource_group_targets_only.toml
│   │   │           ├── init_resource_target_with_invalid_aggregation.toml
│   │   │           ├── init_resource_target_with_invalid_metric.toml
│   │   │           ├── init_resource_target_with_invalid_resource_id.toml
│   │   │           ├── init_resource_target_without_resource_id.toml
│   │   │           ├── init_resource_targets_only.toml
│   │   │           ├── init_subscription_target_no_resource_found.toml
│   │   │           ├── init_subscription_target_with_invalid_aggregation.toml
│   │   │           ├── init_subscription_target_with_invalid_metric.toml
│   │   │           ├── init_subscription_target_with_invalid_resource_type.toml
│   │   │           ├── init_subscription_target_without_resource_type.toml
│   │   │           └── init_subscription_targets_only.toml
│   │   ├── azure_storage_queue/
│   │   │   ├── README.md
│   │   │   ├── azure_storage_queue.go
│   │   │   ├── azure_storage_queue_test.go
│   │   │   └── sample.conf
│   │   ├── bcache/
│   │   │   ├── README.md
│   │   │   ├── bcache.go
│   │   │   ├── bcache_notlinux.go
│   │   │   ├── bcache_test.go
│   │   │   └── sample.conf
│   │   ├── beanstalkd/
│   │   │   ├── README.md
│   │   │   ├── beanstalkd.go
│   │   │   ├── beanstalkd_test.go
│   │   │   └── sample.conf
│   │   ├── beat/
│   │   │   ├── README.md
│   │   │   ├── beat.go
│   │   │   ├── beat6_info.json
│   │   │   ├── beat6_stats.json
│   │   │   ├── beat_test.go
│   │   │   └── sample.conf
│   │   ├── bind/
│   │   │   ├── README.md
│   │   │   ├── bind.go
│   │   │   ├── bind_test.go
│   │   │   ├── json_stats.go
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   ├── json/
│   │   │   │   │   └── v1/
│   │   │   │   │       ├── mem
│   │   │   │   │       ├── net
│   │   │   │   │       └── server
│   │   │   │   └── xml/
│   │   │   │       ├── v2
│   │   │   │       └── v3/
│   │   │   │           ├── mem
│   │   │   │           ├── net
│   │   │   │           └── server
│   │   │   ├── xml_stats_v2.go
│   │   │   └── xml_stats_v3.go
│   │   ├── bond/
│   │   │   ├── README.md
│   │   │   ├── bond.go
│   │   │   ├── bond_test.go
│   │   │   └── sample.conf
│   │   ├── burrow/
│   │   │   ├── README.md
│   │   │   ├── burrow.go
│   │   │   ├── burrow_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── error.json
│   │   │       ├── v3_kafka.json
│   │   │       ├── v3_kafka_clustername1_consumer.json
│   │   │       ├── v3_kafka_clustername1_consumer_group1_lag.json
│   │   │       ├── v3_kafka_clustername1_topic.json
│   │   │       └── v3_kafka_clustername1_topic_topicA.json
│   │   ├── ceph/
│   │   │   ├── README.md
│   │   │   ├── ceph.go
│   │   │   ├── ceph_test.go
│   │   │   └── sample.conf
│   │   ├── cgroup/
│   │   │   ├── README.md
│   │   │   ├── cgroup.go
│   │   │   ├── cgroup_linux.go
│   │   │   ├── cgroup_notlinux.go
│   │   │   ├── cgroup_test.go
│   │   │   ├── cgroupv2_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── backslash/
│   │   │       │   └── machine-qemu-1-ubuntu/
│   │   │       │       └── cpu.stat
│   │   │       ├── blkio/
│   │   │       │   ├── blkio.io_serviced
│   │   │       │   └── blkio.throttle.io_serviced
│   │   │       ├── broken/
│   │   │       │   ├── malformed.file
│   │   │       │   └── memory.limit_in_bytes
│   │   │       ├── cpu/
│   │   │       │   ├── cpu.cfs_quota_us
│   │   │       │   ├── cpu.stat
│   │   │       │   └── cpuacct.usage_percpu
│   │   │       ├── memory/
│   │   │       │   ├── group_1/
│   │   │       │   │   ├── group_1_1/
│   │   │       │   │   │   ├── memory.limit_in_bytes
│   │   │       │   │   │   └── memory.stat
│   │   │       │   │   ├── group_1_2/
│   │   │       │   │   │   ├── memory.limit_in_bytes
│   │   │       │   │   │   └── memory.stat
│   │   │       │   │   ├── memory.kmem.limit_in_bytes
│   │   │       │   │   ├── memory.kmem.max_usage_in_bytes
│   │   │       │   │   ├── memory.limit_in_bytes
│   │   │       │   │   └── memory.stat
│   │   │       │   ├── group_2/
│   │   │       │   │   ├── group_1_1/
│   │   │       │   │   │   ├── memory.limit_in_bytes
│   │   │       │   │   │   └── memory.stat
│   │   │       │   │   ├── memory.limit_in_bytes
│   │   │       │   │   └── memory.stat
│   │   │       │   ├── memory.empty
│   │   │       │   ├── memory.kmem.limit_in_bytes
│   │   │       │   ├── memory.limit_in_bytes
│   │   │       │   ├── memory.max_usage_in_bytes
│   │   │       │   ├── memory.numa_stat
│   │   │       │   ├── memory.stat
│   │   │       │   ├── memory.usage_in_bytes
│   │   │       │   ├── memory.use_hierarchy
│   │   │       │   └── notify_on_release
│   │   │       └── v2/
│   │   │           ├── cpu.idle
│   │   │           ├── cpu.max
│   │   │           ├── cpu.max.burst
│   │   │           ├── cpu.pressure
│   │   │           ├── cpu.stat
│   │   │           ├── cpu.weight
│   │   │           ├── cpu.weight.nice
│   │   │           ├── cpuset.cpus
│   │   │           ├── cpuset.cpus.effective
│   │   │           ├── cpuset.cpus.partition
│   │   │           ├── cpuset.mems
│   │   │           ├── cpuset.mems.effective
│   │   │           ├── hugetlb.1GB.current
│   │   │           ├── hugetlb.1GB.events
│   │   │           ├── hugetlb.1GB.events.local
│   │   │           ├── hugetlb.1GB.max
│   │   │           ├── hugetlb.1GB.numa_stat
│   │   │           ├── hugetlb.1GB.rsvd.current
│   │   │           ├── hugetlb.1GB.rsvd.max
│   │   │           ├── hugetlb.2MB.current
│   │   │           ├── hugetlb.2MB.events
│   │   │           ├── hugetlb.2MB.events.local
│   │   │           ├── hugetlb.2MB.max
│   │   │           ├── hugetlb.2MB.numa_stat
│   │   │           ├── hugetlb.2MB.rsvd.current
│   │   │           ├── hugetlb.2MB.rsvd.max
│   │   │           ├── io.bfq.weight
│   │   │           ├── io.max
│   │   │           ├── io.pressure
│   │   │           ├── io.stat
│   │   │           ├── memory.current
│   │   │           ├── memory.events
│   │   │           ├── memory.events.local
│   │   │           ├── memory.high
│   │   │           ├── memory.low
│   │   │           ├── memory.max
│   │   │           ├── memory.min
│   │   │           ├── memory.numa_stat
│   │   │           ├── memory.oom.group
│   │   │           ├── memory.peak
│   │   │           ├── memory.pressure
│   │   │           ├── memory.reclaim
│   │   │           ├── memory.stat
│   │   │           ├── memory.swap.current
│   │   │           ├── memory.swap.events
│   │   │           ├── memory.swap.high
│   │   │           ├── memory.swap.max
│   │   │           ├── pids.current
│   │   │           ├── pids.events
│   │   │           ├── pids.max
│   │   │           └── pids.peak
│   │   ├── chrony/
│   │   │   ├── README.md
│   │   │   ├── chrony.go
│   │   │   ├── chrony_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── chrony.conf
│   │   │       └── start.sh
│   │   ├── cisco_telemetry_mdt/
│   │   │   ├── README.md
│   │   │   ├── cisco_telemetry_mdt.go
│   │   │   ├── cisco_telemetry_mdt_test.go
│   │   │   ├── cisco_telemetry_util.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── microburst
│   │   ├── clickhouse/
│   │   │   ├── README.md
│   │   │   ├── clickhouse.go
│   │   │   ├── clickhouse_test.go
│   │   │   ├── dev/
│   │   │   │   ├── dhparam.pem
│   │   │   │   ├── docker-compose.yml
│   │   │   │   ├── init_schema.sql
│   │   │   │   ├── mysql_port.xml
│   │   │   │   ├── part_log.xml
│   │   │   │   ├── telegraf.conf
│   │   │   │   ├── telegraf_ssl.conf
│   │   │   │   ├── test_dictionary.xml
│   │   │   │   ├── text_log.xml
│   │   │   │   ├── tls_settings.xml
│   │   │   │   └── zookeeper.xml
│   │   │   └── sample.conf
│   │   ├── cloud_pubsub/
│   │   │   ├── README.md
│   │   │   ├── cloud_pubsub.go
│   │   │   ├── cloud_pubsub_test.go
│   │   │   ├── sample.conf
│   │   │   ├── subscription_gcp.go
│   │   │   └── subscription_stub_test.go
│   │   ├── cloud_pubsub_push/
│   │   │   ├── README.md
│   │   │   ├── cloud_pubsub_push.go
│   │   │   ├── cloud_pubsub_push_test.go
│   │   │   └── sample.conf
│   │   ├── cloudwatch/
│   │   │   ├── README.md
│   │   │   ├── cloudwatch.go
│   │   │   ├── cloudwatch_test.go
│   │   │   ├── sample.conf
│   │   │   └── utils.go
│   │   ├── cloudwatch_metric_streams/
│   │   │   ├── README.md
│   │   │   ├── cloudwatch_metric_streams.go
│   │   │   ├── cloudwatch_metric_streams_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── record.json
│   │   │       └── records.json
│   │   ├── conntrack/
│   │   │   ├── README.md
│   │   │   ├── conntrack.go
│   │   │   ├── conntrack_notlinux.go
│   │   │   ├── conntrack_test.go
│   │   │   └── sample.conf
│   │   ├── consul/
│   │   │   ├── README.md
│   │   │   ├── consul.go
│   │   │   ├── consul_test.go
│   │   │   └── sample.conf
│   │   ├── consul_agent/
│   │   │   ├── README.md
│   │   │   ├── consul_agent.go
│   │   │   ├── consul_agent_test.go
│   │   │   ├── consul_structs.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── response_key_metrics.json
│   │   ├── couchbase/
│   │   │   ├── README.md
│   │   │   ├── couchbase.go
│   │   │   ├── couchbase_data.go
│   │   │   ├── couchbase_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── bucket_response.json
│   │   │       ├── bucket_stats_response.json
│   │   │       ├── bucket_stats_response_with_missing.json
│   │   │       ├── node_bucket_stats_response.json
│   │   │       ├── pools_default_response.json
│   │   │       ├── pools_response.json
│   │   │       └── settings_autofailover.json
│   │   ├── couchdb/
│   │   │   ├── README.md
│   │   │   ├── couchdb.go
│   │   │   ├── couchdb_test.go
│   │   │   ├── dev/
│   │   │   │   └── telegraf.conf
│   │   │   └── sample.conf
│   │   ├── cpu/
│   │   │   ├── README.md
│   │   │   ├── cpu.go
│   │   │   ├── cpu_test.go
│   │   │   └── sample.conf
│   │   ├── csgo/
│   │   │   ├── README.md
│   │   │   ├── csgo.go
│   │   │   ├── csgo_test.go
│   │   │   └── sample.conf
│   │   ├── ctrlx_datalayer/
│   │   │   ├── README.md
│   │   │   ├── ctrlx_datalayer.go
│   │   │   ├── ctrlx_datalayer_payload_types.go
│   │   │   ├── ctrlx_datalayer_subscription.go
│   │   │   ├── ctrlx_datalayer_subscription_test.go
│   │   │   ├── ctrlx_datalayer_test.go
│   │   │   └── sample.conf
│   │   ├── dcos/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── creds.go
│   │   │   ├── dcos.go
│   │   │   ├── dcos_test.go
│   │   │   └── sample.conf
│   │   ├── deprecations.go
│   │   ├── directory_monitor/
│   │   │   ├── README.md
│   │   │   ├── directory_monitor.go
│   │   │   ├── directory_monitor_test.go
│   │   │   └── sample.conf
│   │   ├── disk/
│   │   │   ├── README.md
│   │   │   ├── disk.go
│   │   │   ├── disk_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── issue_10297/
│   │   │       │   ├── proc/
│   │   │       │   │   └── 1/
│   │   │       │   │       └── mountinfo
│   │   │       │   └── sys/
│   │   │       │       └── block/
│   │   │       │           ├── sda1/
│   │   │       │           │   └── dm/
│   │   │       │           │       └── name
│   │   │       │           └── sdb/
│   │   │       │               └── dm/
│   │   │       │                   └── name
│   │   │       └── success/
│   │   │           └── proc/
│   │   │               └── 1/
│   │   │                   └── mountinfo
│   │   ├── diskio/
│   │   │   ├── README.md
│   │   │   ├── diskio.go
│   │   │   ├── diskio_linux.go
│   │   │   ├── diskio_linux_test.go
│   │   │   ├── diskio_other.go
│   │   │   ├── diskio_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── udev.txt
│   │   │       └── uevent
│   │   ├── disque/
│   │   │   ├── README.md
│   │   │   ├── disque.go
│   │   │   ├── disque_test.go
│   │   │   └── sample.conf
│   │   ├── dmcache/
│   │   │   ├── README.md
│   │   │   ├── dmcache.go
│   │   │   ├── dmcache_linux.go
│   │   │   ├── dmcache_linux_test.go
│   │   │   ├── dmcache_notlinux.go
│   │   │   └── sample.conf
│   │   ├── dns_query/
│   │   │   ├── README.md
│   │   │   ├── dns_query.go
│   │   │   ├── dns_query_test.go
│   │   │   └── sample.conf
│   │   ├── docker/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── docker.go
│   │   │   ├── docker_test.go
│   │   │   ├── docker_testdata.go
│   │   │   ├── errors.go
│   │   │   └── sample.conf
│   │   ├── docker_log/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── docker_log.go
│   │   │   ├── docker_log_test.go
│   │   │   └── sample.conf
│   │   ├── dovecot/
│   │   │   ├── README.md
│   │   │   ├── dovecot.go
│   │   │   ├── dovecot_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── dovecot.conf
│   │   ├── dpdk/
│   │   │   ├── README.md
│   │   │   ├── dpdk.go
│   │   │   ├── dpdk_cmds.go
│   │   │   ├── dpdk_cmds_test.go
│   │   │   ├── dpdk_connector.go
│   │   │   ├── dpdk_connector_test.go
│   │   │   ├── dpdk_notlinux.go
│   │   │   ├── dpdk_test.go
│   │   │   ├── dpdk_utils.go
│   │   │   ├── dpdk_utils_test.go
│   │   │   ├── mocks/
│   │   │   │   └── conn.go
│   │   │   └── sample.conf
│   │   ├── ecs/
│   │   │   ├── README.md
│   │   │   ├── cgroupv2_test.go
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── ecs.go
│   │   │   ├── ecs_test.go
│   │   │   ├── sample.conf
│   │   │   ├── stats.go
│   │   │   ├── stats_test.go
│   │   │   ├── testdata/
│   │   │   │   ├── cgroupv2/
│   │   │   │   │   ├── meta.json
│   │   │   │   │   ├── meta.out
│   │   │   │   │   ├── stats.json
│   │   │   │   │   └── stats.out
│   │   │   │   ├── metadata.golden
│   │   │   │   └── stats.golden
│   │   │   ├── types.go
│   │   │   └── types_test.go
│   │   ├── elasticsearch/
│   │   │   ├── README.md
│   │   │   ├── elasticsearch.go
│   │   │   ├── elasticsearch_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata_test.go
│   │   ├── elasticsearch_query/
│   │   │   ├── README.md
│   │   │   ├── aggregation_parser.go
│   │   │   ├── aggregation_query.go
│   │   │   ├── elasticsearch_query.go
│   │   │   ├── elasticsearch_query_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── nginx_logs
│   │   ├── ethtool/
│   │   │   ├── README.md
│   │   │   ├── ethtool.go
│   │   │   ├── ethtool_linux.go
│   │   │   ├── ethtool_notlinux.go
│   │   │   ├── ethtool_test.go
│   │   │   ├── namespace_linux.go
│   │   │   └── sample.conf
│   │   ├── eventhub_consumer/
│   │   │   ├── README.md
│   │   │   ├── eventhub_consumer.go
│   │   │   └── sample.conf
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── example.go
│   │   │   ├── example_test.go
│   │   │   └── sample.conf
│   │   ├── exec/
│   │   │   ├── README.md
│   │   │   ├── dev/
│   │   │   │   └── telegraf.conf
│   │   │   ├── exec.go
│   │   │   ├── exec_test.go
│   │   │   ├── run_notwindows.go
│   │   │   ├── run_windows.go
│   │   │   └── sample.conf
│   │   ├── execd/
│   │   │   ├── README.md
│   │   │   ├── examples/
│   │   │   │   ├── count.go
│   │   │   │   ├── count.py
│   │   │   │   ├── count.rb
│   │   │   │   └── count.sh
│   │   │   ├── execd.go
│   │   │   ├── execd_posix.go
│   │   │   ├── execd_test.go
│   │   │   ├── execd_windows.go
│   │   │   ├── sample.conf
│   │   │   └── shim/
│   │   │       ├── README.md
│   │   │       ├── example/
│   │   │       │   └── cmd/
│   │   │       │       ├── main.go
│   │   │       │       └── plugin.conf
│   │   │       ├── goshim.go
│   │   │       ├── goshim_posix.go
│   │   │       ├── goshim_windows.go
│   │   │       ├── input.go
│   │   │       ├── shim_posix_test.go
│   │   │       ├── shim_test.go
│   │   │       └── testdata/
│   │   │           └── plugin.conf
│   │   ├── fail2ban/
│   │   │   ├── README.md
│   │   │   ├── fail2ban.go
│   │   │   ├── fail2ban_test.go
│   │   │   └── sample.conf
│   │   ├── fibaro/
│   │   │   ├── README.md
│   │   │   ├── fibaro.go
│   │   │   ├── fibaro_test.go
│   │   │   ├── hc2/
│   │   │   │   ├── parser.go
│   │   │   │   └── types.go
│   │   │   ├── hc3/
│   │   │   │   ├── parser.go
│   │   │   │   └── types.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── device_hc2.json
│   │   │       ├── device_hc3.json
│   │   │       ├── rooms.json
│   │   │       └── sections.json
│   │   ├── file/
│   │   │   ├── README.md
│   │   │   ├── dev/
│   │   │   │   ├── docker-compose.yml
│   │   │   │   ├── telegraf.conf
│   │   │   │   └── testfiles/
│   │   │   │       ├── grok_a.log
│   │   │   │       └── json_a.log
│   │   │   ├── file.go
│   │   │   ├── file_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── csv_behavior_input.csv
│   │   │       ├── mtr-utf-16be.csv
│   │   │       ├── mtr-utf-16le.csv
│   │   │       └── mtr-utf-8.csv
│   │   ├── filecount/
│   │   │   ├── README.md
│   │   │   ├── filecount.go
│   │   │   ├── filecount_test.go
│   │   │   ├── filesystem_helpers.go
│   │   │   ├── filesystem_helpers_notwindows_test.go
│   │   │   ├── filesystem_helpers_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── bar
│   │   │       ├── baz
│   │   │       ├── foo
│   │   │       ├── qux
│   │   │       └── subdir/
│   │   │           ├── nested2/
│   │   │           │   └── qux
│   │   │           ├── quux
│   │   │           └── quuz
│   │   ├── filestat/
│   │   │   ├── README.md
│   │   │   ├── filestat.go
│   │   │   ├── filestat_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── log1.log
│   │   │       ├── log2.log
│   │   │       └── test.conf
│   │   ├── fireboard/
│   │   │   ├── README.md
│   │   │   ├── fireboard.go
│   │   │   ├── fireboard_test.go
│   │   │   └── sample.conf
│   │   ├── firehose/
│   │   │   ├── README.md
│   │   │   ├── firehose.go
│   │   │   ├── firehose_request_test.go
│   │   │   ├── firehose_test.go
│   │   │   ├── message.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       └── common-attributes/
│   │   │           ├── body.json
│   │   │           ├── expected.out
│   │   │           ├── headers.json
│   │   │           └── telegraf.conf
│   │   ├── fluentd/
│   │   │   ├── README.md
│   │   │   ├── fluentd.go
│   │   │   ├── fluentd_test.go
│   │   │   └── sample.conf
│   │   ├── fritzbox/
│   │   │   ├── README.md
│   │   │   ├── fritzbox.go
│   │   │   ├── fritzbox_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── conf/
│   │   │       │   ├── invalid_collect.conf
│   │   │       │   ├── invalid_urls.conf
│   │   │       │   └── valid.conf
│   │   │       └── testcases/
│   │   │           ├── device/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── deviceinfo/
│   │   │           │   │   │   └── response.xml
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   └── tr64desc.xml
│   │   │           │   └── telegraf.conf
│   │   │           ├── dsl/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   ├── tr64desc.xml
│   │   │           │   │   └── wandslifconfig/
│   │   │           │   │       └── response.xml
│   │   │           │   └── telegraf.conf
│   │   │           ├── hosts/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   ├── hosts/
│   │   │           │   │   │   └── response.xml
│   │   │           │   │   ├── meshlist.json
│   │   │           │   │   └── tr64desc.xml
│   │   │           │   └── telegraf.conf
│   │   │           ├── ppp/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   ├── tr64desc.xml
│   │   │           │   │   └── wanpppconn/
│   │   │           │   │       └── response.xml
│   │   │           │   └── telegraf.conf
│   │   │           ├── wan/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── WANCommonIFC1/
│   │   │           │   │   │   └── response.xml
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   ├── igddesc.xml
│   │   │           │   │   ├── tr64desc.xml
│   │   │           │   │   └── wancommonifconfig/
│   │   │           │   │       └── response.xml
│   │   │           │   └── telegraf.conf
│   │   │           └── wlan/
│   │   │               ├── expected.out
│   │   │               ├── mock/
│   │   │               │   ├── dummySCPD.xml
│   │   │               │   ├── tr64desc.xml
│   │   │               │   └── wlanconfig/
│   │   │               │       └── response.xml
│   │   │               └── telegraf.conf
│   │   ├── github/
│   │   │   ├── README.md
│   │   │   ├── github.go
│   │   │   ├── github_test.go
│   │   │   └── sample.conf
│   │   ├── gnmi/
│   │   │   ├── README.md
│   │   │   ├── extensions/
│   │   │   │   └── jnpr_gnmi_extention/
│   │   │   │       └── GnmiJuniperTelemetryHeaderExtension.pb.go
│   │   │   ├── gnmi.go
│   │   │   ├── gnmi_test.go
│   │   │   ├── handler.go
│   │   │   ├── path.go
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── tag_store.go
│   │   │   ├── testcases/
│   │   │   │   ├── canonical_field_names/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── canonical_field_names_trim/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_11011/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_11778/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_12831/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_12931/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_13052/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_13512/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14044/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14063/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14530/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14833/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14946/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14946_canonical_field_names/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_15046/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── models/
│   │   │   │   │   │   ├── LICENSE
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── openconfig-alarm-types.yang
│   │   │   │   │   │   ├── openconfig-extensions.yang
│   │   │   │   │   │   ├── openconfig-platform-psu.yang
│   │   │   │   │   │   ├── openconfig-platform-types.yang
│   │   │   │   │   │   ├── openconfig-platform.yang
│   │   │   │   │   │   └── openconfig-types.yang
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_15546/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_16476/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_16515/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_17154/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_17279/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_17412/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_17622/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── tagging_name_based/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── tagging_subinterfaces/
│   │   │   │       ├── expected.out
│   │   │   │       ├── responses.json
│   │   │   │       └── telegraf.conf
│   │   │   └── update_fields.go
│   │   ├── google_cloud_storage/
│   │   │   ├── README.md
│   │   │   ├── google_cloud_storage.go
│   │   │   ├── google_cloud_storage_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── file_listing.json
│   │   │       ├── first_file.json
│   │   │       ├── first_file_listing.json
│   │   │       ├── fourth_file.json
│   │   │       ├── fourth_file_listing.json
│   │   │       ├── second_file.json
│   │   │       ├── second_file_listing.json
│   │   │       ├── single_file_list.json
│   │   │       ├── single_object_not_found.json
│   │   │       ├── third_file.json
│   │   │       └── third_file_listing.json
│   │   ├── graylog/
│   │   │   ├── README.md
│   │   │   ├── graylog.go
│   │   │   ├── graylog_test.go
│   │   │   └── sample.conf
│   │   ├── haproxy/
│   │   │   ├── README.md
│   │   │   ├── haproxy.go
│   │   │   ├── haproxy_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── sample_output.csv
│   │   ├── hddtemp/
│   │   │   ├── README.md
│   │   │   ├── go-hddtemp/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── hddtemp.go
│   │   │   │   └── hddtemp_test.go
│   │   │   ├── hddtemp.go
│   │   │   ├── hddtemp_test.go
│   │   │   └── sample.conf
│   │   ├── http/
│   │   │   ├── README.md
│   │   │   ├── http.go
│   │   │   ├── http_internal_test.go
│   │   │   ├── http_test.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── http_listener_v2/
│   │   │   ├── README.md
│   │   │   ├── http_listener_v2.go
│   │   │   ├── http_listener_v2_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── huge_metric
│   │   ├── http_response/
│   │   │   ├── README.md
│   │   │   ├── http_response.go
│   │   │   ├── http_response_test.go
│   │   │   └── sample.conf
│   │   ├── huebridge/
│   │   │   ├── README.md
│   │   │   ├── bridge.go
│   │   │   ├── huebridge.go
│   │   │   ├── huebridge_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── conf/
│   │   │       │   └── huebridge.conf
│   │   │       └── metrics/
│   │   │           └── huebridge.txt
│   │   ├── hugepages/
│   │   │   ├── README.md
│   │   │   ├── hugepages.go
│   │   │   ├── hugepages_notlinux.go
│   │   │   ├── hugepages_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── invalid/
│   │   │       │   ├── 1/
│   │   │       │   │   ├── anode3/
│   │   │       │   │   │   └── dir_lock
│   │   │       │   │   ├── node0/
│   │   │       │   │   │   └── hugepages/
│   │   │       │   │   │       ├── hugepages-1048576kB/
│   │   │       │   │   │       │   ├── free_hugepages/
│   │   │       │   │   │       │   │   └── dir_lock
│   │   │       │   │   │       │   └── nry_hugepages
│   │   │       │   │   │       ├── hugepages-2048kB
│   │   │       │   │   │       ├── hugepages-aaaa1048576kB/
│   │   │       │   │   │       │   └── free_hugepages
│   │   │       │   │   │       └── hugepages1048576kB/
│   │   │       │   │   │           └── free_hugepages
│   │   │       │   │   ├── node1
│   │   │       │   │   └── node4b/
│   │   │       │   │       └── dir_lock
│   │   │       │   ├── 2/
│   │   │       │   │   └── node1/
│   │   │       │   │       └── hugepages/
│   │   │       │   │           └── hugepages-1048576kB/
│   │   │       │   │               └── nr_hugepages
│   │   │       │   └── meminfo
│   │   │       └── valid/
│   │   │           ├── meminfo
│   │   │           ├── mm/
│   │   │           │   └── hugepages/
│   │   │           │       ├── hugepages-1048576kB/
│   │   │           │       │   ├── free_hugepages
│   │   │           │       │   ├── nr_hugepages
│   │   │           │       │   ├── nr_hugepages_mempolicy
│   │   │           │       │   ├── nr_overcommit_hugepages
│   │   │           │       │   ├── resv_hugepages
│   │   │           │       │   └── surplus_hugepages
│   │   │           │       └── hugepages-2048kB/
│   │   │           │           ├── free_hugepages
│   │   │           │           ├── nr_hugepages
│   │   │           │           ├── nr_hugepages_mempolicy
│   │   │           │           ├── nr_overcommit_hugepages
│   │   │           │           ├── resv_hugepages
│   │   │           │           └── surplus_hugepages
│   │   │           └── node/
│   │   │               ├── node0/
│   │   │               │   └── hugepages/
│   │   │               │       ├── hugepages-1048576kB/
│   │   │               │       │   ├── free_hugepages
│   │   │               │       │   ├── nr_hugepages
│   │   │               │       │   └── surplus_hugepages
│   │   │               │       └── hugepages-2048kB/
│   │   │               │           ├── free_hugepages
│   │   │               │           ├── nr_hugepages
│   │   │               │           └── surplus_hugepages
│   │   │               └── node1/
│   │   │                   └── hugepages/
│   │   │                       ├── hugepages-1048576kB/
│   │   │                       │   ├── free_hugepages
│   │   │                       │   ├── nr_hugepages
│   │   │                       │   └── surplus_hugepages
│   │   │                       └── hugepages-2048kB/
│   │   │                           ├── free_hugepages
│   │   │                           ├── nr_hugepages
│   │   │                           └── surplus_hugepages
│   │   ├── icinga2/
│   │   │   ├── README.md
│   │   │   ├── icinga2.go
│   │   │   ├── icinga2_test.go
│   │   │   └── sample.conf
│   │   ├── infiniband/
│   │   │   ├── README.md
│   │   │   ├── infiniband.go
│   │   │   ├── infiniband_linux.go
│   │   │   ├── infiniband_notlinux.go
│   │   │   ├── infiniband_test.go
│   │   │   └── sample.conf
│   │   ├── influxdb/
│   │   │   ├── README.md
│   │   │   ├── influxdb.go
│   │   │   ├── influxdb_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   ├── cloud1.influx
│   │   │   │   ├── cloud1.json
│   │   │   │   ├── influx_return.json
│   │   │   │   └── influx_return2.json
│   │   │   └── types.go
│   │   ├── influxdb_listener/
│   │   │   ├── README.md
│   │   │   ├── influxdb_listener.go
│   │   │   ├── influxdb_listener_benchmark_test.go
│   │   │   ├── influxdb_listener_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── huge_metric
│   │   ├── influxdb_v2_listener/
│   │   │   ├── README.md
│   │   │   ├── influxdb_v2_listener.go
│   │   │   ├── influxdb_v2_listener_benchmark_test.go
│   │   │   ├── influxdb_v2_listener_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── huge_metric
│   │   ├── intel_baseband/
│   │   │   ├── README.md
│   │   │   ├── intel_baseband.go
│   │   │   ├── intel_baseband_notamd64linux.go
│   │   │   ├── intel_baseband_test.go
│   │   │   ├── log_connector.go
│   │   │   ├── log_connector_test.go
│   │   │   ├── mocks/
│   │   │   │   └── conn.go
│   │   │   ├── sample.conf
│   │   │   ├── sock_connector.go
│   │   │   ├── sock_connector_test.go
│   │   │   ├── testdata/
│   │   │   │   └── logfiles/
│   │   │   │       ├── empty.log
│   │   │   │       └── example.log
│   │   │   ├── utils.go
│   │   │   └── utils_test.go
│   │   ├── intel_dlb/
│   │   │   ├── README.md
│   │   │   ├── intel_dlb.go
│   │   │   ├── intel_dlb_notlinux.go
│   │   │   ├── intel_dlb_test.go
│   │   │   ├── ras_reader.go
│   │   │   ├── ras_reader_mock.go
│   │   │   └── sample.conf
│   │   ├── intel_pmt/
│   │   │   ├── README.md
│   │   │   ├── filtering.go
│   │   │   ├── filtering_test.go
│   │   │   ├── intel_pmt.go
│   │   │   ├── intel_pmt_notamd64linux.go
│   │   │   ├── intel_pmt_test.go
│   │   │   ├── sample.conf
│   │   │   ├── tags_extraction.go
│   │   │   ├── tags_extraction_test.go
│   │   │   ├── xml_parser.go
│   │   │   └── xml_parser_test.go
│   │   ├── intel_pmu/
│   │   │   ├── README.md
│   │   │   ├── activators.go
│   │   │   ├── activators_test.go
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── intel_pmu.go
│   │   │   ├── intel_pmu_notamd64linux.go
│   │   │   ├── intel_pmu_test.go
│   │   │   ├── mocks.go
│   │   │   ├── reader.go
│   │   │   ├── reader_test.go
│   │   │   ├── resolver.go
│   │   │   ├── resolver_test.go
│   │   │   └── sample.conf
│   │   ├── intel_powerstat/
│   │   │   ├── README.md
│   │   │   ├── fetcher.go
│   │   │   ├── intel_powerstat.go
│   │   │   ├── intel_powerstat_notlinux.go
│   │   │   ├── intel_powerstat_test.go
│   │   │   ├── metrics.go
│   │   │   ├── metrics_test.go
│   │   │   ├── options.go
│   │   │   ├── options_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── aperfmperf_flag_not_found/
│   │   │       │   └── cpuinfo
│   │   │       ├── cpu_model_missing/
│   │   │       │   └── cpuinfo
│   │   │       ├── cpuinfo
│   │   │       ├── dts_flag_not_found/
│   │   │       │   └── cpuinfo
│   │   │       ├── model_not_supported/
│   │   │       │   └── cpuinfo
│   │   │       ├── msr_flag_not_found/
│   │   │       │   └── cpuinfo
│   │   │       ├── sapphirerapids_core.json
│   │   │       └── vendor_not_supported/
│   │   │           └── cpuinfo
│   │   ├── intel_rdt/
│   │   │   ├── README.md
│   │   │   ├── intel_rdt.go
│   │   │   ├── intel_rdt_test.go
│   │   │   ├── intel_rdt_windows.go
│   │   │   ├── processes.go
│   │   │   ├── publisher.go
│   │   │   ├── publisher_test.go
│   │   │   └── sample.conf
│   │   ├── internal/
│   │   │   ├── README.md
│   │   │   ├── internal.go
│   │   │   ├── internal_test.go
│   │   │   └── sample.conf
│   │   ├── internet_speed/
│   │   │   ├── README.md
│   │   │   ├── internet_speed.go
│   │   │   ├── internet_speed_test.go
│   │   │   └── sample.conf
│   │   ├── interrupts/
│   │   │   ├── README.md
│   │   │   ├── interrupts.go
│   │   │   ├── interrupts_test.go
│   │   │   └── sample.conf
│   │   ├── ipmi_sensor/
│   │   │   ├── README.md
│   │   │   ├── connection.go
│   │   │   ├── connection_test.go
│   │   │   ├── ipmi_sensor.go
│   │   │   ├── ipmi_sensor_test.go
│   │   │   └── sample.conf
│   │   ├── ipset/
│   │   │   ├── README.md
│   │   │   ├── ipset.go
│   │   │   ├── ipset_entries.go
│   │   │   ├── ipset_entries_test.go
│   │   │   ├── ipset_test.go
│   │   │   └── sample.conf
│   │   ├── iptables/
│   │   │   ├── README.md
│   │   │   ├── iptables.go
│   │   │   ├── iptables_notlinux.go
│   │   │   ├── iptables_test.go
│   │   │   └── sample.conf
│   │   ├── ipvs/
│   │   │   ├── README.md
│   │   │   ├── ipvs.go
│   │   │   ├── ipvs_notlinux.go
│   │   │   └── sample.conf
│   │   ├── jenkins/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── jenkins.go
│   │   │   ├── jenkins_test.go
│   │   │   └── sample.conf
│   │   ├── jolokia2_agent/
│   │   │   ├── README.md
│   │   │   ├── examples/
│   │   │   │   ├── activemq.conf
│   │   │   │   ├── bitbucket.conf
│   │   │   │   ├── cassandra.conf
│   │   │   │   ├── hadoop-hdfs.conf
│   │   │   │   ├── java.conf
│   │   │   │   ├── jboss.conf
│   │   │   │   ├── kafka-connect.conf
│   │   │   │   ├── kafka.conf
│   │   │   │   ├── tomcat.conf
│   │   │   │   ├── weblogic.conf
│   │   │   │   └── zookeeper.conf
│   │   │   ├── jolokia2_agent.go
│   │   │   ├── jolokia2_agent_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── response.json
│   │   ├── jolokia2_proxy/
│   │   │   ├── README.md
│   │   │   ├── jolokia2_proxy.go
│   │   │   ├── jolokia2_proxy_test.go
│   │   │   └── sample.conf
│   │   ├── jti_openconfig_telemetry/
│   │   │   ├── README.md
│   │   │   ├── auth/
│   │   │   │   ├── authentication_service.pb.go
│   │   │   │   ├── authentication_service.proto
│   │   │   │   └── authentication_service_grpc.pb.go
│   │   │   ├── collection.go
│   │   │   ├── gen.go
│   │   │   ├── jti_openconfig_telemetry.go
│   │   │   ├── jti_openconfig_telemetry_test.go
│   │   │   ├── oc/
│   │   │   │   ├── oc.pb.go
│   │   │   │   ├── oc.proto
│   │   │   │   └── oc_grpc.pb.go
│   │   │   └── sample.conf
│   │   ├── kafka_consumer/
│   │   │   ├── README.md
│   │   │   ├── kafka_consumer.go
│   │   │   ├── kafka_consumer_test.go
│   │   │   └── sample.conf
│   │   ├── kapacitor/
│   │   │   ├── README.md
│   │   │   ├── kapacitor.go
│   │   │   ├── kapacitor_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── kapacitor_return.json
│   │   ├── kernel/
│   │   │   ├── README.md
│   │   │   ├── kernel.go
│   │   │   ├── kernel_notlinux.go
│   │   │   ├── kernel_test.go
│   │   │   ├── psi.go
│   │   │   ├── psi_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── entropy_stat_file_full
│   │   │       ├── entropy_stat_file_invalid
│   │   │       ├── entropy_stat_file_partial
│   │   │       ├── ksm/
│   │   │       │   ├── invalid/
│   │   │       │   │   ├── full_scans
│   │   │       │   │   ├── max_page_sharing
│   │   │       │   │   ├── merge_across_nodes
│   │   │       │   │   ├── pages_shared
│   │   │       │   │   ├── pages_sharing
│   │   │       │   │   ├── pages_to_scan
│   │   │       │   │   ├── pages_unshared
│   │   │       │   │   ├── pages_volatile
│   │   │       │   │   ├── run
│   │   │       │   │   ├── sleep_millisecs
│   │   │       │   │   ├── stable_node_chains
│   │   │       │   │   ├── stable_node_chains_prune_millisecs
│   │   │       │   │   ├── stable_node_dups
│   │   │       │   │   └── use_zero_pages
│   │   │       │   ├── missing/
│   │   │       │   │   ├── full_scans
│   │   │       │   │   ├── max_page_sharing
│   │   │       │   │   ├── merge_across_nodes
│   │   │       │   │   ├── pages_shared
│   │   │       │   │   ├── pages_sharing
│   │   │       │   │   ├── pages_to_scan
│   │   │       │   │   ├── pages_unshared
│   │   │       │   │   ├── pages_volatile
│   │   │       │   │   ├── sleep_millisecs
│   │   │       │   │   ├── stable_node_chains
│   │   │       │   │   ├── stable_node_chains_prune_millisecs
│   │   │       │   │   ├── stable_node_dups
│   │   │       │   │   └── use_zero_pages
│   │   │       │   └── valid/
│   │   │       │       ├── full_scans
│   │   │       │       ├── max_page_sharing
│   │   │       │       ├── merge_across_nodes
│   │   │       │       ├── pages_shared
│   │   │       │       ├── pages_sharing
│   │   │       │       ├── pages_to_scan
│   │   │       │       ├── pages_unshared
│   │   │       │       ├── pages_volatile
│   │   │       │       ├── run
│   │   │       │       ├── sleep_millisecs
│   │   │       │       ├── stable_node_chains
│   │   │       │       ├── stable_node_chains_prune_millisecs
│   │   │       │       ├── stable_node_dups
│   │   │       │       └── use_zero_pages
│   │   │       ├── pressure/
│   │   │       │   ├── cpu
│   │   │       │   ├── io
│   │   │       │   └── memory
│   │   │       ├── stat_file_full
│   │   │       ├── stat_file_invalid
│   │   │       ├── stat_file_invalid2
│   │   │       └── stat_file_partial
│   │   ├── kernel_vmstat/
│   │   │   ├── README.md
│   │   │   ├── kernel_vmstat.go
│   │   │   ├── kernel_vmstat_notlinux.go
│   │   │   ├── kernel_vmstat_test.go
│   │   │   └── sample.conf
│   │   ├── kibana/
│   │   │   ├── README.md
│   │   │   ├── kibana.go
│   │   │   ├── kibana_test.go
│   │   │   ├── sample.conf
│   │   │   ├── test_environment/
│   │   │   │   ├── basic_kibana_telegraf.conf
│   │   │   │   ├── docker-compose.yml
│   │   │   │   └── run_test_env.sh
│   │   │   ├── testdata_test6_3.go
│   │   │   ├── testdata_test6_5.go
│   │   │   └── testdata_test8_15.go
│   │   ├── kinesis_consumer/
│   │   │   ├── README.md
│   │   │   ├── consumer.go
│   │   │   ├── encoding.go
│   │   │   ├── kinesis_consumer.go
│   │   │   ├── kinesis_consumer_test.go
│   │   │   ├── logging.go
│   │   │   ├── sample.conf
│   │   │   └── store.go
│   │   ├── knx_listener/
│   │   │   ├── README.md
│   │   │   ├── knx_dummy_interface.go
│   │   │   ├── knx_listener.go
│   │   │   ├── knx_listener_test.go
│   │   │   └── sample.conf
│   │   ├── kube_inventory/
│   │   │   ├── README.md
│   │   │   ├── certificate.go
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── daemonset.go
│   │   │   ├── daemonset_test.go
│   │   │   ├── deployment.go
│   │   │   ├── deployment_test.go
│   │   │   ├── endpoint.go
│   │   │   ├── endpoint_test.go
│   │   │   ├── ingress.go
│   │   │   ├── ingress_test.go
│   │   │   ├── kube_inventory.go
│   │   │   ├── node.go
│   │   │   ├── node_test.go
│   │   │   ├── persistentvolume.go
│   │   │   ├── persistentvolume_test.go
│   │   │   ├── persistentvolumeclaim.go
│   │   │   ├── persistentvolumeclaim_test.go
│   │   │   ├── pod.go
│   │   │   ├── pod_test.go
│   │   │   ├── resourcequotas.go
│   │   │   ├── resourcequotas_test.go
│   │   │   ├── sample.conf
│   │   │   ├── service.go
│   │   │   ├── service_test.go
│   │   │   ├── statefulset.go
│   │   │   └── statefulset_test.go
│   │   ├── kubernetes/
│   │   │   ├── README.md
│   │   │   ├── kubernetes.go
│   │   │   ├── kubernetes_metrics.go
│   │   │   ├── kubernetes_pods.go
│   │   │   ├── kubernetes_test.go
│   │   │   └── sample.conf
│   │   ├── lanz/
│   │   │   ├── README.md
│   │   │   ├── lanz.go
│   │   │   ├── lanz_test.go
│   │   │   └── sample.conf
│   │   ├── ldap/
│   │   │   ├── 389ds.go
│   │   │   ├── README.md
│   │   │   ├── ldap.go
│   │   │   ├── ldap_test.go
│   │   │   ├── openldap.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── leofs/
│   │   │   ├── README.md
│   │   │   ├── leofs.go
│   │   │   ├── leofs_test.go
│   │   │   └── sample.conf
│   │   ├── libvirt/
│   │   │   ├── README.md
│   │   │   ├── libvirt.go
│   │   │   ├── libvirt_metric_format.go
│   │   │   ├── libvirt_test.go
│   │   │   ├── libvirt_utils.go
│   │   │   ├── libvirt_utils_mock.go
│   │   │   └── sample.conf
│   │   ├── linux_cpu/
│   │   │   ├── README.md
│   │   │   ├── linux_cpu.go
│   │   │   ├── linux_cpu_nonlinux.go
│   │   │   ├── linux_cpu_test.go
│   │   │   └── sample.conf
│   │   ├── linux_sysctl_fs/
│   │   │   ├── README.md
│   │   │   ├── linux_sysctl_fs.go
│   │   │   ├── linux_sysctl_fs_test.go
│   │   │   └── sample.conf
│   │   ├── logql/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── logql.go
│   │   │   ├── logql_test.go
│   │   │   ├── query.go
│   │   │   ├── response.go
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   └── testcases/
│   │   │       ├── instant_vector/
│   │   │       │   ├── expected.out
│   │   │       │   ├── expected.query
│   │   │       │   ├── response_query.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── range_matrix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── expected.query
│   │   │       │   ├── response_query_range.json
│   │   │       │   └── telegraf.conf
│   │   │       └── range_stream/
│   │   │           ├── expected.out
│   │   │           ├── expected.query
│   │   │           ├── response_query_range.json
│   │   │           └── telegraf.conf
│   │   ├── logstash/
│   │   │   ├── README.md
│   │   │   ├── logstash.go
│   │   │   ├── logstash_test.go
│   │   │   ├── sample.conf
│   │   │   ├── samples_logstash5.go
│   │   │   ├── samples_logstash6.go
│   │   │   └── samples_logstash7.go
│   │   ├── lustre2/
│   │   │   ├── README.md
│   │   │   ├── lustre2.go
│   │   │   ├── lustre2_notlinux.go
│   │   │   ├── lustre2_test.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       ├── custom_locations/
│   │   │       │   ├── expected.out
│   │   │       │   ├── host_proc/
│   │   │       │   │   └── fs/
│   │   │       │   │       └── lustre/
│   │   │       │   │           ├── mdt/
│   │   │       │   │           │   └── OST0001/
│   │   │       │   │           │       ├── exports/
│   │   │       │   │           │       │   └── 10.2.4.27@o2ib1/
│   │   │       │   │           │       │       └── stats
│   │   │       │   │           │       ├── job_stats
│   │   │       │   │           │       └── md_stats
│   │   │       │   │           ├── obdfilter/
│   │   │       │   │           │   └── OST0001/
│   │   │       │   │           │       ├── exports/
│   │   │       │   │           │       │   └── 10.2.4.27@o2ib1/
│   │   │       │   │           │       │       └── stats
│   │   │       │   │           │       ├── job_stats
│   │   │       │   │           │       └── stats
│   │   │       │   │           └── osd-ldiskfs/
│   │   │       │   │               └── OST0001/
│   │   │       │   │                   ├── brw_stats
│   │   │       │   │                   └── stats
│   │   │       │   └── telegraf.conf
│   │   │       ├── v2.12/
│   │   │       │   ├── expected.out
│   │   │       │   ├── proc/
│   │   │       │   │   └── fs/
│   │   │       │   │       └── lustre/
│   │   │       │   │           ├── mdt/
│   │   │       │   │           │   └── OST0001/
│   │   │       │   │           │       ├── exports/
│   │   │       │   │           │       │   └── 10.2.4.27@o2ib1/
│   │   │       │   │           │       │       └── stats
│   │   │       │   │           │       ├── job_stats
│   │   │       │   │           │       └── md_stats
│   │   │       │   │           ├── obdfilter/
│   │   │       │   │           │   └── OST0001/
│   │   │       │   │           │       ├── exports/
│   │   │       │   │           │       │   └── 10.2.4.27@o2ib1/
│   │   │       │   │           │       │       └── stats
│   │   │       │   │           │       ├── job_stats
│   │   │       │   │           │       └── stats
│   │   │       │   │           └── osd-ldiskfs/
│   │   │       │   │               └── OST0001/
│   │   │       │   │                   ├── brw_stats
│   │   │       │   │                   └── stats
│   │   │       │   ├── sys/
│   │   │       │   │   └── fs/
│   │   │       │   │       └── lustre/
│   │   │       │   │           ├── health_check
│   │   │       │   │           ├── mdt/
│   │   │       │   │           │   └── fs-MDT0000/
│   │   │       │   │           │       └── eviction_count
│   │   │       │   │           ├── mgs/
│   │   │       │   │           │   └── MGS/
│   │   │       │   │           │       └── eviction_count
│   │   │       │   │           └── obdfilter/
│   │   │       │   │               └── fs-OST0001/
│   │   │       │   │                   └── eviction_count
│   │   │       │   └── telegraf.conf
│   │   │       └── v2.12_no_client_stats/
│   │   │           ├── expected.out
│   │   │           ├── proc/
│   │   │           │   └── fs/
│   │   │           │       └── lustre/
│   │   │           │           ├── mdt/
│   │   │           │           │   └── OST0001/
│   │   │           │           │       ├── job_stats
│   │   │           │           │       └── md_stats
│   │   │           │           ├── obdfilter/
│   │   │           │           │   └── OST0001/
│   │   │           │           │       ├── job_stats
│   │   │           │           │       └── stats
│   │   │           │           └── osd-ldiskfs/
│   │   │           │               └── OST0001/
│   │   │           │                   ├── brw_stats
│   │   │           │                   └── stats
│   │   │           ├── sys/
│   │   │           │   └── fs/
│   │   │           │       └── lustre/
│   │   │           │           ├── health_check
│   │   │           │           ├── mdt/
│   │   │           │           │   └── fs-MDT0000/
│   │   │           │           │       └── eviction_count
│   │   │           │           ├── mgs/
│   │   │           │           │   └── MGS/
│   │   │           │           │       └── eviction_count
│   │   │           │           └── obdfilter/
│   │   │           │               └── fs-OST0001/
│   │   │           │                   └── eviction_count
│   │   │           └── telegraf.conf
│   │   ├── lvm/
│   │   │   ├── README.md
│   │   │   ├── lvm.go
│   │   │   ├── lvm_test.go
│   │   │   └── sample.conf
│   │   ├── mailchimp/
│   │   │   ├── README.md
│   │   │   ├── chimp_api.go
│   │   │   ├── mailchimp.go
│   │   │   ├── mailchimp_test.go
│   │   │   └── sample.conf
│   │   ├── marklogic/
│   │   │   ├── README.md
│   │   │   ├── marklogic.go
│   │   │   ├── marklogic_test.go
│   │   │   └── sample.conf
│   │   ├── mavlink/
│   │   │   ├── README.md
│   │   │   ├── mavlink.go
│   │   │   ├── mavlink_test.go
│   │   │   └── sample.conf
│   │   ├── mcrouter/
│   │   │   ├── README.md
│   │   │   ├── mcrouter.go
│   │   │   ├── mcrouter_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── mcrouter_stats
│   │   ├── mdstat/
│   │   │   ├── README.md
│   │   │   ├── mdstat.go
│   │   │   ├── mdstat_notlinux.go
│   │   │   ├── mdstat_test.go
│   │   │   └── sample.conf
│   │   ├── mem/
│   │   │   ├── README.md
│   │   │   ├── mem.go
│   │   │   ├── mem_test.go
│   │   │   └── sample.conf
│   │   ├── memcached/
│   │   │   ├── README.md
│   │   │   ├── memcached.go
│   │   │   ├── memcached_test.go
│   │   │   └── sample.conf
│   │   ├── mesos/
│   │   │   ├── README.md
│   │   │   ├── mesos.go
│   │   │   ├── mesos_test.go
│   │   │   └── sample.conf
│   │   ├── minecraft/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── minecraft.go
│   │   │   ├── minecraft_test.go
│   │   │   └── sample.conf
│   │   ├── mock/
│   │   │   ├── README.md
│   │   │   ├── mock.go
│   │   │   ├── mock_test.go
│   │   │   └── sample.conf
│   │   ├── modbus/
│   │   │   ├── README.md
│   │   │   ├── configuration.go
│   │   │   ├── configuration_metric.go
│   │   │   ├── configuration_metric_test.go
│   │   │   ├── configuration_register.go
│   │   │   ├── configuration_register_test.go
│   │   │   ├── configuration_request.go
│   │   │   ├── configuration_request_test.go
│   │   │   ├── modbus.go
│   │   │   ├── modbus_test.go
│   │   │   ├── request.go
│   │   │   ├── sample_general_begin.conf
│   │   │   ├── sample_general_end.conf
│   │   │   ├── sample_metric.conf
│   │   │   ├── sample_register.conf
│   │   │   ├── sample_request.conf
│   │   │   ├── testcases/
│   │   │   │   ├── duplicate_fields_different_registers/
│   │   │   │   │   ├── init.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_different_slave/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_different_tags/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_issue_12091/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_same_slave_and_request/
│   │   │   │   │   ├── init.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_same_tags/
│   │   │   │   │   ├── init.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── field_request_too_short_issue_13482/
│   │   │   │   │   ├── init.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── metric_style_issue_16031/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── overflow_issue_14387/
│   │   │   │       ├── expected.out
│   │   │   │       └── telegraf.conf
│   │   │   ├── type_conversions.go
│   │   │   ├── type_conversions16.go
│   │   │   ├── type_conversions32.go
│   │   │   ├── type_conversions64.go
│   │   │   ├── type_conversions8.go
│   │   │   ├── type_conversions_bit.go
│   │   │   └── type_conversions_string.go
│   │   ├── mongodb/
│   │   │   ├── README.md
│   │   │   ├── dev/
│   │   │   │   ├── docker-compose.yml
│   │   │   │   └── telegraf.conf
│   │   │   ├── mongodb.go
│   │   │   ├── mongodb_data.go
│   │   │   ├── mongodb_data_test.go
│   │   │   ├── mongodb_server.go
│   │   │   ├── mongodb_server_test.go
│   │   │   ├── mongostat.go
│   │   │   ├── mongostat_test.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── monit/
│   │   │   ├── README.md
│   │   │   ├── monit.go
│   │   │   ├── monit_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── response_invalidxml_1.xml
│   │   │       ├── response_invalidxml_2.xml
│   │   │       ├── response_invalidxml_3.xml
│   │   │       ├── response_servicetype_0.xml
│   │   │       ├── response_servicetype_1.xml
│   │   │       ├── response_servicetype_2.xml
│   │   │       ├── response_servicetype_3.xml
│   │   │       ├── response_servicetype_4.xml
│   │   │       ├── response_servicetype_5.xml
│   │   │       ├── response_servicetype_6.xml
│   │   │       ├── response_servicetype_7.xml
│   │   │       ├── response_servicetype_8.xml
│   │   │       ├── response_servicetype_8_failure.xml
│   │   │       ├── response_servicetype_8_initializingmode.xml
│   │   │       ├── response_servicetype_8_passivemode.xml
│   │   │       └── response_servicetype_8_pendingaction.xml
│   │   ├── mqtt_consumer/
│   │   │   ├── README.md
│   │   │   ├── mqtt_consumer.go
│   │   │   ├── mqtt_consumer_test.go
│   │   │   ├── mqtt_logger.go
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   └── mosquitto.conf
│   │   │   └── topic_parser.go
│   │   ├── multifile/
│   │   │   ├── README.md
│   │   │   ├── multifile.go
│   │   │   ├── multifile_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── bool.txt
│   │   │       ├── float.txt
│   │   │       ├── int.txt
│   │   │       ├── string.txt
│   │   │       └── tag.txt
│   │   ├── mysql/
│   │   │   ├── README.md
│   │   │   ├── dev/
│   │   │   │   ├── docker-compose.yml
│   │   │   │   └── telegraf.conf
│   │   │   ├── mysql.go
│   │   │   ├── mysql_test.go
│   │   │   ├── sample.conf
│   │   │   ├── v1/
│   │   │   │   └── mysql.go
│   │   │   └── v2/
│   │   │       ├── convert.go
│   │   │       └── convert_test.go
│   │   ├── nats/
│   │   │   ├── README.md
│   │   │   ├── nats.go
│   │   │   ├── nats_freebsd.go
│   │   │   ├── nats_test.go
│   │   │   └── sample.conf
│   │   ├── nats_consumer/
│   │   │   ├── README.md
│   │   │   ├── nats_consumer.go
│   │   │   ├── nats_consumer_test.go
│   │   │   └── sample.conf
│   │   ├── neoom_beaam/
│   │   │   ├── README.md
│   │   │   ├── neoom_beaam.go
│   │   │   ├── neoom_beaam_test.go
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── testcases/
│   │   │   │   └── small/
│   │   │   │       ├── configuration.json
│   │   │   │       ├── expected.out
│   │   │   │       ├── state.json
│   │   │   │       ├── telegraf.conf
│   │   │   │       ├── thing_22222222-bbbb-2222-bbbb-222222222222.json
│   │   │   │       ├── thing_33333333-cccc-3333-cccc-333333333333.json
│   │   │   │       ├── thing_44444444-dddd-4444-dddd-444444444444.json
│   │   │   │       └── thing_55555555-eeee-5555-eeee-555555555555.json
│   │   │   └── types.go
│   │   ├── neptune_apex/
│   │   │   ├── README.md
│   │   │   ├── neptune_apex.go
│   │   │   ├── neptune_apex_test.go
│   │   │   └── sample.conf
│   │   ├── net/
│   │   │   ├── README.md
│   │   │   ├── net.go
│   │   │   ├── net_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── general/
│   │   │           └── sys/
│   │   │               └── class/
│   │   │                   └── net/
│   │   │                       ├── eth0/
│   │   │                       │   └── speed
│   │   │                       └── eth1/
│   │   │                           └── speed
│   │   ├── net_response/
│   │   │   ├── README.md
│   │   │   ├── net_response.go
│   │   │   ├── net_response_test.go
│   │   │   └── sample.conf
│   │   ├── netflow/
│   │   │   ├── README.md
│   │   │   ├── ipv4_options.csv
│   │   │   ├── layer4_protocol_numbers.csv
│   │   │   ├── mappings.go
│   │   │   ├── mappings_ipfix_pen/
│   │   │   │   └── ntop-35632.csv
│   │   │   ├── netflow.go
│   │   │   ├── netflow_decoder.go
│   │   │   ├── netflow_test.go
│   │   │   ├── netflow_v5.go
│   │   │   ├── sample.conf
│   │   │   ├── sflow_v5.go
│   │   │   ├── testcases/
│   │   │   │   ├── ipfix_example/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── ipfix_options/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── ipfix_pen_35632/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_13305/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14370/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── netflow_mapping.csv
│   │   │   │   ├── netflow_v5_example/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── netflow_v9_example/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── netflow_v9_options/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── sflow_issue_15375/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── sflow_issue_15918/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── sflow_v5_example/
│   │   │   │       ├── expected.out
│   │   │   │       └── telegraf.conf
│   │   │   ├── type_conversion.go
│   │   │   └── type_conversion_test.go
│   │   ├── netstat/
│   │   │   ├── README.md
│   │   │   ├── netstat.go
│   │   │   ├── netstat_test.go
│   │   │   └── sample.conf
│   │   ├── nfsclient/
│   │   │   ├── README.md
│   │   │   ├── nfsclient.go
│   │   │   ├── nfsclient_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── mountstats
│   │   ├── nftables/
│   │   │   ├── README.md
│   │   │   ├── nftables.go
│   │   │   ├── nftables_notlinux.go
│   │   │   ├── nftables_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── bad_output/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── table_test.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── bad_rule_empty/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── table_test.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── bad_rule_list/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── table_test.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── bad_rule_string/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── table_test.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── mixed_counters/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── table_mixed.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── named_counter/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── table_inet example.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── non_existent_table/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── valid/
│   │   │   │       ├── expected.out
│   │   │   │       ├── table_test.json
│   │   │   │       └── telegraf.conf
│   │   │   └── types.go
│   │   ├── nginx/
│   │   │   ├── README.md
│   │   │   ├── nginx.go
│   │   │   ├── nginx_test.go
│   │   │   └── sample.conf
│   │   ├── nginx_plus/
│   │   │   ├── README.md
│   │   │   ├── nginx_plus.go
│   │   │   ├── nginx_plus_test.go
│   │   │   └── sample.conf
│   │   ├── nginx_plus_api/
│   │   │   ├── README.md
│   │   │   ├── nginx_plus_api.go
│   │   │   ├── nginx_plus_api_metrics.go
│   │   │   ├── nginx_plus_api_metrics_test.go
│   │   │   ├── nginx_plus_api_types.go
│   │   │   └── sample.conf
│   │   ├── nginx_sts/
│   │   │   ├── README.md
│   │   │   ├── nginx_sts.go
│   │   │   ├── nginx_sts_test.go
│   │   │   └── sample.conf
│   │   ├── nginx_upstream_check/
│   │   │   ├── README.md
│   │   │   ├── nginx_upstream_check.go
│   │   │   ├── nginx_upstream_check_test.go
│   │   │   └── sample.conf
│   │   ├── nginx_vts/
│   │   │   ├── README.md
│   │   │   ├── nginx_vts.go
│   │   │   ├── nginx_vts_test.go
│   │   │   └── sample.conf
│   │   ├── nomad/
│   │   │   ├── README.md
│   │   │   ├── nomad.go
│   │   │   ├── nomad_metrics.go
│   │   │   ├── nomad_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── response_key_metrics.json
│   │   ├── nsd/
│   │   │   ├── README.md
│   │   │   ├── nsd.go
│   │   │   ├── nsd_test.go
│   │   │   └── sample.conf
│   │   ├── nsdp/
│   │   │   ├── README.md
│   │   │   ├── nsdp.go
│   │   │   ├── nsdp_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── conf/
│   │   │       │   └── nsdp.conf
│   │   │       └── metrics/
│   │   │           └── nsdp_device_port.txt
│   │   ├── nsq/
│   │   │   ├── README.md
│   │   │   ├── nsq.go
│   │   │   ├── nsq_test.go
│   │   │   └── sample.conf
│   │   ├── nsq_consumer/
│   │   │   ├── README.md
│   │   │   ├── nsq_consumer.go
│   │   │   ├── nsq_consumer_test.go
│   │   │   └── sample.conf
│   │   ├── nstat/
│   │   │   ├── README.md
│   │   │   ├── nstat.go
│   │   │   ├── nstat_test.go
│   │   │   └── sample.conf
│   │   ├── ntpq/
│   │   │   ├── README.md
│   │   │   ├── ntpq.go
│   │   │   ├── ntpq_test.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       ├── bad_float_parse/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── bad_header/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── bad_int_parse/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── bad_when/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── days/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── failed/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── hours/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── issue_2386/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── long_poll/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── minutes/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── missing_delay_column/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── multi/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── no_ref_id/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── pool_when_headers_as_data/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── pool_when_minus/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── servers/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input_serverA.txt
│   │   │       │   ├── input_serverB.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── servers_one_fail/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input_serverA.txt
│   │   │       │   ├── input_serverB.txt
│   │   │       │   ├── input_serverC.err
│   │   │       │   └── telegraf.conf
│   │   │       ├── single/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── single_reach_count/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── single_reach_decimal/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── single_reach_octal/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       └── single_reach_ratio/
│   │   │           ├── expected.out
│   │   │           ├── input.txt
│   │   │           └── telegraf.conf
│   │   ├── nvidia_smi/
│   │   │   ├── README.md
│   │   │   ├── common/
│   │   │   │   └── setters.go
│   │   │   ├── nvidia_smi.go
│   │   │   ├── nvidia_smi_test.go
│   │   │   ├── sample.conf
│   │   │   ├── schema_v11/
│   │   │   │   ├── parser.go
│   │   │   │   └── types.go
│   │   │   ├── schema_v12/
│   │   │   │   ├── parser.go
│   │   │   │   └── types.go
│   │   │   └── testdata/
│   │   │       ├── a100-sxm4-v12.xml
│   │   │       ├── a10g.xml
│   │   │       ├── gtx-1070-ti.xml
│   │   │       ├── gtx-1660-ti.xml
│   │   │       ├── quadro-p2000-v12.xml
│   │   │       ├── quadro-p400.xml
│   │   │       ├── rtx-3060-v12.xml
│   │   │       ├── rtx-3080-v12.xml
│   │   │       ├── rtx-3090-v12.xml
│   │   │       └── tesla-t4.xml
│   │   ├── opcua/
│   │   │   ├── README.md
│   │   │   ├── opcua.go
│   │   │   ├── opcua_test.go
│   │   │   ├── read_client.go
│   │   │   └── sample.conf
│   │   ├── opcua_listener/
│   │   │   ├── README.md
│   │   │   ├── opcua_listener.go
│   │   │   ├── opcua_listener_test.go
│   │   │   ├── sample.conf
│   │   │   └── subscribe_client.go
│   │   ├── openldap/
│   │   │   ├── README.md
│   │   │   ├── openldap.go
│   │   │   ├── openldap_test.go
│   │   │   └── sample.conf
│   │   ├── openntpd/
│   │   │   ├── README.md
│   │   │   ├── openntpd.go
│   │   │   ├── openntpd_test.go
│   │   │   └── sample.conf
│   │   ├── opensearch_query/
│   │   │   ├── README.md
│   │   │   ├── aggregation.bucket.go
│   │   │   ├── aggregation.go
│   │   │   ├── aggregation.metric.go
│   │   │   ├── aggregation.response.go
│   │   │   ├── opensearch_query.go
│   │   │   ├── opensearch_query_test.go
│   │   │   ├── query.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── nginx_logs
│   │   ├── opensmtpd/
│   │   │   ├── README.md
│   │   │   ├── opensmtpd.go
│   │   │   ├── opensmtpd_test.go
│   │   │   └── sample.conf
│   │   ├── openstack/
│   │   │   ├── README.md
│   │   │   ├── openstack.go
│   │   │   └── sample.conf
│   │   ├── opentelemetry/
│   │   │   ├── README.md
│   │   │   ├── grpc_service_profile.go
│   │   │   ├── grpc_services.go
│   │   │   ├── logger.go
│   │   │   ├── opentelemetry.go
│   │   │   ├── opentelemetry_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   └── profiles/
│   │   │   │       ├── expected.out
│   │   │   │       ├── profiles.json
│   │   │   │       └── telegraf.conf
│   │   │   └── writer.go
│   │   ├── openweathermap/
│   │   │   ├── README.md
│   │   │   ├── openweathermap.go
│   │   │   ├── openweathermap_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── forecast/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_forecast.json
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── rain_batch/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── snow_batch/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── weather/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── weather_batch/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_forecast.json
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── weather_single/
│   │   │   │       ├── expected.out
│   │   │   │       ├── response_forecast.json
│   │   │   │       ├── response_weather_2643743.json
│   │   │   │       ├── response_weather_524901.json
│   │   │   │       ├── response_weather_703448.json
│   │   │   │       └── telegraf.conf
│   │   │   └── types.go
│   │   ├── p4runtime/
│   │   │   ├── README.md
│   │   │   ├── p4runtime.go
│   │   │   ├── p4runtime_fake_client_test.go
│   │   │   ├── p4runtime_test.go
│   │   │   └── sample.conf
│   │   ├── passenger/
│   │   │   ├── README.md
│   │   │   ├── passenger.go
│   │   │   ├── passenger_test.go
│   │   │   └── sample.conf
│   │   ├── pf/
│   │   │   ├── README.md
│   │   │   ├── pf.go
│   │   │   ├── pf_test.go
│   │   │   └── sample.conf
│   │   ├── pgbouncer/
│   │   │   ├── README.md
│   │   │   ├── pgbouncer.go
│   │   │   ├── pgbouncer_test.go
│   │   │   └── sample.conf
│   │   ├── phpfpm/
│   │   │   ├── README.md
│   │   │   ├── child.go
│   │   │   ├── fcgi.go
│   │   │   ├── fcgi_client.go
│   │   │   ├── fcgi_test.go
│   │   │   ├── phpfpm.go
│   │   │   ├── phpfpm_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── expected.out
│   │   │       └── phpfpm.json
│   │   ├── ping/
│   │   │   ├── README.md
│   │   │   ├── ping.go
│   │   │   ├── ping_notwindows.go
│   │   │   ├── ping_test.go
│   │   │   ├── ping_windows.go
│   │   │   ├── ping_windows_test.go
│   │   │   └── sample.conf
│   │   ├── postfix/
│   │   │   ├── README.md
│   │   │   ├── postfix.go
│   │   │   ├── postfix_test.go
│   │   │   ├── postfix_windows.go
│   │   │   ├── sample.conf
│   │   │   ├── stat_ctim.go
│   │   │   └── stat_ctimespec.go
│   │   ├── postgresql/
│   │   │   ├── README.md
│   │   │   ├── postgresql.go
│   │   │   ├── postgresql_test.go
│   │   │   └── sample.conf
│   │   ├── postgresql_extensible/
│   │   │   ├── README.md
│   │   │   ├── postgresql_extensible.go
│   │   │   ├── postgresql_extensible_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── test.sql
│   │   ├── powerdns/
│   │   │   ├── README.md
│   │   │   ├── powerdns.go
│   │   │   ├── powerdns_linux_test.go
│   │   │   ├── powerdns_test.go
│   │   │   └── sample.conf
│   │   ├── powerdns_recursor/
│   │   │   ├── README.md
│   │   │   ├── powerdns_recursor.go
│   │   │   ├── powerdns_recursor_test.go
│   │   │   ├── protocol_commons.go
│   │   │   ├── protocol_v1.go
│   │   │   ├── protocol_v2.go
│   │   │   ├── protocol_v3.go
│   │   │   └── sample.conf
│   │   ├── processes/
│   │   │   ├── README.md
│   │   │   ├── processes.go
│   │   │   ├── processes_notwindows.go
│   │   │   ├── processes_test.go
│   │   │   ├── processes_windows.go
│   │   │   └── sample.conf
│   │   ├── procstat/
│   │   │   ├── README.md
│   │   │   ├── filter.go
│   │   │   ├── native_finder.go
│   │   │   ├── native_finder_test.go
│   │   │   ├── os_linux.go
│   │   │   ├── os_others.go
│   │   │   ├── os_windows.go
│   │   │   ├── pgrep.go
│   │   │   ├── process.go
│   │   │   ├── procstat.go
│   │   │   ├── procstat_test.go
│   │   │   ├── sample.conf
│   │   │   └── service_finders.go
│   │   ├── prometheus/
│   │   │   ├── README.md
│   │   │   ├── consul.go
│   │   │   ├── http_service_discovery.go
│   │   │   ├── http_service_discovery_test.go
│   │   │   ├── kubernetes.go
│   │   │   ├── kubernetes_test.go
│   │   │   ├── prometheus.go
│   │   │   ├── prometheus_test.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       └── service_discovery/
│   │   │           ├── http-services.json
│   │   │           └── telegraf.conf
│   │   ├── promql/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── promql.go
│   │   │   ├── promql_test.go
│   │   │   ├── query.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── proxmox/
│   │   │   ├── README.md
│   │   │   ├── proxmox.go
│   │   │   ├── proxmox_test.go
│   │   │   ├── sample.conf
│   │   │   └── structs.go
│   │   ├── puppetagent/
│   │   │   ├── README.md
│   │   │   ├── last_run_summary.yaml
│   │   │   ├── puppetagent.go
│   │   │   ├── puppetagent_test.go
│   │   │   └── sample.conf
│   │   ├── rabbitmq/
│   │   │   ├── README.md
│   │   │   ├── rabbitmq.go
│   │   │   ├── rabbitmq_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── set1/
│   │   │       │   ├── exchanges.json
│   │   │       │   ├── federation-links.json
│   │   │       │   ├── memory.json
│   │   │       │   ├── nodes.json
│   │   │       │   ├── overview.json
│   │   │       │   └── queues.json
│   │   │       └── set2/
│   │   │           ├── exchanges.json
│   │   │           ├── federation-links.json
│   │   │           ├── memory.json
│   │   │           ├── nodes.json
│   │   │           ├── overview.json
│   │   │           └── queues.json
│   │   ├── radius/
│   │   │   ├── README.md
│   │   │   ├── radius.go
│   │   │   ├── radius_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── invalidSourceIP/
│   │   │       │   ├── clients.conf
│   │   │       │   ├── mods-config/
│   │   │       │   │   └── files/
│   │   │       │   │       └── authorize
│   │   │       │   └── radiusd.conf
│   │   │       └── raddb/
│   │   │           ├── clients.conf
│   │   │           ├── mods-config/
│   │   │           │   └── files/
│   │   │           │       └── authorize
│   │   │           └── radiusd.conf
│   │   ├── raindrops/
│   │   │   ├── README.md
│   │   │   ├── raindrops.go
│   │   │   ├── raindrops_test.go
│   │   │   └── sample.conf
│   │   ├── ras/
│   │   │   ├── README.md
│   │   │   ├── ras.go
│   │   │   ├── ras_notlinux.go
│   │   │   ├── ras_test.go
│   │   │   └── sample.conf
│   │   ├── ravendb/
│   │   │   ├── README.md
│   │   │   ├── ravendb.go
│   │   │   ├── ravendb_dto.go
│   │   │   ├── ravendb_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── collections_full.json
│   │   │       ├── collections_min.json
│   │   │       ├── databases_full.json
│   │   │       ├── databases_min.json
│   │   │       ├── indexes_full.json
│   │   │       ├── indexes_min.json
│   │   │       ├── server_full.json
│   │   │       └── server_min.json
│   │   ├── redfish/
│   │   │   ├── README.md
│   │   │   ├── redfish.go
│   │   │   ├── redfish_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── dell_chassis.json
│   │   │       ├── dell_chassisinvalid.json
│   │   │       ├── dell_power.json
│   │   │       ├── dell_powerinvalid.json
│   │   │       ├── dell_systems.json
│   │   │       ├── dell_systemsinvalid.json
│   │   │       ├── dell_thermal.json
│   │   │       ├── dell_thermalinvalid.json
│   │   │       ├── hp_chassis.json
│   │   │       ├── hp_power.json
│   │   │       ├── hp_powerinvalid.json
│   │   │       ├── hp_systems.json
│   │   │       ├── hp_systemsinvalid.json
│   │   │       ├── hp_thermal.json
│   │   │       ├── hp_thermal_ilo4.json
│   │   │       └── hp_thermalinvalid.json
│   │   ├── redis/
│   │   │   ├── README.md
│   │   │   ├── redis.go
│   │   │   ├── redis_test.go
│   │   │   └── sample.conf
│   │   ├── redis_sentinel/
│   │   │   ├── README.md
│   │   │   ├── redis_sentinel.go
│   │   │   ├── redis_sentinel_test.go
│   │   │   ├── redis_sentinel_types.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── sentinel.info.response
│   │   ├── registry.go
│   │   ├── rethinkdb/
│   │   │   ├── README.md
│   │   │   ├── rethinkdb.go
│   │   │   ├── rethinkdb_data.go
│   │   │   ├── rethinkdb_data_test.go
│   │   │   ├── rethinkdb_server.go
│   │   │   ├── rethinkdb_server_test.go
│   │   │   ├── rethinkdb_test.go
│   │   │   └── sample.conf
│   │   ├── riak/
│   │   │   ├── README.md
│   │   │   ├── riak.go
│   │   │   ├── riak_test.go
│   │   │   └── sample.conf
│   │   ├── riemann_listener/
│   │   │   ├── README.md
│   │   │   ├── riemann_listener.go
│   │   │   ├── riemann_listener_test.go
│   │   │   └── sample.conf
│   │   ├── s7comm/
│   │   │   ├── README.md
│   │   │   ├── s7comm.go
│   │   │   ├── s7comm_test.go
│   │   │   ├── sample.conf
│   │   │   └── type_conversions.go
│   │   ├── salesforce/
│   │   │   ├── README.md
│   │   │   ├── salesforce.go
│   │   │   ├── salesforce_test.go
│   │   │   └── sample.conf
│   │   ├── sensors/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sensors.go
│   │   │   ├── sensors_notlinux.go
│   │   │   └── sensors_test.go
│   │   ├── sflow/
│   │   │   ├── README.md
│   │   │   ├── binaryio/
│   │   │   │   ├── minreader.go
│   │   │   │   └── minreader_test.go
│   │   │   ├── decoder_test.go
│   │   │   ├── metricencoder.go
│   │   │   ├── packetdecoder.go
│   │   │   ├── packetdecoder_test.go
│   │   │   ├── sample.conf
│   │   │   ├── sflow.go
│   │   │   ├── sflow_test.go
│   │   │   ├── types.go
│   │   │   └── types_test.go
│   │   ├── sip/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── sip.go
│   │   │   └── sip_test.go
│   │   ├── slab/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── slab.go
│   │   │   ├── slab_notlinux.go
│   │   │   ├── slab_test.go
│   │   │   └── testdata/
│   │   │       └── slabinfo
│   │   ├── slurm/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── slurm.go
│   │   │   ├── slurm_test.go
│   │   │   └── testcases/
│   │   │       ├── gather/
│   │   │       │   ├── expected.out
│   │   │       │   ├── responses/
│   │   │       │   │   ├── diag.json
│   │   │       │   │   ├── jobs.json
│   │   │       │   │   ├── nodes.json
│   │   │       │   │   ├── partitions.json
│   │   │       │   │   └── reservations.json
│   │   │       │   └── telegraf.conf
│   │   │       └── panic/
│   │   │           ├── responses/
│   │   │           │   ├── diag.json
│   │   │           │   ├── jobs.json
│   │   │           │   ├── nodes.json
│   │   │           │   ├── partitions.json
│   │   │           │   └── reservations.json
│   │   │           └── telegraf.conf
│   │   ├── smart/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── smart.go
│   │   │   └── smart_test.go
│   │   ├── smartctl/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── smartctl.go
│   │   │   ├── smartctl_device.go
│   │   │   ├── smartctl_json.go
│   │   │   ├── smartctl_scan.go
│   │   │   ├── smartctl_test.go
│   │   │   ├── testcases_device/
│   │   │   │   ├── megaraid/
│   │   │   │   │   ├── device
│   │   │   │   │   ├── deviceType
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── response.json
│   │   │   │   ├── nvme/
│   │   │   │   │   ├── device
│   │   │   │   │   ├── deviceType
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── response.json
│   │   │   │   ├── scsi/
│   │   │   │   │   ├── device
│   │   │   │   │   ├── deviceType
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── response.json
│   │   │   │   ├── scsi_extended/
│   │   │   │   │   ├── device
│   │   │   │   │   ├── deviceType
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── response.json
│   │   │   │   └── usb/
│   │   │   │       ├── device
│   │   │   │       ├── deviceType
│   │   │   │       ├── expected.out
│   │   │   │       └── response.json
│   │   │   └── testcases_scan/
│   │   │       ├── all/
│   │   │       │   ├── expected.out
│   │   │       │   ├── response.json
│   │   │       │   └── telegraf.toml
│   │   │       ├── exclude/
│   │   │       │   ├── expected.out
│   │   │       │   ├── response.json
│   │   │       │   └── telegraf.toml
│   │   │       ├── include/
│   │   │       │   ├── expected.out
│   │   │       │   ├── response.json
│   │   │       │   └── telegraf.toml
│   │   │       └── megaraid/
│   │   │           ├── expected.out
│   │   │           ├── response.json
│   │   │           └── telegraf.toml
│   │   ├── snmp/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── snmp.go
│   │   │   └── snmp_test.go
│   │   ├── snmp_trap/
│   │   │   ├── README.md
│   │   │   ├── gosmi.go
│   │   │   ├── netsnmp.go
│   │   │   ├── sample.conf
│   │   │   ├── snmp_trap.go
│   │   │   └── snmp_trap_test.go
│   │   ├── socket_listener/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── socket_listener.go
│   │   │   ├── socket_listener_test.go
│   │   │   └── testcases/
│   │   │       ├── invalid_line_format/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── powerdns/
│   │   │       │   ├── dnsmessage.proto
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_delimiter/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_fixed_length/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_newline/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_null/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_variable_length/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       └── timeout/
│   │   │           ├── sequence.json
│   │   │           └── telegraf.conf
│   │   ├── socketstat/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── socketstat.go
│   │   │   ├── socketstat_test.go
│   │   │   ├── socketstat_windows.go
│   │   │   └── testdata/
│   │   │       ├── tcp_no_sockets.txt
│   │   │       ├── tcp_traffic.txt
│   │   │       ├── udp_no_sockets.txt
│   │   │       └── udp_traffic.txt
│   │   ├── solr/
│   │   │   ├── README.md
│   │   │   ├── api.go
│   │   │   ├── sample.conf
│   │   │   ├── solr.go
│   │   │   ├── solr_test.go
│   │   │   ├── testcases/
│   │   │   │   ├── integration-v6.result
│   │   │   │   ├── integration-v7.result
│   │   │   │   ├── integration-v8.result
│   │   │   │   ├── integration-v9.result
│   │   │   │   ├── no_core_data/
│   │   │   │   │   ├── admin/
│   │   │   │   │   │   └── cores.json
│   │   │   │   │   ├── core1/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── main/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── v3.5/
│   │   │   │   │   ├── admin/
│   │   │   │   │   │   └── cores.json
│   │   │   │   │   ├── core1/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── main/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── v4.3/
│   │   │   │   │   ├── admin/
│   │   │   │   │   │   └── cores.json
│   │   │   │   │   ├── core1/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── main/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── v7/
│   │   │   │       ├── admin/
│   │   │   │       │   └── cores.json
│   │   │   │       ├── expected.out
│   │   │   │       ├── main/
│   │   │   │       │   └── admin/
│   │   │   │       │       └── mbeans.json
│   │   │   │       └── telegraf.conf
│   │   │   ├── types.go
│   │   │   └── util.go
│   │   ├── sql/
│   │   │   ├── README.md
│   │   │   ├── drivers.go
│   │   │   ├── drivers_sqlite.go
│   │   │   ├── sample.conf
│   │   │   ├── sql.go
│   │   │   ├── sql_test.go
│   │   │   └── testdata/
│   │   │       ├── clickhouse/
│   │   │       │   └── expected.sql
│   │   │       ├── mariadb/
│   │   │       │   └── expected.sql
│   │   │       └── postgres/
│   │   │           └── expected.sql
│   │   ├── sqlserver/
│   │   │   ├── README.md
│   │   │   ├── azurearcsqlmiqueries.go
│   │   │   ├── azurearcsqlmiqueries_test.go
│   │   │   ├── azuresqldbqueries.go
│   │   │   ├── azuresqldbqueries_test.go
│   │   │   ├── azuresqlmanagedqueries.go
│   │   │   ├── azuresqlmanagedqueries_test.go
│   │   │   ├── azuresqlpoolqueries.go
│   │   │   ├── azuresqlpoolqueries_test.go
│   │   │   ├── azuretoken.go
│   │   │   ├── connectionstring.go
│   │   │   ├── sample.conf
│   │   │   ├── sqlserver.go
│   │   │   ├── sqlserver_test.go
│   │   │   └── sqlserverqueries.go
│   │   ├── stackdriver/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── stackdriver.go
│   │   │   └── stackdriver_test.go
│   │   ├── statsd/
│   │   │   ├── README.md
│   │   │   ├── datadog.go
│   │   │   ├── datadog_test.go
│   │   │   ├── running_stats.go
│   │   │   ├── running_stats_test.go
│   │   │   ├── sample.conf
│   │   │   ├── statsd.go
│   │   │   └── statsd_test.go
│   │   ├── supervisor/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── supervisor.go
│   │   │   ├── supervisor_test.go
│   │   │   └── testdata/
│   │   │       └── supervisord.conf
│   │   ├── suricata/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── suricata.go
│   │   │   ├── suricata_test.go
│   │   │   └── testdata/
│   │   │       ├── test1.json
│   │   │       ├── test2.json
│   │   │       ├── test3.json
│   │   │       └── v2/
│   │   │           ├── alert.json
│   │   │           ├── dns.json
│   │   │           ├── drop.json
│   │   │           ├── flow.json
│   │   │           ├── http.json
│   │   │           └── status.json
│   │   ├── swap/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── swap.go
│   │   │   └── swap_test.go
│   │   ├── synproxy/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── synproxy.go
│   │   │   ├── synproxy_notlinux.go
│   │   │   └── synproxy_test.go
│   │   ├── syslog/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── syslog.go
│   │   │   ├── syslog_test.go
│   │   │   └── testcases/
│   │   │       ├── non_transparent_best_effort_tcp_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_tcp_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_tcptls_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_tcptls_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_unix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_unixtls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_tcp_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_tcp_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_tcptls_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_tcptls_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_unix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_unixtls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_max_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_newline_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_underflow_malfunction/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_underflow_nok/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_utf8_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcptls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_unix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_unixtls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_maxlength_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_max_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_newline_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_underflow_malfunction/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_underflow_nok/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_utf8_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcptls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_unix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_unixtls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc3164_best_effort_udp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc3164_non_transparent_strict_tcp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc3164_octet_counting_strict_tcp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc3164_strict_udp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_toolong_appname/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_average/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_max/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_min_incomplete/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_one_per_packet/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_trim_message/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_long_appname/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_toolong_appname/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp_average/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp_max/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp_min_incomplete/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp_one_per_packet/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       └── rfc5424_strict_udp_trim_message/
│   │   │           ├── expected.out
│   │   │           ├── input.txt
│   │   │           └── telegraf.conf
│   │   ├── sysstat/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sysstat.go
│   │   │   ├── sysstat_interval_test.go
│   │   │   ├── sysstat_notlinux.go
│   │   │   └── sysstat_test.go
│   │   ├── system/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── system.go
│   │   │   └── system_test.go
│   │   ├── systemd_units/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── systemd_units.go
│   │   │   ├── systemd_units_notlinux.go
│   │   │   └── systemd_units_test.go
│   │   ├── tacacs/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── tacacs.go
│   │   │   └── tacacs_test.go
│   │   ├── tail/
│   │   │   ├── README.md
│   │   │   ├── multiline.go
│   │   │   ├── multiline_test.go
│   │   │   ├── sample.conf
│   │   │   ├── tail.go
│   │   │   ├── tail_solaris.go
│   │   │   ├── tail_test.go
│   │   │   └── testdata/
│   │   │       ├── cpu-utf-16be.influx
│   │   │       ├── cpu-utf-16le.influx
│   │   │       ├── cpu-utf-8.influx
│   │   │       ├── multiline_quoted_backticks.csv
│   │   │       ├── multiline_quoted_double.csv
│   │   │       ├── multiline_quoted_messed_up.csv
│   │   │       ├── multiline_quoted_missing_close.csv
│   │   │       ├── multiline_quoted_single.csv
│   │   │       ├── test-patterns
│   │   │       └── test_multiline.log
│   │   ├── teamspeak/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── teamspeak.go
│   │   │   └── teamspeak_test.go
│   │   ├── temp/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── temp.go
│   │   │   ├── temp_linux.go
│   │   │   ├── temp_notlinux.go
│   │   │   ├── temp_test.go
│   │   │   └── testcases/
│   │   │       ├── general/
│   │   │       │   ├── expected_v1.out
│   │   │       │   ├── expected_v2.out
│   │   │       │   ├── sys/
│   │   │       │   │   └── class/
│   │   │       │   │       └── hwmon/
│   │   │       │   │           ├── hwmon0/
│   │   │       │   │           │   ├── name
│   │   │       │   │           │   ├── temp1_alarm
│   │   │       │   │           │   ├── temp1_crit
│   │   │       │   │           │   ├── temp1_input
│   │   │       │   │           │   ├── temp1_label
│   │   │       │   │           │   ├── temp1_max
│   │   │       │   │           │   ├── temp1_min
│   │   │       │   │           │   ├── temp2_input
│   │   │       │   │           │   ├── temp2_label
│   │   │       │   │           │   ├── temp2_max
│   │   │       │   │           │   ├── temp2_min
│   │   │       │   │           │   ├── temp3_input
│   │   │       │   │           │   ├── temp3_label
│   │   │       │   │           │   ├── temp3_max
│   │   │       │   │           │   └── temp3_min
│   │   │       │   │           └── hwmon1/
│   │   │       │   │               ├── name
│   │   │       │   │               ├── temp1_input
│   │   │       │   │               ├── temp1_label
│   │   │       │   │               ├── temp3_input
│   │   │       │   │               ├── temp3_label
│   │   │       │   │               └── uevent
│   │   │       │   └── telegraf.conf
│   │   │       ├── with_device_tag/
│   │   │       │   ├── expected_v1.out
│   │   │       │   ├── expected_v2.out
│   │   │       │   ├── sys/
│   │   │       │   │   └── class/
│   │   │       │   │       └── hwmon/
│   │   │       │   │           ├── hwmon0/
│   │   │       │   │           │   ├── name
│   │   │       │   │           │   ├── temp1_alarm
│   │   │       │   │           │   ├── temp1_crit
│   │   │       │   │           │   ├── temp1_input
│   │   │       │   │           │   ├── temp1_label
│   │   │       │   │           │   ├── temp1_max
│   │   │       │   │           │   ├── temp1_min
│   │   │       │   │           │   ├── temp2_input
│   │   │       │   │           │   ├── temp2_label
│   │   │       │   │           │   ├── temp2_max
│   │   │       │   │           │   ├── temp2_min
│   │   │       │   │           │   ├── temp3_input
│   │   │       │   │           │   ├── temp3_label
│   │   │       │   │           │   ├── temp3_max
│   │   │       │   │           │   ├── temp3_min
│   │   │       │   │           │   └── uevent
│   │   │       │   │           ├── hwmon1/
│   │   │       │   │           │   ├── name
│   │   │       │   │           │   ├── temp1_alarm
│   │   │       │   │           │   ├── temp1_crit
│   │   │       │   │           │   ├── temp1_input
│   │   │       │   │           │   ├── temp1_label
│   │   │       │   │           │   ├── temp1_max
│   │   │       │   │           │   ├── temp1_min
│   │   │       │   │           │   ├── temp2_input
│   │   │       │   │           │   ├── temp2_label
│   │   │       │   │           │   ├── temp2_max
│   │   │       │   │           │   ├── temp2_min
│   │   │       │   │           │   ├── temp3_input
│   │   │       │   │           │   ├── temp3_label
│   │   │       │   │           │   ├── temp3_max
│   │   │       │   │           │   ├── temp3_min
│   │   │       │   │           │   └── uevent
│   │   │       │   │           └── hwmon2/
│   │   │       │   │               ├── name
│   │   │       │   │               ├── temp1_input
│   │   │       │   │               ├── temp1_label
│   │   │       │   │               ├── temp3_input
│   │   │       │   │               ├── temp3_label
│   │   │       │   │               └── uevent
│   │   │       │   └── telegraf.conf
│   │   │       └── with_name/
│   │   │           ├── expected_v1.out
│   │   │           ├── expected_v2.out
│   │   │           ├── sys/
│   │   │           │   └── class/
│   │   │           │       └── hwmon/
│   │   │           │           ├── hwmon0/
│   │   │           │           │   ├── name
│   │   │           │           │   ├── temp1_alarm
│   │   │           │           │   ├── temp1_crit
│   │   │           │           │   ├── temp1_input
│   │   │           │           │   ├── temp1_label
│   │   │           │           │   ├── temp1_max
│   │   │           │           │   ├── temp1_min
│   │   │           │           │   ├── temp2_input
│   │   │           │           │   ├── temp2_label
│   │   │           │           │   ├── temp2_max
│   │   │           │           │   ├── temp2_min
│   │   │           │           │   ├── temp3_input
│   │   │           │           │   ├── temp3_label
│   │   │           │           │   ├── temp3_max
│   │   │           │           │   ├── temp3_min
│   │   │           │           │   └── uevent
│   │   │           │           ├── hwmon1/
│   │   │           │           │   ├── name
│   │   │           │           │   ├── temp1_alarm
│   │   │           │           │   ├── temp1_crit
│   │   │           │           │   ├── temp1_input
│   │   │           │           │   ├── temp1_label
│   │   │           │           │   ├── temp1_max
│   │   │           │           │   ├── temp1_min
│   │   │           │           │   ├── temp2_input
│   │   │           │           │   ├── temp2_label
│   │   │           │           │   ├── temp2_max
│   │   │           │           │   ├── temp2_min
│   │   │           │           │   ├── temp3_input
│   │   │           │           │   ├── temp3_label
│   │   │           │           │   ├── temp3_max
│   │   │           │           │   ├── temp3_min
│   │   │           │           │   └── uevent
│   │   │           │           └── hwmon2/
│   │   │           │               ├── name
│   │   │           │               ├── temp1_input
│   │   │           │               ├── temp1_label
│   │   │           │               ├── temp3_input
│   │   │           │               ├── temp3_label
│   │   │           │               └── uevent
│   │   │           └── telegraf.conf
│   │   ├── tengine/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── tengine.go
│   │   │   └── tengine_test.go
│   │   ├── timex/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── timex.go
│   │   │   ├── timex_notlinux.go
│   │   │   └── timex_test.go
│   │   ├── tomcat/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── tomcat.go
│   │   │   └── tomcat_test.go
│   │   ├── trig/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── trig.go
│   │   │   └── trig_test.go
│   │   ├── turbostat/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── amd-r7-9700x/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── input.txt
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── intel-unknown/
│   │   │   │       ├── expected.out
│   │   │   │       ├── input.txt
│   │   │   │       └── telegraf.conf
│   │   │   ├── turbostat.go
│   │   │   ├── turbostat_notamd64linux.go
│   │   │   └── turbostat_test.go
│   │   ├── twemproxy/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── twemproxy.go
│   │   │   └── twemproxy_test.go
│   │   ├── unbound/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── unbound.go
│   │   │   └── unbound_test.go
│   │   ├── upsd/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── CyberPowerSystems_CP900EPFCLCD/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   ├── CyberPowerSystems_CP900EPFCLCD_additional/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   ├── CyberPowerSystems_CP900EPFCLCD_full/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   ├── fake/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   ├── fake_force_float/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   └── fake_force_float_with_string/
│   │   │   │       ├── expected.out
│   │   │   │       ├── telegraf.conf
│   │   │   │       ├── types.dev
│   │   │   │       └── variables.dev
│   │   │   ├── upsd.go
│   │   │   └── upsd_test.go
│   │   ├── uwsgi/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── uwsgi.go
│   │   │   └── uwsgi_test.go
│   │   ├── varnish/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── test_data/
│   │   │   │   ├── varnish4_4.json
│   │   │   │   ├── varnish6.2.1_reload.json
│   │   │   │   ├── varnish6.6.json
│   │   │   │   ├── varnish_types.json
│   │   │   │   ├── varnish_v1_reload.txt
│   │   │   │   ├── varnishadm-200.json
│   │   │   │   └── varnishadm-reload.json
│   │   │   ├── varnish.go
│   │   │   ├── varnish_test.go
│   │   │   └── varnish_windows.go
│   │   ├── vault/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   └── response_key_metrics.json
│   │   │   ├── vault.go
│   │   │   ├── vault_metrics.go
│   │   │   └── vault_test.go
│   │   ├── vsphere/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── endpoint.go
│   │   │   ├── finder.go
│   │   │   ├── sample.conf
│   │   │   ├── selfhealth.go
│   │   │   ├── throttled_exec.go
│   │   │   ├── tscache.go
│   │   │   ├── vsan.go
│   │   │   ├── vsphere.go
│   │   │   └── vsphere_test.go
│   │   ├── webhooks/
│   │   │   ├── README.md
│   │   │   ├── artifactory/
│   │   │   │   ├── README.md
│   │   │   │   ├── artifactory_webhook.go
│   │   │   │   ├── artifactory_webhook_mock_json_test.go
│   │   │   │   ├── artifactory_webhook_models.go
│   │   │   │   └── artifactory_webhook_test.go
│   │   │   ├── filestack/
│   │   │   │   ├── README.md
│   │   │   │   ├── filestack_webhooks.go
│   │   │   │   ├── filestack_webhooks_events.go
│   │   │   │   ├── filestack_webhooks_test.go
│   │   │   │   └── testdata/
│   │   │   │       ├── dialog_open.json
│   │   │   │       ├── upload.json
│   │   │   │       └── video_conversion.json
│   │   │   ├── github/
│   │   │   │   ├── README.md
│   │   │   │   ├── github_webhooks.go
│   │   │   │   ├── github_webhooks_mock_json_test.go
│   │   │   │   ├── github_webhooks_models.go
│   │   │   │   └── github_webhooks_test.go
│   │   │   ├── mandrill/
│   │   │   │   ├── README.md
│   │   │   │   ├── mandrill_webhooks.go
│   │   │   │   ├── mandrill_webhooks_events.go
│   │   │   │   ├── mandrill_webhooks_test.go
│   │   │   │   └── testdata/
│   │   │   │       ├── hard_bounce_event.json
│   │   │   │       └── send_event.json
│   │   │   ├── papertrail/
│   │   │   │   ├── README.md
│   │   │   │   ├── papertrail_test.go
│   │   │   │   ├── papertrail_webhooks.go
│   │   │   │   └── papertrail_webhooks_models.go
│   │   │   ├── particle/
│   │   │   │   ├── README.md
│   │   │   │   ├── particle_webhooks.go
│   │   │   │   └── particle_webhooks_test.go
│   │   │   ├── rollbar/
│   │   │   │   ├── README.md
│   │   │   │   ├── rollbar_webhooks.go
│   │   │   │   ├── rollbar_webhooks_events.go
│   │   │   │   ├── rollbar_webhooks_events_json_test.go
│   │   │   │   └── rollbar_webhooks_test.go
│   │   │   ├── sample.conf
│   │   │   ├── webhooks.go
│   │   │   └── webhooks_test.go
│   │   ├── whois/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── domain_typo/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── invalid_domain/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── input_invalid-domain.xyz.txt
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── multiple_domains/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── input_example.com.txt
│   │   │   │   │   ├── input_test.com.txt
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── valid_domain/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── input_example.com.txt
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── valid_idn_domain/
│   │   │   │       ├── expected.out
│   │   │   │       ├── input_münchen.de.txt
│   │   │   │       ├── input_xn--mnchn-kva.de.txt
│   │   │   │       └── telegraf.conf
│   │   │   ├── whois.go
│   │   │   └── whois_test.go
│   │   ├── win_eventlog/
│   │   │   ├── README.md
│   │   │   ├── event.go
│   │   │   ├── sample.conf
│   │   │   ├── syscall_windows.go
│   │   │   ├── util.go
│   │   │   ├── util_test.go
│   │   │   ├── win_eventlog.go
│   │   │   ├── win_eventlog_notwindows.go
│   │   │   ├── win_eventlog_test.go
│   │   │   └── zsyscall_windows.go
│   │   ├── win_perf_counters/
│   │   │   ├── README.md
│   │   │   ├── kernel32.go
│   │   │   ├── pdh.go
│   │   │   ├── pdh_386.go
│   │   │   ├── pdh_amd64.go
│   │   │   ├── pdh_arm64.go
│   │   │   ├── performance_query.go
│   │   │   ├── sample.conf
│   │   │   ├── win_perf_counters.go
│   │   │   ├── win_perf_counters_integration_test.go
│   │   │   ├── win_perf_counters_notwindows.go
│   │   │   └── win_perf_counters_test.go
│   │   ├── win_services/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── win_services.go
│   │   │   ├── win_services_integration_test.go
│   │   │   ├── win_services_notwindows.go
│   │   │   └── win_services_test.go
│   │   ├── win_wmi/
│   │   │   ├── README.md
│   │   │   ├── method.go
│   │   │   ├── query.go
│   │   │   ├── sample.conf
│   │   │   ├── win_wmi.go
│   │   │   ├── win_wmi_notwindows.go
│   │   │   └── win_wmi_test.go
│   │   ├── wireguard/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── wireguard.go
│   │   │   └── wireguard_test.go
│   │   ├── wireless/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── wireless.go
│   │   │   ├── wireless_linux.go
│   │   │   ├── wireless_notlinux.go
│   │   │   └── wireless_test.go
│   │   ├── x509_cert/
│   │   │   ├── README.md
│   │   │   ├── java_key_store.go
│   │   │   ├── java_key_store_test.go
│   │   │   ├── sample.conf
│   │   │   ├── wincertstore.go
│   │   │   ├── wincertstore_notwindows.go
│   │   │   ├── x509_cert.go
│   │   │   └── x509_cert_test.go
│   │   ├── xtremio/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   ├── sample_bbu_response.json
│   │   │   │   └── sample_get_bbu_response.json
│   │   │   ├── xtremio.go
│   │   │   ├── xtremio_test.go
│   │   │   └── xtremio_types.go
│   │   ├── zfs/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── freebsd/
│   │   │   │   │   ├── cache/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── cache_poolmetrics/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── dataset/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── dataset_datasetmetrics/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── freebsd14/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── uname.txt
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── freenas/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── freenas_zfetchstats/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── unavailable/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   └── unavailable_poolmetrics/
│   │   │   │   │       ├── expected.out
│   │   │   │   │       ├── sysctl.json
│   │   │   │   │       ├── telegraf.conf
│   │   │   │   │       ├── zdataset.txt
│   │   │   │   │       └── zpool.txt
│   │   │   │   └── linux/
│   │   │   │       ├── issue_17578/
│   │   │   │       │   ├── expected.out
│   │   │   │       │   ├── telegraf.conf
│   │   │   │       │   └── zfs/
│   │   │   │       │       ├── abdstats
│   │   │   │       │       ├── arcstats
│   │   │   │       │       ├── brtstats
│   │   │   │       │       ├── chksum_bench
│   │   │   │       │       ├── dbufstats
│   │   │   │       │       ├── dmu_tx
│   │   │   │       │       ├── dnodestats
│   │   │   │       │       ├── fletcher_4_bench
│   │   │   │       │       ├── fm
│   │   │   │       │       ├── import_progress
│   │   │   │       │       ├── metaslab_stats
│   │   │   │       │       ├── simd
│   │   │   │       │       ├── store/
│   │   │   │       │       │   ├── ddt_stats_blake3
│   │   │   │       │       │   ├── ddt_stats_edonr
│   │   │   │       │       │   ├── ddt_stats_sha256
│   │   │   │       │       │   ├── ddt_stats_sha512
│   │   │   │       │       │   ├── ddt_stats_skein
│   │   │   │       │       │   ├── dmu_tx_assign
│   │   │   │       │       │   ├── guid
│   │   │   │       │       │   ├── iostats
│   │   │   │       │       │   ├── multihost
│   │   │   │       │       │   ├── objset-0x10101
│   │   │   │       │       │   ├── objset-0x104de
│   │   │   │       │       │   ├── objset-0x10737
│   │   │   │       │       │   ├── objset-0x10848
│   │   │   │       │       │   ├── objset-0x1098f
│   │   │   │       │       │   ├── objset-0x10e73
│   │   │   │       │       │   ├── objset-0x1106c
│   │   │   │       │       │   ├── objset-0x11074
│   │   │   │       │       │   ├── objset-0x11226
│   │   │   │       │       │   ├── objset-0x1132
│   │   │   │       │       │   ├── objset-0x114a6
│   │   │   │       │       │   ├── objset-0x11a19
│   │   │   │       │       │   ├── objset-0x11e5
│   │   │   │       │       │   ├── objset-0x147f
│   │   │   │       │       │   ├── objset-0x185
│   │   │   │       │       │   ├── objset-0x1985
│   │   │   │       │       │   ├── objset-0x19d66
│   │   │   │       │       │   ├── objset-0x19d9
│   │   │   │       │       │   ├── objset-0x1aeb
│   │   │   │       │       │   ├── objset-0x1cbde
│   │   │   │       │       │   ├── objset-0x1ce10
│   │   │   │       │       │   ├── objset-0x1d28e
│   │   │   │       │       │   ├── objset-0x1e8e1
│   │   │   │       │       │   ├── objset-0x1e8e6
│   │   │   │       │       │   ├── objset-0x1e8ed
│   │   │   │       │       │   ├── objset-0x1e9b3
│   │   │   │       │       │   ├── objset-0x1ecad
│   │   │   │       │       │   ├── objset-0x1ee0d
│   │   │   │       │       │   ├── objset-0x1ee87
│   │   │   │       │       │   ├── objset-0x1f18f
│   │   │   │       │       │   ├── objset-0x1f387
│   │   │   │       │       │   ├── objset-0x212b
│   │   │   │       │       │   ├── objset-0x22d1c
│   │   │   │       │       │   ├── objset-0x29f2
│   │   │   │       │       │   ├── objset-0x2a1c
│   │   │   │       │       │   ├── objset-0x2a8
│   │   │   │       │       │   ├── objset-0x2e57
│   │   │   │       │       │   ├── objset-0x32c4
│   │   │   │       │       │   ├── objset-0x36
│   │   │   │       │       │   ├── objset-0x403
│   │   │   │       │       │   ├── objset-0x79d6
│   │   │   │       │       │   ├── objset-0x7ced
│   │   │   │       │       │   ├── objset-0x92ee
│   │   │   │       │       │   ├── objset-0x96
│   │   │   │       │       │   ├── objset-0x9776
│   │   │   │       │       │   ├── objset-0x9bff
│   │   │   │       │       │   ├── objset-0xa67
│   │   │   │       │       │   ├── objset-0xb61
│   │   │   │       │       │   ├── objset-0xb83f5
│   │   │   │       │       │   ├── objset-0xb845b
│   │   │   │       │       │   ├── objset-0xb8733
│   │   │   │       │       │   ├── objset-0xb8788
│   │   │   │       │       │   ├── objset-0xb888e
│   │   │   │       │       │   ├── objset-0xbe32
│   │   │   │       │       │   ├── objset-0xc876
│   │   │   │       │       │   ├── objset-0xc8e5
│   │   │   │       │       │   ├── objset-0xc94
│   │   │   │       │       │   ├── objset-0xc9d7
│   │   │   │       │       │   ├── objset-0xcb42
│   │   │   │       │       │   ├── objset-0xcc56
│   │   │   │       │       │   ├── objset-0xcc8f
│   │   │   │       │       │   ├── objset-0xcdac
│   │   │   │       │       │   ├── objset-0xd34f
│   │   │   │       │       │   ├── objset-0xd4b9
│   │   │   │       │       │   ├── objset-0xe09
│   │   │   │       │       │   ├── objset-0xe144f
│   │   │   │       │       │   ├── objset-0xe1890
│   │   │   │       │       │   ├── objset-0xe46
│   │   │   │       │       │   ├── objset-0xe5967
│   │   │   │       │       │   ├── objset-0xe5d8d
│   │   │   │       │       │   ├── objset-0xfa6
│   │   │   │       │       │   ├── reads
│   │   │   │       │       │   ├── state
│   │   │   │       │       │   └── txgs
│   │   │   │       │       ├── vdev_mirror_stats
│   │   │   │       │       ├── vdev_raidz_bench
│   │   │   │       │       ├── zfetchstats
│   │   │   │       │       ├── zil
│   │   │   │       │       ├── zio_stats
│   │   │   │       │       ├── zroot-nas/
│   │   │   │       │       │   ├── ddt_stats_blake3
│   │   │   │       │       │   ├── ddt_stats_edonr
│   │   │   │       │       │   ├── ddt_stats_sha256
│   │   │   │       │       │   ├── ddt_stats_sha512
│   │   │   │       │       │   ├── ddt_stats_skein
│   │   │   │       │       │   ├── dmu_tx_assign
│   │   │   │       │       │   ├── guid
│   │   │   │       │       │   ├── iostats
│   │   │   │       │       │   ├── multihost
│   │   │   │       │       │   ├── objset-0x196
│   │   │   │       │       │   ├── objset-0x19d
│   │   │   │       │       │   ├── objset-0x1bb
│   │   │   │       │       │   ├── objset-0x1c5
│   │   │   │       │       │   ├── objset-0x28c
│   │   │   │       │       │   ├── objset-0x390
│   │   │   │       │       │   ├── objset-0x40b
│   │   │   │       │       │   ├── objset-0x44da
│   │   │   │       │       │   ├── objset-0x453a
│   │   │   │       │       │   ├── objset-0x47ae
│   │   │   │       │       │   ├── objset-0x49e
│   │   │   │       │       │   ├── objset-0x523
│   │   │   │       │       │   ├── objset-0x84eb
│   │   │   │       │       │   ├── objset-0x886c
│   │   │   │       │       │   ├── objset-0x9f
│   │   │   │       │       │   ├── reads
│   │   │   │       │       │   ├── state
│   │   │   │       │       │   └── txgs
│   │   │   │       │       └── zstd
│   │   │   │       ├── issue_17578_native_types/
│   │   │   │       │   ├── expected.out
│   │   │   │       │   ├── telegraf.conf
│   │   │   │       │   └── zfs/
│   │   │   │       │       ├── abdstats
│   │   │   │       │       ├── arcstats
│   │   │   │       │       ├── brtstats
│   │   │   │       │       ├── chksum_bench
│   │   │   │       │       ├── dbufstats
│   │   │   │       │       ├── dmu_tx
│   │   │   │       │       ├── dnodestats
│   │   │   │       │       ├── fletcher_4_bench
│   │   │   │       │       ├── fm
│   │   │   │       │       ├── import_progress
│   │   │   │       │       ├── metaslab_stats
│   │   │   │       │       ├── simd
│   │   │   │       │       ├── store/
│   │   │   │       │       │   ├── ddt_stats_blake3
│   │   │   │       │       │   ├── ddt_stats_edonr
│   │   │   │       │       │   ├── ddt_stats_sha256
│   │   │   │       │       │   ├── ddt_stats_sha512
│   │   │   │       │       │   ├── ddt_stats_skein
│   │   │   │       │       │   ├── dmu_tx_assign
│   │   │   │       │       │   ├── guid
│   │   │   │       │       │   ├── iostats
│   │   │   │       │       │   ├── multihost
│   │   │   │       │       │   ├── objset-0x10101
│   │   │   │       │       │   ├── objset-0x104de
│   │   │   │       │       │   ├── objset-0x10737
│   │   │   │       │       │   ├── objset-0x10848
│   │   │   │       │       │   ├── objset-0x1098f
│   │   │   │       │       │   ├── objset-0x10e73
│   │   │   │       │       │   ├── objset-0x1106c
│   │   │   │       │       │   ├── objset-0x11074
│   │   │   │       │       │   ├── objset-0x11226
│   │   │   │       │       │   ├── objset-0x1132
│   │   │   │       │       │   ├── objset-0x114a6
│   │   │   │       │       │   ├── objset-0x11a19
│   │   │   │       │       │   ├── objset-0x11e5
│   │   │   │       │       │   ├── objset-0x147f
│   │   │   │       │       │   ├── objset-0x185
│   │   │   │       │       │   ├── objset-0x1985
│   │   │   │       │       │   ├── objset-0x19d66
│   │   │   │       │       │   ├── objset-0x19d9
│   │   │   │       │       │   ├── objset-0x1aeb
│   │   │   │       │       │   ├── objset-0x1cbde
│   │   │   │       │       │   ├── objset-0x1ce10
│   │   │   │       │       │   ├── objset-0x1d28e
│   │   │   │       │       │   ├── objset-0x1e8e1
│   │   │   │       │       │   ├── objset-0x1e8e6
│   │   │   │       │       │   ├── objset-0x1e8ed
│   │   │   │       │       │   ├── objset-0x1e9b3
│   │   │   │       │       │   ├── objset-0x1ecad
│   │   │   │       │       │   ├── objset-0x1ee0d
│   │   │   │       │       │   ├── objset-0x1ee87
│   │   │   │       │       │   ├── objset-0x1f18f
│   │   │   │       │       │   ├── objset-0x1f387
│   │   │   │       │       │   ├── objset-0x212b
│   │   │   │       │       │   ├── objset-0x22d1c
│   │   │   │       │       │   ├── objset-0x29f2
│   │   │   │       │       │   ├── objset-0x2a1c
│   │   │   │       │       │   ├── objset-0x2a8
│   │   │   │       │       │   ├── objset-0x2e57
│   │   │   │       │       │   ├── objset-0x32c4
│   │   │   │       │       │   ├── objset-0x36
│   │   │   │       │       │   ├── objset-0x403
│   │   │   │       │       │   ├── objset-0x79d6
│   │   │   │       │       │   ├── objset-0x7ced
│   │   │   │       │       │   ├── objset-0x92ee
│   │   │   │       │       │   ├── objset-0x96
│   │   │   │       │       │   ├── objset-0x9776
│   │   │   │       │       │   ├── objset-0x9bff
│   │   │   │       │       │   ├── objset-0xa67
│   │   │   │       │       │   ├── objset-0xb61
│   │   │   │       │       │   ├── objset-0xb83f5
│   │   │   │       │       │   ├── objset-0xb845b
│   │   │   │       │       │   ├── objset-0xb8733
│   │   │   │       │       │   ├── objset-0xb8788
│   │   │   │       │       │   ├── objset-0xb888e
│   │   │   │       │       │   ├── objset-0xbe32
│   │   │   │       │       │   ├── objset-0xc876
│   │   │   │       │       │   ├── objset-0xc8e5
│   │   │   │       │       │   ├── objset-0xc94
│   │   │   │       │       │   ├── objset-0xc9d7
│   │   │   │       │       │   ├── objset-0xcb42
│   │   │   │       │       │   ├── objset-0xcc56
│   │   │   │       │       │   ├── objset-0xcc8f
│   │   │   │       │       │   ├── objset-0xcdac
│   │   │   │       │       │   ├── objset-0xd34f
│   │   │   │       │       │   ├── objset-0xd4b9
│   │   │   │       │       │   ├── objset-0xe09
│   │   │   │       │       │   ├── objset-0xe144f
│   │   │   │       │       │   ├── objset-0xe1890
│   │   │   │       │       │   ├── objset-0xe46
│   │   │   │       │       │   ├── objset-0xe5967
│   │   │   │       │       │   ├── objset-0xe5d8d
│   │   │   │       │       │   ├── objset-0xfa6
│   │   │   │       │       │   ├── reads
│   │   │   │       │       │   ├── state
│   │   │   │       │       │   └── txgs
│   │   │   │       │       ├── vdev_mirror_stats
│   │   │   │       │       ├── vdev_raidz_bench
│   │   │   │       │       ├── zfetchstats
│   │   │   │       │       ├── zil
│   │   │   │       │       ├── zio_stats
│   │   │   │       │       ├── zroot-nas/
│   │   │   │       │       │   ├── ddt_stats_blake3
│   │   │   │       │       │   ├── ddt_stats_edonr
│   │   │   │       │       │   ├── ddt_stats_sha256
│   │   │   │       │       │   ├── ddt_stats_sha512
│   │   │   │       │       │   ├── ddt_stats_skein
│   │   │   │       │       │   ├── dmu_tx_assign
│   │   │   │       │       │   ├── guid
│   │   │   │       │       │   ├── iostats
│   │   │   │       │       │   ├── multihost
│   │   │   │       │       │   ├── objset-0x196
│   │   │   │       │       │   ├── objset-0x19d
│   │   │   │       │       │   ├── objset-0x1bb
│   │   │   │       │       │   ├── objset-0x1c5
│   │   │   │       │       │   ├── objset-0x28c
│   │   │   │       │       │   ├── objset-0x390
│   │   │   │       │       │   ├── objset-0x40b
│   │   │   │       │       │   ├── objset-0x44da
│   │   │   │       │       │   ├── objset-0x453a
│   │   │   │       │       │   ├── objset-0x47ae
│   │   │   │       │       │   ├── objset-0x49e
│   │   │   │       │       │   ├── objset-0x523
│   │   │   │       │       │   ├── objset-0x84eb
│   │   │   │       │       │   ├── objset-0x886c
│   │   │   │       │       │   ├── objset-0x9f
│   │   │   │       │       │   ├── reads
│   │   │   │       │       │   ├── state
│   │   │   │       │       │   └── txgs
│   │   │   │       │       └── zstd
│   │   │   │       └── issue_17952/
│   │   │   │           ├── expected.out
│   │   │   │           ├── telegraf.conf
│   │   │   │           └── zfs/
│   │   │   │               ├── abdstats
│   │   │   │               ├── arcstats
│   │   │   │               ├── brtstats
│   │   │   │               ├── chksum_bench
│   │   │   │               ├── dbufstats
│   │   │   │               ├── dmu_tx
│   │   │   │               ├── dnodestats
│   │   │   │               ├── fletcher_4_bench
│   │   │   │               ├── fm
│   │   │   │               ├── import_progress
│   │   │   │               ├── metaslab_stats
│   │   │   │               ├── simd
│   │   │   │               ├── store/
│   │   │   │               │   ├── ddt_stats_blake3
│   │   │   │               │   ├── ddt_stats_edonr
│   │   │   │               │   ├── ddt_stats_sha256
│   │   │   │               │   ├── ddt_stats_sha512
│   │   │   │               │   ├── ddt_stats_skein
│   │   │   │               │   ├── dmu_tx_assign
│   │   │   │               │   ├── guid
│   │   │   │               │   ├── iostats
│   │   │   │               │   ├── multihost
│   │   │   │               │   ├── objset-0x10101
│   │   │   │               │   ├── objset-0x104de
│   │   │   │               │   ├── objset-0x10737
│   │   │   │               │   ├── objset-0x10848
│   │   │   │               │   ├── objset-0x1098f
│   │   │   │               │   ├── objset-0x10e73
│   │   │   │               │   ├── objset-0x1106c
│   │   │   │               │   ├── objset-0x11074
│   │   │   │               │   ├── objset-0x11226
│   │   │   │               │   ├── objset-0x1132
│   │   │   │               │   ├── objset-0x114a6
│   │   │   │               │   ├── objset-0x11a19
│   │   │   │               │   ├── objset-0x11e5
│   │   │   │               │   ├── objset-0x147f
│   │   │   │               │   ├── objset-0x185
│   │   │   │               │   ├── objset-0x1985
│   │   │   │               │   ├── objset-0x19d66
│   │   │   │               │   ├── objset-0x19d9
│   │   │   │               │   ├── objset-0x1aeb
│   │   │   │               │   ├── objset-0x1cbde
│   │   │   │               │   ├── objset-0x1ce10
│   │   │   │               │   ├── objset-0x1d28e
│   │   │   │               │   ├── objset-0x1e8e1
│   │   │   │               │   ├── objset-0x1e8e6
│   │   │   │               │   ├── objset-0x1e8ed
│   │   │   │               │   ├── objset-0x1e9b3
│   │   │   │               │   ├── objset-0x1ecad
│   │   │   │               │   ├── objset-0x1ee0d
│   │   │   │               │   ├── objset-0x1ee87
│   │   │   │               │   ├── objset-0x1f18f
│   │   │   │               │   ├── objset-0x1f387
│   │   │   │               │   ├── objset-0x212b
│   │   │   │               │   ├── objset-0x22d1c
│   │   │   │               │   ├── objset-0x29f2
│   │   │   │               │   ├── objset-0x2a1c
│   │   │   │               │   ├── objset-0x2a8
│   │   │   │               │   ├── objset-0x2e57
│   │   │   │               │   ├── objset-0x32c4
│   │   │   │               │   ├── objset-0x36
│   │   │   │               │   ├── objset-0x403
│   │   │   │               │   ├── objset-0x79d6
│   │   │   │               │   ├── objset-0x7ced
│   │   │   │               │   ├── objset-0x92ee
│   │   │   │               │   ├── objset-0x96
│   │   │   │               │   ├── objset-0x9776
│   │   │   │               │   ├── objset-0x9bff
│   │   │   │               │   ├── objset-0xa67
│   │   │   │               │   ├── objset-0xb61
│   │   │   │               │   ├── objset-0xb83f5
│   │   │   │               │   ├── objset-0xb845b
│   │   │   │               │   ├── objset-0xb8733
│   │   │   │               │   ├── objset-0xb8788
│   │   │   │               │   ├── objset-0xb888e
│   │   │   │               │   ├── objset-0xbe32
│   │   │   │               │   ├── objset-0xc876
│   │   │   │               │   ├── objset-0xc8e5
│   │   │   │               │   ├── objset-0xc94
│   │   │   │               │   ├── objset-0xc9d7
│   │   │   │               │   ├── objset-0xcb42
│   │   │   │               │   ├── objset-0xcc56
│   │   │   │               │   ├── objset-0xcc8f
│   │   │   │               │   ├── objset-0xcdac
│   │   │   │               │   ├── objset-0xd34f
│   │   │   │               │   ├── objset-0xd4b9
│   │   │   │               │   ├── objset-0xe09
│   │   │   │               │   ├── objset-0xe144f
│   │   │   │               │   ├── objset-0xe1890
│   │   │   │               │   ├── objset-0xe46
│   │   │   │               │   ├── objset-0xe5967
│   │   │   │               │   ├── objset-0xe5d8d
│   │   │   │               │   ├── objset-0xfa6
│   │   │   │               │   ├── reads
│   │   │   │               │   ├── state
│   │   │   │               │   └── txgs
│   │   │   │               ├── vdev_mirror_stats
│   │   │   │               ├── vdev_raidz_bench
│   │   │   │               ├── zfetchstats
│   │   │   │               ├── zil
│   │   │   │               ├── zio_stats
│   │   │   │               ├── zroot-nas/
│   │   │   │               │   ├── ddt_stats_blake3
│   │   │   │               │   ├── ddt_stats_edonr
│   │   │   │               │   ├── ddt_stats_sha256
│   │   │   │               │   ├── ddt_stats_sha512
│   │   │   │               │   ├── ddt_stats_skein
│   │   │   │               │   ├── dmu_tx_assign
│   │   │   │               │   ├── guid
│   │   │   │               │   ├── iostats
│   │   │   │               │   ├── multihost
│   │   │   │               │   ├── objset-0x196
│   │   │   │               │   ├── objset-0x19d
│   │   │   │               │   ├── objset-0x1bb
│   │   │   │               │   ├── objset-0x1c5
│   │   │   │               │   ├── objset-0x28c
│   │   │   │               │   ├── objset-0x390
│   │   │   │               │   ├── objset-0x40b
│   │   │   │               │   ├── objset-0x44da
│   │   │   │               │   ├── objset-0x453a
│   │   │   │               │   ├── objset-0x47ae
│   │   │   │               │   ├── objset-0x49e
│   │   │   │               │   ├── objset-0x523
│   │   │   │               │   ├── objset-0x84eb
│   │   │   │               │   ├── objset-0x886c
│   │   │   │               │   ├── objset-0x9f
│   │   │   │               │   ├── reads
│   │   │   │               │   ├── state
│   │   │   │               │   └── txgs
│   │   │   │               └── zstd
│   │   │   ├── zfs.go
│   │   │   ├── zfs_freebsd.go
│   │   │   ├── zfs_freebsd_test.go
│   │   │   ├── zfs_linux.go
│   │   │   ├── zfs_linux_test.go
│   │   │   └── zfs_other.go
│   │   ├── zipkin/
│   │   │   ├── README.md
│   │   │   ├── cmd/
│   │   │   │   ├── stress_test_write/
│   │   │   │   │   └── stress_test_write.go
│   │   │   │   └── thrift_serialize/
│   │   │   │       └── thrift_serialize.go
│   │   │   ├── codec/
│   │   │   │   ├── codec.go
│   │   │   │   ├── codec_test.go
│   │   │   │   ├── jsonV1/
│   │   │   │   │   ├── jsonV1.go
│   │   │   │   │   └── jsonV1_test.go
│   │   │   │   └── thrift/
│   │   │   │       ├── gen-go/
│   │   │   │       │   └── zipkincore/
│   │   │   │       │       ├── GoUnusedProtection__.go
│   │   │   │       │       ├── zipkinCore-consts.go
│   │   │   │       │       └── zipkinCore.go
│   │   │   │       ├── thrift.go
│   │   │   │       └── thrift_test.go
│   │   │   ├── convert.go
│   │   │   ├── convert_test.go
│   │   │   ├── handler.go
│   │   │   ├── handler_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   └── json/
│   │   │   │       ├── brave-tracer-example.json
│   │   │   │       ├── cli_microservice.json
│   │   │   │       ├── distributed_trace_sample.json
│   │   │   │       └── threespans.json
│   │   │   ├── trace/
│   │   │   │   └── trace.go
│   │   │   ├── zipkin.go
│   │   │   └── zipkin_test.go
│   │   └── zookeeper/
│   │       ├── README.md
│   │       ├── dev/
│   │       │   ├── docker-compose.yml
│   │       │   └── telegraf.conf
│   │       ├── sample.conf
│   │       ├── sample.conf.in
│   │       ├── zookeeper.go
│   │       └── zookeeper_test.go
│   ├── outputs/
│   │   ├── all/
│   │   │   ├── all.go
│   │   │   ├── amon.go
│   │   │   ├── amqp.go
│   │   │   ├── application_insights.go
│   │   │   ├── arc.go
│   │   │   ├── azure_data_explorer.go
│   │   │   ├── azure_monitor.go
│   │   │   ├── bigquery.go
│   │   │   ├── clarify.go
│   │   │   ├── cloud_pubsub.go
│   │   │   ├── cloudwatch.go
│   │   │   ├── cloudwatch_logs.go
│   │   │   ├── cratedb.go
│   │   │   ├── datadog.go
│   │   │   ├── discard.go
│   │   │   ├── dynatrace.go
│   │   │   ├── elasticsearch.go
│   │   │   ├── event_hubs.go
│   │   │   ├── exec.go
│   │   │   ├── execd.go
│   │   │   ├── file.go
│   │   │   ├── graphite.go
│   │   │   ├── graylog.go
│   │   │   ├── groundwork.go
│   │   │   ├── health.go
│   │   │   ├── heartbeat.go
│   │   │   ├── http.go
│   │   │   ├── influxdb.go
│   │   │   ├── influxdb_v2.go
│   │   │   ├── influxdb_v3.go
│   │   │   ├── inlong.go
│   │   │   ├── instrumental.go
│   │   │   ├── iotdb.go
│   │   │   ├── kafka.go
│   │   │   ├── kinesis.go
│   │   │   ├── librato.go
│   │   │   ├── logzio.go
│   │   │   ├── loki.go
│   │   │   ├── microsoft_fabric.go
│   │   │   ├── mongodb.go
│   │   │   ├── mqtt.go
│   │   │   ├── nats.go
│   │   │   ├── nebius_cloud_monitoring.go
│   │   │   ├── newrelic.go
│   │   │   ├── nsq.go
│   │   │   ├── opensearch.go
│   │   │   ├── opentelemetry.go
│   │   │   ├── opentsdb.go
│   │   │   ├── parquet.go
│   │   │   ├── postgresql.go
│   │   │   ├── prometheus_client.go
│   │   │   ├── quix.go
│   │   │   ├── redistimeseries.go
│   │   │   ├── remotefile.go
│   │   │   ├── riemann.go
│   │   │   ├── sensu.go
│   │   │   ├── signalfx.go
│   │   │   ├── socket_writer.go
│   │   │   ├── sql.go
│   │   │   ├── stackdriver.go
│   │   │   ├── stomp.go
│   │   │   ├── sumologic.go
│   │   │   ├── syslog.go
│   │   │   ├── timestream.go
│   │   │   ├── warp10.go
│   │   │   ├── wavefront.go
│   │   │   ├── websocket.go
│   │   │   ├── yandex_cloud_monitoring.go
│   │   │   └── zabbix.go
│   │   ├── amon/
│   │   │   ├── README.md
│   │   │   ├── amon.go
│   │   │   ├── amon_test.go
│   │   │   └── sample.conf
│   │   ├── amqp/
│   │   │   ├── README.md
│   │   │   ├── amqp.go
│   │   │   ├── amqp_test.go
│   │   │   ├── client.go
│   │   │   └── sample.conf
│   │   ├── application_insights/
│   │   │   ├── README.md
│   │   │   ├── application_insights.go
│   │   │   ├── application_insights_test.go
│   │   │   ├── diagnostic_message_subscriber.go
│   │   │   ├── mocks/
│   │   │   │   ├── diagnostics_message_listener.go
│   │   │   │   ├── diagnostics_message_subscriber.go
│   │   │   │   └── transmitter.go
│   │   │   ├── sample.conf
│   │   │   └── transmitter.go
│   │   ├── arc/
│   │   │   ├── README.md
│   │   │   ├── arc.go
│   │   │   ├── arc_test.go
│   │   │   ├── groups.go
│   │   │   └── sample.conf
│   │   ├── azure_data_explorer/
│   │   │   ├── README.md
│   │   │   ├── azure_data_explorer.go
│   │   │   ├── azure_data_explorer_test.go
│   │   │   └── sample.conf
│   │   ├── azure_monitor/
│   │   │   ├── README.md
│   │   │   ├── azure_monitor.go
│   │   │   ├── azure_monitor_test.go
│   │   │   ├── sample.conf
│   │   │   └── types.go
│   │   ├── bigquery/
│   │   │   ├── README.md
│   │   │   ├── bigquery.go
│   │   │   ├── bigquery_test.go
│   │   │   └── sample.conf
│   │   ├── clarify/
│   │   │   ├── README.md
│   │   │   ├── clarify.go
│   │   │   ├── clarify_test.go
│   │   │   └── sample.conf
│   │   ├── cloud_pubsub/
│   │   │   ├── README.md
│   │   │   ├── cloud_pubsub.go
│   │   │   ├── cloud_pubsub_test.go
│   │   │   ├── sample.conf
│   │   │   ├── topic_gcp.go
│   │   │   └── topic_stubbed.go
│   │   ├── cloudwatch/
│   │   │   ├── README.md
│   │   │   ├── cloudwatch.go
│   │   │   ├── cloudwatch_test.go
│   │   │   ├── fields.go
│   │   │   └── sample.conf
│   │   ├── cloudwatch_logs/
│   │   │   ├── README.md
│   │   │   ├── cloudwatch_logs.go
│   │   │   ├── cloudwatch_logs_test.go
│   │   │   └── sample.conf
│   │   ├── cratedb/
│   │   │   ├── README.md
│   │   │   ├── cratedb.go
│   │   │   ├── cratedb_test.go
│   │   │   └── sample.conf
│   │   ├── datadog/
│   │   │   ├── README.md
│   │   │   ├── datadog.go
│   │   │   ├── datadog_test.go
│   │   │   └── sample.conf
│   │   ├── deprecations.go
│   │   ├── discard/
│   │   │   ├── README.md
│   │   │   ├── discard.go
│   │   │   └── sample.conf
│   │   ├── dynatrace/
│   │   │   ├── README.md
│   │   │   ├── dynatrace.go
│   │   │   ├── dynatrace_test.go
│   │   │   └── sample.conf
│   │   ├── elasticsearch/
│   │   │   ├── README.md
│   │   │   ├── elasticsearch.go
│   │   │   ├── elasticsearch_test.go
│   │   │   └── sample.conf
│   │   ├── event_hubs/
│   │   │   ├── README.md
│   │   │   ├── event_hubs.go
│   │   │   ├── event_hubs_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── Config.json
│   │   ├── exec/
│   │   │   ├── README.md
│   │   │   ├── exec.go
│   │   │   ├── exec_test.go
│   │   │   └── sample.conf
│   │   ├── execd/
│   │   │   ├── README.md
│   │   │   ├── examples/
│   │   │   │   ├── file/
│   │   │   │   │   ├── file.sh
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── redis/
│   │   │   │       ├── redis_influx.rb
│   │   │   │       ├── redis_json.rb
│   │   │   │       └── telegraf.conf
│   │   │   ├── execd.go
│   │   │   ├── execd_test.go
│   │   │   └── sample.conf
│   │   ├── file/
│   │   │   ├── README.md
│   │   │   ├── file.go
│   │   │   ├── file_test.go
│   │   │   └── sample.conf
│   │   ├── graphite/
│   │   │   ├── README.md
│   │   │   ├── graphite.go
│   │   │   ├── graphite_test.go
│   │   │   └── sample.conf
│   │   ├── graylog/
│   │   │   ├── README.md
│   │   │   ├── graylog.go
│   │   │   ├── graylog_test.go
│   │   │   ├── graylog_test_linux.go
│   │   │   └── sample.conf
│   │   ├── groundwork/
│   │   │   ├── README.md
│   │   │   ├── groundwork.go
│   │   │   ├── groundwork_test.go
│   │   │   └── sample.conf
│   │   ├── health/
│   │   │   ├── README.md
│   │   │   ├── compares.go
│   │   │   ├── compares_test.go
│   │   │   ├── contains.go
│   │   │   ├── contains_test.go
│   │   │   ├── health.go
│   │   │   ├── health_test.go
│   │   │   └── sample.conf
│   │   ├── heartbeat/
│   │   │   ├── README.md
│   │   │   ├── heartbeat.go
│   │   │   ├── heartbeat_test.go
│   │   │   ├── logging.go
│   │   │   ├── sample.conf
│   │   │   ├── schema_v1.json
│   │   │   ├── statistics.go
│   │   │   ├── status.go
│   │   │   ├── testdata/
│   │   │   │   ├── telegraf.conf
│   │   │   │   └── telegraf.d/
│   │   │   │       ├── inputs.conf
│   │   │   │       └── outputs.conf
│   │   │   └── types.go
│   │   ├── http/
│   │   │   ├── README.md
│   │   │   ├── http.go
│   │   │   ├── http_test.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── influxdb/
│   │   │   ├── README.md
│   │   │   ├── http.go
│   │   │   ├── http_test.go
│   │   │   ├── influxdb.go
│   │   │   ├── influxdb_test.go
│   │   │   ├── sample.conf
│   │   │   ├── udp.go
│   │   │   └── udp_test.go
│   │   ├── influxdb_v2/
│   │   │   ├── README.md
│   │   │   ├── batching.go
│   │   │   ├── errors.go
│   │   │   ├── http.go
│   │   │   ├── http_test.go
│   │   │   ├── influxdb_v2.go
│   │   │   ├── influxdb_v2_test.go
│   │   │   └── sample.conf
│   │   ├── influxdb_v3/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── errors.go
│   │   │   ├── influxdb_v3.go
│   │   │   ├── influxdb_v3_test.go
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   └── types.go
│   │   ├── inlong/
│   │   │   ├── README.md
│   │   │   ├── inlong.go
│   │   │   ├── inlong_test.go
│   │   │   └── sample.conf
│   │   ├── instrumental/
│   │   │   ├── README.md
│   │   │   ├── instrumental.go
│   │   │   ├── instrumental_test.go
│   │   │   └── sample.conf
│   │   ├── iotdb/
│   │   │   ├── README.md
│   │   │   ├── iotdb.go
│   │   │   ├── iotdb_test.go
│   │   │   └── sample.conf
│   │   ├── kafka/
│   │   │   ├── README.md
│   │   │   ├── kafka.go
│   │   │   ├── kafka_test.go
│   │   │   └── sample.conf
│   │   ├── kinesis/
│   │   │   ├── README.md
│   │   │   ├── kinesis.go
│   │   │   ├── kinesis_test.go
│   │   │   └── sample.conf
│   │   ├── librato/
│   │   │   ├── README.md
│   │   │   ├── librato.go
│   │   │   ├── librato_test.go
│   │   │   └── sample.conf
│   │   ├── logzio/
│   │   │   ├── README.md
│   │   │   ├── logzio.go
│   │   │   ├── logzio_test.go
│   │   │   └── sample.conf
│   │   ├── loki/
│   │   │   ├── README.md
│   │   │   ├── loki.go
│   │   │   ├── loki_test.go
│   │   │   ├── sample.conf
│   │   │   ├── stream.go
│   │   │   └── stream_test.go
│   │   ├── microsoft_fabric/
│   │   │   ├── README.md
│   │   │   ├── event_house.go
│   │   │   ├── event_house_test.go
│   │   │   ├── event_stream.go
│   │   │   ├── event_stream_test.go
│   │   │   ├── microsoft_fabric.go
│   │   │   ├── microsoft_fabric_test.go
│   │   │   └── sample.conf
│   │   ├── mongodb/
│   │   │   ├── README.md
│   │   │   ├── mongodb.go
│   │   │   ├── mongodb_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── auth_scram/
│   │   │       │   └── setup.js
│   │   │       └── auth_x509/
│   │   │           └── setup.js
│   │   ├── mqtt/
│   │   │   ├── README.md
│   │   │   ├── homie.go
│   │   │   ├── mqtt.go
│   │   │   ├── mqtt_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── mosquitto.conf
│   │   ├── nats/
│   │   │   ├── README.md
│   │   │   ├── nats.go
│   │   │   ├── nats_test.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       ├── js-async-pub.conf
│   │   │       ├── js-config.conf
│   │   │       ├── js-default.conf
│   │   │       ├── js-layout-nosub.conf
│   │   │       ├── js-layout.conf
│   │   │       ├── js-no-stream.conf
│   │   │       ├── js-subjects.conf
│   │   │       ├── no-js-batch.conf
│   │   │       └── no-js.conf
│   │   ├── nebius_cloud_monitoring/
│   │   │   ├── README.md
│   │   │   ├── nebius_cloud_monitoring.go
│   │   │   ├── nebius_cloud_monitoring_test.go
│   │   │   └── sample.conf
│   │   ├── newrelic/
│   │   │   ├── README.md
│   │   │   ├── newrelic.go
│   │   │   ├── newrelic_test.go
│   │   │   └── sample.conf
│   │   ├── nsq/
│   │   │   ├── README.md
│   │   │   ├── nsq.go
│   │   │   ├── nsq_test.go
│   │   │   └── sample.conf
│   │   ├── opensearch/
│   │   │   ├── README.md
│   │   │   ├── opensearch.go
│   │   │   ├── opensearch_test.go
│   │   │   ├── opensearch_v1_test.go
│   │   │   ├── opensearch_v2_test.go
│   │   │   ├── sample.conf
│   │   │   └── template.json
│   │   ├── opentelemetry/
│   │   │   ├── README.md
│   │   │   ├── client_grpc.go
│   │   │   ├── client_http.go
│   │   │   ├── logger.go
│   │   │   ├── opentelemetry.go
│   │   │   ├── opentelemetry_test.go
│   │   │   └── sample.conf
│   │   ├── opentsdb/
│   │   │   ├── README.md
│   │   │   ├── opentsdb.go
│   │   │   ├── opentsdb_http.go
│   │   │   ├── opentsdb_test.go
│   │   │   └── sample.conf
│   │   ├── parquet/
│   │   │   ├── README.md
│   │   │   ├── parquet.go
│   │   │   ├── parquet_test.go
│   │   │   └── sample.conf
│   │   ├── postgresql/
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── columns.go
│   │   │   ├── datatype_uint8.go
│   │   │   ├── datatypes.go
│   │   │   ├── postgresql.go
│   │   │   ├── postgresql_bench_test.go
│   │   │   ├── postgresql_test.go
│   │   │   ├── sample.conf
│   │   │   ├── sqltemplate/
│   │   │   │   └── template.go
│   │   │   ├── table_manager.go
│   │   │   ├── table_manager_test.go
│   │   │   ├── table_source.go
│   │   │   ├── table_source_test.go
│   │   │   └── utils/
│   │   │       ├── column.go
│   │   │       └── utils.go
│   │   ├── prometheus_client/
│   │   │   ├── README.md
│   │   │   ├── prometheus_client.go
│   │   │   ├── prometheus_client_test.go
│   │   │   ├── prometheus_client_v1_test.go
│   │   │   ├── prometheus_client_v2_test.go
│   │   │   ├── sample.conf
│   │   │   ├── v1/
│   │   │   │   └── collector.go
│   │   │   └── v2/
│   │   │       └── collector.go
│   │   ├── quix/
│   │   │   ├── README.md
│   │   │   ├── config.go
│   │   │   ├── quix.go
│   │   │   ├── quix_test.go
│   │   │   └── sample.conf
│   │   ├── redistimeseries/
│   │   │   ├── README.md
│   │   │   ├── redistimeseries.go
│   │   │   ├── redistimeseries_test.go
│   │   │   

================================================
FILE CONTENTS
================================================

================================================
FILE: .circleci/config.yml
================================================
version: 2.1
orbs:
  win: circleci/windows@5.0.0
  aws-cli: circleci/aws-cli@3.1.1

executors:
  telegraf-ci:
    working_directory: '/go/src/github.com/influxdata/telegraf'
    resource_class: large
    docker:
      - image: 'quay.io/influxdb/telegraf-ci:1.25.7'
    environment:
      GOFLAGS: -p=4
  mac:
    working_directory: '~/go/src/github.com/influxdata/telegraf'
    resource_class: m4pro.medium
    macos:
      xcode: 15.4.0
    environment:
      HOMEBREW_NO_AUTO_UPDATE: 1
      GOFLAGS: -p=4

commands:
  check-changed-files-or-halt:
    steps:
      - run: ./scripts/check-file-changes.sh
  test-go:
    parameters:
      os:
        type: string
        default: "linux"
      arch:
        type: string
        default: "amd64"
      gotestsum:
        type: string
        default: "gotestsum"
    steps:
      - run: ./scripts/install_gotestsum.sh << parameters.os >> << parameters.gotestsum >>
      - unless:
          condition:
            equal: [ "386", << parameters.arch >> ]
          steps:
      # Disable -race on Windows due to issues with CGO in the test-go-windows CI job.
      # See https://github.com/influxdata/telegraf/pull/17789
      #      - run: echo 'export RACE="-race"' >> $BASH_ENV
            - unless:
                condition:
                  equal: [ windows, << parameters.os >> ]
                steps:
                  - run: echo 'export RACE="-race"' >> $BASH_ENV

      # Disable CGO on Windows for the same reason as above.
      #- when:
      #    condition:
      #      equal: [ windows, << parameters.os >> ]
      #    steps:
      #      - run: echo 'export CGO_ENABLED=1' >> $BASH_ENV
      - when:
          condition:
            equal: [ darwin, << parameters.os >> ]
          steps:
            - run: echo 'export RACE="$RACE -ldflags=-extldflags=-Wl,-ld_classic"' >> $BASH_ENV
      - run: |
          GOARCH=<< parameters.arch >> ./<< parameters.gotestsum >> -- ${RACE} -short "$(./scripts/check-plugin-changes.sh)"
  package-build:
    parameters:
      type:
        type: string
        default: ""
      nightly:
        type: boolean
        default: false
    steps:
      - checkout
      - check-changed-files-or-halt
      - attach_workspace:
          at: '/go'
      - when:
          condition:
            equal: [ windows, << parameters.type >> ]
          steps:
            - run: go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@v1.4.0
      - when:
          condition: << parameters.nightly >>
          steps:
            - run:
                command: 'NIGHTLY=1 make package include_packages="$(make << parameters.type >>)"'
                no_output_timeout: 30m
      - unless:
          condition:
            or:
              - << parameters.nightly >>
          steps:
            - run:
                command: 'make package include_packages="$(make << parameters.type >>)"'
                no_output_timeout: 30m
      - store_artifacts:
          path: './build/dist'
          destination: 'build/dist'
      - persist_to_workspace:
          root: './build'
          paths:
            - 'dist'
jobs:
  lint-linux:
    executor: telegraf-ci
    steps:
      - checkout
      - run: ./scripts/make_docs.sh
      - check-changed-files-or-halt
      - run: 'make deps'
      - run: 'make tidy'
      - run: 'make check'
      - run: 'make check-deps'
      - run:
          name: "Install golangci-lint"
          command: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.7.2
      - run:
          name: "golangci-lint/Linux"
          # There are only 4 vCPUs available for this executor, so use only 4 instead of the default number
          # (the OS may report the number of CPUs on the host instead of the number of CPUs available to the guest).
          command: GOGC=80 GOMEMLIMIT=6144MiB /go/bin/golangci-lint run --verbose --timeout=30m --concurrency 4
          no_output_timeout: 30m
  lint-macos:
    executor: telegraf-ci
    steps:
      - checkout
      - check-changed-files-or-halt
      - run:
          name: "Install golangci-lint"
          command: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.7.2
      - run:
          name: "golangci-lint/macOS"
          # There are only 4 vCPUs available for this executor, so use only 4 instead of the default number
          # (the OS may report the number of CPUs on the host instead of the number of CPUs available to the guest).
          command: GOGC=80 GOMEMLIMIT=6144MiB GOOS=darwin /go/bin/golangci-lint run --verbose --timeout=30m --concurrency 4
          no_output_timeout: 30m
  lint-windows:
    executor: telegraf-ci
    steps:
      - checkout
      - check-changed-files-or-halt
      - run:
          name: "Install golangci-lint"
          command: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.7.2
      - run:
          name: "golangci-lint/Windows"
          # There are only 4 vCPUs available for this executor, so use only 4 instead of the default number
          # (the OS may report the number of CPUs on the host instead of the number of CPUs available to the guest).
          command: GOGC=80 GOMEMLIMIT=6144MiB GOOS=windows /go/bin/golangci-lint run --verbose --timeout=30m --concurrency 4
          no_output_timeout: 30m
  test-go-linux:
    executor: telegraf-ci
    steps:
      - checkout
      - check-changed-files-or-halt
      - test-go
  test-go-linux-386:
    executor: telegraf-ci
    steps:
      - checkout
      - check-changed-files-or-halt
      - run: 'GOARCH=386 make deps'
      - run: 'GOARCH=386 make tidy'
      - run: 'GOARCH=386 make check'
      - test-go:
          arch: "386"
  test-integration:
    machine:
      image: ubuntu-2204:current
    resource_class: large
    steps:
      - checkout
      - check-changed-files-or-halt
      - run: 'sh ./scripts/installgo_linux.sh'
      - run: 'make deps'
      - run:
          name: "Run integration tests"
          command: make test-integration
          environment:
            AZURE_EVENT_HUBS_EMULATOR_ACCEPT_EULA: yes
  test-go-mac:
    executor: mac
    steps:
      - checkout
      - check-changed-files-or-halt
      - run: 'sh ./scripts/installgo_mac.sh'
      - test-go:
          os: darwin
          arch: arm64
  test-go-windows:
    executor:
        name: win/default
        shell: bash.exe
        size: large
    steps:
      - checkout
      - check-changed-files-or-halt
      - run: git config --system core.longpaths true
      - run: choco feature enable -n allowGlobalConfirmation
      - run: 'sh ./scripts/installgo_windows.sh'
      - run: choco install mingw
      - run: echo 'export PATH="$PATH:/c/ProgramData/mingw64/mingw64/bin"' >> $BASH_ENV
      - test-go:
          os: windows
          gotestsum: "gotestsum.exe"
  test-licenses:
    executor: telegraf-ci
    steps:
      - checkout
      - check-changed-files-or-halt
      - run: 'make build_tools'
      - run: './tools/license_checker/license_checker -whitelist ./tools/license_checker/data/whitelist'
  windows-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: windows
          nightly: << parameters.nightly >>
  darwin-amd64-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: darwin-amd64
          nightly: << parameters.nightly >>
  darwin-arm64-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: darwin-arm64
          nightly: << parameters.nightly >>
  i386-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: i386
          nightly: << parameters.nightly >>
  ppc64le-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: ppc64le
          nightly: << parameters.nightly >>
  riscv64-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: riscv64
          nightly: << parameters.nightly >>
  loong64-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: loong64
          nightly: << parameters.nightly >>
  s390x-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: s390x
          nightly: << parameters.nightly >>
  armel-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: armel
          nightly: << parameters.nightly >>
  amd64-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: amd64
          nightly: << parameters.nightly >>
  arm64-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: arm64
          nightly: << parameters.nightly >>
  mipsel-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: mipsel
          nightly: << parameters.nightly >>
  mips-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: mips
          nightly: << parameters.nightly >>
  armhf-package:
    parameters:
      nightly:
        type: boolean
        default: false
    executor: telegraf-ci
    steps:
      - package-build:
          type: armhf
          nightly: << parameters.nightly >>
  nightly:
    executor: telegraf-ci
    steps:
      - attach_workspace:
          at: '/build'
      - run:
          command: |
            aws s3 sync /build/dist s3://dl.influxdata.com/telegraf/nightlies/ \
              --exclude "*" \
              --include "*.tar.gz" \
              --include "*.deb" \
              --include "*.rpm" \
              --include "*.zip" \
              --acl public-read
  release:
    executor: telegraf-ci
    steps:
      - attach_workspace:
          at: '/build'
      - run:
          command: |
            aws s3 sync /build/dist s3://dl.influxdata.com/telegraf/releases/ \
              --exclude "*" \
              --include "telegraf*.DIGESTS" \
              --include "telegraf*.digests" \
              --include "telegraf*.asc" \
              --include "telegraf*.deb" \
              --include "telegraf*.dmg" \
              --include "telegraf*.rpm" \
              --include "telegraf*.tar.gz" \
              --include "telegraf*.zip" \
              --acl public-read
  docker-nightly:
    machine:
      image: ubuntu-2204:current
    steps:
      - run:
          name: login to quay.io
          command: docker login --username="${QUAY_USER}" --password="${QUAY_PASS}" quay.io
      - run:
          name: clone influxdata/influxdata-docker
          command: git clone https://github.com/influxdata/influxdata-docker
      - run:
          name: build and push telegraf:nightly
          command: |
            cd influxdata-docker/telegraf/nightly
            docker build -t telegraf .
            docker tag telegraf quay.io/influxdb/telegraf-nightly:latest
            docker image ls
            docker push quay.io/influxdb/telegraf-nightly:latest
      - run:
          name: build and push telegraf:nightly-alpine
          command: |
            cd influxdata-docker/telegraf/nightly/alpine
            docker build -t telegraf-alpine .
            docker tag telegraf-alpine quay.io/influxdb/telegraf-nightly:alpine
            docker image ls
            docker push quay.io/influxdb/telegraf-nightly:alpine
  amd64-package-test-nightly:
    machine:
      image: ubuntu-2204:current
    steps:
      - checkout
      - attach_workspace:
          at: '.'
      - run: sh ./scripts/installgo_linux.sh
      - run: ./scripts/install_incus.sh
      - run: cd tools/package_incus_test && go build
      - run: sudo ./tools/package_incus_test/package_incus_test --package $(find ./dist -name "*_amd64.deb")
      - run: sudo ./tools/package_incus_test/package_incus_test --package $(find ./dist -name "*.x86_64.rpm")
  package-sign-windows:
    machine:
      image: ubuntu-2204:current
    resource_class: medium
    steps:
      - checkout
      - check-changed-files-or-halt
      - attach_workspace:
          at: '.'
      - run:
          name: "Sign Windows Executables"
          command: ./scripts/sign-windows.sh
      - persist_to_workspace:
          root: '.'
          paths:
            - 'dist'
  package-sign-mac:
    executor: mac
    working_directory: /Users/distiller/project
    environment:
      FL_OUTPUT_DIR: output
      FASTLANE_LANE: test
    shell: /bin/bash --login -o pipefail
    steps:
      - checkout
      - check-changed-files-or-halt
      - attach_workspace:
          at: '.'
      - run:
          command: |
            sh ./scripts/mac-signing.sh
      - persist_to_workspace:
          root: './build'
          paths:
            - 'dist'
  package-consolidate:
    docker:
     - image: alpine
    steps:
      - attach_workspace:
          at: '.'
      - run:
          command: |
            cd dist && find . -type f -name '._*' -delete
      - store_artifacts:
          path: './dist'
          destination: 'build/dist'
      - run:
          command: |
            echo "This job contains all the final artifacts."
  share-artifacts:
    executor: aws-cli/default
    steps:
      - checkout
      - check-changed-files-or-halt
      - run:
          command: |
            PR=${CIRCLE_PULL_REQUEST##*/}
            printf -v payload '{ "pullRequestNumber": "%s" }' "$PR"
            curl -X POST "https://182c7jdgog.execute-api.us-east-1.amazonaws.com/prod/shareArtifacts" --data "$payload"
  package-sign:
    circleci_ip_ranges: true
    docker:
      - image: quay.io/influxdb/rsign:latest
        auth:
          username: $QUAY_RSIGN_USERNAME
          password: $QUAY_RSIGN_PASSWORD
    steps:
      - add_ssh_keys:
          fingerprints:
            - 3b:c0:fe:a0:8a:93:33:69:de:22:ac:20:a6:ed:6b:e5
      - attach_workspace:
          at: .
      - run: |
          cd dist

          # Generate the *.DIGESTS files. This must be done before the signing
          # step so that the *.DIGEST files are also signed.
          for target in *
          do
            sha256sum "${target}" > "${target}.DIGESTS"
          done

          for target in *
          do
            case "${target}"
            in
              # rsign is shipped on Alpine Linux which uses "busybox ash" instead
              # of bash. ash is somewhat more posix compliant and is missing some
              # extensions and niceties from bash.
              *.deb|*.dmg|*.rpm|*.tar.gz|*.zip|*.DIGESTS)
                rsign "${target}"
              ;;
            esac
          done

          for target in *
          do
            case "${target}"
            in
              *.deb|*.dmg|*.rpm|*.tar.gz|*.zip)
                # Print sha256 hash and target for artifacts all in one file
                # for use later during the release.
                cat "${target}.DIGESTS" >> "telegraf-${CIRCLE_TAG}.DIGESTS"
              ;;
            esac
          done
      - persist_to_workspace:
          root: ./
          paths:
            - dist
      - store_artifacts:
          path: ./dist

workflows:
  version: 2
  check:
    when:
      not:
        equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
    jobs:
      - 'lint-linux':
          filters:
            tags:
              only: /.*/
      - 'lint-macos':
          filters:
            tags:
              only: /.*/
      - 'lint-windows':
          filters:
            tags:
              only: /.*/
      - 'test-go-linux':
          filters:
            tags:
              only: /.*/
      - 'test-go-linux-386':
          filters:
            tags:
              only: /.*/
      - 'test-go-mac':
          filters:
            tags: # only runs on tags if you specify this filter
              only: /.*/
      - 'test-go-windows':
          filters:
            tags:
              only: /.*/
      - 'test-integration':
          filters:
            tags:
              only: /.*/
      - 'windows-package':
          requires:
            - 'test-go-linux'
          filters:
            tags:
              only: /.*/
      - 'darwin-amd64-package':
          requires:
            - 'test-go-mac'
          filters:
            tags:
              only: /.*/
      - 'darwin-arm64-package':
          requires:
            - 'test-go-mac'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'i386-package':
          requires:
            - 'test-go-linux-386'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'ppc64le-package':
          requires:
            - 'test-go-linux'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'riscv64-package':
          requires:
            - 'test-go-linux'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'loong64-package':
          requires:
            - 'test-go-linux'
          filters:
            branches:
              ignore:
                - /.*/
            tags:
              only: /.*/
      - 's390x-package':
          requires:
            - 'test-go-linux'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'armel-package':
          requires:
            - 'test-go-linux'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'amd64-package':
          requires:
            - 'test-go-linux'
          filters:
            tags:
              only: /.*/
      - 'arm64-package':
          requires:
            - 'test-go-linux'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'armhf-package':
          requires:
            - 'test-go-linux'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'mipsel-package':
          requires:
            - 'test-go-linux'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'mips-package':
          requires:
            - 'test-go-linux'
          filters:
            branches:
              ignore:
                - master
            tags:
              only: /.*/
      - 'share-artifacts':
          requires:
            - 'i386-package'
            - 'ppc64le-package'
            - 'riscv64-package'
            - 's390x-package'
            - 'armel-package'
            - 'amd64-package'
            - 'mipsel-package'
            - 'mips-package'
            - 'loong64-package'
            - 'darwin-amd64-package'
            - 'darwin-arm64-package'
            - 'windows-package'
            - 'arm64-package'
            - 'armhf-package'
          filters:
            branches:
              ignore:
                - master
                - release.*
            tags:
              ignore: /.*/
      - 'package-sign-windows':
          requires:
            - 'windows-package'
          filters:
              tags:
                only: /.*/
              branches:
                ignore: /.*/
      - 'package-sign-mac':
           requires:
            - 'darwin-amd64-package'
            - 'darwin-arm64-package'
           filters:
              tags:
                only: /.*/
              branches:
                ignore: /.*/
      - 'package-sign':
          requires:
            - 'i386-package'
            - 'ppc64le-package'
            - 'riscv64-package'
            - 's390x-package'
            - 'armel-package'
            - 'amd64-package'
            - 'mipsel-package'
            - 'mips-package'
            - 'loong64-package'
            - 'arm64-package'
            - 'armhf-package'
            - 'package-sign-mac'
            - 'package-sign-windows'
          filters:
            tags:
              only: /.*/
            branches:
              ignore: /.*/
      - 'package-consolidate':
           requires:
            - 'i386-package'
            - 'ppc64le-package'
            - 's390x-package'
            - 'armel-package'
            - 'amd64-package'
            - 'mipsel-package'
            - 'mips-package'
            - 'arm64-package'
            - 'armhf-package'
            - 'riscv64-package'
            - 'loong64-package'
            - 'package-sign-mac'
            - 'package-sign-windows'
            - 'package-sign'
           filters:
            tags:
              only: /.*/
            branches:
              ignore: /.*/
      - 'release':
          requires:
            - 'package-consolidate'
          filters:
            tags:
              only: /.*/
            branches:
              ignore: /.*/
  nightly:
    when:
      equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
    jobs:
      - 'lint-linux'
      - 'lint-macos'
      - 'lint-windows'
      - 'test-go-linux'
      - 'test-go-linux-386'
      - 'test-go-mac'
      - 'test-go-windows'
      - 'test-licenses'
      - 'windows-package':
          name: 'windows-package-nightly'
          nightly: true
          requires:
            - 'test-go-windows'
      - 'darwin-amd64-package':
          name: 'darwin-amd64-package-nightly'
          nightly: true
          requires:
            - 'test-go-mac'
      - 'darwin-arm64-package':
          name: 'darwin-arm64-package-nightly'
          nightly: true
          requires:
            - 'test-go-mac'
      - 'i386-package':
          name: 'i386-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux-386'
      - 'ppc64le-package':
          name: 'ppc64le-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 'riscv64-package':
          name: 'riscv64-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 'loong64-package':
          name: 'loong64-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 's390x-package':
          name: 's390x-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 'armel-package':
          name: 'armel-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 'amd64-package':
          name: 'amd64-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 'arm64-package':
          name: 'arm64-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 'armhf-package':
          name: 'armhf-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 'mipsel-package':
          name: 'mipsel-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 'mips-package':
          name: 'mips-package-nightly'
          nightly: true
          requires:
            - 'test-go-linux'
      - 'package-sign-windows':
          requires:
            - 'windows-package-nightly'
      - 'package-sign-mac':
           requires:
            - 'darwin-amd64-package-nightly'
            - 'darwin-arm64-package-nightly'
      - nightly:
          requires:
            - 'amd64-package-test-nightly'
            - 'arm64-package-nightly'
            - 'armel-package-nightly'
            - 'armhf-package-nightly'
            - 'darwin-amd64-package-nightly'
            - 'darwin-arm64-package-nightly'
            - 'i386-package-nightly'
            - 'mips-package-nightly'
            - 'mipsel-package-nightly'
            - 'loong64-package-nightly'
            - 'ppc64le-package-nightly'
            - 'riscv64-package-nightly'
            - 's390x-package-nightly'
            - 'windows-package-nightly'
      - docker-nightly:
          requires:
            - 'nightly'
      - amd64-package-test-nightly:
          requires:
            - 'amd64-package-nightly'


================================================
FILE: .gitattributes
================================================
CHANGELOG.md merge=union
README.md merge=union
go.sum merge=union
plugins/inputs/all/all.go merge=union
plugins/outputs/all/all.go merge=union

# Always check-out / check-in files with LF line endings.
* text=auto eol=lf


================================================
FILE: .github/ISSUE_TEMPLATE/BUG_REPORT.yml
================================================
name: Bug Report
description: Create a bug report to help us improve
labels: ["bug"]
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking time to fill out this bug report! We reserve Telegraf issues for bugs for reproducible problems.
        Please redirect any questions about Telegraf usage to our [Community Slack](https://influxdata.com/slack) or [Community Page](https://community.influxdata.com/) we have a lot of talented community members there who could help answer your question more quickly.
  - type: textarea
    id: config
    attributes:
      label: Relevant telegraf.conf
      description: Place config in the toml code section. This will be automatically formatted into toml, so no need for backticks.
      render: toml
    validations:
      required: true
  - type: textarea
    id: logs
    attributes:
      label: Logs from Telegraf
      description: Please include the Telegraf logs, ideally with `--debug` used.
      render: text
    validations:
      required: true
  - type: input
    id: system-info
    attributes:
      label: System info
      description: Include Telegraf version, operating system, and other relevant details
      placeholder: ex. Telegraf 1.20.0, Ubuntu 20.04, Docker 20.10.8
    validations:
      required: true
  - type: textarea
    id: docker
    attributes:
      label: Docker
      description: If your bug involves third party dependencies or services, it can be very helpful to provide a Dockerfile or docker-compose.yml that reproduces the environment you're testing against.
    validations:
      required: false
  - type: textarea
    id: reproduce
    attributes:
      label: Steps to reproduce
      description: Describe the steps to reproduce the bug.
      value: |
        1.
        2.
        3.
        ...
    validations:
      required: true
  - type: textarea
    id: expected-behavior
    attributes:
      label: Expected behavior
      description: Describe what you expected to happen when you performed the above steps.
    validations:
      required: true
  - type: textarea
    id: actual-behavior
    attributes:
      label: Actual behavior
      description: Describe what actually happened when you performed the above steps.
    validations:
      required: true
  - type: textarea
    id: additional-info
    attributes:
      label: Additional info
      description: Include gist of relevant config, logs, etc.
    validations:
      required: false



================================================
FILE: .github/ISSUE_TEMPLATE/FEATURE_REQUEST.yml
================================================
name: Feature request
description: Create a feature request to make Telegraf more awesome
labels: ["feature request"]
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking time to share with us this feature request! Please describe why you would like this feature to be added to Telegraf and how you plan to use it to make your life better.
  - type: textarea
    id: use-case
    attributes:
      label: Use Case
      description: Describe how you plan to use this feature. 
    validations:
      required: true
  - type: textarea
    id: expected-behavior
    attributes:
      label: Expected behavior
      description: Describe what you expected to happen when you performed the above steps.
    validations:
      required: true
  - type: textarea
    id: actual-behavior
    attributes:
      label: Actual behavior
      description: Describe what actually happened when you performed the above steps.
    validations:
      required: true
  - type: textarea
    id: additional-info
    attributes:
      label: Additional info
      description: Include gist of relevant config, logs, etc.
    validations:
      required: false



================================================
FILE: .github/ISSUE_TEMPLATE/SUPPORT.yml
================================================
name: Support request
description: Open a support request
labels: ["support"]
body:
  - type: markdown
    attributes:
      value: |
        WOAH, hold up. This isn't the best place for support questions. 
        You can get a faster response on slack or forums:

        Please redirect any QUESTIONS about Telegraf usage to 
        - InfluxData Slack Channel: https://www.influxdata.com/slack 
        - InfluxData Community Site: https://community.influxdata.com

        Check the documentation for the related plugin including the troubleshooting
        section if available.

        https://docs.influxdata.com/telegraf
        https://github.com/influxdata/telegraf/tree/master/docs
  - type: textarea
    attributes:
      label: "Please direct all support questions to Slack or the forums. Thank you."


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
## Summary
<!-- Mandatory
Explain here the why, the rationale and motivation, for the changes.
-->

## Checklist
<!-- Mandatory
Please confirm at least ONE of the following by replacing the space with an "x"
between the []:
-->

- [ ] No AI generated code was used in this PR
- [ ] AI generated code used in this PR follows the [InfluxData Policy on AI-Generated Code Contributions][policy]

[policy]: https://www.influxdata.com/ai-generated-code-contributions-policy

## Related issues
<!-- Mandatory
All PRs should resolve an issue, if one does not exist, please open one.
-->

resolves #


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
    open-pull-requests-limit: 25
    labels:
      - "dependencies"
  - package-ecosystem: "gomod"
    directory: "/"
    schedule:
      interval: "weekly"
    open-pull-requests-limit: 25
    ignore:
      # Dependabot isn't able to update this packages that do not match the
      # source, so anything with a version
      - dependency-name: "*.v*"
    labels:
      - "dependencies"
    groups:
      aws-sdk-go-v2:
        applies-to: version-updates
        patterns:
          - "github.com/aws/aws-sdk-go-v2*"


================================================
FILE: .github/workflows/linter.yml
================================================
---
#################################
#################################
## Super Linter GitHub Actions ##
#################################
#################################
name: Lint Code Base

#
# Documentation:
# https://help.github.com/en/articles/workflow-syntax-for-github-actions
#

#############################
# Start the job on all push #
#############################
on:
  push:
    branches-ignore: [master, main]
    # Remove the line above to run when pushing to master
  pull_request:
    branches: [master, main]

###############
# Set the Job #
###############
permissions: {}

jobs:
  build:
    # Name the Job
    permissions:
      contents: read # to fetch code (actions/checkout)
      statuses: write # to mark status of each linter run (github/super-linter)

    name: Lint Code Base
    # Set the agent to run on
    runs-on: ubuntu-latest

    ##################
    # Load all steps #
    ##################
    steps:
      ##########################
      # Checkout the code base #
      ##########################
      - name: Checkout Code
        uses: actions/checkout@v6
        with:
          # Full git history is needed to get a proper list of changed files within `super-linter`
          fetch-depth: 0

      ################################
      # Run Linter against code base #
      ################################
      - name: Lint Code Base
        uses: super-linter/super-linter@v8.5.0
        env:
          VALIDATE_ALL_CODEBASE: false
          DEFAULT_BRANCH: master
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          LINTER_RULES_PATH: '.'
          MARKDOWN_CONFIG_FILE: .markdownlint.jsonc
          VALIDATE_MARKDOWN: true
          VALIDATE_BASH: true


================================================
FILE: .github/workflows/milestones.yml
================================================
name: Milestones
on:
  pull_request_target:
    types:
      - closed

permissions:
  issues: write
  pull-requests: write

jobs:
  milestone_job:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    name: Assign milestones to PRs
    steps:
      - name: Checkout code
        uses: actions/checkout@v6
      - name: Assign milestone to PR
        uses: srebhan/label-milestone-action@v1.0.2
        id: assign-milestone
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          bugfix-labels: 'fix,chore,docs,test'
          minor-labels: 'feat'
          major-labels: 'breaking change'
          fallback: 'minor'
      - name: Show milestone
        run: echo "Assigned milestone is ${{ steps.assign-milestone.outputs.milestone }}"


================================================
FILE: .github/workflows/pr-target-branch.yml
================================================
name: Target Branch
on:
  pull_request:
    types:
      - opened
      - reopened
      - synchronize
      - edited

jobs:
  check-target-master:
    name: master
    runs-on: ubuntu-latest
    steps:
      - name: debug
        run: echo Target is ${{ github.event.pull_request.base.ref }}
      - name: success
        if: github.event.pull_request.base.ref == 'master'
        run: exit 0
      - name: error
        if: github.event.pull_request.base.ref != 'master'
        run: |
          echo "Pull-request is not based on master, please rebase"
          exit 1


================================================
FILE: .github/workflows/readme-linter.yml
================================================
name: Lint plugin readmes
on:
#  push:
#    branches-ignore: master
  pull_request:
    branches: # Names of target branches, not source branches
      - master
jobs:
  run-readme-linter:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-go@v6
        with:
          go-version: '1.25.7'
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - name: Get changed files
        id: changed-files
        uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5
        with:
          base_sha: ${{ github.event.pull_request.base.sha }}
          files: ./plugins/**/README.md
      - name: Run readme linter on changed files
        if: steps.changed-files.outputs.any_changed == 'true'
        run: go run ./tools/readme_linter ${{ steps.changed-files.outputs.all_changed_files }}


================================================
FILE: .github/workflows/semantic.yml
================================================
---
name: "Semantic PR and Commit Messages"

on:
  pull_request:
    types: [opened, reopened, synchronize, edited]
    branches:
      - master

jobs:
  semantic:
    uses: influxdata/validate-semantic-github-messages/.github/workflows/semantic.yml@main
    with:
      COMMITS_HISTORY: 0



================================================
FILE: .gitignore
================================================
/.idea
/build
/etc/telegraf.conf
/telegraf
/telegraf.exe
/telegraf.gz
/tools/package_lxd_test/package_lxd_test
/tools/license_checker/license_checker*
/tools/readme_config_includer/generator
/tools/readme_config_includer/generator.exe
/tools/config_includer/generator
/tools/config_includer/generator.exe
/tools/readme_linter/readme_linter*
/tools/custom_builder/custom_builder*
/vendor
.DS_Store
process.yml
/.vscode
/*.toml
/*.conf
resource.syso
versioninfo.json
.uuid


================================================
FILE: .golangci.yml
================================================
version: "2"

linters:
  # Default set of linters.
  # The value can be:
  # - `standard`: https://golangci-lint.run/docs/linters/#enabled-by-default
  # - `all`: enables all linters by default.
  # - `none`: disables all linters by default.
  # - `fast`: enables only linters considered as "fast" (`golangci-lint help linters --json | jq '[ .[] | select(.fast==true) ] | map(.name)'`).
  # Default: standard
  default: none

  # Enable specific linter.
  enable:
    - asasalint
    - asciicheck
    - bidichk
    - bodyclose
    - copyloopvar
    - depguard
    - dogsled
    - errcheck
    - errname
    - errorlint
    - gocheckcompilerdirectives
    - gocritic
    - goprintffuncname
    - gosec
    - govet
    - ineffassign
    - interfacebloat
    - lll
    - makezero
    - mirror
    - nakedret
    - nilerr
    - nolintlint
    - perfsprint
    - prealloc
    - predeclared
    - revive
    - sqlclosecheck
    - staticcheck
    - testifylint
    - tparallel
    - unconvert
    - unparam
    - unused
    - usetesting

  # All available settings of specific linters.
  settings:
    depguard:
      # Rules to apply.
      #
      # Variables:
      # - File Variables
      #   Use an exclamation mark `!` to negate a variable.
      #   Example: `!$test` matches any file that is not a go test file.
      #
      #   `$all` - matches all go files
      #   `$test` - matches all go test files
      #
      # - Package Variables
      #
      #   `$gostd` - matches all of go's standard library (Pulled from `GOROOT`)
      #
      # Default (applies if no custom rules are defined): Only allow $gostd in all files.
      rules:
        # Name of a rule.
        main:
          # List of file globs that will match this list of settings to compare against.
          # By default, if a path is relative, it is relative to the directory where the golangci-lint command is executed.
          # The placeholder '${base-path}' is substituted with a path relative to the mode defined with `run.relative-path-mode`.
          # The placeholder '${config-path}' is substituted with a path relative to the configuration file.
          # Default: $all
          files:
            - '!**/agent/**'
            - '!**/cmd/**'
            - '!**/config/**'
            - '!**/filter/**'
            - '!**/internal/**'
            - '!**/logger/**'
            - '!**/metric/**'
            - '!**/models/**'
            - '!**/plugins/serializers/**'
            - '!**/scripts/**'
            - '!**/selfstat/**'
            - '!**/testutil/**'
            - '!**/tools/**'
            - '!**/*_test.go'
          # List of packages that are not allowed.
          # Entries can be a variable (starting with $), a string prefix, or an exact match (if ending with $).
          # Default: []
          deny:
            - pkg: log
              desc: 'Use injected telegraf.Logger instead'

    errcheck:
      # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`.
      # Such cases aren't reported by default.
      # Default: false
      check-blank: true

      # List of functions to exclude from checking, where each entry is a single function to exclude.
      # See https://github.com/kisielk/errcheck#excluding-functions for details.
      exclude-functions:
        - '(*hash/maphash.Hash).Write'
        - '(*hash/maphash.Hash).WriteByte'
        - '(*hash/maphash.Hash).WriteString'
        - '(*github.com/influxdata/telegraf/plugins/outputs/postgresql/sqltemplate.Template).UnmarshalText'

    gocritic:
      # Disable all checks.
      # Default: false
      disable-all: true
      # Which checks should be enabled in addition to default checks; can't be combined with 'disabled-checks'.
      # By default, list of stable checks is used (https://go-critic.com/overview#checks-overview).
      # To see which checks are enabled run `GL_DEBUG=gocritic golangci-lint run --enable=gocritic`.
      enabled-checks:
        # diagnostic
        - argOrder
        - badCall
        - badCond
        - badLock
        - badRegexp
        - badSorting
        - badSyncOnceFunc
        - builtinShadowDecl
        - caseOrder
        - codegenComment
        - commentedOutCode
        - deferInLoop
        - deprecatedComment
        - dupArg
        - dupBranchBody
        - dupCase
        - dupSubExpr
        - dynamicFmtString
        - emptyDecl
        - evalOrder
        - exitAfterDefer
        - externalErrorReassign
        - filepathJoin
        - flagName
        - mapKey
        - nilValReturn
        - offBy1
        - regexpPattern
        - sloppyLen
        - sloppyReassign
        - sloppyTypeAssert
        - sortSlice
        - sprintfQuotedString
        - sqlQuery
        - syncMapLoadAndDelete
        - truncateCmp
        - uncheckedInlineErr
        - unnecessaryDefer
        - weakCond
        # performance
        - appendCombine
        - equalFold
        - hugeParam
        - indexAlloc
        - preferDecodeRune
        - preferFprint
        - preferStringWriter
        - preferWriteByte
        - rangeExprCopy
        - rangeValCopy
        - sliceClear
        - stringXbytes

      # Settings passed to gocritic.
      # The settings key is the name of a supported gocritic checker.
      # The list of supported checkers can be found at https://go-critic.com/overview.
      settings:
        hugeParam:
          # Size in bytes that makes the warning trigger.
          # Default: 80
          sizeThreshold: 512
        rangeValCopy:
          # Size in bytes that makes the warning trigger.
          # Default: 128
          sizeThreshold: 512

    gosec:
      # To select a subset of rules to run.
      # Available rules: https://github.com/securego/gosec#available-rules
      # Default: [] - means include all rules
      includes:
        - G101 # Look for hard coded credentials
        - G102 # Bind to all interfaces
        - G103 # Audit the use of unsafe block
        - G106 # Audit the use of ssh.InsecureIgnoreHostKey
        - G107 # Url provided to HTTP request as taint input
        - G108 # Profiling endpoint automatically exposed on /debug/pprof
        - G109 # Potential Integer overflow made by strconv.Atoi result conversion to int16/32
        - G110 # Potential DoS vulnerability via decompression bomb
        - G111 # Potential directory traversal
        - G112 # Potential slowloris attack
        - G114 # Use of net/http serve function that has no support for setting timeouts
        - G201 # SQL query construction using format string
        - G202 # SQL query construction using string concatenation
        - G203 # Use of unescaped data in HTML templates
        - G301 # Poor file permissions used when creating a directory
        - G302 # Poor file permissions used with chmod
        - G303 # Creating tempfile using a predictable path
        - G305 # File traversal when extracting zip/tar archive
        - G306 # Poor file permissions used when writing to a new file
        - G401 # Detect the usage of MD5 or SHA1
        - G403 # Ensure minimum RSA key length of 2048 bits
        - G404 # Insecure random number source (rand)
        - G405 # Detect the usage of DES or RC4
        - G406 # Detect the usage of MD4 or RIPEMD160
        - G501 # Import blocklist: crypto/md5
        - G502 # Import blocklist: crypto/des
        - G503 # Import blocklist: crypto/rc4
        - G505 # Import blocklist: crypto/sha1
        - G506 # Import blocklist: golang.org/x/crypto/md4
        - G507 # Import blocklist: golang.org/x/crypto/ripemd160
        - G601 # Implicit memory aliasing of items from a range statement
        - G602 # Slice access out of bounds
      # G104, G105, G113, G204, G304, G307, G402, G504 were not enabled intentionally
      # TODO: review G115 when reporting false positives is fixed (https://github.com/securego/gosec/issues/1212)

      # To specify the configuration of rules.
      config:
        # Maximum allowed permissions mode for os.OpenFile and os.Chmod
        # Default: "0600"
        G302: "0640"
        # Maximum allowed permissions mode for os.WriteFile and ioutil.WriteFile
        # Default: "0600"
        G306: "0640"

    govet:
      # Settings per analyzer.
      settings:
        # Analyzer name, run `go tool vet help` to see all analyzers.
        printf:
          # Comma-separated list of print function names to check (in addition to default, see `go tool vet help printf`).
          # Default: []
          funcs:
            - (github.com/influxdata/telegraf.Logger).Tracef
            - (github.com/influxdata/telegraf.Logger).Debugf
            - (github.com/influxdata/telegraf.Logger).Infof
            - (github.com/influxdata/telegraf.Logger).Warnf
            - (github.com/influxdata/telegraf.Logger).Errorf
            - (github.com/influxdata/telegraf.Logger).Trace
            - (github.com/influxdata/telegraf.Logger).Debug
            - (github.com/influxdata/telegraf.Logger).Info
            - (github.com/influxdata/telegraf.Logger).Warn
            - (github.com/influxdata/telegraf.Logger).Error

    lll:
      # Max line length, lines longer will be reported.
      # '\t' is counted as 1 character by default, and can be changed with the tab-width option.
      # Default: 120.
      line-length: 160
      # Tab width in spaces.
      # Default: 1
      tab-width: 4

    nakedret:
      # Make an issue if func has more lines of code than this setting, and it has naked returns.
      # Default: 30
      max-func-lines: 1

    nolintlint:
      # Enable to require an explanation of nonzero length after each nolint directive.
      # Default: false
      require-explanation: true
      # Enable to require nolint directives to mention the specific linter being suppressed.
      # Default: false
      require-specific: true

    prealloc:
      # Report pre-allocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them.
      # Default: true
      simple: false

    revive:
      # Sets the default severity.
      # See https://github.com/mgechev/revive#configuration
      # Default: warning
      severity: error

      # Run `GL_DEBUG=revive golangci-lint run --enable-only=revive` to see default, all available rules, and enabled rules.
      rules:
        - name: argument-limit
          arguments: [ 6 ]
        - name: atomic
        - name: bare-return
        - name: blank-imports
        - name: bool-literal-in-expr
        - name: call-to-gc
        - name: comment-spacings
        - name: confusing-naming
        - name: confusing-results
        - name: constant-logical-expr
        - name: context-as-argument
        - name: context-keys-type
        - name: datarace
        - name: deep-exit
        - name: defer
        - name: dot-imports
        - name: duplicated-imports
        - name: early-return
        - name: empty-block
        - name: empty-lines
        - name: enforce-map-style
          exclude: [ "TEST" ]
          arguments:
            - "make"
        - name: enforce-repeated-arg-type-style
          arguments:
            - "short"
        - name: enforce-slice-style
          arguments:
            - "make"
        - name: error-naming
        - name: error-return
        - name: error-strings
        - name: errorf
        - name: exported
          exclude:
            - "**/accumulator.go"
            - "**/agent/**"
            - "**/cmd/**"
            - "**/config/**"
            - "**/filter/**"
            - "**/internal/**"
            - "**/logger/**"
            - "**/logger.go"
            - "**/metric/**"
            - "**/metric.go"
            - "**/migrations/**"
            - "**/models/**"
            - "**/persister/**"
            - "**/metric.go"
            - "**/parser.go"
            - "**/plugin.go"
            - "**/plugins/common/**"
            - "**/plugins/outputs/**"
            - "**/plugins/parsers/**"
            - "**/selfstat/**"
            - "**/serializer.go"
            - "**/testutil/**"
            - "**/tools/**"
          arguments:
            - "check-private-receivers"
            - "say-repetitive-instead-of-stutters"
            - "check-public-interface"
            - "disable-checks-on-types"
        - name: function-result-limit
          arguments: [ 3 ]
        - name: get-return
        - name: identical-branches
        - name: if-return
        - name: import-alias-naming
          arguments:
            - "^[a-z][a-z0-9_]*[a-z0-9]+$"
        - name: import-shadowing
        - name: increment-decrement
        - name: indent-error-flow
        - name: max-public-structs
          arguments: [ 5 ]
          exclude: [ "TEST" ]
        - name: modifies-parameter
        - name: modifies-value-receiver
        - name: optimize-operands-order
        - name: package-comments
        - name: range
        - name: range-val-address
        - name: range-val-in-closure
        - name: receiver-naming
        - name: redefines-builtin-id
        - name: redundant-import-alias
        - name: string-format
          arguments:
            - - 'fmt.Errorf[0],errors.New[0]'
              - '/^([^A-Z]|$)/'
              - 'Error string must not start with a capital letter.'
            - - 'fmt.Errorf[0],errors.New[0]'
              - '/(^|[^\.!?])$/'
              - 'Error string must not end in punctuation.'
            - - 'panic'
              - '/^[^\n]*$/'
              - 'Must not contain line breaks.'
        - name: string-of-int
        - name: struct-tag
        - name: superfluous-else
        - name: time-equal
        - name: time-naming
        - name: unconditional-recursion
        - name: unexported-naming
        - name: unnecessary-stmt
        - name: unreachable-code
        - name: unused-parameter
        - name: unused-receiver
        - name: var-declaration
        - name: var-naming
          arguments:
            - [ ] # AllowList
            - [ "ID", "DB", "TS" ] # DenyList
        - name: waitgroup-by-value

    staticcheck:
      # SAxxxx checks in https://staticcheck.dev/docs/configuration/options/#checks
      # Example (to disable some checks): [ "all", "-SA1000", "-SA1001"]
      # Run `GL_DEBUG=staticcheck golangci-lint run --enable=staticcheck` to see all available checks and enabled by config checks.
      # Default: ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022"]
      checks:
        - all
        # Poorly chosen identifier.
        # https://staticcheck.dev/docs/checks/#ST1003
        - -ST1003
        # Apply De Morgan's law.
        # https://staticcheck.dev/docs/checks/#QF1001
        - -QF1001
        # Convert if/else-if chain to tagged switch.
        # https://staticcheck.dev/docs/checks/#QF1003
        - -QF1003
        # Use 'strings.ReplaceAll' instead of 'strings.Replace' with 'n == -1'.
        # https://staticcheck.dev/docs/checks/#QF1004
        - -QF1004
        # Lift 'if'+'break' into loop condition.
        # https://staticcheck.dev/docs/checks/#QF1006
        - -QF1006
        # Merge conditional assignment into variable declaration.
        # https://staticcheck.dev/docs/checks/#QF1007
        - -QF1007
        # Omit embedded fields from selector expression.
        # https://staticcheck.dev/docs/checks/#QF1008
        - -QF1008
        # Use 'time.Time.Equal' instead of '==' operator.
        # https://staticcheck.dev/docs/checks/#QF1009
        - -QF1009

    testifylint:
      # Disable all checkers (https://github.com/Antonboom/testifylint#checkers).
      # Default: false
      disable-all: true
      # Enable checkers by name
      enable:
        - blank-import
        - bool-compare
        - compares
        - contains
        - empty
        - encoded-compare
        - error-is-as
        - error-nil
        - expected-actual
        - float-compare
        - formatter
        - go-require
        - len
        - negative-positive
        - nil-compare
        - regexp
        - require-error
        - suite-broken-parallel
        - suite-dont-use-pkg
        - suite-extra-assert-call
        - suite-subtest-run
        - suite-thelper
        - useless-assert

    usetesting:
      # Enable/disable `os.TempDir()` detections.
      # Default: false
      os-temp-dir: true

  # Defines a set of rules to ignore issues.
  # It does not skip the analysis, and so does not ignore "typecheck" errors.
  exclusions:
    # Mode of the generated files analysis.
    #
    # - `strict`: sources are excluded by strictly following the Go generated file convention.
    #    Source files that have lines matching only the following regular expression will be excluded: `^// Code generated .* DO NOT EDIT\.$`
    #    This line must appear before the first non-comment, non-blank text in the file.
    #    https://go.dev/s/generatedcode
    # - `lax`: sources are excluded if they contain lines like `autogenerated file`, `code generated`, `do not edit`, etc.
    # - `disable`: disable the generated files exclusion.
    #
    # Default: strict
    generated: lax

    # Excluding configuration per-path, per-linter, per-text and per-source.
    rules:
      # errcheck
      - path: cmd/telegraf/(main|printer|cmd_plugins).go
        text: "Error return value of `outputBuffer.Write` is not checked"

      - path: plugins/inputs/win_perf_counters/pdh.go
        linters:
          - errcheck

      # gosec:G101
      - path: _test\.go
        text: "Potential hardcoded credentials"

      # gosec:G404
      - path: _test\.go
        text: "Use of weak random number generator"

      # revive:max-public-structs
      - path-except: ^plugins/(aggregators|inputs|outputs|parsers|processors|serializers)/...
        text: "max-public-structs: you have exceeded the maximum number"

      # revive:var-naming
      - path: (.+)\.go$
        text: don't use an underscore in package name

      # revive:var-naming
      - path: (.*)\.go$
        text: avoid meaningless package names

      # revive:var-naming: Exclude mixed-caps packages in migrations, as these migrations are fixing the issues from before.
      - path: migrations/.*\.go$
        text: don't use MixedCaps in package name

      # revive:var-naming: Exclude check for package names that conflict with standard library package names (e.g., "net", "json", "http", "os")
      - path: (.*)\.go$
        text: conflict with Go standard library package names

      # revive:exported
      - path: (.+)\.go$
        text: exported method .*\.(Init |SampleConfig |Gather |Start |Stop |GetState |SetState |SetParser |SetParserFunc |SetTranslator |Probe |Add |Push |Reset |Serialize |SerializeBatch |Get |Set |List |GetResolver |Apply |SetSerializer )should have comment or be unexported

      # EXC0001 errcheck: Almost all programs ignore errors on these functions, and in most cases it's ok
      - path: (.+)\.go$
        text: Error return value of .((os\.)?std(out|err)\..*|.*Close.*|.*close.*|.*Flush|.*Disconnect|.*disconnect|.*Clear|os\.Remove(All)?|.*print(f|ln)?|os\.Setenv|os\.Unsetenv). is not checked

      # EXC0013 revive: Annoying issue about not having a comment. The rare codebase has such comments
      - path: (.+)\.go$
        text: package comment should be of the form "(.+)...

      # EXC0015 revive: Annoying issue about not having a comment. The rare codebase has such comments
      - path: (.+)\.go$
        text: should have a package comment

    # Which file paths to exclude: they will be analyzed, but issues from them won't be reported.
    # "/" will be replaced by the current OS file path separator to properly work on Windows.
    # Default: []
    paths:
      - plugins/parsers/influx/machine.go*

formatters:
  # Enable specific formatter.
  # Default: [] (uses standard Go formatting)
  enable:
    - gci

  # Formatters settings.
  settings:
    gci:
      # Section configuration to compare against.
      # Section names are case-insensitive and may contain parameters in ().
      # The default order of sections is `standard > default > custom > blank > dot > alias > localmodule`.
      # If `custom-order` is `true`, it follows the order of `sections` option.
      # Default: ["standard", "default"]
      sections:
        - standard                       # Standard section: captures all standard packages.
        - default                        # Default section: contains all imports that could not be matched to another section type.
        - localmodule                    # Local module section: contains all local packages. This section is not present unless explicitly enabled.

  exclusions:
    # Mode of the generated files analysis.
    #
    # - `strict`: sources are excluded by strictly following the Go generated file convention.
    #    Source files that have lines matching only the following regular expression will be excluded: `^// Code generated .* DO NOT EDIT\.$`
    #    This line must appear before the first non-comment, non-blank text in the file.
    #    https://go.dev/s/generatedcode
    # - `lax`: sources are excluded if they contain lines like `autogenerated file`, `code generated`, `do not edit`, etc.
    # - `disable`: disable the generated files exclusion.
    #
    # Default: lax
    generated: lax

issues:
  # Maximum issues count per one linter.
  # Set to 0 to disable.
  # Default: 50
  max-issues-per-linter: 0

  # Maximum count of issues with the same text.
  # Set to 0 to disable.
  # Default: 3
  max-same-issues: 0

  # Make issues output unique by line.
  # Default: true
  uniq-by-line: false

# Output configuration options.
output:
  # The formats used to render issues.
  formats:
    # Prints issues in columns representation separated by tabulations.
    tab:
      # Output path can be either `stdout`, `stderr` or path to the file to write to.
      # Default: stdout
      path: stdout

  # Order to use when sorting results.
  # Possible values: `file`, `linter`, and `severity`.
  #
  # If the severity values are inside the following list, they are ordered in this order:
  #   1. error
  #   2. warning
  #   3. high
  #   4. medium
  #   5. low
  # Either they are sorted alphabetically.
  #
  # Default: ["linter", "file"]
  sort-order:
    - file # filepath, line, and column.
    - linter

  # Show statistics per linter.
  # Default: true
  show-stats: true

severity:
  # Set the default severity for issues.
  #
  # If severity rules are defined and the issues do not match or no severity is provided to the rule
  # this will be the default severity applied.
  # Severities should match the supported severity names of the selected out format.
  # - Code climate: https://docs.codeclimate.com/docs/issues#issue-severity
  # - Checkstyle: https://checkstyle.sourceforge.io/property_types.html#SeverityLevel
  # - GitHub: https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-error-message
  # - TeamCity: https://www.jetbrains.com/help/teamcity/service-messages.html#Inspection+Instance
  #
  # `@linter` can be used as severity value to keep the severity from linters (e.g. revive, gosec, ...)
  #
  # Default: ""
  default: error


================================================
FILE: .markdownlint.jsonc
================================================
{
  "MD013": {
    "code_blocks": false,
    "tables": false,
    "heading_line_length": 90
  },
  "MD033": {
    "allowed_elements": [
      "br"
    ]
  }
}


================================================
FILE: .markdownlintignore
================================================
.github/PULL_REQUEST_TEMPLATE.md
docs/includes/*


================================================
FILE: CHANGELOG-1.13.md
================================================
<!-- markdownlint-disable MD013 MD024 -->
# Changelog v1.13 and Earlier

## v1.13.4 [2020-02-25]

### Release Notes

- Official packages now built with Go 1.13.8.

### Bug Fixes

- [#6988](https://github.com/influxdata/telegraf/issues/6988): Parse NaN values from summary types in prometheus input.
- [#6820](https://github.com/influxdata/telegraf/issues/6820): Fix pgbouncer input when used with newer pgbouncer versions.
- [#6913](https://github.com/influxdata/telegraf/issues/6913): Support up to 8192 stats in the ethtool input.
- [#7060](https://github.com/influxdata/telegraf/issues/7060): Fix perf counters collection on named instances in sqlserver input.
- [#6926](https://github.com/influxdata/telegraf/issues/6926): Use add time for prometheus expiration calculation.
- [#7057](https://github.com/influxdata/telegraf/issues/7057): Fix inconsistency with input error counting in internal input.
- [#7063](https://github.com/influxdata/telegraf/pull/7063): Use the same timestamp per call if no time is provided in prometheus input.

## v1.13.3 [2020-02-04]

### Bug Fixes

- [#5744](https://github.com/influxdata/telegraf/issues/5744): Fix kibana input with Kibana versions greater than 6.4.
- [#6960](https://github.com/influxdata/telegraf/issues/6960): Fix duplicate TrackingIDs can be returned in queue consumer plugins.
- [#6913](https://github.com/influxdata/telegraf/issues/6913): Support up to 4096 stats in the ethtool input.
- [#6973](https://github.com/influxdata/telegraf/issues/6973): Expire metrics on query in addition to on add.

## v1.13.2 [2020-01-21]

### Bug Fixes

- [#2652](https://github.com/influxdata/telegraf/issues/2652): Warn without error when processes input is started on Windows.
- [#6890](https://github.com/influxdata/telegraf/issues/6890): Only parse certificate blocks in x509_cert input.
- [#6883](https://github.com/influxdata/telegraf/issues/6883): Add custom attributes for all resource types in vsphere input.
- [#6899](https://github.com/influxdata/telegraf/pull/6899): Fix URL agent address form with udp in snmp input.
- [#6619](https://github.com/influxdata/telegraf/issues/6619): Change logic to allow recording of device fields when attributes is false.
- [#6903](https://github.com/influxdata/telegraf/issues/6903): Do not add invalid timestamps to kafka messages.
- [#6906](https://github.com/influxdata/telegraf/issues/6906): Fix json_strict option and set default of true.

## v1.13.1 [2020-01-08]

### Bug Fixes

- [#6788](https://github.com/influxdata/telegraf/issues/6788): Fix ServerProperty query stops working on Azure after failover.
- [#6803](https://github.com/influxdata/telegraf/pull/6803): Add leading period to OID in SNMP v1 generic traps.
- [#6823](https://github.com/influxdata/telegraf/pull/6823): Fix missing config fields in prometheus serializer.
- [#6694](https://github.com/influxdata/telegraf/issues/6694): Fix panic on connection loss with undelivered messages in mqtt_consumer.
- [#6679](https://github.com/influxdata/telegraf/issues/6679): Encode query hash fields as hex strings in sqlserver input.
- [#6345](https://github.com/influxdata/telegraf/issues/6345): Invalidate diskio cache if the metadata mtime has changed.
- [#6800](https://github.com/influxdata/telegraf/issues/6800): Show platform not supported warning only on plugin creation.
- [#6814](https://github.com/influxdata/telegraf/issues/6814): Fix rabbitmq cannot complete gather after request error.
- [#6846](https://github.com/influxdata/telegraf/issues/6846): Fix /sbin/init --version executed on Telegraf startup.
- [#6847](https://github.com/influxdata/telegraf/issues/6847): Use last path element as field key if path fully specified in cisco_telemetry_gnmi input.

## v1.13 [2019-12-12]

### Release Notes

- Official packages built with Go 1.13.5.  This affects the minimum supported
  version on several platforms, most notably requiring Windows 7 (2008 R2) or
  later.  For details, check the release notes for Go
  [ports](https://golang.org/doc/go1.13#ports).
- The `prometheus` input and `prometheus_client` output have a new mapping to
  and from Telegraf metrics, which can be enabled by setting `metric_version = 2`.
  The original mapping is deprecated.  When both plugins have the same setting,
  passthrough metrics will be unchanged.  Refer to the `prometheus` input for
  details about the mapping.

### New Inputs

- [azure_storage_queue](/plugins/inputs/azure_storage_queue/README.md) - Contributed by @mjiderhamn
- [ethtool](/plugins/inputs/ethtool/README.md) - Contributed by @philippreston
- [snmp_trap](/plugins/inputs/snmp_trap/README.md) - Contributed by @influxdata
- [suricata](/plugins/inputs/suricata/README.md) - Contributed by @satta
- [synproxy](/plugins/inputs/synproxy/README.md) - Contributed by @rfrenayworldstream
- [systemd_units](/plugins/inputs/systemd_units/README.md) - Contributed by @benschweizer

### New Processors

- [clone](/plugins/processors/clone/README.md) - Contributed by @adrianlzt

### New Aggregators

- [merge](/plugins/aggregators/merge/README.md) - Contributed by @influxdata

### Features

- [#6326](https://github.com/influxdata/telegraf/pull/5842): Add per node memory stats to rabbitmq input.
- [#6361](https://github.com/influxdata/telegraf/pull/6361): Add ability to read query from file to postgresql_extensible input.
- [#5921](https://github.com/influxdata/telegraf/pull/5921): Add replication metrics to the redis input.
- [#6177](https://github.com/influxdata/telegraf/pull/6177): Support NX-OS telemetry extensions in cisco_telemetry_mdt.
- [#6415](https://github.com/influxdata/telegraf/pull/6415): Allow graphite parser to create Inf and NaN values.
- [#6434](https://github.com/influxdata/telegraf/pull/6434): Use prefix base detection for ints in grok parser.
- [#6465](https://github.com/influxdata/telegraf/pull/6465): Add more performance counter metrics to sqlserver input.
- [#6476](https://github.com/influxdata/telegraf/pull/6476): Add millisecond unix time support to grok parser.
- [#6473](https://github.com/influxdata/telegraf/pull/6473): Add container id as optional source tag to docker and docker_log input.
- [#6504](https://github.com/influxdata/telegraf/pull/6504): Add lang parameter to OpenWeathermap input plugin.
- [#6540](https://github.com/influxdata/telegraf/pull/6540): Log file open errors at debug level in tail input.
- [#6553](https://github.com/influxdata/telegraf/pull/6553): Add timeout option to cloudwatch input.
- [#6549](https://github.com/influxdata/telegraf/pull/6549): Support custom success codes in http input.
- [#6530](https://github.com/influxdata/telegraf/pull/6530): Improve ipvs input error strings and logging.
- [#6532](https://github.com/influxdata/telegraf/pull/6532): Add strict mode to JSON parser that can be disable to ignore invalid items.
- [#6543](https://github.com/influxdata/telegraf/pull/6543): Add support for Kubernetes 1.16 and remove deprecated API usage.
- [#6283](https://github.com/influxdata/telegraf/pull/6283): Add gathering of RabbitMQ federation link metrics.
- [#6356](https://github.com/influxdata/telegraf/pull/6356): Add bearer token defaults for Kubernetes plugins.
- [#5870](https://github.com/influxdata/telegraf/pull/5870): Add support for SNMP over TCP.
- [#6603](https://github.com/influxdata/telegraf/pull/6603): Add support for per output flush jitter.
- [#6650](https://github.com/influxdata/telegraf/pull/6650): Add a nameable file tag to file input plugin.
- [#6640](https://github.com/influxdata/telegraf/pull/6640): Add Splunk MultiMetric support.
- [#6680](https://github.com/influxdata/telegraf/pull/6668): Add support for sending HTTP Basic Auth in influxdb input
- [#5767](https://github.com/influxdata/telegraf/pull/5767): Add ability to configure the url tag in the prometheus input.
- [#5767](https://github.com/influxdata/telegraf/pull/5767): Add prometheus metric_version=2 mapping to internal metrics/line protocol.
- [#6703](https://github.com/influxdata/telegraf/pull/6703): Add prometheus metric_version=2 support to prometheus_client output.
- [#6660](https://github.com/influxdata/telegraf/pull/6660): Add content_encoding compression support to socket_listener.
- [#6689](https://github.com/influxdata/telegraf/pull/6689): Add high resolution metrics support to CloudWatch output.
- [#6716](https://github.com/influxdata/telegraf/pull/6716): Add SReclaimable and SUnreclaim to mem input.
- [#6695](https://github.com/influxdata/telegraf/pull/6695): Allow multiple certificates per file in x509_cert input.
- [#6686](https://github.com/influxdata/telegraf/pull/6686): Add additional tags to the x509 input.
- [#6703](https://github.com/influxdata/telegraf/pull/6703): Add batch data format support to file output.
- [#6688](https://github.com/influxdata/telegraf/pull/6688): Support partition assignment strategy configuration in kafka_consumer.
- [#6731](https://github.com/influxdata/telegraf/pull/6731): Add node type tag to mongodb input.
- [#6669](https://github.com/influxdata/telegraf/pull/6669): Add uptime_ns field to mongodb input.
- [#6735](https://github.com/influxdata/telegraf/pull/6735): Support resolution of symlinks in filecount input.
- [#6746](https://github.com/influxdata/telegraf/pull/6746): Set message timestamp to the metric time in kafka output.
- [#6740](https://github.com/influxdata/telegraf/pull/6740): Add base64decode operation to string processor.
- [#6790](https://github.com/influxdata/telegraf/pull/6790): Add option to control collecting global variables to mysql input.

### Bug Fixes

- [#6484](https://github.com/influxdata/telegraf/issues/6484): Show correct default settings in mysql sample config.
- [#6583](https://github.com/influxdata/telegraf/issues/6583): Use 1h or 3h rain values as appropriate in openweathermap input.
- [#6573](https://github.com/influxdata/telegraf/issues/6573): Fix not a valid field error in Windows with nvidia input.
- [#6614](https://github.com/influxdata/telegraf/issues/6614): Fix influxdb output serialization on connection closed.
- [#6690](https://github.com/influxdata/telegraf/issues/6690): Fix ping skips remaining hosts after dns lookup error.
- [#6684](https://github.com/influxdata/telegraf/issues/6684): Log mongodb oplog auth errors at debug level.
- [#6705](https://github.com/influxdata/telegraf/issues/6705): Remove trailing underscore trimming from json flattener.
- [#6421](https://github.com/influxdata/telegraf/issues/6421): Revert change causing cpu usage to be capped at 100 percent.
- [#6523](https://github.com/influxdata/telegraf/issues/6523): Accept any media type in the prometheus input.
- [#6769](https://github.com/influxdata/telegraf/issues/6769): Fix unix socket dial arguments in uwsgi input.
- [#6757](https://github.com/influxdata/telegraf/issues/6757): Replace colon chars in prometheus output labels with metric_version=1.
- [#6773](https://github.com/influxdata/telegraf/issues/6773): Set TrimLeadingSpace when TrimSpace is on in csv parser.

## v1.12.6 [2019-11-19]

### Bug Fixes

- [#6666](https://github.com/influxdata/telegraf/issues/6666): Fix many plugin errors are logged at debug logging level.
- [#6652](https://github.com/influxdata/telegraf/issues/6652): Use nanosecond precision in docker_log input.
- [#6642](https://github.com/influxdata/telegraf/issues/6642): Fix interface option with method = native in ping input.
- [#6680](https://github.com/influxdata/telegraf/pull/6680): Fix panic in mongodb input if shard connection pool stats are unreadable.

## v1.12.5 [2019-11-12]

### Bug Fixes

- [#6576](https://github.com/influxdata/telegraf/issues/6576): Fix incorrect results in ping input plugin.
- [#6610](https://github.com/influxdata/telegraf/pull/6610): Add missing character replacement to sql_instance tag.
- [#6337](https://github.com/influxdata/telegraf/issues/6337): Change no metric error message to debug level in cloudwatch input.
- [#6602](https://github.com/influxdata/telegraf/issues/6602): Add missing ServerProperties query to sqlserver input docs.
- [#6643](https://github.com/influxdata/telegraf/pull/6643): Fix mongodb connections_total_created field loading.
- [#6627](https://github.com/influxdata/telegraf/issues/6578): Fix metric creation when node is offline in jenkins input.
- [#6649](https://github.com/influxdata/telegraf/issues/6615): Fix docker uptime_ns calculation when container has been restarted.
- [#6647](https://github.com/influxdata/telegraf/issues/6646): Fix mysql field type conflict in conversion of gtid_mode to an integer.
- [#5529](https://github.com/influxdata/telegraf/issues/5529): Fix mysql field type conflict with ssl_verify_depth and ssl_ctx_verify_depth.

## v1.12.4 [2019-10-23]

### Release Notes

- Official packages built with Go 1.12.12.

### Bug Fixes

- [#6521](https://github.com/influxdata/telegraf/issues/6521): Fix metric generation with ping input native method.
- [#6541](https://github.com/influxdata/telegraf/issues/6541): Exclude alias tag if unset from plugin internal stats.
- [#6564](https://github.com/influxdata/telegraf/issues/6564): Fix socket_mode option in powerdns_recursor input.

## v1.12.3 [2019-10-07]

### Bug Fixes

- [#6445](https://github.com/influxdata/telegraf/issues/6445): Use batch serialization format in exec output.
- [#6455](https://github.com/influxdata/telegraf/issues/6455): Build official packages with Go 1.12.10.
- [#6464](https://github.com/influxdata/telegraf/pull/6464): Use case insensitive serial number match in smart input.
- [#6469](https://github.com/influxdata/telegraf/pull/6469): Add auth header only when env var is set.
- [#6468](https://github.com/influxdata/telegraf/pull/6468): Fix running multiple mysql and sqlserver plugin instances.
- [#6471](https://github.com/influxdata/telegraf/issues/6471): Fix database routing on retry with exclude_database_tag.
- [#6488](https://github.com/influxdata/telegraf/issues/6488): Fix logging panic in exec input with nagios data format.

## v1.12.2 [2019-09-24]

### Bug Fixes

- [#6386](https://github.com/influxdata/telegraf/issues/6386): Fix detection of layout timestamps in csv and json parser.
- [#6394](https://github.com/influxdata/telegraf/issues/6394): Fix parsing of BATTDATE in apcupsd input.
- [#6398](https://github.com/influxdata/telegraf/issues/6398): Keep boolean values listed in json_string_fields.
- [#6393](https://github.com/influxdata/telegraf/issues/6393): Disable Go plugin support in official builds.
- [#6391](https://github.com/influxdata/telegraf/issues/6391): Fix path handling issues in cisco_telemetry_gnmi.

## v1.12.1 [2019-09-10]

### Bug Fixes

- [#6344](https://github.com/influxdata/telegraf/issues/6344): Fix depends on GLIBC_2.14 symbol version.
- [#6329](https://github.com/influxdata/telegraf/issues/6329): Fix filecount for paths with trailing slash.
- [#6331](https://github.com/influxdata/telegraf/issues/6331): Convert check state to an integer in icinga2 input.
- [#6354](https://github.com/influxdata/telegraf/issues/6354): Fix could not mark message delivered error in kafka_consumer.
- [#6362](https://github.com/influxdata/telegraf/issues/6362): Skip collection stats when disabled in mongodb input.
- [#6366](https://github.com/influxdata/telegraf/issues/6366): Fix error reading closed response body on redirect in http_response.
- [#6373](https://github.com/influxdata/telegraf/issues/6373): Fix apcupsd documentation to reflect plugin.
- [#6375](https://github.com/influxdata/telegraf/issues/6375): Display retry log message only when retry after is received.

## v1.12 [2019-09-03]

### Release Notes

- The cluster health related fields in the elasticsearch input have been split
  out from the `elasticsearch_indices` measurement into the new
  `elasticsearch_cluster_health_indices` measurement as they were originally
  combined by error.

### New Inputs

- [apcupsd](/plugins/inputs/apcupsd/README.md) - Contributed by @jonaz
- [docker_log](/plugins/inputs/docker_log/README.md) - Contributed by @prashanthjbabu
- [fireboard](/plugins/inputs/fireboard/README.md) - Contributed by @ronnocol
- [logstash](/plugins/inputs/logstash/README.md) - Contributed by @lkmcs @dmitryilyin @arkady-emelyanov
- [marklogic](/plugins/inputs/marklogic/README.md) - Contributed by @influxdata
- [openntpd](/plugins/inputs/openntpd/README.md) - Contributed by @aromeyer
- [uwsgi](/plugins/inputs/uwsgi/README.md) - Contributed by @blaggacao

### New Parsers

- [form_urlencoded](/plugins/parsers/form_urlencoded/README.md) - Contributed by @byonchev

### New Processors

- [date](/plugins/processors/date/README.md) - Contributed by @influxdata
- [pivot](/plugins/processors/pivot/README.md) - Contributed by @influxdata
- [tag_limit](/plugins/processors/tag_limit/README.md) - Contributed by @memory
- [unpivot](/plugins/processors/unpivot/README.md) - Contributed by @influxdata

### New Outputs

- [exec](/plugins/outputs/exec/README.md) - Contributed by @Jaeyo

### Features

- [#5842](https://github.com/influxdata/telegraf/pull/5842): Improve performance of wavefront serializer.
- [#5863](https://github.com/influxdata/telegraf/pull/5863): Allow regex processor to append tag values.
- [#5997](https://github.com/influxdata/telegraf/pull/5997): Add starttime field to phpfpm input.
- [#5998](https://github.com/influxdata/telegraf/pull/5998): Add cluster name tag to elasticsearch indices.
- [#6006](https://github.com/influxdata/telegraf/pull/6006): Add support for interface field in http_response input plugin.
- [#5996](https://github.com/influxdata/telegraf/pull/5996): Add container uptime_ns in docker input plugin.
- [#6016](https://github.com/influxdata/telegraf/pull/6016): Add better user-facing errors for API timeouts in docker input.
- [#6027](https://github.com/influxdata/telegraf/pull/6027): Add TLS mutual auth support to jti_openconfig_telemetry input.
- [#6053](https://github.com/influxdata/telegraf/pull/6053): Add support for ES 7.x to elasticsearch output.
- [#6062](https://github.com/influxdata/telegraf/pull/6062): Add basic auth to prometheus input plugin.
- [#6064](https://github.com/influxdata/telegraf/pull/6064): Add node roles tag to elasticsearch input.
- [#5572](https://github.com/influxdata/telegraf/pull/5572): Support floats in statsd percentiles.
- [#6050](https://github.com/influxdata/telegraf/pull/6050): Add native Go ping method to ping input plugin.
- [#6074](https://github.com/influxdata/telegraf/pull/6074): Resume from last known offset in tail inputwhen reloading Telegraf.
- [#6111](https://github.com/influxdata/telegraf/pull/6111): Add improved support for Azure SQL Database to sqlserver input.
- [#6079](https://github.com/influxdata/telegraf/pull/6079): Add extra attributes for NVMe devices to smart input.
- [#6084](https://github.com/influxdata/telegraf/pull/6084): Add docker_devicemapper measurement to docker input plugin.
- [#6122](https://github.com/influxdata/telegraf/pull/6122): Add basic auth support to elasticsearch input.
- [#6102](https://github.com/influxdata/telegraf/pull/6102): Support string field glob matching in json parser.
- [#6101](https://github.com/influxdata/telegraf/pull/6101): Update gjson to allow multipath syntax in json parser.
- [#6144](https://github.com/influxdata/telegraf/pull/6144): Add support for collecting SQL Requests to identify waits and blocking to sqlserver input.
- [#6105](https://github.com/influxdata/telegraf/pull/6105): Collect k8s endpoints, ingress, and services in kube_inventory plugin.
- [#6129](https://github.com/influxdata/telegraf/pull/6129): Add support for field/tag keys to strings processor.
- [#6143](https://github.com/influxdata/telegraf/pull/6143): Add certificate verification status to x509_cert input.
- [#6163](https://github.com/influxdata/telegraf/pull/6163): Support percentage value parsing in redis input.
- [#6024](https://github.com/influxdata/telegraf/pull/6024): Load external Go plugins from --plugin-directory.
- [#6184](https://github.com/influxdata/telegraf/pull/6184): Add ability to exclude db/bucket tag from influxdb outputs.
- [#6137](https://github.com/influxdata/telegraf/pull/6137): Gather per collections stats in mongodb input plugin.
- [#6195](https://github.com/influxdata/telegraf/pull/6195): Add TLS & credentials configuration for nats_consumer input plugin.
- [#6194](https://github.com/influxdata/telegraf/pull/6194): Add support for enterprise repos to github plugin.
- [#6060](https://github.com/influxdata/telegraf/pull/6060): Add Indices stats to elasticsearch input.
- [#6189](https://github.com/influxdata/telegraf/pull/6189): Add left function to string processor.
- [#6049](https://github.com/influxdata/telegraf/pull/6049): Add grace period for metrics late for aggregation.
- [#4435](https://github.com/influxdata/telegraf/pull/4435): Add diff and non_negative_diff to basicstats aggregator.
- [#6201](https://github.com/influxdata/telegraf/pull/6201): Add device tags to smart_attributes.
- [#5719](https://github.com/influxdata/telegraf/pull/5719): Collect framework_offers and allocator metrics in mesos input.
- [#6216](https://github.com/influxdata/telegraf/pull/6216): Add telegraf and go version to the internal input plugin.
- [#6214](https://github.com/influxdata/telegraf/pull/6214): Update the number of logical CPUs dynamically in system plugin.
- [#6259](https://github.com/influxdata/telegraf/pull/6259): Add darwin (macOS) builds to the release.
- [#6241](https://github.com/influxdata/telegraf/pull/6241): Add configurable timeout setting to smart input.
- [#6249](https://github.com/influxdata/telegraf/pull/6249): Add memory_usage field to procstat input plugin.
- [#5971](https://github.com/influxdata/telegraf/pull/5971): Add support for custom attributes to vsphere input.
- [#5926](https://github.com/influxdata/telegraf/pull/5926): Add cmdstat metrics to redis input.
- [#6261](https://github.com/influxdata/telegraf/pull/6261): Add content_length metric to http_response input plugin.
- [#6257](https://github.com/influxdata/telegraf/pull/6257): Add database_tag option to influxdb_listener to add database from query string.
- [#6246](https://github.com/influxdata/telegraf/pull/6246): Add capability to limit TLS versions and cipher suites.
- [#6266](https://github.com/influxdata/telegraf/pull/6266): Add topic_tag option to mqtt_consumer.
- [#6207](https://github.com/influxdata/telegraf/pull/6207): Add ability to label inputs for logging.
- [#6300](https://github.com/influxdata/telegraf/pull/6300): Add TLS support to nginx_plus, nginx_plus_api and nginx_vts.

### Bug Fixes

- [#5692](https://github.com/influxdata/telegraf/issues/5692): Fix sensor read error stops reporting of all sensors in temp input.
- [#4356](https://github.com/influxdata/telegraf/issues/4356): Fix double pct replacement in sysstat input.
- [#6004](https://github.com/influxdata/telegraf/issues/6004): Fix race in master node detection in elasticsearch input.
- [#6100](https://github.com/influxdata/telegraf/issues/6100): Fix SSPI authentication not working in sqlserver input.
- [#6142](https://github.com/influxdata/telegraf/issues/6142): Fix memory error panic in mqtt input.
- [#6136](https://github.com/influxdata/telegraf/issues/6136): Support Kafka 2.3.0 consumer groups.
- [#6232](https://github.com/influxdata/telegraf/issues/6232): Fix persistent session in mqtt_consumer.
- [#6235](https://github.com/influxdata/telegraf/issues/6235): Fix finder inconsistencies in vsphere input.
- [#6138](https://github.com/influxdata/telegraf/issues/6138): Fix parsing multiple metrics on the first line of tailed file.
- [#2526](https://github.com/influxdata/telegraf/issues/2526): Send TERM to exec processes before sending KILL signal.
- [#5326](https://github.com/influxdata/telegraf/issues/5326): Query oplog only when connected to a replica set.
- [#6317](https://github.com/influxdata/telegraf/pull/6317): Use environment variables to locate Program Files on Windows.

## v1.11.5 [2019-08-27]

### Bug Fixes

- [#6250](https://github.com/influxdata/telegraf/pull/6250): Update go-sql-driver/mysql driver to 1.4.1 to address auth issues.
- [#6279](https://github.com/influxdata/telegraf/issues/6279): Return error status from --test if input plugins produce an error.
- [#6309](https://github.com/influxdata/telegraf/issues/6309): Fix with multiple instances only last configuration is used in smart input.
- [#6303](https://github.com/influxdata/telegraf/pull/6303): Build official packages with Go 1.12.9.
- [#6234](https://github.com/influxdata/telegraf/issues/6234): Split out -w argument in iptables input.
- [#6270](https://github.com/influxdata/telegraf/issues/6270): Add support for parked process state on Linux.
- [#6287](https://github.com/influxdata/telegraf/issues/6287): Remove leading slash from rcon command.
- [#6313](https://github.com/influxdata/telegraf/pull/6313): Allow jobs with dashes in the name in lustre2 input.

## v1.11.4 [2019-08-06]

### Bug Fixes

- [#6200](https://github.com/influxdata/telegraf/pull/6200): Correct typo in kubernetes logsfs_available_bytes field.
- [#6191](https://github.com/influxdata/telegraf/issues/6191): Skip floats that are NaN or Inf in Datadog output.
- [#6209](https://github.com/influxdata/telegraf/issues/6209): Fix reload panic in socket_listener input plugin.

## v1.11.3 [2019-07-23]

### Bug Fixes

- [#6054](https://github.com/influxdata/telegraf/issues/6054): Fix unable to reconnect after vCenter reboot in vsphere input.
- [#6073](https://github.com/influxdata/telegraf/issues/6073): Handle unknown error in nvidia-smi output.
- [#6121](https://github.com/influxdata/telegraf/pull/6121): Fix panic in statd input when processing datadog events.
- [#6125](https://github.com/influxdata/telegraf/issues/6125): Treat empty array as successful parse in json parser.
- [#6094](https://github.com/influxdata/telegraf/issues/6094): Add missing rcode and zonestat to bind input.
- [#6114](https://github.com/influxdata/telegraf/issues/6114): Fix lustre2 input plugin config parse regression.
- [#5894](https://github.com/influxdata/telegraf/issues/5894): Fix template pattern partial wildcard matching.
- [#6151](https://github.com/influxdata/telegraf/issues/6151): Fix panic in github input.

## v1.11.2 [2019-07-09]

### Bug Fixes

- [#6056](https://github.com/influxdata/telegraf/pull/6056): Fix source address ping flag on BSD.
- [#6059](https://github.com/influxdata/telegraf/issues/6059): Fix value out of range error on 32-bit systems in bind input.
- [#3573](https://github.com/influxdata/telegraf/issues/3573): Fix tail and logparser stop working after reload.
- [#6077](https://github.com/influxdata/telegraf/pull/6077): Fix filecount path separator handling in Windows.
- [#6075](https://github.com/influxdata/telegraf/issues/6075): Fix panic with empty datadog tag string.
- [#6069](https://github.com/influxdata/telegraf/issues/6069): Apply topic filter to partition metrics in burrow input.

## v1.11.1 [2019-06-25]

### Bug Fixes

- [#5980](https://github.com/influxdata/telegraf/issues/5980): Cannot set mount_points option in disk input.
- [#5983](https://github.com/influxdata/telegraf/issues/5983): Omit keys when creating measurement names for GNMI telemetry.
- [#5972](https://github.com/influxdata/telegraf/issues/5972): Don't consider pid of 0 when using systemd lookup in procstat.
- [#5807](https://github.com/influxdata/telegraf/issues/5807): Skip 404 error reporting in nginx_plus_api input.
- [#5999](https://github.com/influxdata/telegraf/issues/5999): Fix panic if pool_mode column does not exist.
- [#6019](https://github.com/influxdata/telegraf/issues/6019): Add missing container_id field to docker_container_status metrics.
- [#5742](https://github.com/influxdata/telegraf/issues/5742): Ignore error when utmp is missing in system input.
- [#6032](https://github.com/influxdata/telegraf/issues/6032): Add device, serial_no, and wwn tags to synthetic attributes.
- [#6012](https://github.com/influxdata/telegraf/issues/6012): Fix parsing of remote tcp address in statsd input.

## v1.11 [2019-06-11]

### Release Notes

- The `uptime_format` field in the system input has been deprecated, use the
  `uptime` field instead.
- The `cloudwatch` input has been updated to use a more efficient API, it now
  requires `GetMetricData` permissions instead of `GetMetricStatistics`.  The
  `units` tag is not available from this API and is no longer collected.

### New Inputs

- [bind](/plugins/inputs/bind/README.md) - Contributed by @dswarbrick & @danielllek
- [cisco_telemetry_gnmi](/plugins/inputs/cisco_telemetry_gnmi/README.md) - Contributed by @sbyx
- [cisco_telemetry_mdt](/plugins/inputs/cisco_telemetry_mdt/README.md) - Contributed by @sbyx
- [ecs](/plugins/inputs/ecs/README.md) - Contributed by @rbtr
- [github](/plugins/inputs/github/README.md) - Contributed by @influxdata
- [openweathermap](/plugins/inputs/openweathermap/README.md) - Contributed by @regel
- [powerdns_recursor](/plugins/inputs/powerdns_recursor/README.md) - Contributed by @dupondje

### New Aggregators

- [final](/plugins/aggregators/final/README.md) - Contributed by @oplehto

### New Outputs

- [syslog](/plugins/outputs/syslog/README.md) - Contributed by @javicrespo
- [health](/plugins/outputs/health/README.md) - Contributed by @influxdata

### New Serializers

- [wavefront](/plugins/serializers/wavefront/README.md) - Contributed by @puckpuck

### Features

- [#5556](https://github.com/influxdata/telegraf/pull/5556): Add TTL field to ping input.
- [#5569](https://github.com/influxdata/telegraf/pull/5569): Add hexadecimal string to integer conversion to converter processor.
- [#5601](https://github.com/influxdata/telegraf/pull/5601): Add support for multiple line text and perfdata to nagios parser.
- [#5648](https://github.com/influxdata/telegraf/pull/5648): Allow env vars ${} expansion syntax in configuration file.
- [#5641](https://github.com/influxdata/telegraf/pull/5641): Add option to reset buckets on flush to histogram aggregator.
- [#5664](https://github.com/influxdata/telegraf/pull/5664): Add option to use strict sanitization rules to wavefront output.
- [#5697](https://github.com/influxdata/telegraf/pull/5697): Add namespace restriction to prometheus input plugin.
- [#5681](https://github.com/influxdata/telegraf/pull/5681): Add cmdline tag to procstat input.
- [#5704](https://github.com/influxdata/telegraf/pull/5704): Support verbose query param in ping endpoint of influxdb_listener.
- [#5713](https://github.com/influxdata/telegraf/pull/5713): Enhance HTTP connection options for phpfpm input plugin.
- [#5544](https://github.com/influxdata/telegraf/pull/5544): Use more efficient GetMetricData API to collect cloudwatch metrics.
- [#5544](https://github.com/influxdata/telegraf/pull/5544): Allow selection of collected statistic types in cloudwatch input.
- [#5757](https://github.com/influxdata/telegraf/pull/5757): Speed up interface stat collection in net input.
- [#5769](https://github.com/influxdata/telegraf/pull/5769): Add pagefault data to procstat input plugin.
- [#5760](https://github.com/influxdata/telegraf/pull/5760): Add option to set permissions for unix domain sockets to socket_listener.
- [#5585](https://github.com/influxdata/telegraf/pull/5585): Add cli support for outputting sections of the config.
- [#5770](https://github.com/influxdata/telegraf/pull/5770): Add service-display-name option for use with Windows service.
- [#5778](https://github.com/influxdata/telegraf/pull/5778): Add support for log rotation.
- [#5765](https://github.com/influxdata/telegraf/pull/5765): Support more drive types in smart input.
- [#5829](https://github.com/influxdata/telegraf/pull/5829): Add support for HTTP basic auth to solr input.
- [#5791](https://github.com/influxdata/telegraf/pull/5791): Add support for datadog events to statsd input.
- [#5817](https://github.com/influxdata/telegraf/pull/5817): Allow devices option to match against devlinks.
- [#5855](https://github.com/influxdata/telegraf/pull/5855): Support tags in enum processor.
- [#5830](https://github.com/influxdata/telegraf/pull/5830): Add support for gzip compression to amqp plugins.
- [#5831](https://github.com/influxdata/telegraf/pull/5831): Support passive queue declaration in amqp_consumer.
- [#5901](https://github.com/influxdata/telegraf/pull/5901): Set user agent in stackdriver output.
- [#5885](https://github.com/influxdata/telegraf/pull/5885): Extend metrics collected from Nvidia GPUs.
- [#5547](https://github.com/influxdata/telegraf/pull/5547): Add file rotation support to the file output.
- [#5955](https://github.com/influxdata/telegraf/pull/5955): Add source tag to hddtemp plugin.

### Bug Fixes

- [#5692](https://github.com/influxdata/telegraf/pull/5692): Temperature input plugin stops working when WiFi is turned off.
- [#5631](https://github.com/influxdata/telegraf/pull/5631): Create Windows service only when specified or in service manager.
- [#5730](https://github.com/influxdata/telegraf/pull/5730): Don't start telegraf when stale pidfile found.
- [#5477](https://github.com/influxdata/telegraf/pull/5477): Support Minecraft server 1.13 and newer in minecraft input.
- [#4098](https://github.com/influxdata/telegraf/issues/4098): Fix inline table support in configuration file.
- [#1598](https://github.com/influxdata/telegraf/issues/1598): Fix multi-line basic strings support in configuration file.
- [#5746](https://github.com/influxdata/telegraf/issues/5746): Verify a process passed by pid_file exists in procstat input.
- [#5455](https://github.com/influxdata/telegraf/issues/5455): Fix unsupported pkt type error in pgbouncer.
- [#5771](https://github.com/influxdata/telegraf/pull/5771): Fix only one job per storage target reported in lustre2 input.
- [#5796](https://github.com/influxdata/telegraf/issues/5796): Set default timeout of 5s in fibaro input.
- [#5835](https://github.com/influxdata/telegraf/issues/5835): Fix docker input does not parse image name correctly.
- [#5661](https://github.com/influxdata/telegraf/issues/5661): Fix direct exchange routing key in amqp output.
- [#5819](https://github.com/influxdata/telegraf/issues/5819): Fix scale set resource id with azure_monitor output.
- [#5883](https://github.com/influxdata/telegraf/issues/5883): Skip invalid power times in apex_neptune input.
- [#3485](https://github.com/influxdata/telegraf/issues/3485): Fix sqlserver connection closing on error.
- [#5917](https://github.com/influxdata/telegraf/issues/5917): Fix toml option name in nginx_upstream_check.
- [#5920](https://github.com/influxdata/telegraf/issues/5920): Fixed datastore name mapping in vsphere input.
- [#5879](https://github.com/influxdata/telegraf/issues/5879): Fix multiple SIGHUP causes Telegraf to shutdown.
- [#5891](https://github.com/influxdata/telegraf/issues/5891): Fix connection leak in influxdb outputs on reload.
- [#5858](https://github.com/influxdata/telegraf/issues/5858): Fix batch fails when single metric is unserializable.
- [#5536](https://github.com/influxdata/telegraf/issues/5536): Log a warning on write if the metric buffer has overflowed.

## v1.10.4 [2019-05-14]

### Bug Fixes

- [#5764](https://github.com/influxdata/telegraf/pull/5764): Fix race condition in the Wavefront parser.
- [#5783](https://github.com/influxdata/telegraf/pull/5783): Create telegraf user in pre-install rpm scriptlet.
- [#5792](https://github.com/influxdata/telegraf/pull/5792): Don't discard metrics on forbidden error in influxdb_v2 output.
- [#5803](https://github.com/influxdata/telegraf/issues/5803): Fix http output cannot set Host header.
- [#5619](https://github.com/influxdata/telegraf/issues/5619): Fix interval estimation in vsphere input.
- [#5782](https://github.com/influxdata/telegraf/pull/5782): Skip lines with missing refid in ntpq input.
- [#5755](https://github.com/influxdata/telegraf/issues/5755): Add support for hex values to ipmi_sensor input.
- [#5824](https://github.com/influxdata/telegraf/issues/5824): Fix parse of unix timestamp with more than ns precision.
- [#5836](https://github.com/influxdata/telegraf/issues/5836): Restore field name case in interrupts input.

## v1.10.3 [2019-04-16]

### Bug Fixes

- [#5680](https://github.com/influxdata/telegraf/pull/5680): Allow colons in metric names in prometheus_client output.
- [#5716](https://github.com/influxdata/telegraf/pull/5716): Set log directory attributes in rpm spec.

## v1.10.2 [2019-04-02]

### Release Notes

- String fields no longer have leading and trailing quotation marks removed in
  the grok parser.  If you are capturing quoted strings you may need to update
  the patterns.

### Bug Fixes

- [#5612](https://github.com/influxdata/telegraf/pull/5612): Fix deadlock when Telegraf is aligning aggregators.
- [#5523](https://github.com/influxdata/telegraf/issues/5523): Fix missing cluster stats in ceph input.
- [#5566](https://github.com/influxdata/telegraf/pull/5566): Fix reading major and minor block devices identifiers in diskio input.
- [#5607](https://github.com/influxdata/telegraf/pull/5607): Add owned directories to rpm package spec.
- [#4998](https://github.com/influxdata/telegraf/issues/4998): Fix last character removed from string field in grok parser.
- [#5632](https://github.com/influxdata/telegraf/pull/5632): Fix drop tracking of metrics removed with aggregator drop_original.
- [#5540](https://github.com/influxdata/telegraf/pull/5540): Fix open file error handling in file output.
- [#5626](https://github.com/influxdata/telegraf/issues/5626): Fix plugin name in influxdb_v2 output logging.
- [#5621](https://github.com/influxdata/telegraf/issues/5621): Fix basedir check and parent dir extraction in filecount input.
- [#5618](https://github.com/influxdata/telegraf/issues/5618): Listen before leaving start in statsd.
- [#5595](https://github.com/influxdata/telegraf/issues/5595): Fix aggregator window alignment.
- [#5637](https://github.com/influxdata/telegraf/issues/5637): Fix panic during shutdown of multiple aggregators.
- [#5642](https://github.com/influxdata/telegraf/issues/5642): Fix parsing of kube config certificate-authority-data in prometheus input.
- [#5636](https://github.com/influxdata/telegraf/issues/5636): Fix tags applied to wrong metric on parse error.
- [#5522](https://github.com/influxdata/telegraf/issues/5522): Remove tags that would create invalid label names in prometheus output.

## v1.10.1 [2019-03-19]

### Bug Fixes

- [#5448](https://github.com/influxdata/telegraf/issues/5448): Show error when TLS configuration cannot be loaded.
- [#5543](https://github.com/influxdata/telegraf/pull/5543): Add Base64-encoding/decoding for Google Cloud PubSub plugins.
- [#5565](https://github.com/influxdata/telegraf/issues/5565): Fix type compatibility in vsphere plugin with use_int_samples option.
- [#5492](https://github.com/influxdata/telegraf/issues/5492): Fix vsphere input shows failed task in vCenter.
- [#5530](https://github.com/influxdata/telegraf/issues/5530): Fix invalid measurement name and skip column in csv parser.
- [#5589](https://github.com/influxdata/telegraf/issues/5589): Fix system input causing high cpu usage on Raspbian.
- [#5575](https://github.com/influxdata/telegraf/issues/5575): Don't add empty healthcheck tags to consul input.

## v1.10 [2019-03-05]

### New Inputs

- [cloud_pubsub](/plugins/inputs/cloud_pubsub/README.md) - Contributed by @emilymye
- [cloud_pubsub_push](/plugins/inputs/cloud_pubsub_push/README.md) - Contributed by @influxdata
- [kinesis_consumer](/plugins/inputs/kinesis_consumer/README.md) - Contributed by @influxdata
- [kube_inventory](/plugins/inputs/kube_inventory/README.md) - Contributed by @influxdata
- [neptune_apex](/plugins/inputs/neptune_apex/README.md) - Contributed by @MaxRenaud
- [nginx_upstream_check](/plugins/inputs/nginx_upstream_check/README.md) - Contributed by @dmitryilyin
- [multifile](/plugins/inputs/multifile/README.md) - Contributed by @martin2250
- [stackdriver](/plugins/inputs/stackdriver/README.md) - Contributed by @WuHan0608

### New Outputs

- [cloud_pubsub](/plugins/outputs/cloud_pubsub/README.md) - Contributed by @emilymye

### New Serializers

- [nowmetric](/plugins/serializers/nowmetric/README.md) - Contributed by @JefMuller
- [carbon2](/plugins/serializers/carbon2/README.md) - Contributed by @frankreno

### Features

- [#4345](https://github.com/influxdata/telegraf/pull/4345): Allow for force gathering ES cluster stats.
- [#5047](https://github.com/influxdata/telegraf/pull/5047): Add support for unix and unix_ms timestamps to csv parser.
- [#5038](https://github.com/influxdata/telegraf/pull/5038): Add ability to tag metrics with topic in kafka_consumer.
- [#5024](https://github.com/influxdata/telegraf/pull/5024): Add option to store cpu as a tag in interrupts input.
- [#5074](https://github.com/influxdata/telegraf/pull/5074): Add support for sending a request body to http input.
- [#5069](https://github.com/influxdata/telegraf/pull/5069): Add running field to procstat_lookup.
- [#5116](https://github.com/influxdata/telegraf/pull/5116): Include DEVLINKS in available diskio udev properties.
- [#5149](https://github.com/influxdata/telegraf/pull/5149): Add micro and nanosecond unix timestamp support to JSON parser.
- [#5160](https://github.com/influxdata/telegraf/pull/5160): Add support for basic auth to couchdb input.
- [#5161](https://github.com/influxdata/telegraf/pull/5161): Add support in wavefront output for the Wavefront Direct Ingestion API.
- [#5168](https://github.com/influxdata/telegraf/pull/5168): Allow counting float values in valuecounter aggregator.
- [#5177](https://github.com/influxdata/telegraf/pull/5177): Add log send and redo queue fields to sqlserver input.
- [#5113](https://github.com/influxdata/telegraf/pull/5113): Improve scalability of vsphere input.
- [#5210](https://github.com/influxdata/telegraf/pull/5210): Add read and write op per second fields to ceph input.
- [#5214](https://github.com/influxdata/telegraf/pull/5214): Add configurable timeout to varnish input.
- [#5273](https://github.com/influxdata/telegraf/pull/5273): Add flush_total_time_ns and additional wired tiger fields to mongodb input.
- [#5295](https://github.com/influxdata/telegraf/pull/5295): Support passing bearer token directly in k8s input.
- [#5294](https://github.com/influxdata/telegraf/pull/5294): Support passing bearer token directly in prometheus input.
- [#5292](https://github.com/influxdata/telegraf/pull/5292): Add option to report input timestamp in prometheus output.
- [#5234](https://github.com/influxdata/telegraf/pull/5234): Add Linux mipsle packages.
- [#5382](https://github.com/influxdata/telegraf/pull/5382): Support unix_us and unix_ns timestamp format in csv parser.
- [#5391](https://github.com/influxdata/telegraf/pull/5391): Add resource type and resource label support to stackdriver output.
- [#5396](https://github.com/influxdata/telegraf/pull/5396): Add internal metric for line too long in influxdb_listener.
- [#4892](https://github.com/influxdata/telegraf/pull/4892): Add option to set retain flag on messages to mqtt output.
- [#5165](https://github.com/influxdata/telegraf/pull/5165): Add resource path based filtering to vsphere input.
- [#5417](https://github.com/influxdata/telegraf/pull/5417): Add rcode tag and field to dns_query input.
- [#5453](https://github.com/influxdata/telegraf/pull/5453): Support Azure Sovereign Environments with endpoint_url option.
- [#5472](https://github.com/influxdata/telegraf/pull/5472): Support configuring a default timezone in JSON parser.
- [#5482](https://github.com/influxdata/telegraf/pull/5482): Add ceph_health metrics to ceph input.
- [#5488](https://github.com/influxdata/telegraf/pull/5488): Add option to disable unique timestamp adjustment in grok parser.
- [#5473](https://github.com/influxdata/telegraf/pull/5473): Add mutual TLS support to prometheus_client output.
- [#4308](https://github.com/influxdata/telegraf/pull/4308): Add additional metrics to rabbitmq input.
- [#5388](https://github.com/influxdata/telegraf/pull/5388): Add multicast support to socket_listener input.
- [#5490](https://github.com/influxdata/telegraf/pull/5490): Add tag based routing in influxdb/influxdb_v2 outputs.
- [#5533](https://github.com/influxdata/telegraf/pull/5533): Allow grok parser to produce metrics with no fields.

### Bug Fixes

- [#4610](https://github.com/influxdata/telegraf/pull/4610): Fix initscript removes pidfile of restarted Telegraf process.
- [#5320](https://github.com/influxdata/telegraf/pull/5320): Use datacenter option spelling in consul input.
- [#5316](https://github.com/influxdata/telegraf/pull/5316): Remove auth from /ping route in influxdb_listener.
- [#5304](https://github.com/influxdata/telegraf/issues/5304): Fix x509_cert input stops checking certs after first error.
- [#5404](https://github.com/influxdata/telegraf/issues/5404): Group stackdriver requests to send one point per timeseries.
- [#5449](https://github.com/influxdata/telegraf/issues/5449): Log permission error and ignore in filecount input.
- [#5497](https://github.com/influxdata/telegraf/pull/5497): Create log file in append mode.
- [#5325](https://github.com/influxdata/telegraf/issues/5325): Ignore tracking for metrics added to aggregator.
- [#5514](https://github.com/influxdata/telegraf/issues/5514): Fix panic when rejecting empty batch.
- [#5518](https://github.com/influxdata/telegraf/pull/5518): Fix conversion from string float to integer.
- [#5431](https://github.com/influxdata/telegraf/pull/5431): Sort metrics by timestamp in prometheus output.

## v1.9.5 [2019-02-26]

### Bug Fixes

- [#5315](https://github.com/influxdata/telegraf/issues/5315): Skip string fields when writing to stackdriver output.
- [#5364](https://github.com/influxdata/telegraf/issues/5364): Send metrics in ascending time order in stackdriver output.
- [#5117](https://github.com/influxdata/telegraf/issues/5117): Use systemd in Amazon Linux 2 rpm.
- [#4988](https://github.com/influxdata/telegraf/issues/4988): Set deadlock priority in sqlserver input.
- [#5403](https://github.com/influxdata/telegraf/issues/5403): Remove error log when snmp6 directory does not exists with nstat input.
- [#5437](https://github.com/influxdata/telegraf/issues/5437): Host not added when using custom arguments in ping plugin.
- [#5438](https://github.com/influxdata/telegraf/issues/5438): Fix InfluxDB output UDP line splitting.
- [#5456](https://github.com/influxdata/telegraf/issues/5456): Disable results by row in azuredb query.
- [#5277](https://github.com/influxdata/telegraf/issues/5277): Add backwards compatibility fields in ceph usage and pool stats.

## v1.9.4 [2019-02-05]

### Bug Fixes

- [#5334](https://github.com/influxdata/telegraf/issues/5334): Fix skip_rows and skip_columns options in csv parser.
- [#5181](https://github.com/influxdata/telegraf/issues/5181): Always send basic auth in jenkins input.
- [#5346](https://github.com/influxdata/telegraf/pull/5346): Build official packages with Go 1.11.5.
- [#5368](https://github.com/influxdata/telegraf/issues/5368): Fix definition of multiple syslog plugins.

## v1.9.3 [2019-01-22]

### Bug Fixes

- [#5261](https://github.com/influxdata/telegraf/pull/5261):  Fix arithmetic overflow in sqlserver input.
- [#5194](https://github.com/influxdata/telegraf/issues/5194): Fix latest metrics not sent first when output fails.
- [#5285](https://github.com/influxdata/telegraf/issues/5285): Fix amqp_consumer stops consuming when it receives unparsable messages.
- [#5281](https://github.com/influxdata/telegraf/issues/5281): Fix prometheus input not detecting added and removed pods.
- [#5215](https://github.com/influxdata/telegraf/issues/5215): Remove userinfo from cluster tag in couchbase.
- [#5298](https://github.com/influxdata/telegraf/issues/5298): Fix internal_write buffer_size not reset on timed writes.

## v1.9.2 [2019-01-08]

### Bug Fixes

- [#5130](https://github.com/influxdata/telegraf/pull/5130): Increase varnishstat timeout.
- [#5135](https://github.com/influxdata/telegraf/pull/5135): Remove storage calculation for non Azure managed instances and add server version.
- [#5083](https://github.com/influxdata/telegraf/pull/5083): Fix error sending empty tag value in azure_monitor output.
- [#5143](https://github.com/influxdata/telegraf/issues/5143): Fix panic with prometheus input plugin on shutdown.
- [#4482](https://github.com/influxdata/telegraf/issues/4482): Support non-transparent framing of syslog messages.
- [#5151](https://github.com/influxdata/telegraf/issues/5151): Apply global and plugin level metric modifications before filtering.
- [#5167](https://github.com/influxdata/telegraf/pull/5167): Fix num_remapped_pgs field in ceph plugin.
- [#5179](https://github.com/influxdata/telegraf/issues/5179): Add PDH_NO_DATA to known counter error codes in win_perf_counters.
- [#5170](https://github.com/influxdata/telegraf/issues/5170): Fix amqp_consumer stops consuming on empty message.
- [#4906](https://github.com/influxdata/telegraf/issues/4906): Fix multiple replace tables not working in strings processor.
- [#5219](https://github.com/influxdata/telegraf/issues/5219): Allow non local udp connections in net_response.
- [#5218](https://github.com/influxdata/telegraf/issues/5218): Fix toml option names in parser processor.
- [#5225](https://github.com/influxdata/telegraf/issues/5225): Fix panic in docker input with bad endpoint.
- [#5209](https://github.com/influxdata/telegraf/issues/5209): Fix original metric modified by aggregator filters.

## v1.9.1 [2018-12-11]

### Bug Fixes

- [#5006](https://github.com/influxdata/telegraf/issues/5006): Fix boolean handling in splunkmetric serializer.
- [#5046](https://github.com/influxdata/telegraf/issues/5046): Set default config values in jenkins input.
- [#4664](https://github.com/influxdata/telegraf/issues/4664): Fix server connection and document stats in mongodb input.
- [#5010](https://github.com/influxdata/telegraf/issues/5010): Add X-Requested-By header to graylog input.
- [#5052](https://github.com/influxdata/telegraf/issues/5052): Fix metric memory not freed from the metric buffer on write.
- [#3817](https://github.com/influxdata/telegraf/issues/3817): Add support for client tls certificates in postgresql inputs.
- [#5082](https://github.com/influxdata/telegraf/issues/5082): Prevent panic when marking the offset in kafka_consumer.
- [#5084](https://github.com/influxdata/telegraf/issues/5084): Add early metrics to aggregator and honor drop_original setting.
- [#5112](https://github.com/influxdata/telegraf/pull/5112): Use -W flag on bsd variants in ping input.
- [#5114](https://github.com/influxdata/telegraf/issues/5114): Allow delta metrics in wavefront parser.

## v1.9 [2018-11-20]

### Release Notes

- The `http_listener` input plugin has been renamed to `influxdb_listener` and
  use of the original name is deprecated.  The new name better describes the
  intended use of the plugin as a InfluxDB relay.  For general purpose
  transfer of metrics in any format via HTTP, it is recommended to use
  `http_listener_v2` instead.

- Input plugins are no longer limited from adding metrics when the output is
  writing, and new metrics will move into the metric buffer as needed.  This
  will provide more robust degradation and recovery when writing to a slow
  output at high throughput.

  To avoid over consumption when reading from queue consumers: `kafka_consumer`,
  `amqp_consumer`, `mqtt_consumer`, `nats_consumer`, and `nsq_consumer` use
  the new option `max_undelivered_messages` to limit the number of outstanding
  unwritten metrics.

### New Inputs

- [http_listener_v2](/plugins/inputs/http_listener_v2/README.md) - Contributed by @jul1u5
- [ipvs](/plugins/inputs/ipvs/README.md) - Contributed by @amoghe
- [jenkins](/plugins/inputs/jenkins/README.md) - Contributed by @influxdata & @lpic10
- [nginx_plus_api](/plugins/inputs/nginx_plus_api/README.md) - Contributed by @Bugagazavr
- [nginx_vts](/plugins/inputs/nginx_vts/README.md) - Contributed by @monder
- [wireless](/plugins/inputs/wireless/README.md) - Contributed by @jamesmaidment

### New Outputs

- [stackdriver](/plugins/outputs/stackdriver/README.md) - Contributed by @jamesmaidment

### Features

- [#4686](https://github.com/influxdata/telegraf/pull/4686): Add replace function to strings processor.
- [#4754](https://github.com/influxdata/telegraf/pull/4754): Query servers in parallel in dns_query input.
- [#4753](https://github.com/influxdata/telegraf/pull/4753): Add ability to define a custom service name when installing as a Windows service.
- [#4703](https://github.com/influxdata/telegraf/pull/4703): Add support for IPv6 in the ping plugin.
- [#4781](https://github.com/influxdata/telegraf/pull/4781): Add new config for csv column explicit type conversion.
- [#4800](https://github.com/influxdata/telegraf/pull/4800): Add an option to specify a custom datadog URL.
- [#4803](https://github.com/influxdata/telegraf/pull/4803): Use non-allocating field and tag accessors in datadog output.
- [#4752](https://github.com/influxdata/telegraf/pull/4752): Add per-directory file counts in the filecount input.
- [#4811](https://github.com/influxdata/telegraf/pull/4811): Add windows service name lookup to procstat input.
- [#4807](https://github.com/influxdata/telegraf/pull/4807): Add entity-body compression to http output.
- [#4838](https://github.com/influxdata/telegraf/pull/4838): Add telegraf version to User-Agent header.
- [#4864](https://github.com/influxdata/telegraf/pull/4864): Use DescribeStreamSummary in place of ListStreams in kinesis output.
- [#4852](https://github.com/influxdata/telegraf/pull/4852): Add ability to specify bytes options as strings with units.
- [#3903](https://github.com/influxdata/telegraf/pull/3903): Add support for TLS configuration in NSQ input.
- [#4914](https://github.com/influxdata/telegraf/pull/4914): Collect additional stats in memcached input.
- [#3847](https://github.com/influxdata/telegraf/pull/3847): Add wireless input plugin.
- [#4934](https://github.com/influxdata/telegraf/pull/4934): Add LUN to datasource translation in vsphere input.
- [#4798](https://github.com/influxdata/telegraf/pull/4798): Allow connecting to prometheus via unix socket.
- [#4920](https://github.com/influxdata/telegraf/pull/4920): Add scraping for Prometheus endpoint in Kubernetes.
- [#4938](https://github.com/influxdata/telegraf/pull/4938): Add per output flush_interval, metric_buffer_limit and metric_batch_size.

### Bug Fixes

- [#4950](https://github.com/influxdata/telegraf/pull/4950): Remove the time_key from the field values in JSON parser.
- [#3968](https://github.com/influxdata/telegraf/issues/3968): Fix input time rounding when using a custom interval.
- [#4938](https://github.com/influxdata/telegraf/pull/4938): Fix potential deadlock or leaked resources on restart/reload.
- [#2919](https://github.com/influxdata/telegraf/pull/2919): Fix outputs block inputs when batch size is reached.
- [#4789](https://github.com/influxdata/telegraf/issues/4789): Fix potential missing datastore metrics in vSphere plugin.
- [#4982](https://github.com/influxdata/telegraf/issues/4982): Log warning when wireless plugin is used on unsupported platform.
- [#4965](https://github.com/influxdata/telegraf/issues/4965): Handle non-tls columns for mysql input.
- [#4983](https://github.com/influxdata/telegraf/issues/4983): Fix panic in influxdb_listener when using gzip encoding.

## v1.8.3 [2018-10-30]

### Bug Fixes

- [#4873](https://github.com/influxdata/telegraf/pull/4873): Add DN attributes as tags in x509_cert input to avoid series overwrite.
- [#4921](https://github.com/influxdata/telegraf/issues/4921): Prevent connection leak by closing unused connections in amqp output.
- [#4904](https://github.com/influxdata/telegraf/issues/4904): Use default partition key when tag does not exist in kinesis output.
- [#4901](https://github.com/influxdata/telegraf/pull/4901): Log the correct error in jti_openconfig.
- [#4937](https://github.com/influxdata/telegraf/pull/4937): Handle panic when ipmi_sensor input gets bad input.
- [#4930](https://github.com/influxdata/telegraf/pull/4930): Don't add unserializable fields to jolokia2 input.
- [#4866](https://github.com/influxdata/telegraf/pull/4866): Fix version check in postgresql_extensible.

## v1.8.2 [2018-10-17]

### Bug Fixes

- [#4844](https://github.com/influxdata/telegraf/pull/4844): Update write path to match updated InfluxDB v2 API.
- [#4840](https://github.com/influxdata/telegraf/pull/4840): Fix missing timeouts in vsphere input.
- [#4851](https://github.com/influxdata/telegraf/pull/4851): Support uint fields in aerospike input.
- [#4854](https://github.com/influxdata/telegraf/pull/4854): Use container name from list if no name in container stats.
- [#4850](https://github.com/influxdata/telegraf/pull/4850): Prevent panic in filecount input on error in file stat.
- [#4846](https://github.com/influxdata/telegraf/pull/4846): Fix mqtt_consumer connect and reconnect.
- [#4849](https://github.com/influxdata/telegraf/pull/4849): Fix panic in logparser input.
- [#4869](https://github.com/influxdata/telegraf/pull/4869): Lower authorization errors to debug level in mongodb input.
- [#4875](https://github.com/influxdata/telegraf/pull/4875): Return correct response code on ping input.
- [#4874](https://github.com/influxdata/telegraf/pull/4874): Fix segfault in x509_cert input.

## v1.8.1 [2018-10-03]

### Bug Fixes

- [#4750](https://github.com/influxdata/telegraf/pull/4750): Fix hardware_type may be truncated in sqlserver input.
- [#4723](https://github.com/influxdata/telegraf/issues/4723): Improve performance in basicstats aggregator.
- [#4747](https://github.com/influxdata/telegraf/pull/4747): Add hostname to TLS config for SNI support.
- [#4675](https://github.com/influxdata/telegraf/issues/4675): Don't add tags with empty values to opentsdb output.
- [#4765](https://github.com/influxdata/telegraf/pull/4765): Fix panic during network error in vsphere input.
- [#4766](https://github.com/influxdata/telegraf/pull/4766): Unify http_listener error response with InfluxDB.
- [#4769](https://github.com/influxdata/telegraf/pull/4769): Add UUID to VMs in vSphere input.
- [#4758](https://github.com/influxdata/telegraf/issues/4758): Skip tags with empty values in cloudwatch output.
- [#4783](https://github.com/influxdata/telegraf/issues/4783): Fix missing non-realtime samples in vSphere input.
- [#4799](https://github.com/influxdata/telegraf/pull/4799): Fix case of timezone/grok_timezone options.

## v1.8 [2018-09-21]

### New Inputs

- [activemq](./plugins/inputs/activemq/README.md) - Contributed by @mlabouardy
- [beanstalkd](./plugins/inputs/beanstalkd/README.md) - Contributed by @44px
- [filecount](./plugins/inputs/filecount/README.md) - Contributed by @sometimesfood
- [file](./plugins/inputs/file/README.md) - Contributed by @maxunt
- [icinga2](./plugins/inputs/icinga2/README.md) - Contributed by @mlabouardy
- [kibana](./plugins/inputs/kibana/README.md) - Contributed by @lpic10
- [pgbouncer](./plugins/inputs/pgbouncer/README.md) - Contributed by @nerzhul
- [temp](./plugins/inputs/temp/README.md) - Contributed by @pytimer
- [tengine](./plugins/inputs/tengine/README.md) - Contributed by @ertaoxu
- [vsphere](./plugins/inputs/vsphere/README.md) - Contributed by @prydin
- [x509_cert](./plugins/inputs/x509_cert/README.md) - Contributed by @jtyr

### New Processors

- [enum](./plugins/processors/enum/README.md) - Contributed by @KarstenSchnitter
- [parser](./plugins/processors/parser/README.md) - Contributed by @Ayrdrie & @maxunt
- [rename](./plugins/processors/rename/README.md) - Contributed by @goldibex
- [strings](./plugins/processors/strings/README.md) - Contributed by @bsmaldon

### New Aggregators

- [valuecounter](./plugins/aggregators/valuecounter/README.md) - Contributed by @piotr1212

### New Outputs

- [azure_monitor](./plugins/outputs/azure_monitor/README.md) - Contributed by @influxdata
- [influxdb_v2](./plugins/outputs/influxdb_v2/README.md) - Contributed by @influxdata

### New Parsers

- [csv](/plugins/parsers/csv/README.md) - Contributed by @maxunt
- [grok](/plugins/parsers/grok/README.md) - Contributed by @maxunt
- [logfmt](/plugins/parsers/logfmt/README.md) - Contributed by @Ayrdrie & @maxunt
- [wavefront](/plugins/parsers/wavefront/README.md) - Contributed by @puckpuck

### New Serializers

- [splunkmetric](/plugins/serializers/splunkmetric/README.md) - Contributed by @ronnocol

### Features

- [#4236](https://github.com/influxdata/telegraf/pull/4236): Add SSL/TLS support to redis input.
- [#4160](https://github.com/influxdata/telegraf/pull/4160): Add tengine input plugin.
- [#4262](https://github.com/influxdata/telegraf/pull/4262): Add power draw field to nvidia_smi plugin.
- [#4271](https://github.com/influxdata/telegraf/pull/4271): Add support for solr 7 to the solr input.
- [#4281](https://github.com/influxdata/telegraf/pull/4281): Add owner tag on partitions in burrow input.
- [#4259](https://github.com/influxdata/telegraf/pull/4259): Add container status tag to docker input.
- [#3523](https://github.com/influxdata/telegraf/pull/3523): Add valuecounter aggregator plugin.
- [#4307](https://github.com/influxdata/telegraf/pull/4307): Add new measurement with results of pgrep lookup to procstat input.
- [#4311](https://github.com/influxdata/telegraf/pull/4311): Add support for comma in logparser timestamp format.
- [#4292](https://github.com/influxdata/telegraf/pull/4292): Add path tag to tail input plugin.
- [#4322](https://github.com/influxdata/telegraf/pull/4322): Add log message when tail is added or removed from a file.
- [#4267](https://github.com/influxdata/telegraf/pull/4267): Add option to use of counter time in win perf counters.
- [#4343](https://github.com/influxdata/telegraf/pull/4343): Add energy and power field and device id tag to fibaro input.
- [#4347](https://github.com/influxdata/telegraf/pull/4347): Add http path configuration for OpenTSDB output.
- [#4352](https://github.com/influxdata/telegraf/pull/4352): Gather IPMI metrics concurrently.
- [#4362](https://github.com/influxdata/telegraf/pull/4362): Add mongo document and connection metrics.
- [#3772](https://github.com/influxdata/telegraf/pull/3772): Add enum processor plugin.
- [#4386](https://github.com/influxdata/telegraf/pull/4386): Add user tag to procstat input.
- [#4403](https://github.com/influxdata/telegraf/pull/4403): Add support for multivalue metrics to collectd parser.
- [#4418](https://github.com/influxdata/telegraf/pull/4418): Add support for setting kafka client id.
- [#4332](https://github.com/influxdata/telegraf/pull/4332): Add file input plugin and grok parser.
- [#4320](https://github.com/influxdata/telegraf/pull/4320): Improve cloudwatch output performance.
- [#3768](https://github.com/influxdata/telegraf/pull/3768): Add x509_cert input plugin.
- [#4471](https://github.com/influxdata/telegraf/pull/4471): Add IPSIpAddress syntax to ipaddr conversion in snmp plugin.
- [#4363](https://github.com/influxdata/telegraf/pull/4363): Add filecount input plugin.
- [#4485](https://github.com/influxdata/telegraf/pull/4485): Add support for configuring an AWS endpoint_url.
- [#4491](https://github.com/influxdata/telegraf/pull/4491): Send all messages before waiting for results in kafka output.
- [#4492](https://github.com/influxdata/telegraf/pull/4492): Add support for lz4 compression to kafka output.
- [#4450](https://github.com/influxdata/telegraf/pull/4450): Split multiple sensor keys in ipmi input.
- [#4364](https://github.com/influxdata/telegraf/pull/4364): Support StatisticValues in cloudwatch output plugin.
- [#4431](https://github.com/influxdata/telegraf/pull/4431): Add ip restriction for the prometheus_client output.
- [#3918](https://github.com/influxdata/telegraf/pull/3918): Add pgbouncer input plugin.
- [#2689](https://github.com/influxdata/telegraf/pull/2689): Add ActiveMQ input plugin.
- [#4402](https://github.com/influxdata/telegraf/pull/4402): Add wavefront parser plugin.
- [#4528](https://github.com/influxdata/telegraf/pull/4528): Add rename processor plugin.
- [#4537](https://github.com/influxdata/telegraf/pull/4537): Add message 'max_bytes' configuration to kafka input.
- [#4546](https://github.com/influxdata/telegraf/pull/4546): Add gopsutil meminfo fields to mem plugin.
- [#4285](https://github.com/influxdata/telegraf/pull/4285): Document how to parse telegraf logs.
- [#4542](https://github.com/influxdata/telegraf/pull/4542): Use dep v0.5.0.
- [#4433](https://github.com/influxdata/telegraf/pull/4433): Add ability to set measurement from matched text in grok parser.
- [#4565](https://github.com/influxdata/telegraf/pull/4465): Drop message batches in kafka output if too large.
- [#4579](https://github.com/influxdata/telegraf/pull/4579): Add support for static and random routing keys in kafka output.
- [#4539](https://github.com/influxdata/telegraf/pull/4539): Add logfmt parser plugin.
- [#4551](https://github.com/influxdata/telegraf/pull/4551): Add parser processor plugin.
- [#4559](https://github.com/influxdata/telegraf/pull/4559): Add Icinga2 input plugin.
- [#4351](https://github.com/influxdata/telegraf/pull/4351): Add name, time, path and string field options to JSON parser.
- [#4571](https://github.com/influxdata/telegraf/pull/4571): Add forwarded records to sqlserver input.
- [#4585](https://github.com/influxdata/telegraf/pull/4585): Add Kibana input plugin.
- [#4439](https://github.com/influxdata/telegraf/pull/4439): Add csv parser plugin.
- [#4598](https://github.com/influxdata/telegraf/pull/4598): Add read_buffer_size option to statsd input.
- [#4089](https://github.com/influxdata/telegraf/pull/4089): Add azure_monitor output plugin.
- [#4628](https://github.com/influxdata/telegraf/pull/4628): Add queue_durability parameter to amqp_consumer input.
- [#4476](https://github.com/influxdata/telegraf/pull/4476): Add strings processor.
- [#4536](https://github.com/influxdata/telegraf/pull/4536): Add OAuth2 support to HTTP output plugin.
- [#4633](https://github.com/influxdata/telegraf/pull/4633): Add Unix epoch timestamp support for JSON parser.
- [#4657](https://github.com/influxdata/telegraf/pull/4657): Add options for basic auth to haproxy input.
- [#4411](https://github.com/influxdata/telegraf/pull/4411): Add temp input plugin.
- [#4272](https://github.com/influxdata/telegraf/pull/4272): Add Beanstalkd input plugin.
- [#4669](https://github.com/influxdata/telegraf/pull/4669): Add means to specify server password for redis input.
- [#4339](https://github.com/influxdata/telegraf/pull/4339): Add Splunk Metrics serializer.
- [#4141](https://github.com/influxdata/telegraf/pull/4141): Add input plugin for VMware vSphere.
- [#4667](https://github.com/influxdata/telegraf/pull/4667): Align metrics window to interval in cloudwatch input.
- [#4642](https://github.com/influxdata/telegraf/pull/4642): Improve Azure Managed Instance support + more in sqlserver input.
- [#4682](https://github.com/influxdata/telegraf/pull/4682): Allow alternate binaries for iptables input plugin.
- [#4645](https://github.com/influxdata/telegraf/pull/4645): Add influxdb_v2 output plugin.

### Bug Fixes

- [#3438](https://github.com/influxdata/telegraf/issues/3438): Fix divide by zero in logparser input.
- [#4499](https://github.com/influxdata/telegraf/issues/4499): Fix instance and object name in performance counters with backslashes.
- [#4646](https://github.com/influxdata/telegraf/issues/4646): Reset/flush saved contents from bad metric.
- [#4520](https://github.com/influxdata/telegraf/issues/4520): Document all supported cli arguments.
- [#4674](https://github.com/influxdata/telegraf/pull/4674): Log access denied opening a service at debug level in win_services.
- [#4588](https://github.com/influxdata/telegraf/issues/4588): Add support for Kafka 2.0.
- [#4087](https://github.com/influxdata/telegraf/issues/4087): Fix nagios parser does not support ranges in performance data.
- [#4088](https://github.com/influxdata/telegraf/issues/4088): Fix nagios parser does not strip quotes from performance data.
- [#4688](https://github.com/influxdata/telegraf/issues/4688): Fix null value crash in postgresql_extensible input.
- [#4681](https://github.com/influxdata/telegraf/pull/4681): Remove the startup authentication check from the cloudwatch output.
- [#4644](https://github.com/influxdata/telegraf/issues/4644): Support tailing files created after startup in tail input.
- [#4706](https://github.com/influxdata/telegraf/issues/4706): Fix csv format configuration loading.

## v1.7.4 [2018-08-29]

### Bug Fixes

- [#4534](https://github.com/influxdata/telegraf/pull/4534): Skip unserializable metric in influxDB UDP output.
- [#4554](https://github.com/influxdata/telegraf/pull/4554): Fix powerdns input tests.
- [#4584](https://github.com/influxdata/telegraf/pull/4584): Fix burrow_group offset calculation for burrow input.
- [#4550](https://github.com/influxdata/telegraf/pull/4550): Add result_code value for errors running ping command.
- [#4605](https://github.com/influxdata/telegraf/pull/4605): Remove timeout deadline for udp syslog input.
- [#4601](https://github.com/influxdata/telegraf/issues/4601): Ensure channel closed if an error occurs in cgroup input.
- [#4544](https://github.com/influxdata/telegraf/issues/4544): Fix sending of basic auth credentials in http output.
- [#4526](https://github.com/influxdata/telegraf/issues/4526): Use the correct GOARM value in the armel package.

## v1.7.3 [2018-08-07]

### Bug Fixes

- [#4434](https://github.com/influxdata/telegraf/issues/4434): Reduce required docker API version.
- [#4498](https://github.com/influxdata/telegraf/pull/4498): Keep leading whitespace for messages in syslog input.
- [#4470](https://github.com/influxdata/telegraf/issues/4470): Skip bad entries on interrupt input.
- [#4501](https://github.com/influxdata/telegraf/issues/4501): Preserve metric type when using filters in output plugins.
- [#3794](https://github.com/influxdata/telegraf/issues/3794): Fix error message if URL is unparsable in influxdb output.
- [#4059](https://github.com/influxdata/telegraf/issues/4059): Use explicit zpool properties to fix parse error on FreeBSD 11.2.
- [#4514](https://github.com/influxdata/telegraf/pull/4514): Lock buffer when adding metrics.

## v1.7.2 [2018-07-18]

### Bug Fixes

- [#4381](https://github.com/influxdata/telegraf/issues/4381): Use localhost as default server tag in zookeeper input.
- [#4374](https://github.com/influxdata/telegraf/issues/4374): Don't set values when pattern doesn't match in regex processor.
- [#4416](https://github.com/influxdata/telegraf/issues/4416): Fix output format of printer processor.
- [#4422](https://github.com/influxdata/telegraf/issues/4422): Fix metric can have duplicate field.
- [#4389](https://github.com/influxdata/telegraf/issues/4389): Return error if NewRequest fails in http output.
- [#4335](https://github.com/influxdata/telegraf/issues/4335): Reset read deadline for syslog input.
- [#4375](https://github.com/influxdata/telegraf/issues/4375): Exclude cached memory on docker input plugin.

## v1.7.1 [2018-07-03]

### Bug Fixes

- [#4277](https://github.com/influxdata/telegraf/pull/4277): Treat sigterm as a clean shutdown signal.
- [#4284](https://github.com/influxdata/telegraf/pull/4284): Fix selection of tags under nested objects in the JSON parser.
- [#4135](https://github.com/influxdata/telegraf/issues/4135): Fix postfix input handling multi-level queues.
- [#4334](https://github.com/influxdata/telegraf/pull/4334): Fix syslog timestamp parsing with single digit day of month.
- [#2910](https://github.com/influxdata/telegraf/issues/2910): Handle mysql input variations in the user_statistics collecting.
- [#4293](https://github.com/influxdata/telegraf/issues/4293): Fix minmax and basicstats aggregators to use uint64.
- [#4290](https://github.com/influxdata/telegraf/issues/4290): Document swap input plugin.
- [#4316](https://github.com/influxdata/telegraf/issues/4316): Fix incorrect precision being applied to metric in http_listener.

## v1.7 [2018-06-12]

### Release Notes

- The `cassandra` input plugin has been deprecated in favor of the `jolokia2`
  input plugin which is much more configurable and more performant.  There is
  an [example configuration](./plugins/inputs/jolokia2/examples) to help you
  get started.

- For plugins supporting TLS, you can now specify the certificate and keys
  using `tls_ca`, `tls_cert`, `tls_key`.  These options behave the same as
  the, now deprecated, `ssl` forms.

### New Inputs

- [aurora](./plugins/inputs/aurora/README.md) - Contributed by @influxdata
- [burrow](./plugins/inputs/burrow/README.md) - Contributed by @arkady-emelyanov
- [fibaro](./plugins/inputs/fibaro/README.md) - Contributed by @dynek
- [jti_openconfig_telemetry](./plugins/inputs/jti_openconfig_telemetry/README.md) - Contributed by @ajhai
- [mcrouter](./plugins/inputs/mcrouter/README.md) - Contributed by @cthayer
- [nvidia_smi](./plugins/inputs/nvidia_smi/README.md) - Contributed by @jackzampolin
- [syslog](./plugins/inputs/syslog/README.md) - Contributed by @influxdata

### New Processors

- [converter](./plugins/processors/converter/README.md) - Contributed by @influxdata
- [regex](./plugins/processors/regex/README.md) - Contributed by @44px
- [topk](./plugins/processors/topk/README.md) - Contributed by @mirath

### New Outputs

- [http](./plugins/outputs/http/README.md) - Contributed by @Dark0096
- [application_insights](./plugins/outputs/application_insights/README.md): Contribute by @karolz-ms

### Features

- [#3964](https://github.com/influxdata/telegraf/pull/3964): Add repl_oplog_window_sec metric to mongodb input.
- [#3819](https://github.com/influxdata/telegraf/pull/3819): Add per-host shard metrics in mongodb input.
- [#3999](https://github.com/influxdata/telegraf/pull/3999): Skip files with leading `..` in config directory.
- [#4021](https://github.com/influxdata/telegraf/pull/4021): Add TLS support to socket_writer and socket_listener plugins.
- [#4025](https://github.com/influxdata/telegraf/pull/4025): Add snmp input option to strip non fixed length index suffixes.
- [#4035](https://github.com/influxdata/telegraf/pull/4035): Add server version tag to docker input.
- [#4044](https://github.com/influxdata/telegraf/pull/4044): Add support for LeoFS 1.4 to leofs input.
- [#4068](https://github.com/influxdata/telegraf/pull/4068): Add parameter to force the interval of gather for sysstat.
- [#3877](https://github.com/influxdata/telegraf/pull/3877): Support busybox ping in the ping input.
- [#4077](https://github.com/influxdata/telegraf/pull/4077): Add input plugin for McRouter.
- [#4096](https://github.com/influxdata/telegraf/pull/4096): Add topk processor plugin.
- [#4114](https://github.com/influxdata/telegraf/pull/4114): Add cursor metrics to mongodb input.
- [#3455](https://github.com/influxdata/telegraf/pull/3455): Add tag/integer pair for result to net_response.
- [#4010](https://github.com/influxdata/telegraf/pull/3455): Add application_insights output plugin.
- [#4167](https://github.com/influxdata/telegraf/pull/4167): Added several important elasticsearch cluster health metrics.
- [#4094](https://github.com/influxdata/telegraf/pull/4094): Add batch mode to mqtt output.
- [#4158](https://github.com/influxdata/telegraf/pull/4158): Add aurora input plugin.
- [#3839](https://github.com/influxdata/telegraf/pull/3839): Add regex processor plugin.
- [#4165](https://github.com/influxdata/telegraf/pull/4165): Add support for Graphite 1.1 tags.
- [#4162](https://github.com/influxdata/telegraf/pull/4162): Add timeout option to sensors input.
- [#3489](https://github.com/influxdata/telegraf/pull/3489): Add burrow input plugin.
- [#3969](https://github.com/influxdata/telegraf/pull/3969): Add option to unbound module to use threads as tags.
- [#4183](https://github.com/influxdata/telegraf/pull/4183): Add support for TLS and username/password auth to aerospike input.
- [#4190](https://github.com/influxdata/telegraf/pull/4190): Add special syslog timestamp parser to grok parser that uses current year.
- [#4181](https://github.com/influxdata/telegraf/pull/4181): Add syslog input plugin.
- [#4212](https://github.com/influxdata/telegraf/pull/4212): Print the enabled aggregator and processor plugins on startup.
- [#3994](https://github.com/influxdata/telegraf/pull/3994): Add static routing_key option to amqp output.
- [#3995](https://github.com/influxdata/telegraf/pull/3995): Add passive mode exchange declaration option to amqp consumer input.
- [#4216](https://github.com/influxdata/telegraf/pull/4216): Add counter fields to pf input.

### Bug Fixes

- [#4018](https://github.com/influxdata/telegraf/pull/4018): Write to working file outputs if any files are not writeable.
- [#4036](https://github.com/influxdata/telegraf/pull/4036): Add all win_perf_counters fields for a series in a single metric.
- [#4118](https://github.com/influxdata/telegraf/pull/4118): Report results of dns_query instead of 0ms on timeout.
- [#4155](https://github.com/influxdata/telegraf/pull/4155): Add consul service tags to metric.
- [#2879](https://github.com/influxdata/telegraf/issues/2879): Fix wildcards and multi instance processes in win_perf_counters.
- [#2468](https://github.com/influxdata/telegraf/issues/2468): Fix crash on 32-bit Windows in win_perf_counters.
- [#4198](https://github.com/influxdata/telegraf/issues/4198): Fix win_perf_counters not collecting at every interval.
- [#4227](https://github.com/influxdata/telegraf/issues/4227): Use same flags for all BSD family ping variants.
- [#4266](https://github.com/influxdata/telegraf/issues/4266): Remove tags with empty values from Wavefront output.

## v1.6.4 [2018-06-05]

### Bug Fixes

- [#4203](https://github.com/influxdata/telegraf/issues/4203): Fix snmp overriding of auto-configured table fields.
- [#4218](https://github.com/influxdata/telegraf/issues/4218): Fix uint support in cloudwatch output.
- [#4188](https://github.com/influxdata/telegraf/pull/4188): Fix documentation of instance_name option in varnish input.
- [#4195](https://github.com/influxdata/telegraf/pull/4195): Revert to previous aerospike library version due to memory leak.

## v1.6.3 [2018-05-21]

### Bug Fixes

- [#4127](https://github.com/influxdata/telegraf/issues/4127): Fix intermittent panic in aerospike input.
- [#4130](https://github.com/influxdata/telegraf/issues/4130): Fix connection leak in jolokia2_agent.
- [#4136](https://github.com/influxdata/telegraf/pull/4130): Fix jolokia2 timeout parsing.
- [#4142](https://github.com/influxdata/telegraf/pull/4142): Fix error parsing dropwizard metrics.
- [#4149](https://github.com/influxdata/telegraf/issues/4149): Fix librato output support for uint and bool.
- [#4176](https://github.com/influxdata/telegraf/pull/4176): Fix waitgroup deadlock if url is incorrect in apache input.

## v1.6.2 [2018-05-08]

### Bug Fixes

- [#4078](https://github.com/influxdata/telegraf/pull/4078): Use same timestamp for fields in system input.
- [#4091](https://github.com/influxdata/telegraf/pull/4091): Fix handling of uint64 in datadog output.
- [#4099](https://github.com/influxdata/telegraf/pull/4099): Ignore UTF8 BOM in JSON parser.
- [#4104](https://github.com/influxdata/telegraf/issues/4104): Fix case for slave metrics in mysql input.
- [#4110](https://github.com/influxdata/telegraf/issues/4110): Fix uint support in cratedb output.

## v1.6.1 [2018-04-23]

### Bug Fixes

- [#3835](https://github.com/influxdata/telegraf/issues/3835): Report mem input fields as gauges instead counters.
- [#4030](https://github.com/influxdata/telegraf/issues/4030): Fix graphite outputs unsigned integers in wrong format.
- [#4043](https://github.com/influxdata/telegraf/issues/4043): Report available fields if utmp is unreadable.
- [#4039](https://github.com/influxdata/telegraf/issues/4039): Fix potential "no fields" error writing to outputs.
- [#4037](https://github.com/influxdata/telegraf/issues/4037): Fix uptime reporting in system input when ran inside docker.
- [#3750](https://github.com/influxdata/telegraf/issues/3750): Fix mem input "cannot allocate memory" error on FreeBSD based systems.
- [#4056](https://github.com/influxdata/telegraf/pull/4056): Fix duplicate tags when overriding an existing tag.
- [#4062](https://github.com/influxdata/telegraf/pull/4062): Add server argument as first argument in unbound input.
- [#4063](https://github.com/influxdata/telegraf/issues/4063): Fix handling of floats with multiple leading zeroes.
- [#4064](https://github.com/influxdata/telegraf/issues/4064): Return errors in mongodb SSL/TLS configuration.

## v1.6 [2018-04-16]

### Release Notes

- The `mysql` input plugin has been updated fix a number of type conversion
  issues.  This may cause a `field type error` when inserting into InfluxDB due
  the change of types.

  To address this we have introduced a new `metric_version` option to control
  enabling the new format.  For in depth recommendations on upgrading please
  reference the [mysql plugin documentation](./plugins/inputs/mysql/README.md#metric-version).

  It is encouraged to migrate to the new model when possible as the old version
  is deprecated and will be removed in a future version.

- The `postgresql` plugins now defaults to using a persistent connection to the database.
  In environments where TCP connections are terminated the `max_lifetime`
  setting should be set less than the collection `interval` to prevent errors.

- The `sqlserver` input plugin has a new query and data model that can be enabled
  by setting `query_version = 2`.  It is encouraged to migrate to the new
  model when possible as the old version is deprecated and will be removed in
  a future version.

- An option has been added to the `openldap` input plugin that reverses metric
  name to improve grouping.  This change is enabled when `reverse_metric_names = true`
  is set.  It is encouraged to enable this option when possible as the old
  ordering is deprecated.

- The new `http` input configured with `data_format = "json"` can perform the
  same task as the, now deprecated, `httpjson` input.

### New Inputs

- [http](./plugins/inputs/http/README.md) - Thanks to @grange74
- [ipset](./plugins/inputs/ipset/README.md) - Thanks to @sajoupa
- [nats](./plugins/inputs/nats/README.md) - Thanks to @mjs & @levex

### New Processors

- [override](./plugins/processors/override/README.md) - Thanks to @KarstenSchnitter

### New Parsers

- [dropwizard](./docs/DATA_FORMATS_INPUT.md#dropwizard) - Thanks to @atzoum

### Features

- [#3551](https://github.com/influxdata/telegraf/pull/3551): Add health status mapping from string to int in elasticsearch input.
- [#3580](https://github.com/influxdata/telegraf/pull/3580): Add control over which stats to gather in basicstats aggregator.
- [#3596](https://github.com/influxdata/telegraf/pull/3596): Add messages_delivered_get to rabbitmq input.
- [#3632](https://github.com/influxdata/telegraf/pull/3632): Add wired field to mem input.
- [#3619](https://github.com/influxdata/telegraf/pull/3619): Add support for gathering exchange metrics to the rabbitmq input.
- [#3565](https://github.com/influxdata/telegraf/pull/3565): Add support for additional metrics on Linux in zfs input.
- [#3524](https://github.com/influxdata/telegraf/pull/3524): Add available_entropy field to kernel input plugin.
- [#3643](https://github.com/influxdata/telegraf/pull/3643): Add user privilege level setting to IPMI sensors.
- [#2701](https://github.com/influxdata/telegraf/pull/2701): Use persistent connection to postgresql database.
- [#2846](https://github.com/influxdata/telegraf/pull/2846): Add support for dropwizard input format.
- [#3666](https://github.com/influxdata/telegraf/pull/3666): Add container health metrics to docker input.
- [#3687](https://github.com/influxdata/telegraf/pull/3687): Add support for using globs in devices list of diskio input plugin.
- [#2754](https://github.com/influxdata/telegraf/pull/2754): Allow running as console application on Windows.
- [#3703](https://github.com/influxdata/telegraf/pull/3703): Add listener counts and node running status to rabbitmq input.
- [#3674](https://github.com/influxdata/telegraf/pull/3674): Add NATS Monitoring Input Plugin.
- [#3702](https://github.com/influxdata/telegraf/pull/3702): Add ability to select which queues will be gathered in rabbitmq input.
- [#3726](https://github.com/influxdata/telegraf/pull/3726): Add support for setting bsd source address to the ping input.
- [#3346](https://github.com/influxdata/telegraf/pull/3346): Add Ipset input plugin.
- [#3719](https://github.com/influxdata/telegraf/pull/3719): Add TLS and HTTP basic auth to prometheus_client output.
- [#3618](https://github.com/influxdata/telegraf/pull/3618): Add new sqlserver output data model.
- [#3559](https://github.com/influxdata/telegraf/pull/3559): Add native Go method for finding pids to procstat.
- [#3722](https://github.com/influxdata/telegraf/pull/3722): Add additional metrics and reverse metric names option to openldap.
- [#3769](https://github.com/influxdata/telegraf/pull/3769): Add TLS support to the mesos input plugin.
- [#3546](https://github.com/influxdata/telegraf/pull/3546): Add http input plugin.
- [#3781](https://github.com/influxdata/telegraf/pull/3781): Add keep alive support to the TCP mode of statsd.
- [#3783](https://github.com/influxdata/telegraf/pull/3783): Support deadline in ping plugin.
- [#3765](https://github.com/influxdata/telegraf/pull/3765): Add option to disable labels in prometheus output for string fields.
- [#3808](https://github.com/influxdata/telegraf/pull/3808): Add shard server stats to the mongodb input plugin.
- [#3713](https://github.com/influxdata/telegraf/pull/3713): Add server option to unbound plugin.
- [#3804](https://github.com/influxdata/telegraf/pull/3804): Convert boolean metric values to float in datadog output.
- [#3799](https://github.com/influxdata/telegraf/pull/3799): Add Solr 3 compatibility.
- [#3797](https://github.com/influxdata/telegraf/pull/3797): Add sum stat to basicstats aggregator.
- [#3626](https://github.com/influxdata/telegraf/pull/3626): Add ability to override proxy from environment in http response.
- [#3853](https://github.com/influxdata/telegraf/pull/3853): Add host to ping timeout log message.
- [#3773](https://github.com/influxdata/telegraf/pull/3773): Add override processor.
- [#3814](https://github.com/influxdata/telegraf/pull/3814): Add status_code and result tags and result_type field to http_response input.
- [#3880](https://github.com/influxdata/telegraf/pull/3880): Added config flag to skip collection of network protocol metrics.
- [#3927](https://github.com/influxdata/telegraf/pull/3927): Add TLS support to kapacitor input.
- [#3496](https://github.com/influxdata/telegraf/pull/3496): Add HTTP basic auth support to the http_listener input.
- [#3452](https://github.com/influxdata/telegraf/issues/3452): Tags in output InfluxDB Line Protocol are now sorted.
- [#3631](https://github.com/influxdata/telegraf/issues/3631): InfluxDB Line Protocol parser now accepts DOS line endings.
- [#2496](https://github.com/influxdata/telegraf/issues/2496): An option has been added to skip database creation in the InfluxDB output.
- [#3366](https://github.com/influxdata/telegraf/issues/3366): Add support for connecting to InfluxDB over a unix domain socket.
- [#3946](https://github.com/influxdata/telegraf/pull/3946): Add optional unsigned integer support to the influx data format.
- [#3811](https://github.com/influxdata/telegraf/pull/3811): Add TLS support to zookeeper input.
- [#2737](https://github.com/influxdata/telegraf/issues/2737): Add filters for container state to docker input.

### Bug Fixes

- [#1896](https://github.com/influxdata/telegraf/issues/1896): Fix various mysql data type conversions.
- [#3810](https://github.com/influxdata/telegraf/issues/3810): Fix metric buffer limit in internal plugin after reload.
- [#3801](https://github.com/influxdata/telegraf/issues/3801): Fix panic in http_response on invalid regex.
- [#3973](https://github.com/influxdata/telegraf/issues/3873): Fix socket_listener setting ReadBufferSize on tcp sockets.
- [#1575](https://github.com/influxdata/telegraf/issues/1575): Add tag for target url to phpfpm input.
- [#3868](https://github.com/influxdata/telegraf/issues/3868): Fix cannot unmarshal object error in DC/OS input.
- [#3648](https://github.com/influxdata/telegraf/issues/3648): Fix InfluxDB output not able to reconnect when server address changes.
- [#3957](https://github.com/influxdata/telegraf/issues/3957): Fix parsing of dos line endings in the smart input.
- [#3754](https://github.com/influxdata/telegraf/issues/3754): Fix precision truncation when no timestamp included.
- [#3655](https://github.com/influxdata/telegraf/issues/3655): Fix SNMPv3 connection with Cisco ASA 5515 in snmp input.
- [#3981](https://github.com/influxdata/telegraf/pull/3981): Export all vars defined in /etc/default/telegraf.
- [#4004](https://github.com/influxdata/telegraf/issues/4004): Allow grok pattern to contain newlines.

## v1.5.3 [2018-03-14]

### Bug Fixes

- [#3729](https://github.com/influxdata/telegraf/issues/3729): Set path to / if HOST_MOUNT_PREFIX matches full path.
- [#3739](https://github.com/influxdata/telegraf/issues/3739): Remove userinfo from url tag in prometheus input.
- [#3778](https://github.com/influxdata/telegraf/issues/3778): Fix ping plugin not reporting zero durations.
- [#3697](https://github.com/influxdata/telegraf/issues/3697): Disable keepalive in mqtt output to prevent deadlock.
- [#3786](https://github.com/influxdata/telegraf/pull/3786): Fix collation difference in sqlserver input.
- [#3871](https://github.com/influxdata/telegraf/pull/3871): Fix uptime metric in passenger input plugin.
- [#3851](https://github.com/influxdata/telegraf/issues/3851): Add output of stderr in case of error to exec log message.

## v1.5.2 [2018-01-30]

### Bug Fixes

- [#3684](https://github.com/influxdata/telegraf/pull/3684): Ignore empty lines in Graphite plaintext.
- [#3604](https://github.com/influxdata/telegraf/issues/3604): Fix index out of bounds error in solr input plugin.
- [#3680](https://github.com/influxdata/telegraf/pull/3680): Reconnect before sending graphite metrics if disconnected.
- [#3693](https://github.com/influxdata/telegraf/pull/3693): Align aggregator period with internal ticker to avoid skipping metrics.
- [#3629](https://github.com/influxdata/telegraf/issues/3629): Fix a potential deadlock when using aggregators.
- [#3697](https://github.com/influxdata/telegraf/issues/3697): Limit wait time for writes in mqtt output.
- [#3698](https://github.com/influxdata/telegraf/issues/3698): Revert change in graphite output where dot in field key was replaced by underscore.
- [#3710](https://github.com/influxdata/telegraf/issues/3710): Add timeout to wavefront output write.
- [#3725](https://github.com/influxdata/telegraf/issues/3725): Exclude master_replid fields from redis input.

## v1.5.1 [2018-01-10]

### Bug Fixes

- [#3624](https://github.com/influxdata/telegraf/pull/3624): Fix name error in jolokia2_agent sample config.
- [#3625](https://github.com/influxdata/telegraf/pull/3625): Fix DC/OS login expiration time.
- [#3593](https://github.com/influxdata/telegraf/pull/3593): Set Content-Type charset in influxdb output and allow it be overridden.
- [#3594](https://github.com/influxdata/telegraf/pull/3594): Document permissions setup for postfix input.
- [#3633](https://github.com/influxdata/telegraf/pull/3633): Fix deliver_get field in rabbitmq input.
- [#3607](https://github.com/influxdata/telegraf/issues/3607): Escape environment variables during config toml parsing.

## v1.5 [2017-12-14]

### New Plugins

- [basicstats](./plugins/aggregators/basicstats/README.md) - Thanks to @toni-moreno
- [bond](./plugins/inputs/bond/README.md) - Thanks to @ildarsv
- [cratedb](./plugins/outputs/cratedb/README.md) - Thanks to @felixge
- [dcos](./plugins/inputs/dcos/README.md) - Thanks to @influxdata
- [jolokia2](./plugins/inputs/jolokia2/README.md) - Thanks to @dylanmei
- [nginx_plus](./plugins/inputs/nginx_plus/README.md) - Thanks to @mplonka & @poblahblahblah
- [opensmtpd](./plugins/inputs/opensmtpd/README.md) - Thanks to @aromeyer
- [particle](./plugins/inputs/webhooks/particle/README.md) - Thanks to @davidgs
- [pf](./plugins/inputs/pf/README.md) - Thanks to @nferch
- [postfix](./plugins/inputs/postfix/README.md) - Thanks to @phemmer
- [smart](./plugins/inputs/smart/README.md) - Thanks to @rickard-von-essen
- [solr](./plugins/inputs/solr/README.md) - Thanks to @ljagiello
- [teamspeak](./plugins/inputs/teamspeak/README.md) - Thanks to @p4ddy1
- [unbound](./plugins/inputs/unbound/README.md) - Thanks to @aromeyer
- [wavefront](./plugins/outputs/wavefront/README.md) - Thanks to @puckpuck

### Release Notes

- In the `kinesis` output, use of the `partition_key` and
  `use_random_partitionkey` options has been deprecated in favor of the
  `partition` subtable.  This allows for more flexible methods to set the
  partition key such as by metric name or by tag.

- With the release of the new improved `jolokia2` input, the legacy `jolokia`
  plugin is deprecated and will be removed in a future release.  Users of this
  plugin are encouraged to update to the new `jolokia2` plugin.

- In the `postgresql` and `postgresql_extensible` plugins, the type of the oid
  data type has changed from string to integer.  It is recommended to drop
  affected fields until a new shard is started. For details on how to
  workaround this issue please see [#3622](https://github.com/influxdata/telegraf/issues/3622).

### Features

- [#3170](https://github.com/influxdata/telegraf/pull/3170): Add support for sharding based on metric name.
- [#3196](https://github.com/influxdata/telegraf/pull/3196): Add Kafka output plugin topic_suffix option.
- [#3027](https://github.com/influxdata/telegraf/pull/3027): Include mount mode option in disk metrics.
- [#3191](https://github.com/influxdata/telegraf/pull/3191): TLS and MTLS enhancements to HTTPListener input plugin.
- [#3213](https://github.com/influxdata/telegraf/pull/3213): Add polling method to logparser and tail inputs.
- [#3211](https://github.com/influxdata/telegraf/pull/3211): Add timeout option for kubernetes input.
- [#3234](https://github.com/influxdata/telegraf/pull/3234): Add support for timing sums in statsd input.
- [#2617](https://github.com/influxdata/telegraf/issues/2617): Add resource limit monitoring to procstat.
- [#3236](https://github.com/influxdata/telegraf/pull/3236): Add support for k8s service DNS discovery to prometheus input.
- [#3245](https://github.com/influxdata/telegraf/pull/3245): Add configurable metrics endpoint to prometheus output.
- [#3214](https://github.com/influxdata/telegraf/pull/3214): Add new nginx_plus input plugin.
- [#3215](https://github.com/influxdata/telegraf/pull/3215): Add support for NSQLookupd to nsq_consumer.
- [#2278](https://github.com/influxdata/telegraf/pull/2278): Add redesigned Jolokia input plugin.
- [#3106](https://github.com/influxdata/telegraf/pull/3106): Add configurable separator for metrics and fields in opentsdb output.
- [#1692](https://github.com/influxdata/telegraf/pull/1692): Add support for the rollbar occurrence webhook event.
- [#3160](https://github.com/influxdata/telegraf/pull/3160): Add Wavefront output plugin.
- [#3281](https://github.com/influxdata/telegraf/pull/3281): Add extra wired tiger cache metrics to mongodb input.
- [#3141](https://github.com/influxdata/telegraf/pull/3141): Collect Docker Swarm service metrics in docker input plugin.
- [#2449](https://github.com/influxdata/telegraf/pull/2449): Add smart input plugin for collecting S.M.A.R.T. data.
- [#3269](https://github.com/influxdata/telegraf/pull/3269): Add cluster health level configuration to elasticsearch input.
- [#3304](https://github.com/influxdata/telegraf/pull/3304): Add ability to limit node stats in elasticsearch input.
- [#2167](https://github.com/influxdata/telegraf/pull/2167): Add new basicstats aggregator.
- [#3344](https://github.com/influxdata/telegraf/pull/3344): Add UDP IPv6 support to statsd input.
- [#3350](https://github.com/influxdata/telegraf/pull/3350): Use labels in prometheus output for string fields.
- [#3358](https://github.com/influxdata/telegraf/pull/3358): Add support for decimal timestamps to ts-epoch modifier.
- [#3337](https://github.com/influxdata/telegraf/pull/3337): Add histogram and summary types and use in prometheus plugins.
- [#3365](https://github.com/influxdata/telegraf/pull/3365): Gather concurrently from snmp agents.
- [#3333](https://github.com/influxdata/telegraf/issues/3333): Perform DNS lookup before ping and report result.
- [#3398](https://github.com/influxdata/telegraf/issues/3398): Add instance name option to varnish plugin.
- [#3406](https://github.com/influxdata/telegraf/pull/3406):  Add support for SSL settings to ElasticSearch output plugin.
- [#3315](https://github.com/influxdata/telegraf/pull/3315): Add Teamspeak 3 input plugin.
- [#3305](https://github.com/influxdata/telegraf/pull/3305): Add modification_time field to filestat input plugin.
- [#2019](https://github.com/influxdata/telegraf/pull/2019): Add Solr input plugin.
- [#3210](https://github.com/influxdata/telegraf/pull/3210): Add CrateDB output plugin.
- [#3459](https://github.com/influxdata/telegraf/pull/3459): Add systemd unit pid and cgroup matching to procstat.
- [#3477](https://github.com/influxdata/telegraf/pull/3477): Add Particle Webhook Plugin.
- [#3471](https://github.com/influxdata/telegraf/pull/3471): Use MAX() instead of SUM() for latency measurements in sqlserver.
- [#3490](https://github.com/influxdata/telegraf/pull/3490): Add index by week number to Elasticsearch output.
- [#3434](https://github.com/influxdata/telegraf/pull/3434): Add unbound input plugin.
- [#3449](https://github.com/influxdata/telegraf/pull/3449): Add opensmtpd input plugin.
- [#3470](https://github.com/influxdata/telegraf/pull/3470): Add support for tags in the index name in elasticsearch output.
- [#2553](https://github.com/influxdata/telegraf/pull/2553): Add postfix input plugin.
- [#3424](https://github.com/influxdata/telegraf/pull/3424): Add bond input plugin.
- [#3518](https://github.com/influxdata/telegraf/pull/3518): Add slab to mem plugin.
- [#3519](https://github.com/influxdata/telegraf/pull/3519): Add input plugin for DC/OS.
- [#3140](https://github.com/influxdata/telegraf/pull/3140): Add support for glob patterns in net input plugin.
- [#3405](https://github.com/influxdata/telegraf/pull/3405): Add input plugin for OpenBSD/FreeBSD pf.
- [#3528](https://github.com/influxdata/telegraf/pull/3528): Add option to amqp output to publish persistent messages.
- [#3530](https://github.com/influxdata/telegraf/pull/3530): Support I (idle) process state on procfs+Linux.

### Bug Fixes

- [#3136](https://github.com/influxdata/telegraf/issues/3136): Fix webhooks input address in use during reload.
- [#3258](https://github.com/influxdata/telegraf/issues/3258): Unlock Statsd when stopping to prevent deadlock.
- [#3319](https://github.com/influxdata/telegraf/issues/3319): Fix cloudwatch output requires unneeded permissions.
- [#3351](https://github.com/influxdata/telegraf/issues/3351): Fix prometheus passthrough for existing value types.
- [#3430](https://github.com/influxdata/telegraf/issues/3430): Always ignore autofs filesystems in disk input.
- [#3326](https://github.com/influxdata/telegraf/issues/3326): Fail metrics parsing on unescaped quotes.
- [#3473](https://github.com/influxdata/telegraf/pull/3473): Whitelist allowed char classes for graphite output.
- [#3488](https://github.com/influxdata/telegraf/pull/3488): Use hexadecimal ids and lowercase names in zipkin input.
- [#3263](https://github.com/influxdata/telegraf/issues/3263): Fix snmp-tools output parsing with Windows EOLs.
- [#3447](https://github.com/influxdata/telegraf/issues/3447): Add shadow-utils dependency to rpm package.
- [#3448](https://github.com/influxdata/telegraf/issues/3448): Use deb-systemd-invoke to restart service.
- [#3553](https://github.com/influxdata/telegraf/issues/3553): Fix kafka_consumer outside range of offsets error.
- [#3568](https://github.com/influxdata/telegraf/issues/3568): Fix separation of multiple prometheus_client outputs.
- [#3577](https://github.com/influxdata/telegraf/issues/3577): Don't add system input uptime_format as a counter.

## v1.4.5 [2017-12-01]

### Bug Fixes

- [#3500](https://github.com/influxdata/telegraf/issues/3500): Fix global variable collection when using interval_slow option in mysql input.
- [#3486](https://github.com/influxdata/telegraf/issues/3486): Fix error getting net connections info in netstat input.
- [#3529](https://github.com/influxdata/telegraf/issues/3529): Fix HOST_MOUNT_PREFIX in docker with disk input.

## v1.4.4 [2017-11-08]

### Bug Fixes

- [#3401](https://github.com/influxdata/telegraf/pull/3401): Use schema specified in mqtt_consumer input.
- [#3419](https://github.com/influxdata/telegraf/issues/3419): Redact datadog API key in log output.
- [#3311](https://github.com/influxdata/telegraf/issues/3311): Fix error getting pids in netstat input.
- [#3339](https://github.com/influxdata/telegraf/issues/3339): Support HOST_VAR envvar to locate /var in system input.
- [#3383](https://github.com/influxdata/telegraf/issues/3383): Use current time if docker container read time is zero value.

## v1.4.3 [2017-10-25]

### Bug Fixes

- [#3327](https://github.com/influxdata/telegraf/issues/3327): Fix container name filters in docker input.
- [#3321](https://github.com/influxdata/telegraf/issues/3321): Fix snmpwalk address format in leofs input.
- [#3329](https://github.com/influxdata/telegraf/issues/3329): Fix case sensitivity issue in sqlserver query.
- [#3342](https://github.com/influxdata/telegraf/pull/3342): Fix CPU input plugin stuck after suspend on Linux.
- [#3013](https://github.com/influxdata/telegraf/issues/3013): Fix mongodb input panic when restarting mongodb.
- [#3224](https://github.com/influxdata/telegraf/pull/3224): Preserve url path prefix in influx output.
- [#3354](https://github.com/influxdata/telegraf/pull/3354): Fix TELEGRAF_OPTS expansion in systemd service unit.
- [#3357](https://github.com/influxdata/telegraf/issues/3357): Remove warning when JSON contains null value.
- [#3375](https://github.com/influxdata/telegraf/issues/3375): Fix ACL token usage in consul input plugin.
- [#3369](https://github.com/influxdata/telegraf/issues/3369): Fix unquoting error with Tomcat 6.
- [#3373](https://github.com/influxdata/telegraf/issues/3373): Fix syscall panic in diskio on some Linux systems.

## v1.4.2 [2017-10-10]

### Bug Fixes

- [#3259](https://github.com/influxdata/telegraf/issues/3259): Fix error if int larger than 32-bit in /proc/vmstat.
- [#3265](https://github.com/influxdata/telegraf/issues/3265): Fix parsing of JSON with a UTF8 BOM in httpjson.
- [#2887](https://github.com/influxdata/telegraf/issues/2887): Allow JSON data format to contain zero metrics.
- [#3284](https://github.com/influxdata/telegraf/issues/3284): Fix format of connection_timeout in mqtt_consumer.
- [#3081](https://github.com/influxdata/telegraf/issues/3081): Fix case sensitivity error in sqlserver input.
- [#3297](https://github.com/influxdata/telegraf/issues/3297): Add support for proxy environment variables to http_response.
- [#1588](https://github.com/influxdata/telegraf/issues/1588): Add support for standard proxy env vars in outputs.
- [#3282](https://github.com/influxdata/telegraf/issues/3282): Fix panic in cpu input if number of cpus changes.
- [#2854](https://github.com/influxdata/telegraf/issues/2854): Use chunked transfer encoding in InfluxDB output.

## v1.4.1 [2017-09-26]

### Bug Fixes

- [#3167](https://github.com/influxdata/telegraf/issues/3167): Fix MQTT input exits if Broker is not available on startup.
- [#3217](https://github.com/influxdata/telegraf/issues/3217): Fix optional field value conversions in fluentd input.
- [#3227](https://github.com/influxdata/telegraf/issues/3227): Whitelist allowed char classes for opentsdb output.
- [#3232](https://github.com/influxdata/telegraf/issues/3232): Fix counter and gauge metric types.
- [#3235](https://github.com/influxdata/telegraf/issues/3235): Fix skipped line with empty target in iptables.
- [#3175](https://github.com/influxdata/telegraf/issues/3175): Fix duplicate keys in perf counters sqlserver query.
- [#3230](https://github.com/influxdata/telegraf/issues/3230): Fix panic in statsd p100 calculation.
- [#3242](https://github.com/influxdata/telegraf/issues/3242): Fix arm64 packages contain 32-bit executable.

## v1.4 [2017-09-05]

### Release Notes

- The `kafka_consumer` input has been updated to support Kafka 0.9 and
  above style consumer offset handling.  The previous version of this plugin
  supporting Kafka 0.8 and below is available as the `kafka_consumer_legacy`
  plugin.

- In the `aerospike` input the `node_name` field has been changed to be a tag
  for both the `aerospike_node` and `aerospike_namespace` measurements.

- The default prometheus_client port has been changed to 9273.

### New Plugins

- [fail2ban](./plugins/inputs/fail2ban/README.md) - Thanks to @grugrut
- [fluentd](./plugins/inputs/fluentd/README.md) - Thanks to @DanKans
- [histogram](./plugins/aggregators/histogram/README.md) - Thanks to @vlamug
- [minecraft](./plugins/inputs/minecraft/README.md) - Thanks to @adamperlin & @Ayrdrie
- [openldap](./plugins/inputs/openldap/README.md) - Thanks to @cobaugh
- [salesforce](./plugins/inputs/salesforce/README.md) - Thanks to @rody
- [tomcat](./plugins/inputs/tomcat/README.md) - Thanks to @mlindes
- [win_services](./plugins/inputs/win_services/README.md) - Thanks to @vlastahajek
- [zipkin](./plugins/inputs/zipkin/README.md) - Thanks to @adamperlin & @Ayrdrie

### Features

- [#2487](https://github.com/influxdata/telegraf/pull/2487): Add Kafka 0.9+ consumer support
- [#2773](https://github.com/influxdata/telegraf/pull/2773): Add support for self-signed certs to InfluxDB input plugin
- [#2293](https://github.com/influxdata/telegraf/pull/2293): Add TCP listener for statsd input
- [#2581](https://github.com/influxdata/telegraf/pull/2581): Add Docker container environment variables as tags. Only whitelisted
- [#2817](https://github.com/influxdata/telegraf/pull/2817): Add timeout option to IPMI sensor plugin
- [#2883](https://github.com/influxdata/telegraf/pull/2883): Add support for an optional SSL/TLS configuration to nginx input plugin
- [#2882](https://github.com/influxdata/telegraf/pull/2882): Add timezone support for logparser timestamps.
- [#2814](https://github.com/influxdata/telegraf/pull/2814): Add result_type field for http_response input.
- [#2734](https://github.com/influxdata/telegraf/pull/2734): Add include/exclude filters for docker containers.
- [#2602](https://github.com/influxdata/telegraf/pull/2602): Add secure connection support to graphite output.
- [#2908](https://github.com/influxdata/telegraf/pull/2908): Add min/max response time on linux/darwin to ping.
- [#2929](https://github.com/influxdata/telegraf/pull/2929): Add HTTP Proxy support to influxdb output.
- [#2933](https://github.com/influxdata/telegraf/pull/2933): Add standard SSL options to mysql input.
- [#2875](https://github.com/influxdata/telegraf/pull/2875): Add input plugin for fail2ban.
- [#2924](https://github.com/influxdata/telegraf/pull/2924): Support HOST_PROC in processes and linux_sysctl_fs inputs.
- [#2960](https://github.com/influxdata/telegraf/pull/2960): Add Minecraft input plugin.
- [#2963](https://github.com/influxdata/telegraf/pull/2963): Add support for RethinkDB 1.0 handshake protocol.
- [#2943](https://github.com/influxdata/telegraf/pull/2943): Add optional usage_active and time_active CPU metrics.
- [#2973](https://github.com/influxdata/telegraf/pull/2973): Change default prometheus_client port.
- [#2661](https://github.com/influxdata/telegraf/pull/2661): Add fluentd input plugin.
- [#2990](https://github.com/influxdata/telegraf/pull/2990): Add result_type field to net_response input plugin.
- [#2571](https://github.com/influxdata/telegraf/pull/2571): Add read timeout to socket_listener
- [#2612](https://github.com/influxdata/telegraf/pull/2612): Add input plugin for OpenLDAP.
- [#3042](https://github.com/influxdata/telegraf/pull/3042): Add network option to dns_query.
- [#3054](https://github.com/influxdata/telegraf/pull/3054): Add redis_version field to redis input.
- [#3063](https://github.com/influxdata/telegraf/pull/3063): Add tls options to docker input.
- [#2387](https://github.com/influxdata/telegraf/pull/2387): Add histogram aggregator plugin.
- [#3080](https://github.com/influxdata/telegraf/pull/3080): Add zipkin input plugin.
- [#3023](https://github.com/influxdata/telegraf/pull/3023): Add Windows Services input plugin.
- [#3098](https://github.com/influxdata/telegraf/pull/3098): Add path tag to logparser containing path of logfile.
- [#3075](https://github.com/influxdata/telegraf/pull/3075): Add salesforce input plugin.
- [#3097](https://github.com/influxdata/telegraf/pull/3097): Add option to run varnish under sudo.
- [#3119](https://github.com/influxdata/telegraf/pull/3119): Add weighted_io_time to diskio input.
- [#2978](https://github.com/influxdata/telegraf/pull/2978): Add gzip content-encoding support to influxdb output.
- [#3127](https://github.com/influxdata/telegraf/pull/3127): Allow using system plugin in Windows.
- [#3112](https://github.com/influxdata/telegraf/pull/3112): Add tomcat input plugin.
- [#3182](https://github.com/influxdata/telegraf/pull/3182): HTTP headers can be added to InfluxDB output.

### Bug Fixes

- [#2607](https://github.com/influxdata/telegraf/issues/2607): Improve logging of errors in Cassandra input.
- [#2819](https://github.com/influxdata/telegraf/pull/2819): [enh] set db_version at 0 if query version fails
- [#2749](https://github.com/influxdata/telegraf/pull/2749): Fixed sqlserver input to work with case sensitive server collation.
- [#2716](https://github.com/influxdata/telegraf/pull/2716): Systemd does not see all shutdowns as failures
- [#2782](https://github.com/influxdata/telegraf/pull/2782): Reuse transports in input plugins
- [#2815](https://github.com/influxdata/telegraf/issues/2815): Inputs processes fails with "no such process".
- [#1137](https://github.com/influxdata/telegraf/issues/1137): Fix multiple plugin loading in win_perf_counters.
- [#2855](https://github.com/influxdata/telegraf/pull/2855):  MySQL input: log and continue on field parse error.
- [#2885](https://github.com/influxdata/telegraf/pull/2885): Fix timeout option in Windows ping input sample configuration.
- [#2911](https://github.com/influxdata/telegraf/issues/2911): Fix Kinesis output plugin in govcloud.
- [#2917](https://github.com/influxdata/telegraf/issues/2917): Fix Aerospike input adds all nodes to a single series.
- [#2452](https://github.com/influxdata/telegraf/pull/2452): Improve Prometheus Client output documentation.
- [#2984](https://github.com/influxdata/telegraf/pull/2984): Display error message if prometheus output fails to listen.
- [#2997](https://github.com/influxdata/telegraf/issues/2997): Fix elasticsearch output content type detection warning.
- [#2914](https://github.com/influxdata/telegraf/issues/2914): Prevent possible deadlock when using aggregators.
- [#2860](https://github.com/influxdata/telegraf/issues/2860): Fix combined tagdrop/tagpass filtering.
- [#3036](https://github.com/influxdata/telegraf/pull/3036): Fix filtering when both pass and drop match an item.
- [#2964](https://github.com/influxdata/telegraf/issues/2964): Only report cpu usage for online cpus in docker input.
- [#3050](https://github.com/influxdata/telegraf/pull/3050): Start first aggregator period at startup time.
- [#2906](https://github.com/influxdata/telegraf/issues/2906): Fix panic in logparser if file cannot be opened.
- [#2886](https://github.com/influxdata/telegraf/issues/2886): Default to localhost if zookeeper has no servers set.
- [#2457](https://github.com/influxdata/telegraf/issues/2457): Fix docker memory and cpu reporting in Windows.
- [#3058](https://github.com/influxdata/telegraf/issues/3058): Allow iptable entries with trailing text.
- [#1680](https://github.com/influxdata/telegraf/issues/1680): Sanitize password from couchbase metric.
- [#3104](https://github.com/influxdata/telegraf/issues/3104): Converge to typed value in prometheus output.
- [#2899](https://github.com/influxdata/telegraf/issues/2899): Skip compilation of logparser and tail on solaris.
- [#2951](https://github.com/influxdata/telegraf/issues/2951): Discard logging from tail library.
- [#3126](https://github.com/influxdata/telegraf/pull/3126): Remove log message on ping timeout.
- [#3144](https://github.com/influxdata/telegraf/issues/3144): Don't retry points beyond retention policy.
- [#3015](https://github.com/influxdata/telegraf/issues/3015): Don't start Telegraf on install in Amazon Linux.
- [#3153](https://github.com/influxdata/telegraf/issues/3053): Enable hddtemp input on all platforms.
- [#3142](https://github.com/influxdata/telegraf/issues/3142): Escape backslash within string fields.
- [#3162](https://github.com/influxdata/telegraf/issues/3162): Fix parsing of SHM remotes in ntpq input
- [#3149](https://github.com/influxdata/telegraf/issues/3149): Don't fail parsing zpool stats if pool health is UNAVAIL on FreeBSD.
- [#2672](https://github.com/influxdata/telegraf/issues/2672): Fix NSQ input plugin when used with version 1.0.0-compat.
- [#2523](https://github.com/influxdata/telegraf/issues/2523): Added CloudWatch metric constraint validation.
- [#3179](https://github.com/influxdata/telegraf/issues/3179): Skip non-numerical values in graphite format.
- [#3187](https://github.com/influxdata/telegraf/issues/3187): Fix panic when handling string fields with escapes.

## v1.3.5 [2017-07-26]

### Bug Fixes

- [#3049](https://github.com/influxdata/telegraf/issues/3049): Fix prometheus output cannot be reloaded.
- [#3037](https://github.com/influxdata/telegraf/issues/3037): Fix filestat reporting exists when cannot list directory.
- [#2386](https://github.com/influxdata/telegraf/issues/2386): Fix ntpq parse issue when using dns_lookup.
- [#2554](https://github.com/influxdata/telegraf/issues/2554): Fix panic when agent.interval = "0s".

## v1.3.4 [2017-07-12]

### Bug Fixes

- [#3001](https://github.com/influxdata/telegraf/issues/3001): Fix handling of escape characters within fields.
- [#2988](https://github.com/influxdata/telegraf/issues/2988): Fix chrony plugin does not track system time offset.
- [#3004](https://github.com/influxdata/telegraf/issues/3004): Do not allow metrics with trailing slashes.
- [#3011](https://github.com/influxdata/telegraf/issues/3011): Prevent Write from being called concurrently.

## v1.3.3 [2017-06-28]

### Bug Fixes

- [#2915](https://github.com/influxdata/telegraf/issues/2915): Allow dos line endings in tail and logparser.
- [#2937](https://github.com/influxdata/telegraf/issues/2937): Remove label value sanitization in prometheus output.
- [#2948](https://github.com/influxdata/telegraf/issues/2948): Fix bug parsing default timestamps with modified precision.
- [#2954](https://github.com/influxdata/telegraf/issues/2954): Fix panic in elasticsearch input if cannot determine master.

## v1.3.2 [2017-06-14]

### Bug Fixes

- [#2862](https://github.com/influxdata/telegraf/issues/2862): Fix InfluxDB UDP metric splitting.
- [#2888](https://github.com/influxdata/telegraf/issues/2888): Fix mongodb/leofs urls without scheme.
- [#2822](https://github.com/influxdata/telegraf/issues/2822): Fix inconsistent label dimensions in prometheus output.

## v1.3.1 [2017-05-31]

### Bug Fixes

- [#2749](https://github.com/influxdata/telegraf/pull/2749): Fixed sqlserver input to work with case sensitive server collation.
- [#2782](https://github.com/influxdata/telegraf/pull/2782): Reuse transports in input plugins
- [#2815](https://github.com/influxdata/telegraf/issues/2815): Inputs processes fails with "no such process".
- [#2851](https://github.com/influxdata/telegraf/pull/2851): Fix InfluxDB output database quoting.
- [#2856](https://github.com/influxdata/telegraf/issues/2856): Fix net input on older Linux kernels.
- [#2848](https://github.com/influxdata/telegraf/pull/2848): Fix panic in mongo input.
- [#2869](https://github.com/influxdata/telegraf/pull/2869): Fix length calculation of split metric buffer.

## v1.3 [2017-05-15]

### Release Notes

- Users of the windows `ping` plugin will need to drop or migrate their
measurements in order to continue using the plugin. The reason for this is that
the windows plugin was outputting a different type than the linux plugin. This
made it impossible to use the `ping` plugin for both windows and linux
machines.

- Ceph: the `ceph_pgmap_state` metric content has been modified to use a unique field `count`, with each state expressed as a `state` tag.

Telegraf < 1.3:

```text
# field_name             value
active+clean             123
active+clean+scrubbing   3
```

Telegraf >= 1.3:

```text
# field_name    value       tag
count           123         state=active+clean
count           3           state=active+clean+scrubbing
```

- The [Riemann output plugin](./plugins/outputs/riemann) has been rewritten
and the previous riemann plugin is _incompatible_ with the new one. The reasons
for this are outlined in issue [#1878](https://github.com/influxdata/telegraf/issues/1878).
The previous riemann output will still be available using
`outputs.riemann_legacy` if needed, but that will eventually be deprecated.
It is highly recommended that all users migrate to the new riemann output plugin.

- Generic [socket_listener](./plugins/inputs/socket_listener) and
[socket_writer](./plugins/outputs/socket_writer) plugins have been implemented
for receiving and sending UDP, TCP, unix, & unix-datagram data. These plugins
will replace udp_listener and tcp_listener, which are still available but will
be deprecated eventually.

### Features

- [#2721](https://github.com/influxdata/telegraf/pull/2721): Added SASL options for kafka output plugin.
- [#2723](https://github.com/influxdata/telegraf/pull/2723): Added SSL configuration for input haproxy.
- [#2494](https://github.com/influxdata/telegraf/pull/2494): Add interrupts input plugin.
- [#2094](https://github.com/influxdata/telegraf/pull/2094): Add generic socket listener & writer.
- [#2204](https://github.com/influxdata/telegraf/pull/2204): Extend http_response to support searching for a substring in response. Return 1 if found, else 0.
- [#2137](https://github.com/influxdata/telegraf/pull/2137): Added userstats to mysql input plugin.
- [#2179](https://github.com/influxdata/telegraf/pull/2179): Added more InnoDB metric to MySQL plugin.
- [#2229](https://github.com/influxdata/telegraf/pull/2229): `ceph_pgmap_state` metric now uses a single field `count`, with PG state published as `state` tag.
- [#2251](https://github.com/influxdata/telegraf/pull/2251): InfluxDB output: use own client for improved through-put and less allocations.
- [#2330](https://github.com/influxdata/telegraf/pull/2330): Keep -config-directory when running as Windows service.
- [#1900](https://github.com/influxdata/telegraf/pull/1900): Riemann plugin rewrite.
- [#1453](https://github.com/influxdata/telegraf/pull/1453): diskio: add support for name templates and udev tags.
- [#2277](https://github.com/influxdata/telegraf/pull/2277): add integer metrics for Consul check health state.
- [#2201](https://github.com/influxdata/telegraf/pull/2201): Add lock option to the IPtables input plugin.
- [#2244](https://github.com/influxdata/telegraf/pull/2244): Support ipmi_sensor plugin querying local ipmi sensors.
- [#2339](https://github.com/influxdata/telegraf/pull/2339): Increment gather_errors for all errors emitted by inputs.
- [#2071](https://github.com/influxdata/telegraf/issues/2071): Use official docker SDK.
- [#1678](https://github.com/influxdata/telegraf/pull/1678): Add AMQP consumer input plugin
- [#2512](https://github.com/influxdata/telegraf/pull/2512): Added pprof tool.
- [#2501](https://github.com/influxdata/telegraf/pull/2501): Support DEAD(X) state in system input plugin.
- [#2522](https://github.com/influxdata/telegraf/pull/2522): Add support for mongodb client certificates.
- [#1948](https://github.com/influxdata/telegraf/pull/1948): Support adding SNMP table indexes as tags.
- [#2332](https://github.com/influxdata/telegraf/pull/2332): Add Elasticsearch 5.x output
- [#2587](https://github.com/influxdata/telegraf/pull/2587): Add json timestamp units configurability
- [#2597](https://github.com/influxdata/telegraf/issues/2597): Add support for Linux sysctl-fs metrics.
- [#2425](https://github.com/influxdata/telegraf/pull/2425): Support to include/exclude docker container labels as tags
- [#1667](https://github.com/influxdata/telegraf/pull/1667): dmcache input plugin
- [#2637](https://github.com/influxdata/telegraf/issues/2637): Add support for precision in http_listener
- [#2636](https://github.com/influxdata/telegraf/pull/2636): Add `message_len_max` option to `kafka_consumer` input
- [#1100](https://github.com/influxdata/telegraf/issues/1100): Add collectd parser
- [#1820](https://github.com/influxdata/telegraf/issues/1820): easier plugin testing without outputs
- [#2493](https://github.com/influxdata/telegraf/pull/2493): Check signature in the GitHub webhook plugin
- [#2038](https://github.com/influxdata/telegraf/issues/2038): Add papertrail support to webhooks
- [#2253](https://github.com/influxdata/telegraf/pull/2253): Change jolokia plugin to use bulk requests.
- [#2575](https://github.com/influxdata/telegraf/issues/2575) Add diskio input for Darwin
- [#2705](https://github.com/influxdata/telegraf/pull/2705): Kinesis output: add use_random_partitionkey option
- [#2635](https://github.com/influxdata/telegraf/issues/2635): add tcp keep-alive to socket_listener & socket_writer
- [#2031](https://github.com/influxdata/telegraf/pull/2031): Add Kapacitor input plugin
- [#2732](https://github.com/influxdata/telegraf/pull/2732): Use go 1.8.1
- [#2712](https://github.com/influxdata/telegraf/issues/2712): Documentation for rabbitmq input plugin
- [#2141](https://github.com/influxdata/telegraf/pull/2141): Logparser handles newly-created files.

### Bug Fixes

- [#2633](https://github.com/influxdata/telegraf/pull/2633): ipmi_sensor: allow @ symbol in password
- [#2077](https://github.com/influxdata/telegraf/issues/2077): SQL Server Input - Arithmetic overflow error converting numeric to data type int.
- [#2262](https://github.com/influxdata/telegraf/issues/2262): Flush jitter can inhibit metric collection.
- [#2318](https://github.com/influxdata/telegraf/issues/2318): haproxy input - Add missing fields.
- [#2287](https://github.com/influxdata/telegraf/issues/2287): Kubernetes input: Handle null startTime for stopped pods.
- [#2356](https://github.com/influxdata/telegraf/issues/2356): cpu input panic when /proc/stat is empty.
- [#2341](https://github.com/influxdata/telegraf/issues/2341): telegraf swallowing panics in --test mode.
- [#2358](https://github.com/influxdata/telegraf/pull/2358): Create pidfile with 644 permissions & defer file deletion.
- [#2360](https://github.com/influxdata/telegraf/pull/2360): Fixed install/remove of telegraf on non-systemd Debian/Ubuntu systems
- [#2282](https://github.com/influxdata/telegraf/issues/2282): Reloading telegraf freezes prometheus output.
- [#2390](https://github.com/influxdata/telegraf/issues/2390): Empty tag value causes error on InfluxDB output.
- [#2380](https://github.com/influxdata/telegraf/issues/2380): buffer_size field value is negative number from "internal" plugin.
- [#2414](https://github.com/influxdata/telegraf/issues/2414): Missing error handling in the MySQL plugin leads to segmentation violation.
- [#2462](https://github.com/influxdata/telegraf/pull/2462): Fix type conflict in windows ping plugin.
- [#2178](https://github.com/influxdata/telegraf/issues/2178): logparser: regexp with lookahead.
- [#2466](https://github.com/influxdata/telegraf/issues/2466): Telegraf can crash in LoadDirectory on 0600 files.
- [#2215](https://github.com/influxdata/telegraf/issues/2215): Iptables input: document better that rules without a comment are ignored.
- [#2483](https://github.com/influxdata/telegraf/pull/2483): Fix win_perf_counters capping values at 100.
- [#2498](https://github.com/influxdata/telegraf/pull/2498): Exporting Ipmi.Path to be set by config.
- [#2500](https://github.com/influxdata/telegraf/pull/2500): Remove warning if parse empty content
- [#2520](https://github.com/influxdata/telegraf/pull/2520): Update default value for Cloudwatch rate limit
- [#2513](https://github.com/influxdata/telegraf/issues/2513): create /etc/telegraf/telegraf.d directory in tarball.
- [#2541](https://github.com/influxdata/telegraf/issues/2541): Return error on unsupported serializer data format.
- [#1827](https://github.com/influxdata/telegraf/issues/1827): Fix Windows Performance Counters multi instance identifier
- [#2576](https://github.com/influxdata/telegraf/pull/2576): Add write timeout to Riemann output
- [#2596](https://github.com/influxdata/telegraf/pull/2596): fix timestamp parsing on prometheus plugin
- [#2610](https://github.com/influxdata/telegraf/pull/2610): Fix deadlock when output cannot write
- [#2410](https://github.com/influxdata/telegraf/issues/2410): Fix connection leak in postgresql.
- [#2628](https://github.com/influxdata/telegraf/issues/2628): Set default measurement name for snmp input.
- [#2649](https://github.com/influxdata/telegraf/pull/2649): Improve performance of diskio with many disks
- [#2671](https://github.com/influxdata/telegraf/issues/2671): The internal input plugin uses the wrong units for `heap_objects`
- [#2684](https://github.com/influxdata/telegraf/pull/2684): Fix ipmi_sensor config is shared between all plugin instances
- [#2450](https://github.com/influxdata/telegraf/issues/2450): Network statistics not collected when system has alias interfaces
- [#1911](https://github.com/influxdata/telegraf/issues/1911): Sysstat plugin needs LANG=C or similar locale
- [#2528](https://github.com/influxdata/telegraf/issues/2528): File output closes standard streams on reload.
- [#2603](https://github.com/influxdata/telegraf/issues/2603): AMQP output disconnect blocks all outputs
- [#2706](https://github.com/influxdata/telegraf/issues/2706): Improve documentation for redis input plugin

## v1.2.1 [2017-02-01]

### Bug Fixes

- [#2317](https://github.com/influxdata/telegraf/issues/2317): Fix segfault on nil metrics with influxdb output.
- [#2324](https://github.com/influxdata/telegraf/issues/2324): Fix negative number handling.

### Features

- [#2348](https://github.com/influxdata/telegraf/pull/2348): Go version 1.7.4 -> 1.7.5

## v1.2 [2017-01-00]

### Release Notes

- The StatsD plugin will now default all "delete_" config options to "true". This
will change te default behavior for users who were not specifying these parameters
in their config file.

- The StatsD plugin will also no longer save it's state on a service reload.
Essentially we have reverted PR [#887](https://github.com/influxdata/telegraf/pull/887).
The reason for this is that saving the state in a global variable is not
thread-safe (see [#1975](https://github.com/influxdata/telegraf/issues/1975) & [#2102](https://github.com/influxdata/telegraf/issues/2102)),
and this creates issues if users want to define multiple instances
of the statsd plugin. Saving state on reload may be considered in the future,
but this would need to be implemented at a higher level and applied to all
plugins, not just statsd.

### Features

- [#2123](https://github.com/influxdata/telegraf/pull/2123): Fix improper calculation of CPU percentages
- [#1564](https://github.com/influxdata/telegraf/issues/1564): Use RFC3339 timestamps in log output.
- [#1997](https://github.com/influxdata/telegraf/issues/1997): Non-default HTTP timeouts for RabbitMQ plugin.
- [#2074](https://github.com/influxdata/telegraf/pull/2074): "discard" output plugin added, primarily for testing purposes.
- [#1965](https://github.com/influxdata/telegraf/pull/1965): The JSON parser can now parse an array of objects using the same configuration.
- [#1807](https://github.com/influxdata/telegraf/pull/1807): Option to use device name rather than path for reporting disk stats.
- [#1348](https://github.com/influxdata/telegraf/issues/1348): Telegraf "internal" plugin for collecting stats on itself.
- [#2127](https://github.com/influxdata/telegraf/pull/2127): Update Go version to 1.7.4.
- [#2126](https://github.com/influxdata/telegraf/pull/2126): Support a metric.Split function.
- [#2026](https://github.com/influxdata/telegraf/pull/2065): elasticsearch "shield" (basic auth) support doc.
- [#1885](https://github.com/influxdata/telegraf/pull/1885): Fix over-querying of cloudwatch metrics
- [#1913](https://github.com/influxdata/telegraf/pull/1913): OpenTSDB basic auth support.
- [#1908](https://github.com/influxdata/telegraf/pull/1908): RabbitMQ Connection metrics.
- [#1937](https://github.com/influxdata/telegraf/pull/1937): HAProxy session limit metric.
- [#2068](https://github.com/influxdata/telegraf/issues/2068): Accept strings for StatsD sets.
- [#1893](https://github.com/influxdata/telegraf/issues/1893): Change StatsD default "reset" behavior.
- [#2079](https://github.com/influxdata/telegraf/pull/2079): Enable setting ClientID in MQTT output.
- [#2001](https://github.com/influxdata/telegraf/pull/2001): MongoDB input plugin: Improve state data.
- [#2078](https://github.com/influxdata/telegraf/pull/2078): Ping input: add standard deviation field.
- [#2121](https://github.com/influxdata/telegraf/pull/2121): Add GC pause metric to InfluxDB input plugin.
- [#2006](https://github.com/influxdata/telegraf/pull/2006): Added response_timeout property to prometheus input plugin.
- [#1763](https://github.com/influxdata/telegraf/issues/1763): Pulling github.com/lxn/win's pdh wrapper into telegraf.
- [#1898](https://github.com/influxdata/telegraf/issues/1898): Support negative statsd counters.
- [#1921](https://github.com/influxdata/telegraf/issues/1921): Elasticsearch cluster stats support.
- [#1942](https://github.com/influxdata/telegraf/pull/1942): Change Amazon Kinesis output plugin to use the built-in serializer plugins.
- [#1980](https://github.com/influxdata/telegraf/issues/1980): Hide username/password from elasticsearch error log messages.
- [#2097](https://github.com/influxdata/telegraf/issues/2097): Configurable HTTP timeouts in Jolokia plugin
- [#2255](https://github.com/influxdata/telegraf/pull/2255): Allow changing jolokia attribute delimiter

### Bug Fixes

- [#2049](https://github.com/influxdata/telegraf/pull/2049): Fix the Value data format not trimming null characters from input.
- [#1949](https://github.com/influxdata/telegraf/issues/1949): Fix windows `net` plugin.
- [#1775](https://github.com/influxdata/telegraf/issues/1775): Cache & expire metrics for delivery to prometheus
- [#1775](https://github.com/influxdata/telegraf/issues/1775): Cache & expire metrics for delivery to prometheus.
- [#2146](https://github.com/influxdata/telegraf/issues/2146): Fix potential panic in aggregator plugin metric maker.
- [#1843](https://github.com/influxdata/telegraf/pull/1843) & [#1668](https://github.com/influxdata/telegraf/issues/1668): Add optional ability to define PID as a tag.
- [#1730](https://github.com/influxdata/telegraf/issues/1730) & [#2261](https://github.com/influxdata/telegraf/pull/2261): Fix win_perf_counters not gathering non-English counters.
- [#2061](https://github.com/influxdata/telegraf/issues/2061): Fix panic when file stat info cannot be collected due to permissions or other issue(s).
- [#2045](https://github.com/influxdata/telegraf/issues/2045): Graylog output should set short_message field.
- [#1904](https://github.com/influxdata/telegraf/issues/1904): Hddtemp always put the value in the field temperature.
- [#1693](https://github.com/influxdata/telegraf/issues/1693): Properly collect nested jolokia struct data.
- [#1917](https://github.com/influxdata/telegraf/pull/1917): fix puppetagent inputs plugin to support string for config variable.
- [#1987](https://github.com/influxdata/telegraf/issues/1987): fix docker input plugin tags when registry has port.
- [#2089](https://github.com/influxdata/telegraf/issues/2089): Fix tail input when reading from a pipe.
- [#1449](https://github.com/influxdata/telegraf/issues/1449): MongoDB plugin always shows 0 replication lag.
- [#1825](https://github.com/influxdata/telegraf/issues/1825): Consul plugin: add check_id as a tag in metrics to avoid overwrites.
- [#1973](https://github.com/influxdata/telegraf/issues/1973): Partial fix: logparser CLF pattern with IPv6 addresses.
- [#1975](https://github.com/influxdata/telegraf/issues/1975) & [#2102](https://github.com/influxdata/telegraf/issues/2102): Fix thread-safety when using multiple instances of the statsd input plugin.
- [#2027](https://github.com/influxdata/telegraf/issues/2027): docker input: interface conversion panic fix.
- [#1814](https://github.com/influxdata/telegraf/issues/1814): snmp: ensure proper context is present on error messages.
- [#2299](https://github.com/influxdata/telegraf/issues/2299): opentsdb: add tcp:// prefix if no scheme provided.
- [#2297](https://github.com/influxdata/telegraf/issues/2297): influx parser: parse line-protocol without newlines.
- [#2245](https://github.com/influxdata/telegraf/issues/2245): influxdb output: fix field type conflict blocking output buffer.

## v1.1.2 [2016-12-12]

### Bug Fixes

- [#2007](https://github.com/influxdata/telegraf/issues/2007): Make snmptranslate not required when using numeric OID.
- [#2104](https://github.com/influxdata/telegraf/issues/2104): Add a global snmp translation cache.

## v1.1.1 [2016-11-14]

### Bug Fixes

- [#2023](https://github.com/influxdata/telegraf/issues/2023): Fix issue parsing toml durations with single quotes.

## v1.1.0 [2016-11-07]

### Release Notes

- Telegraf now supports two new types of plugins: processors & aggregators.

- On systemd Telegraf will no longer redirect it's stdout to /var/log/telegraf/telegraf.log.
On most systems, the logs will be directed to the systemd journal and can be
accessed by `journalctl -u telegraf.service`. Consult the systemd journal
documentation for configuring journald. There is also a [`logfile` config option](https://github.com/influxdata/telegraf/blob/master/etc/telegraf.conf#L70)
available in 1.1, which will allow users to easily configure telegraf to
continue sending logs to /var/log/telegraf/telegraf.log.

### Features

- [#1726](https://github.com/influxdata/telegraf/issues/1726): Processor & Aggregator plugin support.
- [#1861](https://github.com/influxdata/telegraf/pull/1861): adding the tags in the graylog output plugin
- [#1732](https://github.com/influxdata/telegraf/pull/1732): Telegraf systemd service, log to journal.
- [#1782](https://github.com/influxdata/telegraf/pull/1782): Allow numeric and non-string values for tag_keys.
- [#1694](https://github.com/influxdata/telegraf/pull/1694): Adding Gauge and Counter metric types.
- [#1606](https://github.com/influxdata/telegraf/pull/1606): Remove carraige returns from exec plugin output on Windows
- [#1674](https://github.com/influxdata/telegraf/issues/1674): elasticsearch input: configurable timeout.
- [#1607](https://github.com/influxdata/telegraf/pull/1607): Massage metric names in Instrumental output plugin
- [#1572](https://github.com/influxdata/telegraf/pull/1572): mesos improvements.
- [#1513](https://github.com/influxdata/telegraf/issues/1513): Add Ceph Cluster Performance Statistics
- [#1650](https://github.com/influxdata/telegraf/issues/1650): Ability to configure response_timeout in httpjson input.
- [#1685](https://github.com/influxdata/telegraf/issues/1685): Add additional redis metrics.
- [#1539](https://github.com/influxdata/telegraf/pull/1539): Added capability to send metrics through Http API for OpenTSDB.
- [#1471](https://github.com/influxdata/telegraf/pull/1471): iptables input plugin.
- [#1542](https://github.com/influxdata/telegraf/pull/1542): Add filestack webhook plugin.
- [#1599](https://github.com/influxdata/telegraf/pull/1599): Add server hostname for each docker measurements.
- [#1697](https://github.com/influxdata/telegraf/pull/1697): Add NATS output plugin.
- [#1407](https://github.com/influxdata/telegraf/pull/1407) & [#1915](https://github.com/influxdata/telegraf/pull/1915): HTTP service listener input plugin.
- [#1699](https://github.com/influxdata/telegraf/pull/1699): Add database blacklist option for Postgresql
- [#1791](https://github.com/influxdata/telegraf/pull/1791): Add Docker container state metrics to Docker input plugin output
- [#1755](https://github.com/influxdata/telegraf/issues/1755): Add support to SNMP for IP & MAC address conversion.
- [#1729](https://github.com/influxdata/telegraf/issues/1729): Add support to SNMP for OID index suffixes.
- [#1813](https://github.com/influxdata/telegraf/pull/1813): Change default arguments for SNMP plugin.
- [#1686](https://github.com/influxdata/telegraf/pull/1686): Mesos input plugin: very high-cardinality mesos-task metrics removed.
- [#1838](https://github.com/influxdata/telegraf/pull/1838): Logging overhaul to centralize the logger & log levels, & provide a logfile config option.
- [#1700](https://github.com/influxdata/telegraf/pull/1700): HAProxy plugin socket glob matching.
- [#1847](https://github.com/influxdata/telegraf/pull/1847): Add Kubernetes plugin for retrieving pod metrics.

### Bug Fixes

- [#1955](https://github.com/influxdata/telegraf/issues/1955): Fix NATS plug-ins reconnection logic.
- [#1936](https://github.com/influxdata/telegraf/issues/1936): Set required default values in udp_listener & tcp_listener.
- [#1926](https://github.com/influxdata/telegraf/issues/1926): Fix toml unmarshal panic in Duration objects.
- [#1746](https://github.com/in
Download .txt
Showing preview only (249K chars total). Download the full file or copy to clipboard to get everything.
gitextract_d5khquh4/

├── .circleci/
│   └── config.yml
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── BUG_REPORT.yml
│   │   ├── FEATURE_REQUEST.yml
│   │   └── SUPPORT.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── linter.yml
│       ├── milestones.yml
│       ├── pr-target-branch.yml
│       ├── readme-linter.yml
│       └── semantic.yml
├── .gitignore
├── .golangci.yml
├── .markdownlint.jsonc
├── .markdownlintignore
├── CHANGELOG-1.13.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── EXTERNAL_PLUGINS.md
├── LICENSE
├── Makefile
├── README.md
├── SECURITY.md
├── accumulator.go
├── agent/
│   ├── README.md
│   ├── accumulator.go
│   ├── accumulator_test.go
│   ├── agent.go
│   ├── agent_posix.go
│   ├── agent_test.go
│   ├── agent_windows.go
│   └── testcases/
│       ├── aggregators-rerun-processors/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       ├── aggregators-skip-processors/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       ├── processor-order-appearance/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       ├── processor-order-explicit/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       ├── processor-order-mixed/
│       │   ├── expected.out
│       │   ├── input.influx
│       │   └── telegraf.conf
│       └── processor-order-no-starlark/
│           ├── expected.out
│           ├── input.influx
│           └── telegraf.conf
├── aggregator.go
├── assets/
│   └── windows/
│       └── icon.icns
├── build_version.txt
├── cmd/
│   └── telegraf/
│       ├── agent.conf
│       ├── cmd_config.go
│       ├── cmd_plugins.go
│       ├── cmd_secretstore.go
│       ├── cmd_win_service.go
│       ├── cmd_win_service_notwindows.go
│       ├── main.go
│       ├── main_test.go
│       ├── main_win_test.go
│       ├── pprof.go
│       ├── printer.go
│       ├── telegraf.go
│       ├── telegraf_posix.go
│       └── telegraf_windows.go
├── config/
│   ├── config.go
│   ├── config_test.go
│   ├── deprecation.go
│   ├── deprecation_test.go
│   ├── envvar.go
│   ├── internal_test.go
│   ├── migration.go
│   ├── plugin_id.go
│   ├── plugin_printer.go
│   ├── plugin_selector.go
│   ├── plugin_selector_test.go
│   ├── secret.go
│   ├── secret_protected.go
│   ├── secret_test.go
│   ├── secret_unprotected.go
│   ├── testdata/
│   │   ├── addressbook.proto
│   │   ├── azure_monitor.toml
│   │   ├── default_parser.toml
│   │   ├── default_parser_exec.toml
│   │   ├── deprecated_field_filter.toml
│   │   ├── envvar_comments.toml
│   │   ├── envvar_comments_expected.toml
│   │   ├── envvar_malicious.conf
│   │   ├── envvar_non_string.conf
│   │   ├── envvar_non_string_multiline.conf
│   │   ├── envvar_valid.conf
│   │   ├── envvar_valid_multiline.conf
│   │   ├── filter_metricpass.toml
│   │   ├── inline_table.toml
│   │   ├── invalid_field.toml
│   │   ├── invalid_field_in_parser_table.toml
│   │   ├── invalid_field_in_parserfunc_table.toml
│   │   ├── invalid_field_processor.toml
│   │   ├── invalid_field_processor_in_parser.toml
│   │   ├── invalid_field_processor_in_parser_table.toml
│   │   ├── invalid_field_processor_in_parserfunc.toml
│   │   ├── invalid_field_processor_in_parserfunc_table.toml
│   │   ├── invalid_field_processor_with_parser.toml
│   │   ├── invalid_field_processor_with_parserfunc.toml
│   │   ├── invalid_field_with_parser.toml
│   │   ├── invalid_field_with_parserfunc.toml
│   │   ├── non_slice_slice.toml
│   │   ├── parsers_new.toml
│   │   ├── processor_order/
│   │   │   ├── multiple_processors.toml
│   │   │   ├── multiple_processors_messy_order.toml
│   │   │   └── multiple_processors_simple_order.toml
│   │   ├── processors_with_parsers.toml
│   │   ├── serializers_new.toml
│   │   ├── serializers_old.toml
│   │   ├── single_plugin.toml
│   │   ├── single_plugin_env_vars.toml
│   │   ├── single_plugin_with_comment_in_array.toml
│   │   ├── single_plugin_with_separators.toml
│   │   ├── slice_comment.toml
│   │   ├── special_types.key
│   │   ├── special_types.pem
│   │   ├── special_types.toml
│   │   ├── state_persistence_input_all_different.toml
│   │   ├── state_persistence_input_all_same.toml
│   │   ├── state_persistence_input_store_load.toml
│   │   ├── state_persistence_processors.toml
│   │   ├── subconfig/
│   │   │   ├── exec.conf
│   │   │   ├── memcached.conf
│   │   │   └── procstat.conf
│   │   ├── telegraf-agent.toml
│   │   ├── wrong_cert_path.toml
│   │   ├── wrong_field_type.toml
│   │   └── wrong_field_type2.toml
│   ├── types.go
│   └── types_test.go
├── docs/
│   ├── AGGREGATORS.md
│   ├── AGGREGATORS_AND_PROCESSORS.md
│   ├── APPARMOR.md
│   ├── COMMANDS_AND_FLAGS.md
│   ├── CONFIGURATION.md
│   ├── CUSTOMIZATION.md
│   ├── DATA_FORMATS_INPUT.md
│   ├── DATA_FORMATS_OUTPUT.md
│   ├── DOCKER.md
│   ├── EXTERNAL_PLUGINS.md
│   ├── FAQ.md
│   ├── INPUTS.md
│   ├── INSTALL_GUIDE.md
│   ├── INTEGRATION_TESTS.md
│   ├── LICENSE_OF_DEPENDENCIES.md
│   ├── METRICS.md
│   ├── NIGHTLIES.md
│   ├── OUTPUTS.md
│   ├── PARSING_DATA.md
│   ├── PROCESSORS.md
│   ├── PROFILING.md
│   ├── QUICK_START.md
│   ├── README.md
│   ├── RELEASES.md
│   ├── SECRETSTORES.md
│   ├── SQL_DRIVERS_INPUT.md
│   ├── SUPPORTED_PLATFORMS.md
│   ├── TEMPLATE_PATTERN.md
│   ├── TLS.md
│   ├── TOML.md
│   ├── WINDOWS_SERVICE.md
│   ├── developers/
│   │   ├── CODE_STYLE.md
│   │   ├── DEBUG.md
│   │   ├── DEPRECATION.md
│   │   ├── LOGGING.md
│   │   ├── METRIC_FORMAT_CHANGES.md
│   │   ├── PACKAGING.md
│   │   ├── PROFILING.md
│   │   ├── REVIEWS.md
│   │   ├── SAMPLE_CONFIG.md
│   │   └── STATE_PERSISTENCE.md
│   ├── includes/
│   │   ├── plugin_config.md
│   │   ├── secret_usage.md
│   │   ├── service_input.md
│   │   └── startup_error_behavior.md
│   └── specs/
│       ├── README.md
│       ├── template.md
│       ├── tsd-001-deprecation.md
│       ├── tsd-002-custom-builder.md
│       ├── tsd-003-state-persistence.md
│       ├── tsd-004-configuration-migration.md
│       ├── tsd-005-output-buffer-strategy.md
│       ├── tsd-006-startup-error-behavior.md
│       ├── tsd-007-url-config-behavior.md
│       ├── tsd-008-partial-write-error-handling.md
│       ├── tsd-009-probe-on-startup.md
│       ├── tsd-010-labels-and-selectors.md
│       └── tsd-011-internal-plugin-statistics.md
├── etc/
│   └── logrotate.d/
│       └── telegraf
├── filter/
│   ├── filter.go
│   ├── filter_test.go
│   └── implementations.go
├── go.mod
├── go.sum
├── info.plist
├── input.go
├── internal/
│   ├── choice/
│   │   └── choice.go
│   ├── clock/
│   │   ├── options.go
│   │   ├── ticker.go
│   │   ├── ticker_aligned_test.go
│   │   ├── ticker_test.go
│   │   ├── ticker_unaligned_test.go
│   │   ├── timer.go
│   │   └── timer_test.go
│   ├── content_coding.go
│   ├── content_coding_test.go
│   ├── customized_no.go
│   ├── customized_yes.go
│   ├── docker/
│   │   ├── docker.go
│   │   └── docker_test.go
│   ├── env.go
│   ├── errors.go
│   ├── exec.go
│   ├── exec_unix.go
│   ├── exec_windows.go
│   ├── fuzz/
│   │   └── json.go
│   ├── globpath/
│   │   ├── globpath.go
│   │   ├── globpath_test.go
│   │   └── testdata/
│   │       ├── log1.log
│   │       ├── log2.log
│   │       ├── log[!.log
│   │       ├── nested1/
│   │       │   └── nested2/
│   │       │       └── nested.txt
│   │       └── test.conf
│   ├── goplugin/
│   │   ├── noplugin.go
│   │   └── plugin.go
│   ├── host_endianness_be.go
│   ├── host_endianness_le.go
│   ├── http.go
│   ├── internal.go
│   ├── internal_test.go
│   ├── limiter/
│   │   └── limiter.go
│   ├── network.go
│   ├── process/
│   │   ├── process.go
│   │   ├── process_posix.go
│   │   ├── process_test.go
│   │   └── process_windows.go
│   ├── rotate/
│   │   ├── file_writer.go
│   │   └── file_writer_test.go
│   ├── templating/
│   │   ├── engine.go
│   │   ├── engine_test.go
│   │   ├── matcher.go
│   │   ├── node.go
│   │   ├── template.go
│   │   └── template_test.go
│   └── type_conversions.go
├── logger/
│   ├── event_logger.go
│   ├── event_logger_test.go
│   ├── handler.go
│   ├── logger.go
│   ├── logger_test.go
│   ├── registry.go
│   ├── stdlog_redirector.go
│   ├── structured_logger.go
│   ├── structured_logger_test.go
│   ├── text_logger.go
│   └── text_logger_test.go
├── logger.go
├── metric/
│   ├── deserialize.go
│   ├── init.go
│   ├── metric.go
│   ├── metric_test.go
│   ├── series_grouper.go
│   ├── series_grouper_test.go
│   ├── tracking.go
│   └── tracking_test.go
├── metric.go
├── migrations/
│   ├── all/
│   │   ├── all.go
│   │   ├── general_common_tls.go
│   │   ├── general_metricfilter.go
│   │   ├── global_agent.go
│   │   ├── inputs.nats_consumer.go
│   │   ├── inputs_KNXListener.go
│   │   ├── inputs_amqp_consumer
│   │   ├── inputs_cassandra.go
│   │   ├── inputs_cisco_telemetry_gnmi.go
│   │   ├── inputs_cloudwatch.go
│   │   ├── inputs_consul.go
│   │   ├── inputs_disk.go
│   │   ├── inputs_docker.go
│   │   ├── inputs_elasticsearch.go
│   │   ├── inputs_filecount.go
│   │   ├── inputs_gnmi.go
│   │   ├── inputs_http.go
│   │   ├── inputs_http_listener.go
│   │   ├── inputs_http_listener_v2.go
│   │   ├── inputs_http_response.go
│   │   ├── inputs_httpjson.go
│   │   ├── inputs_icinga2.go
│   │   ├── inputs_influxdb_listener.go
│   │   ├── inputs_internet_speed.go
│   │   ├── inputs_io.go
│   │   ├── inputs_jolokia.go
│   │   ├── inputs_kafka_consumer_legacy.go
│   │   ├── inputs_kube_inventory.go
│   │   ├── inputs_kubernetes.go
│   │   ├── inputs_logparser.go
│   │   ├── inputs_mqtt_consumer.go
│   │   ├── inputs_nsq_consumer.go
│   │   ├── inputs_ntpq.go
│   │   ├── inputs_openldap.go
│   │   ├── inputs_procstat.go
│   │   ├── inputs_rabbitmq.go
│   │   ├── inputs_sflow.go
│   │   ├── inputs_smart.go
│   │   ├── inputs_snmp_legacy.go
│   │   ├── inputs_sqlserver.go
│   │   ├── inputs_statsd.go
│   │   ├── inputs_tcp_listener.go
│   │   ├── inputs_udp_listener.go
│   │   ├── inputs_vsphere.go
│   │   ├── outputs_amqp.go
│   │   ├── outputs_influxdb.go
│   │   ├── outputs_kinesis.go
│   │   ├── outputs_librato.go
│   │   ├── outputs_mqtt.go
│   │   ├── outputs_remotefile.go
│   │   ├── outputs_riemann_legacy.go
│   │   └── outputs_wavefront.go
│   ├── common/
│   │   ├── filter_options.go
│   │   ├── input_options.go
│   │   └── output_options.go
│   ├── general_common_tls/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_ssl/
│   │           ├── dummy
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── general_metricfilter/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_drop/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_fielddrop/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_fieldpass/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_pass/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_all_overlap/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_fieldexclude/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_fieldexclude_overlap/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_fieldinclude/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── merge_fieldinclude_overlap/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── global_agent/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── default.conf
│   │       ├── logtarget_eventlog/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── logtarget_eventlog_collision.conf
│   │       ├── logtarget_eventlog_with_logfile/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── logtarget_file/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── logtarget_file_no_logfile/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── logtarget_stderr/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── logtarget_stderr_with_logfile/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_KNXListener/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── expected.conf
│   │       └── telegraf.conf
│   ├── inputs_amqp_consumer/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_url/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_url_existing_brokers/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_url_existing_brokers_duplicate/
│   │           ├── deprecated_url_existing_brokers/
│   │           │   ├── expected.conf
│   │           │   └── telegraf.conf
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_cassandra/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── filter_options/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── general_options/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_cisco_telemetry_gnmi/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_alias/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_cloudwatch/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── multiple_cloudwatch_instances/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── namespace_duplicate_in_namespaces/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── namespace_merge_with_namespaces/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── namespace_to_namespaces/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_consul/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_centre_existing/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_datacentre/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_disk/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_mountpoints/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_mountpoints_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_docker/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── all_deprecated_options/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── conflict_resolution/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── container_names_merge/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── container_names_migration/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── perdevice_false_migration/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── perdevice_true_migration/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── total_false_migration/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── total_true_migration/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_elasticsearch/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── http_timeout_to_timeout/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── http_timeout_with_auth/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── http_timeout_with_existing_timeout/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── http_timeout_with_tls/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── multiple_elasticsearch_instances/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_filecount/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_directory/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_directory_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_directory_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_gnmi/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_enable_tls/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_guess_path/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_guess_path_false/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_http/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_bearer_token/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_bearer_token_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_http_listener/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_alias/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_http_listener_v2/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_path/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_path_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_path_existing/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_port/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_port_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_http_response/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_address/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_address_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_address_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_httpjson/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── array/
│   │       │   ├── expected.conf
│   │       │   ├── input.json
│   │       │   ├── output.influx
│   │       │   └── telegraf.conf
│   │       ├── filters/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── headers/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── params/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── single/
│   │           ├── expected.conf
│   │           ├── input.json
│   │           ├── output.influx
│   │           └── telegraf.conf
│   ├── inputs_icinga2/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_object_type/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_object_type_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_object_type_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_influxdb_listener/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_max_line_size/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_internet_speed/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_enable_file_download/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_enable_file_download_existing/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_enable_file_download_false/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_io/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── empty/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── full/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_jolokia/
│   │   ├── README.md
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── agent_default/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── agent_more_complex/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── agent_response_timeout/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── proxy_default/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_kafka_consumer_legacy/
│   │   ├── README.md
│   │   ├── migration.go
│   │   └── migration_test.go
│   ├── inputs_kube_inventory/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── bearer_token_string_only/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── mixed_tokens/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_kubernetes/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── bearer_token_string_only/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── default_case/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── mixed_tokens/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_logparser/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── full/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_mqtt_consumer/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_metric_buffer/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_metric_buffer_parser/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_nats_consumer/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_metric_buffer/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_metric_buffer_parser/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_nsq_consumer/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_server/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_server_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_server_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_ntpq/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_dns_lookup/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_dns_lookup_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_dns_lookup_existing/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_dns_lookup_true/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_openldap/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── ca_only/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── mixed_config/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── ssl_only/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_procstat/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_supervisor_unit/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_supervisor_unit merge/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_tagging_false/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_tagging_true/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_tagging_true_merge/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_tagging_true_merge_overlap/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_rabbitmq/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── name/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── name_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── queues/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── queues_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── queues_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_sflow/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── filters/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── minimal/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── read_buffer_size/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_smart/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── standard/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_snmp_legacy/
│   │   ├── migration.go
│   │   └── migration_test.go
│   ├── inputs_sqlserver/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── azuredb_false/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── azuredb_true/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── both_deprecated/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── existing_database_type/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── query_version_1/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── query_version_2/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_statsd/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_parse_data_dog_tags/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_parse_data_dog_tags_false/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_udp_packet_size/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_tcp_listener/
│   │   ├── README.md
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── allow_pending_messages/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── parser/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_udp_listener/
│   │   ├── README.md
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── all_deprecated_messages/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── allow_pending_messages/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── parser/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── inputs_vsphere/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── deprecated_force_discover_on_init/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_amqp/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── minimal/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_influxdb/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── convert_url/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_precision/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_url/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── merge_url_overlap/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── url_and_precision/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_kinesis/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── only_randomkey_set/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── randomkey_not_set/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── randomkey_set/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_librato/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_mqtt/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── deprecated_topic_prefix/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_topic_prefix_duplicate/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       ├── deprecated_topic_prefix_duplicate_slash/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── deprecated_topic_prefix_existing/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_remotefile/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_riemann_legacy/
│   │   ├── README.md
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       ├── general_options/
│   │       │   ├── expected.conf
│   │       │   └── telegraf.conf
│   │       └── simple/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── outputs_wavefront/
│   │   ├── migration.go
│   │   ├── migration_test.go
│   │   └── testcases/
│   │       └── host_port/
│   │           ├── expected.conf
│   │           └── telegraf.conf
│   ├── registry.go
│   └── utils.go
├── models/
│   ├── buffer.go
│   ├── buffer_disk.go
│   ├── buffer_disk_test.go
│   ├── buffer_mem.go
│   ├── buffer_mem_test.go
│   ├── buffer_suite_test.go
│   ├── common.go
│   ├── filter.go
│   ├── filter_test.go
│   ├── makemetric.go
│   ├── running_aggregator.go
│   ├── running_aggregator_test.go
│   ├── running_input.go
│   ├── running_input_test.go
│   ├── running_output.go
│   ├── running_output_test.go
│   ├── running_parsers.go
│   ├── running_processor.go
│   ├── running_processor_test.go
│   └── running_serializer.go
├── output.go
├── parser.go
├── persister/
│   └── persister.go
├── plugin.go
├── plugins/
│   ├── aggregators/
│   │   ├── all/
│   │   │   ├── all.go
│   │   │   ├── basicstats.go
│   │   │   ├── derivative.go
│   │   │   ├── final.go
│   │   │   ├── histogram.go
│   │   │   ├── merge.go
│   │   │   ├── minmax.go
│   │   │   ├── quantile.go
│   │   │   ├── starlark.go
│   │   │   └── valuecounter.go
│   │   ├── basicstats/
│   │   │   ├── README.md
│   │   │   ├── basicstats.go
│   │   │   ├── basicstats_test.go
│   │   │   └── sample.conf
│   │   ├── deprecations.go
│   │   ├── derivative/
│   │   │   ├── README.md
│   │   │   ├── derivative.go
│   │   │   ├── derivative_test.go
│   │   │   └── sample.conf
│   │   ├── final/
│   │   │   ├── README.md
│   │   │   ├── final.go
│   │   │   ├── final_test.go
│   │   │   └── sample.conf
│   │   ├── histogram/
│   │   │   ├── README.md
│   │   │   ├── histogram.go
│   │   │   ├── histogram_test.go
│   │   │   └── sample.conf
│   │   ├── merge/
│   │   │   ├── README.md
│   │   │   ├── merge.go
│   │   │   ├── merge_test.go
│   │   │   └── sample.conf
│   │   ├── minmax/
│   │   │   ├── README.md
│   │   │   ├── minmax.go
│   │   │   ├── minmax_test.go
│   │   │   └── sample.conf
│   │   ├── quantile/
│   │   │   ├── README.md
│   │   │   ├── algorithms.go
│   │   │   ├── quantile.go
│   │   │   ├── quantile_test.go
│   │   │   └── sample.conf
│   │   ├── registry.go
│   │   ├── starlark/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── starlark.go
│   │   │   ├── starlark_test.go
│   │   │   └── testdata/
│   │   │       ├── merge.star
│   │   │       └── min_max.star
│   │   └── valuecounter/
│   │       ├── README.md
│   │       ├── sample.conf
│   │       ├── valuecounter.go
│   │       └── valuecounter_test.go
│   ├── all_test.go
│   ├── common/
│   │   ├── adx/
│   │   │   ├── adx.go
│   │   │   └── adx_test.go
│   │   ├── auth/
│   │   │   ├── basic_auth.go
│   │   │   └── basic_auth_test.go
│   │   ├── aws/
│   │   │   └── credentials.go
│   │   ├── cookie/
│   │   │   ├── cookie.go
│   │   │   └── cookie_test.go
│   │   ├── docker/
│   │   │   └── stats_helpers.go
│   │   ├── encoding/
│   │   │   ├── decoder.go
│   │   │   ├── decoder_reader.go
│   │   │   └── decoder_test.go
│   │   ├── gcp/
│   │   │   └── auth.go
│   │   ├── http/
│   │   │   ├── client.conf
│   │   │   ├── client.conf.in
│   │   │   ├── config.go
│   │   │   ├── transport.conf
│   │   │   └── transport.conf.in
│   │   ├── jolokia2/
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── gatherer.go
│   │   │   ├── gatherer_test.go
│   │   │   ├── metric.go
│   │   │   └── point_builder.go
│   │   ├── kafka/
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── logger.go
│   │   │   ├── sasl.go
│   │   │   ├── sasl_aws_iam_msk.go
│   │   │   ├── sasl_oauth_file.go
│   │   │   └── scram_client.go
│   │   ├── logrus/
│   │   │   └── hook.go
│   │   ├── mqtt/
│   │   │   ├── mqtt.go
│   │   │   ├── mqtt_logger.go
│   │   │   ├── mqtt_test.go
│   │   │   ├── mqtt_v3.go
│   │   │   └── mqtt_v5.go
│   │   ├── oauth/
│   │   │   └── config.go
│   │   ├── opcua/
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── errors.go
│   │   │   ├── errors_test.go
│   │   │   ├── input/
│   │   │   │   ├── input_client.go
│   │   │   │   └── input_client_test.go
│   │   │   ├── logger.go
│   │   │   ├── opcua_util.go
│   │   │   └── opcua_util_test.go
│   │   ├── parallel/
│   │   │   ├── ordered.go
│   │   │   ├── parallel.go
│   │   │   ├── parallel_test.go
│   │   │   └── unordered.go
│   │   ├── postgresql/
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   └── service.go
│   │   ├── proxy/
│   │   │   ├── connect.go
│   │   │   ├── dialer.go
│   │   │   ├── proxy.conf
│   │   │   ├── proxy.go
│   │   │   ├── socks5.go
│   │   │   └── socks5_test.go
│   │   ├── psutil/
│   │   │   ├── mock_ps.go
│   │   │   └── ps.go
│   │   ├── ratelimiter/
│   │   │   ├── config.go
│   │   │   ├── limiters.go
│   │   │   ├── limiters_test.go
│   │   │   ├── serializers.go
│   │   │   └── serializers_test.go
│   │   ├── shim/
│   │   │   ├── README.md
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── example/
│   │   │   │   └── cmd/
│   │   │   │       ├── main.go
│   │   │   │       └── plugin.conf
│   │   │   ├── goshim.go
│   │   │   ├── goshim_test.go
│   │   │   ├── input.go
│   │   │   ├── input_test.go
│   │   │   ├── output.go
│   │   │   ├── output_test.go
│   │   │   ├── processor.go
│   │   │   ├── processor_test.go
│   │   │   └── testdata/
│   │   │       ├── plugin.conf
│   │   │       ├── processor.conf
│   │   │       └── special.conf
│   │   ├── slog/
│   │   │   └── adapter.go
│   │   ├── snmp/
│   │   │   ├── config.go
│   │   │   ├── field.go
│   │   │   ├── field_test.go
│   │   │   ├── logger.go
│   │   │   ├── mib_loader.go
│   │   │   ├── mib_loader_test.go
│   │   │   ├── table.go
│   │   │   ├── table_test.go
│   │   │   ├── testdata/
│   │   │   │   ├── gosmi/
│   │   │   │   │   ├── bridgeMib
│   │   │   │   │   ├── bridgeMibImports
│   │   │   │   │   ├── foo
│   │   │   │   │   ├── fooImports
│   │   │   │   │   ├── ifPhysAddress
│   │   │   │   │   ├── ifPhysAddressImports
│   │   │   │   │   ├── server
│   │   │   │   │   ├── serverImports
│   │   │   │   │   ├── tableBuild
│   │   │   │   │   ├── tableMib
│   │   │   │   │   ├── tableMibImports
│   │   │   │   │   ├── tcpMib
│   │   │   │   │   └── tcpMibImports
│   │   │   │   ├── loadMibsFromPath/
│   │   │   │   │   ├── linkTarget/
│   │   │   │   │   │   └── emptyFile
│   │   │   │   │   └── root/
│   │   │   │   │       └── dirOne/
│   │   │   │   │           └── dirTwo/
│   │   │   │   │               └── empty
│   │   │   │   └── mibs/
│   │   │   │       └── testmib
│   │   │   ├── translator.go
│   │   │   ├── translator_gosmi.go
│   │   │   ├── translator_gosmi_test.go
│   │   │   ├── translator_netsnmp.go
│   │   │   ├── translator_netsnmp_mocks_generate.go
│   │   │   ├── translator_netsnmp_mocks_test.go
│   │   │   ├── translator_netsnmp_test.go
│   │   │   ├── wrapper.go
│   │   │   └── wrapper_test.go
│   │   ├── socket/
│   │   │   ├── datagram.go
│   │   │   ├── socket.conf
│   │   │   ├── socket.go
│   │   │   ├── socket_test.go
│   │   │   ├── splitter.conf
│   │   │   ├── splitters.go
│   │   │   └── stream.go
│   │   ├── starlark/
│   │   │   ├── builtins.go
│   │   │   ├── field_dict.go
│   │   │   ├── logging.go
│   │   │   ├── metric.go
│   │   │   ├── starlark.go
│   │   │   └── tag_dict.go
│   │   ├── tls/
│   │   │   ├── client.conf
│   │   │   ├── common.go
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   └── utils.go
│   │   └── yangmodel/
│   │       └── decoder.go
│   ├── inputs/
│   │   ├── activemq/
│   │   │   ├── README.md
│   │   │   ├── activemq.go
│   │   │   ├── activemq_test.go
│   │   │   └── sample.conf
│   │   ├── aerospike/
│   │   │   ├── README.md
│   │   │   ├── aerospike.go
│   │   │   ├── aerospike_test.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── aliyuncms/
│   │   │   ├── README.md
│   │   │   ├── aliyuncms.go
│   │   │   ├── aliyuncms_test.go
│   │   │   ├── discovery.go
│   │   │   └── sample.conf
│   │   ├── all/
│   │   │   ├── activemq.go
│   │   │   ├── aerospike.go
│   │   │   ├── aliyuncms.go
│   │   │   ├── all.go
│   │   │   ├── amd_rocm_smi.go
│   │   │   ├── amqp_consumer.go
│   │   │   ├── apache.go
│   │   │   ├── apcupsd.go
│   │   │   ├── aurora.go
│   │   │   ├── azure_monitor.go
│   │   │   ├── azure_storage_queue.go
│   │   │   ├── bcache.go
│   │   │   ├── beanstalkd.go
│   │   │   ├── beat.go
│   │   │   ├── bind.go
│   │   │   ├── bond.go
│   │   │   ├── burrow.go
│   │   │   ├── ceph.go
│   │   │   ├── cgroup.go
│   │   │   ├── chrony.go
│   │   │   ├── cisco_telemetry_mdt.go
│   │   │   ├── clickhouse.go
│   │   │   ├── cloud_pubsub.go
│   │   │   ├── cloud_pubsub_push.go
│   │   │   ├── cloudwatch.go
│   │   │   ├── cloudwatch_metric_streams.go
│   │   │   ├── conntrack.go
│   │   │   ├── consul.go
│   │   │   ├── consul_agent.go
│   │   │   ├── couchbase.go
│   │   │   ├── couchdb.go
│   │   │   ├── cpu.go
│   │   │   ├── csgo.go
│   │   │   ├── ctrlx_datalayer.go
│   │   │   ├── dcos.go
│   │   │   ├── directory_monitor.go
│   │   │   ├── disk.go
│   │   │   ├── diskio.go
│   │   │   ├── disque.go
│   │   │   ├── dmcache.go
│   │   │   ├── dns_query.go
│   │   │   ├── docker.go
│   │   │   ├── docker_log.go
│   │   │   ├── dovecot.go
│   │   │   ├── dpdk.go
│   │   │   ├── ecs.go
│   │   │   ├── elasticsearch.go
│   │   │   ├── elasticsearch_query.go
│   │   │   ├── ethtool.go
│   │   │   ├── eventhub_consumer.go
│   │   │   ├── exec.go
│   │   │   ├── execd.go
│   │   │   ├── fail2ban.go
│   │   │   ├── fibaro.go
│   │   │   ├── file.go
│   │   │   ├── filecount.go
│   │   │   ├── filestat.go
│   │   │   ├── fireboard.go
│   │   │   ├── firehose.go
│   │   │   ├── fluentd.go
│   │   │   ├── fritzbox.go
│   │   │   ├── github.go
│   │   │   ├── gnmi.go
│   │   │   ├── google_cloud_storage.go
│   │   │   ├── graylog.go
│   │   │   ├── haproxy.go
│   │   │   ├── hddtemp.go
│   │   │   ├── http.go
│   │   │   ├── http_listener_v2.go
│   │   │   ├── http_response.go
│   │   │   ├── huebridge.go
│   │   │   ├── hugepages.go
│   │   │   ├── icinga2.go
│   │   │   ├── infiniband.go
│   │   │   ├── influxdb.go
│   │   │   ├── influxdb_listener.go
│   │   │   ├── influxdb_v2_listener.go
│   │   │   ├── intel_baseband.go
│   │   │   ├── intel_dlb.go
│   │   │   ├── intel_pmt.go
│   │   │   ├── intel_pmu.go
│   │   │   ├── intel_powerstat.go
│   │   │   ├── intel_rdt.go
│   │   │   ├── internal.go
│   │   │   ├── internet_speed.go
│   │   │   ├── interrupts.go
│   │   │   ├── ipmi_sensor.go
│   │   │   ├── ipset.go
│   │   │   ├── iptables.go
│   │   │   ├── ipvs.go
│   │   │   ├── jenkins.go
│   │   │   ├── jolokia2_agent.go
│   │   │   ├── jolokia2_proxy.go
│   │   │   ├── jti_openconfig_telemetry.go
│   │   │   ├── kafka_consumer.go
│   │   │   ├── kapacitor.go
│   │   │   ├── kernel.go
│   │   │   ├── kernel_vmstat.go
│   │   │   ├── kibana.go
│   │   │   ├── kinesis_consumer.go
│   │   │   ├── knx_listener.go
│   │   │   ├── kube_inventory.go
│   │   │   ├── kubernetes.go
│   │   │   ├── lanz.go
│   │   │   ├── ldap.go
│   │   │   ├── leofs.go
│   │   │   ├── libvirt.go
│   │   │   ├── linux_cpu.go
│   │   │   ├── linux_sysctl_fs.go
│   │   │   ├── logql.go
│   │   │   ├── logstash.go
│   │   │   ├── lustre2.go
│   │   │   ├── lvm.go
│   │   │   ├── mailchimp.go
│   │   │   ├── marklogic.go
│   │   │   ├── mavlink.go
│   │   │   ├── mcrouter.go
│   │   │   ├── mdstat.go
│   │   │   ├── mem.go
│   │   │   ├── memcached.go
│   │   │   ├── mesos.go
│   │   │   ├── minecraft.go
│   │   │   ├── mock.go
│   │   │   ├── modbus.go
│   │   │   ├── mongodb.go
│   │   │   ├── monit.go
│   │   │   ├── mqtt_consumer.go
│   │   │   ├── multifile.go
│   │   │   ├── mysql.go
│   │   │   ├── nats.go
│   │   │   ├── nats_consumer.go
│   │   │   ├── neoom_beaam.go
│   │   │   ├── neptune_apex.go
│   │   │   ├── net.go
│   │   │   ├── net_response.go
│   │   │   ├── netflow.go
│   │   │   ├── netstat.go
│   │   │   ├── nfsclient.go
│   │   │   ├── nftables.go
│   │   │   ├── nginx.go
│   │   │   ├── nginx_plus.go
│   │   │   ├── nginx_plus_api.go
│   │   │   ├── nginx_sts.go
│   │   │   ├── nginx_upstream_check.go
│   │   │   ├── nginx_vts.go
│   │   │   ├── nomad.go
│   │   │   ├── nsd.go
│   │   │   ├── nsdp.go
│   │   │   ├── nsq.go
│   │   │   ├── nsq_consumer.go
│   │   │   ├── nstat.go
│   │   │   ├── ntpq.go
│   │   │   ├── nvidia_smi.go
│   │   │   ├── opcua.go
│   │   │   ├── opcua_listener.go
│   │   │   ├── openldap.go
│   │   │   ├── openntpd.go
│   │   │   ├── opensearch_query.go
│   │   │   ├── opensmtpd.go
│   │   │   ├── openstack.go
│   │   │   ├── opentelemetry.go
│   │   │   ├── openweathermap.go
│   │   │   ├── p4runtime.go
│   │   │   ├── passenger.go
│   │   │   ├── pf.go
│   │   │   ├── pgbouncer.go
│   │   │   ├── phpfpm.go
│   │   │   ├── ping.go
│   │   │   ├── postfix.go
│   │   │   ├── postgresql.go
│   │   │   ├── postgresql_extensible.go
│   │   │   ├── powerdns.go
│   │   │   ├── powerdns_recursor.go
│   │   │   ├── processes.go
│   │   │   ├── procstat.go
│   │   │   ├── prometheus.go
│   │   │   ├── promql.go
│   │   │   ├── proxmox.go
│   │   │   ├── puppetagent.go
│   │   │   ├── rabbitmq.go
│   │   │   ├── radius.go
│   │   │   ├── raindrops.go
│   │   │   ├── ras.go
│   │   │   ├── ravendb.go
│   │   │   ├── redfish.go
│   │   │   ├── redis.go
│   │   │   ├── redis_sentinel.go
│   │   │   ├── rethinkdb.go
│   │   │   ├── riak.go
│   │   │   ├── riemann_listener.go
│   │   │   ├── s7comm.go
│   │   │   ├── salesforce.go
│   │   │   ├── sensors.go
│   │   │   ├── sflow.go
│   │   │   ├── sip.go
│   │   │   ├── slab.go
│   │   │   ├── slurm.go
│   │   │   ├── smart.go
│   │   │   ├── smartctl.go
│   │   │   ├── snmp.go
│   │   │   ├── snmp_trap.go
│   │   │   ├── socket_listener.go
│   │   │   ├── socketstat.go
│   │   │   ├── solr.go
│   │   │   ├── sql.go
│   │   │   ├── sqlserver.go
│   │   │   ├── stackdriver.go
│   │   │   ├── statsd.go
│   │   │   ├── supervisor.go
│   │   │   ├── suricata.go
│   │   │   ├── swap.go
│   │   │   ├── synproxy.go
│   │   │   ├── syslog.go
│   │   │   ├── sysstat.go
│   │   │   ├── system.go
│   │   │   ├── systemd_units.go
│   │   │   ├── tacacs.go
│   │   │   ├── tail.go
│   │   │   ├── teamspeak.go
│   │   │   ├── temp.go
│   │   │   ├── tengine.go
│   │   │   ├── timex.go
│   │   │   ├── tomcat.go
│   │   │   ├── trig.go
│   │   │   ├── turbostat.go
│   │   │   ├── twemproxy.go
│   │   │   ├── unbound.go
│   │   │   ├── upsd.go
│   │   │   ├── uwsgi.go
│   │   │   ├── varnish.go
│   │   │   ├── vault.go
│   │   │   ├── vsphere.go
│   │   │   ├── webhooks.go
│   │   │   ├── whois.go
│   │   │   ├── win_eventlog.go
│   │   │   ├── win_perf_counters.go
│   │   │   ├── win_services.go
│   │   │   ├── win_wmi.go
│   │   │   ├── wireguard.go
│   │   │   ├── wireless.go
│   │   │   ├── x509_cert.go
│   │   │   ├── xtremio.go
│   │   │   ├── zfs.go
│   │   │   ├── zipkin.go
│   │   │   └── zookeeper.go
│   │   ├── amd_rocm_smi/
│   │   │   ├── README.md
│   │   │   ├── amd_rocm_smi.go
│   │   │   ├── amd_rocm_smi_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── mi100_rocm571.json
│   │   │       ├── mi100_rocm602.json
│   │   │       ├── rx6700xt_rocm430.json
│   │   │       ├── rx6700xt_rocm571.json
│   │   │       ├── rx6700xt_rocm602.json
│   │   │       ├── rx6700xt_rocm612.json
│   │   │       ├── vega-10-XT.json
│   │   │       └── vega-20-WKS-GL-XE.json
│   │   ├── amqp_consumer/
│   │   │   ├── README.md
│   │   │   ├── amqp_consumer.go
│   │   │   ├── amqp_consumer_test.go
│   │   │   └── sample.conf
│   │   ├── apache/
│   │   │   ├── README.md
│   │   │   ├── apache.go
│   │   │   ├── apache_test.go
│   │   │   └── sample.conf
│   │   ├── apcupsd/
│   │   │   ├── README.md
│   │   │   ├── apcupsd.go
│   │   │   ├── apcupsd_test.go
│   │   │   └── sample.conf
│   │   ├── aurora/
│   │   │   ├── README.md
│   │   │   ├── aurora.go
│   │   │   ├── aurora_test.go
│   │   │   └── sample.conf
│   │   ├── azure_monitor/
│   │   │   ├── README.md
│   │   │   ├── azure_monitor.go
│   │   │   ├── azure_monitor_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── json/
│   │   │       │   ├── azure_metric_definitions_responses.json
│   │   │       │   ├── azure_metrics_responses.json
│   │   │       │   └── azure_resources_response.json
│   │   │       └── toml/
│   │   │           ├── gather_success.toml
│   │   │           ├── gather_success_cloud_option_china.toml
│   │   │           ├── gather_success_cloud_option_government.toml
│   │   │           ├── gather_success_cloud_option_public.toml
│   │   │           ├── init_all_target_types.toml
│   │   │           ├── init_bad_credentials.toml
│   │   │           ├── init_no_client_id.toml
│   │   │           ├── init_no_client_secret.toml
│   │   │           ├── init_no_subscription_id.toml
│   │   │           ├── init_no_targets.toml
│   │   │           ├── init_no_tenant_id.toml
│   │   │           ├── init_resource_group_target_no_resource_found.toml
│   │   │           ├── init_resource_group_target_with_invalid_aggregation.toml
│   │   │           ├── init_resource_group_target_with_invalid_metric.toml
│   │   │           ├── init_resource_group_target_with_invalid_resource_group.toml
│   │   │           ├── init_resource_group_target_with_invalid_resource_type.toml
│   │   │           ├── init_resource_group_target_with_resource_without_resource_type.toml
│   │   │           ├── init_resource_group_target_without_resource_group.toml
│   │   │           ├── init_resource_group_target_without_resources.toml
│   │   │           ├── init_resource_group_targets_only.toml
│   │   │           ├── init_resource_target_with_invalid_aggregation.toml
│   │   │           ├── init_resource_target_with_invalid_metric.toml
│   │   │           ├── init_resource_target_with_invalid_resource_id.toml
│   │   │           ├── init_resource_target_without_resource_id.toml
│   │   │           ├── init_resource_targets_only.toml
│   │   │           ├── init_subscription_target_no_resource_found.toml
│   │   │           ├── init_subscription_target_with_invalid_aggregation.toml
│   │   │           ├── init_subscription_target_with_invalid_metric.toml
│   │   │           ├── init_subscription_target_with_invalid_resource_type.toml
│   │   │           ├── init_subscription_target_without_resource_type.toml
│   │   │           └── init_subscription_targets_only.toml
│   │   ├── azure_storage_queue/
│   │   │   ├── README.md
│   │   │   ├── azure_storage_queue.go
│   │   │   ├── azure_storage_queue_test.go
│   │   │   └── sample.conf
│   │   ├── bcache/
│   │   │   ├── README.md
│   │   │   ├── bcache.go
│   │   │   ├── bcache_notlinux.go
│   │   │   ├── bcache_test.go
│   │   │   └── sample.conf
│   │   ├── beanstalkd/
│   │   │   ├── README.md
│   │   │   ├── beanstalkd.go
│   │   │   ├── beanstalkd_test.go
│   │   │   └── sample.conf
│   │   ├── beat/
│   │   │   ├── README.md
│   │   │   ├── beat.go
│   │   │   ├── beat6_info.json
│   │   │   ├── beat6_stats.json
│   │   │   ├── beat_test.go
│   │   │   └── sample.conf
│   │   ├── bind/
│   │   │   ├── README.md
│   │   │   ├── bind.go
│   │   │   ├── bind_test.go
│   │   │   ├── json_stats.go
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   ├── json/
│   │   │   │   │   └── v1/
│   │   │   │   │       ├── mem
│   │   │   │   │       ├── net
│   │   │   │   │       └── server
│   │   │   │   └── xml/
│   │   │   │       ├── v2
│   │   │   │       └── v3/
│   │   │   │           ├── mem
│   │   │   │           ├── net
│   │   │   │           └── server
│   │   │   ├── xml_stats_v2.go
│   │   │   └── xml_stats_v3.go
│   │   ├── bond/
│   │   │   ├── README.md
│   │   │   ├── bond.go
│   │   │   ├── bond_test.go
│   │   │   └── sample.conf
│   │   ├── burrow/
│   │   │   ├── README.md
│   │   │   ├── burrow.go
│   │   │   ├── burrow_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── error.json
│   │   │       ├── v3_kafka.json
│   │   │       ├── v3_kafka_clustername1_consumer.json
│   │   │       ├── v3_kafka_clustername1_consumer_group1_lag.json
│   │   │       ├── v3_kafka_clustername1_topic.json
│   │   │       └── v3_kafka_clustername1_topic_topicA.json
│   │   ├── ceph/
│   │   │   ├── README.md
│   │   │   ├── ceph.go
│   │   │   ├── ceph_test.go
│   │   │   └── sample.conf
│   │   ├── cgroup/
│   │   │   ├── README.md
│   │   │   ├── cgroup.go
│   │   │   ├── cgroup_linux.go
│   │   │   ├── cgroup_notlinux.go
│   │   │   ├── cgroup_test.go
│   │   │   ├── cgroupv2_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── backslash/
│   │   │       │   └── machine-qemu-1-ubuntu/
│   │   │       │       └── cpu.stat
│   │   │       ├── blkio/
│   │   │       │   ├── blkio.io_serviced
│   │   │       │   └── blkio.throttle.io_serviced
│   │   │       ├── broken/
│   │   │       │   ├── malformed.file
│   │   │       │   └── memory.limit_in_bytes
│   │   │       ├── cpu/
│   │   │       │   ├── cpu.cfs_quota_us
│   │   │       │   ├── cpu.stat
│   │   │       │   └── cpuacct.usage_percpu
│   │   │       ├── memory/
│   │   │       │   ├── group_1/
│   │   │       │   │   ├── group_1_1/
│   │   │       │   │   │   ├── memory.limit_in_bytes
│   │   │       │   │   │   └── memory.stat
│   │   │       │   │   ├── group_1_2/
│   │   │       │   │   │   ├── memory.limit_in_bytes
│   │   │       │   │   │   └── memory.stat
│   │   │       │   │   ├── memory.kmem.limit_in_bytes
│   │   │       │   │   ├── memory.kmem.max_usage_in_bytes
│   │   │       │   │   ├── memory.limit_in_bytes
│   │   │       │   │   └── memory.stat
│   │   │       │   ├── group_2/
│   │   │       │   │   ├── group_1_1/
│   │   │       │   │   │   ├── memory.limit_in_bytes
│   │   │       │   │   │   └── memory.stat
│   │   │       │   │   ├── memory.limit_in_bytes
│   │   │       │   │   └── memory.stat
│   │   │       │   ├── memory.empty
│   │   │       │   ├── memory.kmem.limit_in_bytes
│   │   │       │   ├── memory.limit_in_bytes
│   │   │       │   ├── memory.max_usage_in_bytes
│   │   │       │   ├── memory.numa_stat
│   │   │       │   ├── memory.stat
│   │   │       │   ├── memory.usage_in_bytes
│   │   │       │   ├── memory.use_hierarchy
│   │   │       │   └── notify_on_release
│   │   │       └── v2/
│   │   │           ├── cpu.idle
│   │   │           ├── cpu.max
│   │   │           ├── cpu.max.burst
│   │   │           ├── cpu.pressure
│   │   │           ├── cpu.stat
│   │   │           ├── cpu.weight
│   │   │           ├── cpu.weight.nice
│   │   │           ├── cpuset.cpus
│   │   │           ├── cpuset.cpus.effective
│   │   │           ├── cpuset.cpus.partition
│   │   │           ├── cpuset.mems
│   │   │           ├── cpuset.mems.effective
│   │   │           ├── hugetlb.1GB.current
│   │   │           ├── hugetlb.1GB.events
│   │   │           ├── hugetlb.1GB.events.local
│   │   │           ├── hugetlb.1GB.max
│   │   │           ├── hugetlb.1GB.numa_stat
│   │   │           ├── hugetlb.1GB.rsvd.current
│   │   │           ├── hugetlb.1GB.rsvd.max
│   │   │           ├── hugetlb.2MB.current
│   │   │           ├── hugetlb.2MB.events
│   │   │           ├── hugetlb.2MB.events.local
│   │   │           ├── hugetlb.2MB.max
│   │   │           ├── hugetlb.2MB.numa_stat
│   │   │           ├── hugetlb.2MB.rsvd.current
│   │   │           ├── hugetlb.2MB.rsvd.max
│   │   │           ├── io.bfq.weight
│   │   │           ├── io.max
│   │   │           ├── io.pressure
│   │   │           ├── io.stat
│   │   │           ├── memory.current
│   │   │           ├── memory.events
│   │   │           ├── memory.events.local
│   │   │           ├── memory.high
│   │   │           ├── memory.low
│   │   │           ├── memory.max
│   │   │           ├── memory.min
│   │   │           ├── memory.numa_stat
│   │   │           ├── memory.oom.group
│   │   │           ├── memory.peak
│   │   │           ├── memory.pressure
│   │   │           ├── memory.reclaim
│   │   │           ├── memory.stat
│   │   │           ├── memory.swap.current
│   │   │           ├── memory.swap.events
│   │   │           ├── memory.swap.high
│   │   │           ├── memory.swap.max
│   │   │           ├── pids.current
│   │   │           ├── pids.events
│   │   │           ├── pids.max
│   │   │           └── pids.peak
│   │   ├── chrony/
│   │   │   ├── README.md
│   │   │   ├── chrony.go
│   │   │   ├── chrony_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── chrony.conf
│   │   │       └── start.sh
│   │   ├── cisco_telemetry_mdt/
│   │   │   ├── README.md
│   │   │   ├── cisco_telemetry_mdt.go
│   │   │   ├── cisco_telemetry_mdt_test.go
│   │   │   ├── cisco_telemetry_util.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── microburst
│   │   ├── clickhouse/
│   │   │   ├── README.md
│   │   │   ├── clickhouse.go
│   │   │   ├── clickhouse_test.go
│   │   │   ├── dev/
│   │   │   │   ├── dhparam.pem
│   │   │   │   ├── docker-compose.yml
│   │   │   │   ├── init_schema.sql
│   │   │   │   ├── mysql_port.xml
│   │   │   │   ├── part_log.xml
│   │   │   │   ├── telegraf.conf
│   │   │   │   ├── telegraf_ssl.conf
│   │   │   │   ├── test_dictionary.xml
│   │   │   │   ├── text_log.xml
│   │   │   │   ├── tls_settings.xml
│   │   │   │   └── zookeeper.xml
│   │   │   └── sample.conf
│   │   ├── cloud_pubsub/
│   │   │   ├── README.md
│   │   │   ├── cloud_pubsub.go
│   │   │   ├── cloud_pubsub_test.go
│   │   │   ├── sample.conf
│   │   │   ├── subscription_gcp.go
│   │   │   └── subscription_stub_test.go
│   │   ├── cloud_pubsub_push/
│   │   │   ├── README.md
│   │   │   ├── cloud_pubsub_push.go
│   │   │   ├── cloud_pubsub_push_test.go
│   │   │   └── sample.conf
│   │   ├── cloudwatch/
│   │   │   ├── README.md
│   │   │   ├── cloudwatch.go
│   │   │   ├── cloudwatch_test.go
│   │   │   ├── sample.conf
│   │   │   └── utils.go
│   │   ├── cloudwatch_metric_streams/
│   │   │   ├── README.md
│   │   │   ├── cloudwatch_metric_streams.go
│   │   │   ├── cloudwatch_metric_streams_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── record.json
│   │   │       └── records.json
│   │   ├── conntrack/
│   │   │   ├── README.md
│   │   │   ├── conntrack.go
│   │   │   ├── conntrack_notlinux.go
│   │   │   ├── conntrack_test.go
│   │   │   └── sample.conf
│   │   ├── consul/
│   │   │   ├── README.md
│   │   │   ├── consul.go
│   │   │   ├── consul_test.go
│   │   │   └── sample.conf
│   │   ├── consul_agent/
│   │   │   ├── README.md
│   │   │   ├── consul_agent.go
│   │   │   ├── consul_agent_test.go
│   │   │   ├── consul_structs.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── response_key_metrics.json
│   │   ├── couchbase/
│   │   │   ├── README.md
│   │   │   ├── couchbase.go
│   │   │   ├── couchbase_data.go
│   │   │   ├── couchbase_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── bucket_response.json
│   │   │       ├── bucket_stats_response.json
│   │   │       ├── bucket_stats_response_with_missing.json
│   │   │       ├── node_bucket_stats_response.json
│   │   │       ├── pools_default_response.json
│   │   │       ├── pools_response.json
│   │   │       └── settings_autofailover.json
│   │   ├── couchdb/
│   │   │   ├── README.md
│   │   │   ├── couchdb.go
│   │   │   ├── couchdb_test.go
│   │   │   ├── dev/
│   │   │   │   └── telegraf.conf
│   │   │   └── sample.conf
│   │   ├── cpu/
│   │   │   ├── README.md
│   │   │   ├── cpu.go
│   │   │   ├── cpu_test.go
│   │   │   └── sample.conf
│   │   ├── csgo/
│   │   │   ├── README.md
│   │   │   ├── csgo.go
│   │   │   ├── csgo_test.go
│   │   │   └── sample.conf
│   │   ├── ctrlx_datalayer/
│   │   │   ├── README.md
│   │   │   ├── ctrlx_datalayer.go
│   │   │   ├── ctrlx_datalayer_payload_types.go
│   │   │   ├── ctrlx_datalayer_subscription.go
│   │   │   ├── ctrlx_datalayer_subscription_test.go
│   │   │   ├── ctrlx_datalayer_test.go
│   │   │   └── sample.conf
│   │   ├── dcos/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── creds.go
│   │   │   ├── dcos.go
│   │   │   ├── dcos_test.go
│   │   │   └── sample.conf
│   │   ├── deprecations.go
│   │   ├── directory_monitor/
│   │   │   ├── README.md
│   │   │   ├── directory_monitor.go
│   │   │   ├── directory_monitor_test.go
│   │   │   └── sample.conf
│   │   ├── disk/
│   │   │   ├── README.md
│   │   │   ├── disk.go
│   │   │   ├── disk_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── issue_10297/
│   │   │       │   ├── proc/
│   │   │       │   │   └── 1/
│   │   │       │   │       └── mountinfo
│   │   │       │   └── sys/
│   │   │       │       └── block/
│   │   │       │           ├── sda1/
│   │   │       │           │   └── dm/
│   │   │       │           │       └── name
│   │   │       │           └── sdb/
│   │   │       │               └── dm/
│   │   │       │                   └── name
│   │   │       └── success/
│   │   │           └── proc/
│   │   │               └── 1/
│   │   │                   └── mountinfo
│   │   ├── diskio/
│   │   │   ├── README.md
│   │   │   ├── diskio.go
│   │   │   ├── diskio_linux.go
│   │   │   ├── diskio_linux_test.go
│   │   │   ├── diskio_other.go
│   │   │   ├── diskio_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── udev.txt
│   │   │       └── uevent
│   │   ├── disque/
│   │   │   ├── README.md
│   │   │   ├── disque.go
│   │   │   ├── disque_test.go
│   │   │   └── sample.conf
│   │   ├── dmcache/
│   │   │   ├── README.md
│   │   │   ├── dmcache.go
│   │   │   ├── dmcache_linux.go
│   │   │   ├── dmcache_linux_test.go
│   │   │   ├── dmcache_notlinux.go
│   │   │   └── sample.conf
│   │   ├── dns_query/
│   │   │   ├── README.md
│   │   │   ├── dns_query.go
│   │   │   ├── dns_query_test.go
│   │   │   └── sample.conf
│   │   ├── docker/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── docker.go
│   │   │   ├── docker_test.go
│   │   │   ├── docker_testdata.go
│   │   │   ├── errors.go
│   │   │   └── sample.conf
│   │   ├── docker_log/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── docker_log.go
│   │   │   ├── docker_log_test.go
│   │   │   └── sample.conf
│   │   ├── dovecot/
│   │   │   ├── README.md
│   │   │   ├── dovecot.go
│   │   │   ├── dovecot_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── dovecot.conf
│   │   ├── dpdk/
│   │   │   ├── README.md
│   │   │   ├── dpdk.go
│   │   │   ├── dpdk_cmds.go
│   │   │   ├── dpdk_cmds_test.go
│   │   │   ├── dpdk_connector.go
│   │   │   ├── dpdk_connector_test.go
│   │   │   ├── dpdk_notlinux.go
│   │   │   ├── dpdk_test.go
│   │   │   ├── dpdk_utils.go
│   │   │   ├── dpdk_utils_test.go
│   │   │   ├── mocks/
│   │   │   │   └── conn.go
│   │   │   └── sample.conf
│   │   ├── ecs/
│   │   │   ├── README.md
│   │   │   ├── cgroupv2_test.go
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── ecs.go
│   │   │   ├── ecs_test.go
│   │   │   ├── sample.conf
│   │   │   ├── stats.go
│   │   │   ├── stats_test.go
│   │   │   ├── testdata/
│   │   │   │   ├── cgroupv2/
│   │   │   │   │   ├── meta.json
│   │   │   │   │   ├── meta.out
│   │   │   │   │   ├── stats.json
│   │   │   │   │   └── stats.out
│   │   │   │   ├── metadata.golden
│   │   │   │   └── stats.golden
│   │   │   ├── types.go
│   │   │   └── types_test.go
│   │   ├── elasticsearch/
│   │   │   ├── README.md
│   │   │   ├── elasticsearch.go
│   │   │   ├── elasticsearch_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata_test.go
│   │   ├── elasticsearch_query/
│   │   │   ├── README.md
│   │   │   ├── aggregation_parser.go
│   │   │   ├── aggregation_query.go
│   │   │   ├── elasticsearch_query.go
│   │   │   ├── elasticsearch_query_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── nginx_logs
│   │   ├── ethtool/
│   │   │   ├── README.md
│   │   │   ├── ethtool.go
│   │   │   ├── ethtool_linux.go
│   │   │   ├── ethtool_notlinux.go
│   │   │   ├── ethtool_test.go
│   │   │   ├── namespace_linux.go
│   │   │   └── sample.conf
│   │   ├── eventhub_consumer/
│   │   │   ├── README.md
│   │   │   ├── eventhub_consumer.go
│   │   │   └── sample.conf
│   │   ├── example/
│   │   │   ├── README.md
│   │   │   ├── example.go
│   │   │   ├── example_test.go
│   │   │   └── sample.conf
│   │   ├── exec/
│   │   │   ├── README.md
│   │   │   ├── dev/
│   │   │   │   └── telegraf.conf
│   │   │   ├── exec.go
│   │   │   ├── exec_test.go
│   │   │   ├── run_notwindows.go
│   │   │   ├── run_windows.go
│   │   │   └── sample.conf
│   │   ├── execd/
│   │   │   ├── README.md
│   │   │   ├── examples/
│   │   │   │   ├── count.go
│   │   │   │   ├── count.py
│   │   │   │   ├── count.rb
│   │   │   │   └── count.sh
│   │   │   ├── execd.go
│   │   │   ├── execd_posix.go
│   │   │   ├── execd_test.go
│   │   │   ├── execd_windows.go
│   │   │   ├── sample.conf
│   │   │   └── shim/
│   │   │       ├── README.md
│   │   │       ├── example/
│   │   │       │   └── cmd/
│   │   │       │       ├── main.go
│   │   │       │       └── plugin.conf
│   │   │       ├── goshim.go
│   │   │       ├── goshim_posix.go
│   │   │       ├── goshim_windows.go
│   │   │       ├── input.go
│   │   │       ├── shim_posix_test.go
│   │   │       ├── shim_test.go
│   │   │       └── testdata/
│   │   │           └── plugin.conf
│   │   ├── fail2ban/
│   │   │   ├── README.md
│   │   │   ├── fail2ban.go
│   │   │   ├── fail2ban_test.go
│   │   │   └── sample.conf
│   │   ├── fibaro/
│   │   │   ├── README.md
│   │   │   ├── fibaro.go
│   │   │   ├── fibaro_test.go
│   │   │   ├── hc2/
│   │   │   │   ├── parser.go
│   │   │   │   └── types.go
│   │   │   ├── hc3/
│   │   │   │   ├── parser.go
│   │   │   │   └── types.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── device_hc2.json
│   │   │       ├── device_hc3.json
│   │   │       ├── rooms.json
│   │   │       └── sections.json
│   │   ├── file/
│   │   │   ├── README.md
│   │   │   ├── dev/
│   │   │   │   ├── docker-compose.yml
│   │   │   │   ├── telegraf.conf
│   │   │   │   └── testfiles/
│   │   │   │       ├── grok_a.log
│   │   │   │       └── json_a.log
│   │   │   ├── file.go
│   │   │   ├── file_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── csv_behavior_input.csv
│   │   │       ├── mtr-utf-16be.csv
│   │   │       ├── mtr-utf-16le.csv
│   │   │       └── mtr-utf-8.csv
│   │   ├── filecount/
│   │   │   ├── README.md
│   │   │   ├── filecount.go
│   │   │   ├── filecount_test.go
│   │   │   ├── filesystem_helpers.go
│   │   │   ├── filesystem_helpers_notwindows_test.go
│   │   │   ├── filesystem_helpers_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── bar
│   │   │       ├── baz
│   │   │       ├── foo
│   │   │       ├── qux
│   │   │       └── subdir/
│   │   │           ├── nested2/
│   │   │           │   └── qux
│   │   │           ├── quux
│   │   │           └── quuz
│   │   ├── filestat/
│   │   │   ├── README.md
│   │   │   ├── filestat.go
│   │   │   ├── filestat_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── log1.log
│   │   │       ├── log2.log
│   │   │       └── test.conf
│   │   ├── fireboard/
│   │   │   ├── README.md
│   │   │   ├── fireboard.go
│   │   │   ├── fireboard_test.go
│   │   │   └── sample.conf
│   │   ├── firehose/
│   │   │   ├── README.md
│   │   │   ├── firehose.go
│   │   │   ├── firehose_request_test.go
│   │   │   ├── firehose_test.go
│   │   │   ├── message.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       └── common-attributes/
│   │   │           ├── body.json
│   │   │           ├── expected.out
│   │   │           ├── headers.json
│   │   │           └── telegraf.conf
│   │   ├── fluentd/
│   │   │   ├── README.md
│   │   │   ├── fluentd.go
│   │   │   ├── fluentd_test.go
│   │   │   └── sample.conf
│   │   ├── fritzbox/
│   │   │   ├── README.md
│   │   │   ├── fritzbox.go
│   │   │   ├── fritzbox_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── conf/
│   │   │       │   ├── invalid_collect.conf
│   │   │       │   ├── invalid_urls.conf
│   │   │       │   └── valid.conf
│   │   │       └── testcases/
│   │   │           ├── device/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── deviceinfo/
│   │   │           │   │   │   └── response.xml
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   └── tr64desc.xml
│   │   │           │   └── telegraf.conf
│   │   │           ├── dsl/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   ├── tr64desc.xml
│   │   │           │   │   └── wandslifconfig/
│   │   │           │   │       └── response.xml
│   │   │           │   └── telegraf.conf
│   │   │           ├── hosts/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   ├── hosts/
│   │   │           │   │   │   └── response.xml
│   │   │           │   │   ├── meshlist.json
│   │   │           │   │   └── tr64desc.xml
│   │   │           │   └── telegraf.conf
│   │   │           ├── ppp/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   ├── tr64desc.xml
│   │   │           │   │   └── wanpppconn/
│   │   │           │   │       └── response.xml
│   │   │           │   └── telegraf.conf
│   │   │           ├── wan/
│   │   │           │   ├── expected.out
│   │   │           │   ├── mock/
│   │   │           │   │   ├── WANCommonIFC1/
│   │   │           │   │   │   └── response.xml
│   │   │           │   │   ├── dummySCPD.xml
│   │   │           │   │   ├── igddesc.xml
│   │   │           │   │   ├── tr64desc.xml
│   │   │           │   │   └── wancommonifconfig/
│   │   │           │   │       └── response.xml
│   │   │           │   └── telegraf.conf
│   │   │           └── wlan/
│   │   │               ├── expected.out
│   │   │               ├── mock/
│   │   │               │   ├── dummySCPD.xml
│   │   │               │   ├── tr64desc.xml
│   │   │               │   └── wlanconfig/
│   │   │               │       └── response.xml
│   │   │               └── telegraf.conf
│   │   ├── github/
│   │   │   ├── README.md
│   │   │   ├── github.go
│   │   │   ├── github_test.go
│   │   │   └── sample.conf
│   │   ├── gnmi/
│   │   │   ├── README.md
│   │   │   ├── extensions/
│   │   │   │   └── jnpr_gnmi_extention/
│   │   │   │       └── GnmiJuniperTelemetryHeaderExtension.pb.go
│   │   │   ├── gnmi.go
│   │   │   ├── gnmi_test.go
│   │   │   ├── handler.go
│   │   │   ├── path.go
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── tag_store.go
│   │   │   ├── testcases/
│   │   │   │   ├── canonical_field_names/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── canonical_field_names_trim/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_11011/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_11778/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_12831/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_12931/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_13052/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_13512/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14044/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14063/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14530/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14833/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14946/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14946_canonical_field_names/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_15046/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── models/
│   │   │   │   │   │   ├── LICENSE
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── openconfig-alarm-types.yang
│   │   │   │   │   │   ├── openconfig-extensions.yang
│   │   │   │   │   │   ├── openconfig-platform-psu.yang
│   │   │   │   │   │   ├── openconfig-platform-types.yang
│   │   │   │   │   │   ├── openconfig-platform.yang
│   │   │   │   │   │   └── openconfig-types.yang
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_15546/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_16476/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_16515/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_17154/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_17279/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_17412/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_17622/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── tagging_name_based/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── responses.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── tagging_subinterfaces/
│   │   │   │       ├── expected.out
│   │   │   │       ├── responses.json
│   │   │   │       └── telegraf.conf
│   │   │   └── update_fields.go
│   │   ├── google_cloud_storage/
│   │   │   ├── README.md
│   │   │   ├── google_cloud_storage.go
│   │   │   ├── google_cloud_storage_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── file_listing.json
│   │   │       ├── first_file.json
│   │   │       ├── first_file_listing.json
│   │   │       ├── fourth_file.json
│   │   │       ├── fourth_file_listing.json
│   │   │       ├── second_file.json
│   │   │       ├── second_file_listing.json
│   │   │       ├── single_file_list.json
│   │   │       ├── single_object_not_found.json
│   │   │       ├── third_file.json
│   │   │       └── third_file_listing.json
│   │   ├── graylog/
│   │   │   ├── README.md
│   │   │   ├── graylog.go
│   │   │   ├── graylog_test.go
│   │   │   └── sample.conf
│   │   ├── haproxy/
│   │   │   ├── README.md
│   │   │   ├── haproxy.go
│   │   │   ├── haproxy_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── sample_output.csv
│   │   ├── hddtemp/
│   │   │   ├── README.md
│   │   │   ├── go-hddtemp/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── hddtemp.go
│   │   │   │   └── hddtemp_test.go
│   │   │   ├── hddtemp.go
│   │   │   ├── hddtemp_test.go
│   │   │   └── sample.conf
│   │   ├── http/
│   │   │   ├── README.md
│   │   │   ├── http.go
│   │   │   ├── http_internal_test.go
│   │   │   ├── http_test.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── http_listener_v2/
│   │   │   ├── README.md
│   │   │   ├── http_listener_v2.go
│   │   │   ├── http_listener_v2_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── huge_metric
│   │   ├── http_response/
│   │   │   ├── README.md
│   │   │   ├── http_response.go
│   │   │   ├── http_response_test.go
│   │   │   └── sample.conf
│   │   ├── huebridge/
│   │   │   ├── README.md
│   │   │   ├── bridge.go
│   │   │   ├── huebridge.go
│   │   │   ├── huebridge_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── conf/
│   │   │       │   └── huebridge.conf
│   │   │       └── metrics/
│   │   │           └── huebridge.txt
│   │   ├── hugepages/
│   │   │   ├── README.md
│   │   │   ├── hugepages.go
│   │   │   ├── hugepages_notlinux.go
│   │   │   ├── hugepages_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── invalid/
│   │   │       │   ├── 1/
│   │   │       │   │   ├── anode3/
│   │   │       │   │   │   └── dir_lock
│   │   │       │   │   ├── node0/
│   │   │       │   │   │   └── hugepages/
│   │   │       │   │   │       ├── hugepages-1048576kB/
│   │   │       │   │   │       │   ├── free_hugepages/
│   │   │       │   │   │       │   │   └── dir_lock
│   │   │       │   │   │       │   └── nry_hugepages
│   │   │       │   │   │       ├── hugepages-2048kB
│   │   │       │   │   │       ├── hugepages-aaaa1048576kB/
│   │   │       │   │   │       │   └── free_hugepages
│   │   │       │   │   │       └── hugepages1048576kB/
│   │   │       │   │   │           └── free_hugepages
│   │   │       │   │   ├── node1
│   │   │       │   │   └── node4b/
│   │   │       │   │       └── dir_lock
│   │   │       │   ├── 2/
│   │   │       │   │   └── node1/
│   │   │       │   │       └── hugepages/
│   │   │       │   │           └── hugepages-1048576kB/
│   │   │       │   │               └── nr_hugepages
│   │   │       │   └── meminfo
│   │   │       └── valid/
│   │   │           ├── meminfo
│   │   │           ├── mm/
│   │   │           │   └── hugepages/
│   │   │           │       ├── hugepages-1048576kB/
│   │   │           │       │   ├── free_hugepages
│   │   │           │       │   ├── nr_hugepages
│   │   │           │       │   ├── nr_hugepages_mempolicy
│   │   │           │       │   ├── nr_overcommit_hugepages
│   │   │           │       │   ├── resv_hugepages
│   │   │           │       │   └── surplus_hugepages
│   │   │           │       └── hugepages-2048kB/
│   │   │           │           ├── free_hugepages
│   │   │           │           ├── nr_hugepages
│   │   │           │           ├── nr_hugepages_mempolicy
│   │   │           │           ├── nr_overcommit_hugepages
│   │   │           │           ├── resv_hugepages
│   │   │           │           └── surplus_hugepages
│   │   │           └── node/
│   │   │               ├── node0/
│   │   │               │   └── hugepages/
│   │   │               │       ├── hugepages-1048576kB/
│   │   │               │       │   ├── free_hugepages
│   │   │               │       │   ├── nr_hugepages
│   │   │               │       │   └── surplus_hugepages
│   │   │               │       └── hugepages-2048kB/
│   │   │               │           ├── free_hugepages
│   │   │               │           ├── nr_hugepages
│   │   │               │           └── surplus_hugepages
│   │   │               └── node1/
│   │   │                   └── hugepages/
│   │   │                       ├── hugepages-1048576kB/
│   │   │                       │   ├── free_hugepages
│   │   │                       │   ├── nr_hugepages
│   │   │                       │   └── surplus_hugepages
│   │   │                       └── hugepages-2048kB/
│   │   │                           ├── free_hugepages
│   │   │                           ├── nr_hugepages
│   │   │                           └── surplus_hugepages
│   │   ├── icinga2/
│   │   │   ├── README.md
│   │   │   ├── icinga2.go
│   │   │   ├── icinga2_test.go
│   │   │   └── sample.conf
│   │   ├── infiniband/
│   │   │   ├── README.md
│   │   │   ├── infiniband.go
│   │   │   ├── infiniband_linux.go
│   │   │   ├── infiniband_notlinux.go
│   │   │   ├── infiniband_test.go
│   │   │   └── sample.conf
│   │   ├── influxdb/
│   │   │   ├── README.md
│   │   │   ├── influxdb.go
│   │   │   ├── influxdb_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   ├── cloud1.influx
│   │   │   │   ├── cloud1.json
│   │   │   │   ├── influx_return.json
│   │   │   │   └── influx_return2.json
│   │   │   └── types.go
│   │   ├── influxdb_listener/
│   │   │   ├── README.md
│   │   │   ├── influxdb_listener.go
│   │   │   ├── influxdb_listener_benchmark_test.go
│   │   │   ├── influxdb_listener_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── huge_metric
│   │   ├── influxdb_v2_listener/
│   │   │   ├── README.md
│   │   │   ├── influxdb_v2_listener.go
│   │   │   ├── influxdb_v2_listener_benchmark_test.go
│   │   │   ├── influxdb_v2_listener_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── huge_metric
│   │   ├── intel_baseband/
│   │   │   ├── README.md
│   │   │   ├── intel_baseband.go
│   │   │   ├── intel_baseband_notamd64linux.go
│   │   │   ├── intel_baseband_test.go
│   │   │   ├── log_connector.go
│   │   │   ├── log_connector_test.go
│   │   │   ├── mocks/
│   │   │   │   └── conn.go
│   │   │   ├── sample.conf
│   │   │   ├── sock_connector.go
│   │   │   ├── sock_connector_test.go
│   │   │   ├── testdata/
│   │   │   │   └── logfiles/
│   │   │   │       ├── empty.log
│   │   │   │       └── example.log
│   │   │   ├── utils.go
│   │   │   └── utils_test.go
│   │   ├── intel_dlb/
│   │   │   ├── README.md
│   │   │   ├── intel_dlb.go
│   │   │   ├── intel_dlb_notlinux.go
│   │   │   ├── intel_dlb_test.go
│   │   │   ├── ras_reader.go
│   │   │   ├── ras_reader_mock.go
│   │   │   └── sample.conf
│   │   ├── intel_pmt/
│   │   │   ├── README.md
│   │   │   ├── filtering.go
│   │   │   ├── filtering_test.go
│   │   │   ├── intel_pmt.go
│   │   │   ├── intel_pmt_notamd64linux.go
│   │   │   ├── intel_pmt_test.go
│   │   │   ├── sample.conf
│   │   │   ├── tags_extraction.go
│   │   │   ├── tags_extraction_test.go
│   │   │   ├── xml_parser.go
│   │   │   └── xml_parser_test.go
│   │   ├── intel_pmu/
│   │   │   ├── README.md
│   │   │   ├── activators.go
│   │   │   ├── activators_test.go
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── intel_pmu.go
│   │   │   ├── intel_pmu_notamd64linux.go
│   │   │   ├── intel_pmu_test.go
│   │   │   ├── mocks.go
│   │   │   ├── reader.go
│   │   │   ├── reader_test.go
│   │   │   ├── resolver.go
│   │   │   ├── resolver_test.go
│   │   │   └── sample.conf
│   │   ├── intel_powerstat/
│   │   │   ├── README.md
│   │   │   ├── fetcher.go
│   │   │   ├── intel_powerstat.go
│   │   │   ├── intel_powerstat_notlinux.go
│   │   │   ├── intel_powerstat_test.go
│   │   │   ├── metrics.go
│   │   │   ├── metrics_test.go
│   │   │   ├── options.go
│   │   │   ├── options_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── aperfmperf_flag_not_found/
│   │   │       │   └── cpuinfo
│   │   │       ├── cpu_model_missing/
│   │   │       │   └── cpuinfo
│   │   │       ├── cpuinfo
│   │   │       ├── dts_flag_not_found/
│   │   │       │   └── cpuinfo
│   │   │       ├── model_not_supported/
│   │   │       │   └── cpuinfo
│   │   │       ├── msr_flag_not_found/
│   │   │       │   └── cpuinfo
│   │   │       ├── sapphirerapids_core.json
│   │   │       └── vendor_not_supported/
│   │   │           └── cpuinfo
│   │   ├── intel_rdt/
│   │   │   ├── README.md
│   │   │   ├── intel_rdt.go
│   │   │   ├── intel_rdt_test.go
│   │   │   ├── intel_rdt_windows.go
│   │   │   ├── processes.go
│   │   │   ├── publisher.go
│   │   │   ├── publisher_test.go
│   │   │   └── sample.conf
│   │   ├── internal/
│   │   │   ├── README.md
│   │   │   ├── internal.go
│   │   │   ├── internal_test.go
│   │   │   └── sample.conf
│   │   ├── internet_speed/
│   │   │   ├── README.md
│   │   │   ├── internet_speed.go
│   │   │   ├── internet_speed_test.go
│   │   │   └── sample.conf
│   │   ├── interrupts/
│   │   │   ├── README.md
│   │   │   ├── interrupts.go
│   │   │   ├── interrupts_test.go
│   │   │   └── sample.conf
│   │   ├── ipmi_sensor/
│   │   │   ├── README.md
│   │   │   ├── connection.go
│   │   │   ├── connection_test.go
│   │   │   ├── ipmi_sensor.go
│   │   │   ├── ipmi_sensor_test.go
│   │   │   └── sample.conf
│   │   ├── ipset/
│   │   │   ├── README.md
│   │   │   ├── ipset.go
│   │   │   ├── ipset_entries.go
│   │   │   ├── ipset_entries_test.go
│   │   │   ├── ipset_test.go
│   │   │   └── sample.conf
│   │   ├── iptables/
│   │   │   ├── README.md
│   │   │   ├── iptables.go
│   │   │   ├── iptables_notlinux.go
│   │   │   ├── iptables_test.go
│   │   │   └── sample.conf
│   │   ├── ipvs/
│   │   │   ├── README.md
│   │   │   ├── ipvs.go
│   │   │   ├── ipvs_notlinux.go
│   │   │   └── sample.conf
│   │   ├── jenkins/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── jenkins.go
│   │   │   ├── jenkins_test.go
│   │   │   └── sample.conf
│   │   ├── jolokia2_agent/
│   │   │   ├── README.md
│   │   │   ├── examples/
│   │   │   │   ├── activemq.conf
│   │   │   │   ├── bitbucket.conf
│   │   │   │   ├── cassandra.conf
│   │   │   │   ├── hadoop-hdfs.conf
│   │   │   │   ├── java.conf
│   │   │   │   ├── jboss.conf
│   │   │   │   ├── kafka-connect.conf
│   │   │   │   ├── kafka.conf
│   │   │   │   ├── tomcat.conf
│   │   │   │   ├── weblogic.conf
│   │   │   │   └── zookeeper.conf
│   │   │   ├── jolokia2_agent.go
│   │   │   ├── jolokia2_agent_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── response.json
│   │   ├── jolokia2_proxy/
│   │   │   ├── README.md
│   │   │   ├── jolokia2_proxy.go
│   │   │   ├── jolokia2_proxy_test.go
│   │   │   └── sample.conf
│   │   ├── jti_openconfig_telemetry/
│   │   │   ├── README.md
│   │   │   ├── auth/
│   │   │   │   ├── authentication_service.pb.go
│   │   │   │   ├── authentication_service.proto
│   │   │   │   └── authentication_service_grpc.pb.go
│   │   │   ├── collection.go
│   │   │   ├── gen.go
│   │   │   ├── jti_openconfig_telemetry.go
│   │   │   ├── jti_openconfig_telemetry_test.go
│   │   │   ├── oc/
│   │   │   │   ├── oc.pb.go
│   │   │   │   ├── oc.proto
│   │   │   │   └── oc_grpc.pb.go
│   │   │   └── sample.conf
│   │   ├── kafka_consumer/
│   │   │   ├── README.md
│   │   │   ├── kafka_consumer.go
│   │   │   ├── kafka_consumer_test.go
│   │   │   └── sample.conf
│   │   ├── kapacitor/
│   │   │   ├── README.md
│   │   │   ├── kapacitor.go
│   │   │   ├── kapacitor_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── kapacitor_return.json
│   │   ├── kernel/
│   │   │   ├── README.md
│   │   │   ├── kernel.go
│   │   │   ├── kernel_notlinux.go
│   │   │   ├── kernel_test.go
│   │   │   ├── psi.go
│   │   │   ├── psi_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── entropy_stat_file_full
│   │   │       ├── entropy_stat_file_invalid
│   │   │       ├── entropy_stat_file_partial
│   │   │       ├── ksm/
│   │   │       │   ├── invalid/
│   │   │       │   │   ├── full_scans
│   │   │       │   │   ├── max_page_sharing
│   │   │       │   │   ├── merge_across_nodes
│   │   │       │   │   ├── pages_shared
│   │   │       │   │   ├── pages_sharing
│   │   │       │   │   ├── pages_to_scan
│   │   │       │   │   ├── pages_unshared
│   │   │       │   │   ├── pages_volatile
│   │   │       │   │   ├── run
│   │   │       │   │   ├── sleep_millisecs
│   │   │       │   │   ├── stable_node_chains
│   │   │       │   │   ├── stable_node_chains_prune_millisecs
│   │   │       │   │   ├── stable_node_dups
│   │   │       │   │   └── use_zero_pages
│   │   │       │   ├── missing/
│   │   │       │   │   ├── full_scans
│   │   │       │   │   ├── max_page_sharing
│   │   │       │   │   ├── merge_across_nodes
│   │   │       │   │   ├── pages_shared
│   │   │       │   │   ├── pages_sharing
│   │   │       │   │   ├── pages_to_scan
│   │   │       │   │   ├── pages_unshared
│   │   │       │   │   ├── pages_volatile
│   │   │       │   │   ├── sleep_millisecs
│   │   │       │   │   ├── stable_node_chains
│   │   │       │   │   ├── stable_node_chains_prune_millisecs
│   │   │       │   │   ├── stable_node_dups
│   │   │       │   │   └── use_zero_pages
│   │   │       │   └── valid/
│   │   │       │       ├── full_scans
│   │   │       │       ├── max_page_sharing
│   │   │       │       ├── merge_across_nodes
│   │   │       │       ├── pages_shared
│   │   │       │       ├── pages_sharing
│   │   │       │       ├── pages_to_scan
│   │   │       │       ├── pages_unshared
│   │   │       │       ├── pages_volatile
│   │   │       │       ├── run
│   │   │       │       ├── sleep_millisecs
│   │   │       │       ├── stable_node_chains
│   │   │       │       ├── stable_node_chains_prune_millisecs
│   │   │       │       ├── stable_node_dups
│   │   │       │       └── use_zero_pages
│   │   │       ├── pressure/
│   │   │       │   ├── cpu
│   │   │       │   ├── io
│   │   │       │   └── memory
│   │   │       ├── stat_file_full
│   │   │       ├── stat_file_invalid
│   │   │       ├── stat_file_invalid2
│   │   │       └── stat_file_partial
│   │   ├── kernel_vmstat/
│   │   │   ├── README.md
│   │   │   ├── kernel_vmstat.go
│   │   │   ├── kernel_vmstat_notlinux.go
│   │   │   ├── kernel_vmstat_test.go
│   │   │   └── sample.conf
│   │   ├── kibana/
│   │   │   ├── README.md
│   │   │   ├── kibana.go
│   │   │   ├── kibana_test.go
│   │   │   ├── sample.conf
│   │   │   ├── test_environment/
│   │   │   │   ├── basic_kibana_telegraf.conf
│   │   │   │   ├── docker-compose.yml
│   │   │   │   └── run_test_env.sh
│   │   │   ├── testdata_test6_3.go
│   │   │   ├── testdata_test6_5.go
│   │   │   └── testdata_test8_15.go
│   │   ├── kinesis_consumer/
│   │   │   ├── README.md
│   │   │   ├── consumer.go
│   │   │   ├── encoding.go
│   │   │   ├── kinesis_consumer.go
│   │   │   ├── kinesis_consumer_test.go
│   │   │   ├── logging.go
│   │   │   ├── sample.conf
│   │   │   └── store.go
│   │   ├── knx_listener/
│   │   │   ├── README.md
│   │   │   ├── knx_dummy_interface.go
│   │   │   ├── knx_listener.go
│   │   │   ├── knx_listener_test.go
│   │   │   └── sample.conf
│   │   ├── kube_inventory/
│   │   │   ├── README.md
│   │   │   ├── certificate.go
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── daemonset.go
│   │   │   ├── daemonset_test.go
│   │   │   ├── deployment.go
│   │   │   ├── deployment_test.go
│   │   │   ├── endpoint.go
│   │   │   ├── endpoint_test.go
│   │   │   ├── ingress.go
│   │   │   ├── ingress_test.go
│   │   │   ├── kube_inventory.go
│   │   │   ├── node.go
│   │   │   ├── node_test.go
│   │   │   ├── persistentvolume.go
│   │   │   ├── persistentvolume_test.go
│   │   │   ├── persistentvolumeclaim.go
│   │   │   ├── persistentvolumeclaim_test.go
│   │   │   ├── pod.go
│   │   │   ├── pod_test.go
│   │   │   ├── resourcequotas.go
│   │   │   ├── resourcequotas_test.go
│   │   │   ├── sample.conf
│   │   │   ├── service.go
│   │   │   ├── service_test.go
│   │   │   ├── statefulset.go
│   │   │   └── statefulset_test.go
│   │   ├── kubernetes/
│   │   │   ├── README.md
│   │   │   ├── kubernetes.go
│   │   │   ├── kubernetes_metrics.go
│   │   │   ├── kubernetes_pods.go
│   │   │   ├── kubernetes_test.go
│   │   │   └── sample.conf
│   │   ├── lanz/
│   │   │   ├── README.md
│   │   │   ├── lanz.go
│   │   │   ├── lanz_test.go
│   │   │   └── sample.conf
│   │   ├── ldap/
│   │   │   ├── 389ds.go
│   │   │   ├── README.md
│   │   │   ├── ldap.go
│   │   │   ├── ldap_test.go
│   │   │   ├── openldap.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── leofs/
│   │   │   ├── README.md
│   │   │   ├── leofs.go
│   │   │   ├── leofs_test.go
│   │   │   └── sample.conf
│   │   ├── libvirt/
│   │   │   ├── README.md
│   │   │   ├── libvirt.go
│   │   │   ├── libvirt_metric_format.go
│   │   │   ├── libvirt_test.go
│   │   │   ├── libvirt_utils.go
│   │   │   ├── libvirt_utils_mock.go
│   │   │   └── sample.conf
│   │   ├── linux_cpu/
│   │   │   ├── README.md
│   │   │   ├── linux_cpu.go
│   │   │   ├── linux_cpu_nonlinux.go
│   │   │   ├── linux_cpu_test.go
│   │   │   └── sample.conf
│   │   ├── linux_sysctl_fs/
│   │   │   ├── README.md
│   │   │   ├── linux_sysctl_fs.go
│   │   │   ├── linux_sysctl_fs_test.go
│   │   │   └── sample.conf
│   │   ├── logql/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── logql.go
│   │   │   ├── logql_test.go
│   │   │   ├── query.go
│   │   │   ├── response.go
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   └── testcases/
│   │   │       ├── instant_vector/
│   │   │       │   ├── expected.out
│   │   │       │   ├── expected.query
│   │   │       │   ├── response_query.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── range_matrix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── expected.query
│   │   │       │   ├── response_query_range.json
│   │   │       │   └── telegraf.conf
│   │   │       └── range_stream/
│   │   │           ├── expected.out
│   │   │           ├── expected.query
│   │   │           ├── response_query_range.json
│   │   │           └── telegraf.conf
│   │   ├── logstash/
│   │   │   ├── README.md
│   │   │   ├── logstash.go
│   │   │   ├── logstash_test.go
│   │   │   ├── sample.conf
│   │   │   ├── samples_logstash5.go
│   │   │   ├── samples_logstash6.go
│   │   │   └── samples_logstash7.go
│   │   ├── lustre2/
│   │   │   ├── README.md
│   │   │   ├── lustre2.go
│   │   │   ├── lustre2_notlinux.go
│   │   │   ├── lustre2_test.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       ├── custom_locations/
│   │   │       │   ├── expected.out
│   │   │       │   ├── host_proc/
│   │   │       │   │   └── fs/
│   │   │       │   │       └── lustre/
│   │   │       │   │           ├── mdt/
│   │   │       │   │           │   └── OST0001/
│   │   │       │   │           │       ├── exports/
│   │   │       │   │           │       │   └── 10.2.4.27@o2ib1/
│   │   │       │   │           │       │       └── stats
│   │   │       │   │           │       ├── job_stats
│   │   │       │   │           │       └── md_stats
│   │   │       │   │           ├── obdfilter/
│   │   │       │   │           │   └── OST0001/
│   │   │       │   │           │       ├── exports/
│   │   │       │   │           │       │   └── 10.2.4.27@o2ib1/
│   │   │       │   │           │       │       └── stats
│   │   │       │   │           │       ├── job_stats
│   │   │       │   │           │       └── stats
│   │   │       │   │           └── osd-ldiskfs/
│   │   │       │   │               └── OST0001/
│   │   │       │   │                   ├── brw_stats
│   │   │       │   │                   └── stats
│   │   │       │   └── telegraf.conf
│   │   │       ├── v2.12/
│   │   │       │   ├── expected.out
│   │   │       │   ├── proc/
│   │   │       │   │   └── fs/
│   │   │       │   │       └── lustre/
│   │   │       │   │           ├── mdt/
│   │   │       │   │           │   └── OST0001/
│   │   │       │   │           │       ├── exports/
│   │   │       │   │           │       │   └── 10.2.4.27@o2ib1/
│   │   │       │   │           │       │       └── stats
│   │   │       │   │           │       ├── job_stats
│   │   │       │   │           │       └── md_stats
│   │   │       │   │           ├── obdfilter/
│   │   │       │   │           │   └── OST0001/
│   │   │       │   │           │       ├── exports/
│   │   │       │   │           │       │   └── 10.2.4.27@o2ib1/
│   │   │       │   │           │       │       └── stats
│   │   │       │   │           │       ├── job_stats
│   │   │       │   │           │       └── stats
│   │   │       │   │           └── osd-ldiskfs/
│   │   │       │   │               └── OST0001/
│   │   │       │   │                   ├── brw_stats
│   │   │       │   │                   └── stats
│   │   │       │   ├── sys/
│   │   │       │   │   └── fs/
│   │   │       │   │       └── lustre/
│   │   │       │   │           ├── health_check
│   │   │       │   │           ├── mdt/
│   │   │       │   │           │   └── fs-MDT0000/
│   │   │       │   │           │       └── eviction_count
│   │   │       │   │           ├── mgs/
│   │   │       │   │           │   └── MGS/
│   │   │       │   │           │       └── eviction_count
│   │   │       │   │           └── obdfilter/
│   │   │       │   │               └── fs-OST0001/
│   │   │       │   │                   └── eviction_count
│   │   │       │   └── telegraf.conf
│   │   │       └── v2.12_no_client_stats/
│   │   │           ├── expected.out
│   │   │           ├── proc/
│   │   │           │   └── fs/
│   │   │           │       └── lustre/
│   │   │           │           ├── mdt/
│   │   │           │           │   └── OST0001/
│   │   │           │           │       ├── job_stats
│   │   │           │           │       └── md_stats
│   │   │           │           ├── obdfilter/
│   │   │           │           │   └── OST0001/
│   │   │           │           │       ├── job_stats
│   │   │           │           │       └── stats
│   │   │           │           └── osd-ldiskfs/
│   │   │           │               └── OST0001/
│   │   │           │                   ├── brw_stats
│   │   │           │                   └── stats
│   │   │           ├── sys/
│   │   │           │   └── fs/
│   │   │           │       └── lustre/
│   │   │           │           ├── health_check
│   │   │           │           ├── mdt/
│   │   │           │           │   └── fs-MDT0000/
│   │   │           │           │       └── eviction_count
│   │   │           │           ├── mgs/
│   │   │           │           │   └── MGS/
│   │   │           │           │       └── eviction_count
│   │   │           │           └── obdfilter/
│   │   │           │               └── fs-OST0001/
│   │   │           │                   └── eviction_count
│   │   │           └── telegraf.conf
│   │   ├── lvm/
│   │   │   ├── README.md
│   │   │   ├── lvm.go
│   │   │   ├── lvm_test.go
│   │   │   └── sample.conf
│   │   ├── mailchimp/
│   │   │   ├── README.md
│   │   │   ├── chimp_api.go
│   │   │   ├── mailchimp.go
│   │   │   ├── mailchimp_test.go
│   │   │   └── sample.conf
│   │   ├── marklogic/
│   │   │   ├── README.md
│   │   │   ├── marklogic.go
│   │   │   ├── marklogic_test.go
│   │   │   └── sample.conf
│   │   ├── mavlink/
│   │   │   ├── README.md
│   │   │   ├── mavlink.go
│   │   │   ├── mavlink_test.go
│   │   │   └── sample.conf
│   │   ├── mcrouter/
│   │   │   ├── README.md
│   │   │   ├── mcrouter.go
│   │   │   ├── mcrouter_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── mcrouter_stats
│   │   ├── mdstat/
│   │   │   ├── README.md
│   │   │   ├── mdstat.go
│   │   │   ├── mdstat_notlinux.go
│   │   │   ├── mdstat_test.go
│   │   │   └── sample.conf
│   │   ├── mem/
│   │   │   ├── README.md
│   │   │   ├── mem.go
│   │   │   ├── mem_test.go
│   │   │   └── sample.conf
│   │   ├── memcached/
│   │   │   ├── README.md
│   │   │   ├── memcached.go
│   │   │   ├── memcached_test.go
│   │   │   └── sample.conf
│   │   ├── mesos/
│   │   │   ├── README.md
│   │   │   ├── mesos.go
│   │   │   ├── mesos_test.go
│   │   │   └── sample.conf
│   │   ├── minecraft/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── minecraft.go
│   │   │   ├── minecraft_test.go
│   │   │   └── sample.conf
│   │   ├── mock/
│   │   │   ├── README.md
│   │   │   ├── mock.go
│   │   │   ├── mock_test.go
│   │   │   └── sample.conf
│   │   ├── modbus/
│   │   │   ├── README.md
│   │   │   ├── configuration.go
│   │   │   ├── configuration_metric.go
│   │   │   ├── configuration_metric_test.go
│   │   │   ├── configuration_register.go
│   │   │   ├── configuration_register_test.go
│   │   │   ├── configuration_request.go
│   │   │   ├── configuration_request_test.go
│   │   │   ├── modbus.go
│   │   │   ├── modbus_test.go
│   │   │   ├── request.go
│   │   │   ├── sample_general_begin.conf
│   │   │   ├── sample_general_end.conf
│   │   │   ├── sample_metric.conf
│   │   │   ├── sample_register.conf
│   │   │   ├── sample_request.conf
│   │   │   ├── testcases/
│   │   │   │   ├── duplicate_fields_different_registers/
│   │   │   │   │   ├── init.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_different_slave/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_different_tags/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_issue_12091/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_same_slave_and_request/
│   │   │   │   │   ├── init.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── duplicate_fields_same_tags/
│   │   │   │   │   ├── init.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── field_request_too_short_issue_13482/
│   │   │   │   │   ├── init.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── metric_style_issue_16031/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── overflow_issue_14387/
│   │   │   │       ├── expected.out
│   │   │   │       └── telegraf.conf
│   │   │   ├── type_conversions.go
│   │   │   ├── type_conversions16.go
│   │   │   ├── type_conversions32.go
│   │   │   ├── type_conversions64.go
│   │   │   ├── type_conversions8.go
│   │   │   ├── type_conversions_bit.go
│   │   │   └── type_conversions_string.go
│   │   ├── mongodb/
│   │   │   ├── README.md
│   │   │   ├── dev/
│   │   │   │   ├── docker-compose.yml
│   │   │   │   └── telegraf.conf
│   │   │   ├── mongodb.go
│   │   │   ├── mongodb_data.go
│   │   │   ├── mongodb_data_test.go
│   │   │   ├── mongodb_server.go
│   │   │   ├── mongodb_server_test.go
│   │   │   ├── mongostat.go
│   │   │   ├── mongostat_test.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── monit/
│   │   │   ├── README.md
│   │   │   ├── monit.go
│   │   │   ├── monit_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── response_invalidxml_1.xml
│   │   │       ├── response_invalidxml_2.xml
│   │   │       ├── response_invalidxml_3.xml
│   │   │       ├── response_servicetype_0.xml
│   │   │       ├── response_servicetype_1.xml
│   │   │       ├── response_servicetype_2.xml
│   │   │       ├── response_servicetype_3.xml
│   │   │       ├── response_servicetype_4.xml
│   │   │       ├── response_servicetype_5.xml
│   │   │       ├── response_servicetype_6.xml
│   │   │       ├── response_servicetype_7.xml
│   │   │       ├── response_servicetype_8.xml
│   │   │       ├── response_servicetype_8_failure.xml
│   │   │       ├── response_servicetype_8_initializingmode.xml
│   │   │       ├── response_servicetype_8_passivemode.xml
│   │   │       └── response_servicetype_8_pendingaction.xml
│   │   ├── mqtt_consumer/
│   │   │   ├── README.md
│   │   │   ├── mqtt_consumer.go
│   │   │   ├── mqtt_consumer_test.go
│   │   │   ├── mqtt_logger.go
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   └── mosquitto.conf
│   │   │   └── topic_parser.go
│   │   ├── multifile/
│   │   │   ├── README.md
│   │   │   ├── multifile.go
│   │   │   ├── multifile_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── bool.txt
│   │   │       ├── float.txt
│   │   │       ├── int.txt
│   │   │       ├── string.txt
│   │   │       └── tag.txt
│   │   ├── mysql/
│   │   │   ├── README.md
│   │   │   ├── dev/
│   │   │   │   ├── docker-compose.yml
│   │   │   │   └── telegraf.conf
│   │   │   ├── mysql.go
│   │   │   ├── mysql_test.go
│   │   │   ├── sample.conf
│   │   │   ├── v1/
│   │   │   │   └── mysql.go
│   │   │   └── v2/
│   │   │       ├── convert.go
│   │   │       └── convert_test.go
│   │   ├── nats/
│   │   │   ├── README.md
│   │   │   ├── nats.go
│   │   │   ├── nats_freebsd.go
│   │   │   ├── nats_test.go
│   │   │   └── sample.conf
│   │   ├── nats_consumer/
│   │   │   ├── README.md
│   │   │   ├── nats_consumer.go
│   │   │   ├── nats_consumer_test.go
│   │   │   └── sample.conf
│   │   ├── neoom_beaam/
│   │   │   ├── README.md
│   │   │   ├── neoom_beaam.go
│   │   │   ├── neoom_beaam_test.go
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── testcases/
│   │   │   │   └── small/
│   │   │   │       ├── configuration.json
│   │   │   │       ├── expected.out
│   │   │   │       ├── state.json
│   │   │   │       ├── telegraf.conf
│   │   │   │       ├── thing_22222222-bbbb-2222-bbbb-222222222222.json
│   │   │   │       ├── thing_33333333-cccc-3333-cccc-333333333333.json
│   │   │   │       ├── thing_44444444-dddd-4444-dddd-444444444444.json
│   │   │   │       └── thing_55555555-eeee-5555-eeee-555555555555.json
│   │   │   └── types.go
│   │   ├── neptune_apex/
│   │   │   ├── README.md
│   │   │   ├── neptune_apex.go
│   │   │   ├── neptune_apex_test.go
│   │   │   └── sample.conf
│   │   ├── net/
│   │   │   ├── README.md
│   │   │   ├── net.go
│   │   │   ├── net_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── general/
│   │   │           └── sys/
│   │   │               └── class/
│   │   │                   └── net/
│   │   │                       ├── eth0/
│   │   │                       │   └── speed
│   │   │                       └── eth1/
│   │   │                           └── speed
│   │   ├── net_response/
│   │   │   ├── README.md
│   │   │   ├── net_response.go
│   │   │   ├── net_response_test.go
│   │   │   └── sample.conf
│   │   ├── netflow/
│   │   │   ├── README.md
│   │   │   ├── ipv4_options.csv
│   │   │   ├── layer4_protocol_numbers.csv
│   │   │   ├── mappings.go
│   │   │   ├── mappings_ipfix_pen/
│   │   │   │   └── ntop-35632.csv
│   │   │   ├── netflow.go
│   │   │   ├── netflow_decoder.go
│   │   │   ├── netflow_test.go
│   │   │   ├── netflow_v5.go
│   │   │   ├── sample.conf
│   │   │   ├── sflow_v5.go
│   │   │   ├── testcases/
│   │   │   │   ├── ipfix_example/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── ipfix_options/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── ipfix_pen_35632/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_13305/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── issue_14370/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── netflow_mapping.csv
│   │   │   │   ├── netflow_v5_example/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── netflow_v9_example/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── netflow_v9_options/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── sflow_issue_15375/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── sflow_issue_15918/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── sflow_v5_example/
│   │   │   │       ├── expected.out
│   │   │   │       └── telegraf.conf
│   │   │   ├── type_conversion.go
│   │   │   └── type_conversion_test.go
│   │   ├── netstat/
│   │   │   ├── README.md
│   │   │   ├── netstat.go
│   │   │   ├── netstat_test.go
│   │   │   └── sample.conf
│   │   ├── nfsclient/
│   │   │   ├── README.md
│   │   │   ├── nfsclient.go
│   │   │   ├── nfsclient_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── mountstats
│   │   ├── nftables/
│   │   │   ├── README.md
│   │   │   ├── nftables.go
│   │   │   ├── nftables_notlinux.go
│   │   │   ├── nftables_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── bad_output/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── table_test.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── bad_rule_empty/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── table_test.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── bad_rule_list/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── table_test.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── bad_rule_string/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── table_test.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── mixed_counters/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── table_mixed.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── named_counter/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── table_inet example.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── non_existent_table/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── valid/
│   │   │   │       ├── expected.out
│   │   │   │       ├── table_test.json
│   │   │   │       └── telegraf.conf
│   │   │   └── types.go
│   │   ├── nginx/
│   │   │   ├── README.md
│   │   │   ├── nginx.go
│   │   │   ├── nginx_test.go
│   │   │   └── sample.conf
│   │   ├── nginx_plus/
│   │   │   ├── README.md
│   │   │   ├── nginx_plus.go
│   │   │   ├── nginx_plus_test.go
│   │   │   └── sample.conf
│   │   ├── nginx_plus_api/
│   │   │   ├── README.md
│   │   │   ├── nginx_plus_api.go
│   │   │   ├── nginx_plus_api_metrics.go
│   │   │   ├── nginx_plus_api_metrics_test.go
│   │   │   ├── nginx_plus_api_types.go
│   │   │   └── sample.conf
│   │   ├── nginx_sts/
│   │   │   ├── README.md
│   │   │   ├── nginx_sts.go
│   │   │   ├── nginx_sts_test.go
│   │   │   └── sample.conf
│   │   ├── nginx_upstream_check/
│   │   │   ├── README.md
│   │   │   ├── nginx_upstream_check.go
│   │   │   ├── nginx_upstream_check_test.go
│   │   │   └── sample.conf
│   │   ├── nginx_vts/
│   │   │   ├── README.md
│   │   │   ├── nginx_vts.go
│   │   │   ├── nginx_vts_test.go
│   │   │   └── sample.conf
│   │   ├── nomad/
│   │   │   ├── README.md
│   │   │   ├── nomad.go
│   │   │   ├── nomad_metrics.go
│   │   │   ├── nomad_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── response_key_metrics.json
│   │   ├── nsd/
│   │   │   ├── README.md
│   │   │   ├── nsd.go
│   │   │   ├── nsd_test.go
│   │   │   └── sample.conf
│   │   ├── nsdp/
│   │   │   ├── README.md
│   │   │   ├── nsdp.go
│   │   │   ├── nsdp_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── conf/
│   │   │       │   └── nsdp.conf
│   │   │       └── metrics/
│   │   │           └── nsdp_device_port.txt
│   │   ├── nsq/
│   │   │   ├── README.md
│   │   │   ├── nsq.go
│   │   │   ├── nsq_test.go
│   │   │   └── sample.conf
│   │   ├── nsq_consumer/
│   │   │   ├── README.md
│   │   │   ├── nsq_consumer.go
│   │   │   ├── nsq_consumer_test.go
│   │   │   └── sample.conf
│   │   ├── nstat/
│   │   │   ├── README.md
│   │   │   ├── nstat.go
│   │   │   ├── nstat_test.go
│   │   │   └── sample.conf
│   │   ├── ntpq/
│   │   │   ├── README.md
│   │   │   ├── ntpq.go
│   │   │   ├── ntpq_test.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       ├── bad_float_parse/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── bad_header/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── bad_int_parse/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── bad_when/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── days/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── failed/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── hours/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── issue_2386/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── long_poll/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── minutes/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── missing_delay_column/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── multi/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── no_ref_id/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── pool_when_headers_as_data/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── pool_when_minus/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── servers/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input_serverA.txt
│   │   │       │   ├── input_serverB.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── servers_one_fail/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input_serverA.txt
│   │   │       │   ├── input_serverB.txt
│   │   │       │   ├── input_serverC.err
│   │   │       │   └── telegraf.conf
│   │   │       ├── single/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── single_reach_count/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── single_reach_decimal/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── single_reach_octal/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       └── single_reach_ratio/
│   │   │           ├── expected.out
│   │   │           ├── input.txt
│   │   │           └── telegraf.conf
│   │   ├── nvidia_smi/
│   │   │   ├── README.md
│   │   │   ├── common/
│   │   │   │   └── setters.go
│   │   │   ├── nvidia_smi.go
│   │   │   ├── nvidia_smi_test.go
│   │   │   ├── sample.conf
│   │   │   ├── schema_v11/
│   │   │   │   ├── parser.go
│   │   │   │   └── types.go
│   │   │   ├── schema_v12/
│   │   │   │   ├── parser.go
│   │   │   │   └── types.go
│   │   │   └── testdata/
│   │   │       ├── a100-sxm4-v12.xml
│   │   │       ├── a10g.xml
│   │   │       ├── gtx-1070-ti.xml
│   │   │       ├── gtx-1660-ti.xml
│   │   │       ├── quadro-p2000-v12.xml
│   │   │       ├── quadro-p400.xml
│   │   │       ├── rtx-3060-v12.xml
│   │   │       ├── rtx-3080-v12.xml
│   │   │       ├── rtx-3090-v12.xml
│   │   │       └── tesla-t4.xml
│   │   ├── opcua/
│   │   │   ├── README.md
│   │   │   ├── opcua.go
│   │   │   ├── opcua_test.go
│   │   │   ├── read_client.go
│   │   │   └── sample.conf
│   │   ├── opcua_listener/
│   │   │   ├── README.md
│   │   │   ├── opcua_listener.go
│   │   │   ├── opcua_listener_test.go
│   │   │   ├── sample.conf
│   │   │   └── subscribe_client.go
│   │   ├── openldap/
│   │   │   ├── README.md
│   │   │   ├── openldap.go
│   │   │   ├── openldap_test.go
│   │   │   └── sample.conf
│   │   ├── openntpd/
│   │   │   ├── README.md
│   │   │   ├── openntpd.go
│   │   │   ├── openntpd_test.go
│   │   │   └── sample.conf
│   │   ├── opensearch_query/
│   │   │   ├── README.md
│   │   │   ├── aggregation.bucket.go
│   │   │   ├── aggregation.go
│   │   │   ├── aggregation.metric.go
│   │   │   ├── aggregation.response.go
│   │   │   ├── opensearch_query.go
│   │   │   ├── opensearch_query_test.go
│   │   │   ├── query.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── nginx_logs
│   │   ├── opensmtpd/
│   │   │   ├── README.md
│   │   │   ├── opensmtpd.go
│   │   │   ├── opensmtpd_test.go
│   │   │   └── sample.conf
│   │   ├── openstack/
│   │   │   ├── README.md
│   │   │   ├── openstack.go
│   │   │   └── sample.conf
│   │   ├── opentelemetry/
│   │   │   ├── README.md
│   │   │   ├── grpc_service_profile.go
│   │   │   ├── grpc_services.go
│   │   │   ├── logger.go
│   │   │   ├── opentelemetry.go
│   │   │   ├── opentelemetry_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   └── profiles/
│   │   │   │       ├── expected.out
│   │   │   │       ├── profiles.json
│   │   │   │       └── telegraf.conf
│   │   │   └── writer.go
│   │   ├── openweathermap/
│   │   │   ├── README.md
│   │   │   ├── openweathermap.go
│   │   │   ├── openweathermap_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── forecast/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_forecast.json
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── rain_batch/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── snow_batch/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── weather/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── weather_batch/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── response_forecast.json
│   │   │   │   │   ├── response_group.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── weather_single/
│   │   │   │       ├── expected.out
│   │   │   │       ├── response_forecast.json
│   │   │   │       ├── response_weather_2643743.json
│   │   │   │       ├── response_weather_524901.json
│   │   │   │       ├── response_weather_703448.json
│   │   │   │       └── telegraf.conf
│   │   │   └── types.go
│   │   ├── p4runtime/
│   │   │   ├── README.md
│   │   │   ├── p4runtime.go
│   │   │   ├── p4runtime_fake_client_test.go
│   │   │   ├── p4runtime_test.go
│   │   │   └── sample.conf
│   │   ├── passenger/
│   │   │   ├── README.md
│   │   │   ├── passenger.go
│   │   │   ├── passenger_test.go
│   │   │   └── sample.conf
│   │   ├── pf/
│   │   │   ├── README.md
│   │   │   ├── pf.go
│   │   │   ├── pf_test.go
│   │   │   └── sample.conf
│   │   ├── pgbouncer/
│   │   │   ├── README.md
│   │   │   ├── pgbouncer.go
│   │   │   ├── pgbouncer_test.go
│   │   │   └── sample.conf
│   │   ├── phpfpm/
│   │   │   ├── README.md
│   │   │   ├── child.go
│   │   │   ├── fcgi.go
│   │   │   ├── fcgi_client.go
│   │   │   ├── fcgi_test.go
│   │   │   ├── phpfpm.go
│   │   │   ├── phpfpm_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── expected.out
│   │   │       └── phpfpm.json
│   │   ├── ping/
│   │   │   ├── README.md
│   │   │   ├── ping.go
│   │   │   ├── ping_notwindows.go
│   │   │   ├── ping_test.go
│   │   │   ├── ping_windows.go
│   │   │   ├── ping_windows_test.go
│   │   │   └── sample.conf
│   │   ├── postfix/
│   │   │   ├── README.md
│   │   │   ├── postfix.go
│   │   │   ├── postfix_test.go
│   │   │   ├── postfix_windows.go
│   │   │   ├── sample.conf
│   │   │   ├── stat_ctim.go
│   │   │   └── stat_ctimespec.go
│   │   ├── postgresql/
│   │   │   ├── README.md
│   │   │   ├── postgresql.go
│   │   │   ├── postgresql_test.go
│   │   │   └── sample.conf
│   │   ├── postgresql_extensible/
│   │   │   ├── README.md
│   │   │   ├── postgresql_extensible.go
│   │   │   ├── postgresql_extensible_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── test.sql
│   │   ├── powerdns/
│   │   │   ├── README.md
│   │   │   ├── powerdns.go
│   │   │   ├── powerdns_linux_test.go
│   │   │   ├── powerdns_test.go
│   │   │   └── sample.conf
│   │   ├── powerdns_recursor/
│   │   │   ├── README.md
│   │   │   ├── powerdns_recursor.go
│   │   │   ├── powerdns_recursor_test.go
│   │   │   ├── protocol_commons.go
│   │   │   ├── protocol_v1.go
│   │   │   ├── protocol_v2.go
│   │   │   ├── protocol_v3.go
│   │   │   └── sample.conf
│   │   ├── processes/
│   │   │   ├── README.md
│   │   │   ├── processes.go
│   │   │   ├── processes_notwindows.go
│   │   │   ├── processes_test.go
│   │   │   ├── processes_windows.go
│   │   │   └── sample.conf
│   │   ├── procstat/
│   │   │   ├── README.md
│   │   │   ├── filter.go
│   │   │   ├── native_finder.go
│   │   │   ├── native_finder_test.go
│   │   │   ├── os_linux.go
│   │   │   ├── os_others.go
│   │   │   ├── os_windows.go
│   │   │   ├── pgrep.go
│   │   │   ├── process.go
│   │   │   ├── procstat.go
│   │   │   ├── procstat_test.go
│   │   │   ├── sample.conf
│   │   │   └── service_finders.go
│   │   ├── prometheus/
│   │   │   ├── README.md
│   │   │   ├── consul.go
│   │   │   ├── http_service_discovery.go
│   │   │   ├── http_service_discovery_test.go
│   │   │   ├── kubernetes.go
│   │   │   ├── kubernetes_test.go
│   │   │   ├── prometheus.go
│   │   │   ├── prometheus_test.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       └── service_discovery/
│   │   │           ├── http-services.json
│   │   │           └── telegraf.conf
│   │   ├── promql/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── promql.go
│   │   │   ├── promql_test.go
│   │   │   ├── query.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── proxmox/
│   │   │   ├── README.md
│   │   │   ├── proxmox.go
│   │   │   ├── proxmox_test.go
│   │   │   ├── sample.conf
│   │   │   └── structs.go
│   │   ├── puppetagent/
│   │   │   ├── README.md
│   │   │   ├── last_run_summary.yaml
│   │   │   ├── puppetagent.go
│   │   │   ├── puppetagent_test.go
│   │   │   └── sample.conf
│   │   ├── rabbitmq/
│   │   │   ├── README.md
│   │   │   ├── rabbitmq.go
│   │   │   ├── rabbitmq_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── set1/
│   │   │       │   ├── exchanges.json
│   │   │       │   ├── federation-links.json
│   │   │       │   ├── memory.json
│   │   │       │   ├── nodes.json
│   │   │       │   ├── overview.json
│   │   │       │   └── queues.json
│   │   │       └── set2/
│   │   │           ├── exchanges.json
│   │   │           ├── federation-links.json
│   │   │           ├── memory.json
│   │   │           ├── nodes.json
│   │   │           ├── overview.json
│   │   │           └── queues.json
│   │   ├── radius/
│   │   │   ├── README.md
│   │   │   ├── radius.go
│   │   │   ├── radius_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── invalidSourceIP/
│   │   │       │   ├── clients.conf
│   │   │       │   ├── mods-config/
│   │   │       │   │   └── files/
│   │   │       │   │       └── authorize
│   │   │       │   └── radiusd.conf
│   │   │       └── raddb/
│   │   │           ├── clients.conf
│   │   │           ├── mods-config/
│   │   │           │   └── files/
│   │   │           │       └── authorize
│   │   │           └── radiusd.conf
│   │   ├── raindrops/
│   │   │   ├── README.md
│   │   │   ├── raindrops.go
│   │   │   ├── raindrops_test.go
│   │   │   └── sample.conf
│   │   ├── ras/
│   │   │   ├── README.md
│   │   │   ├── ras.go
│   │   │   ├── ras_notlinux.go
│   │   │   ├── ras_test.go
│   │   │   └── sample.conf
│   │   ├── ravendb/
│   │   │   ├── README.md
│   │   │   ├── ravendb.go
│   │   │   ├── ravendb_dto.go
│   │   │   ├── ravendb_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── collections_full.json
│   │   │       ├── collections_min.json
│   │   │       ├── databases_full.json
│   │   │       ├── databases_min.json
│   │   │       ├── indexes_full.json
│   │   │       ├── indexes_min.json
│   │   │       ├── server_full.json
│   │   │       └── server_min.json
│   │   ├── redfish/
│   │   │   ├── README.md
│   │   │   ├── redfish.go
│   │   │   ├── redfish_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── dell_chassis.json
│   │   │       ├── dell_chassisinvalid.json
│   │   │       ├── dell_power.json
│   │   │       ├── dell_powerinvalid.json
│   │   │       ├── dell_systems.json
│   │   │       ├── dell_systemsinvalid.json
│   │   │       ├── dell_thermal.json
│   │   │       ├── dell_thermalinvalid.json
│   │   │       ├── hp_chassis.json
│   │   │       ├── hp_power.json
│   │   │       ├── hp_powerinvalid.json
│   │   │       ├── hp_systems.json
│   │   │       ├── hp_systemsinvalid.json
│   │   │       ├── hp_thermal.json
│   │   │       ├── hp_thermal_ilo4.json
│   │   │       └── hp_thermalinvalid.json
│   │   ├── redis/
│   │   │   ├── README.md
│   │   │   ├── redis.go
│   │   │   ├── redis_test.go
│   │   │   └── sample.conf
│   │   ├── redis_sentinel/
│   │   │   ├── README.md
│   │   │   ├── redis_sentinel.go
│   │   │   ├── redis_sentinel_test.go
│   │   │   ├── redis_sentinel_types.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── sentinel.info.response
│   │   ├── registry.go
│   │   ├── rethinkdb/
│   │   │   ├── README.md
│   │   │   ├── rethinkdb.go
│   │   │   ├── rethinkdb_data.go
│   │   │   ├── rethinkdb_data_test.go
│   │   │   ├── rethinkdb_server.go
│   │   │   ├── rethinkdb_server_test.go
│   │   │   ├── rethinkdb_test.go
│   │   │   └── sample.conf
│   │   ├── riak/
│   │   │   ├── README.md
│   │   │   ├── riak.go
│   │   │   ├── riak_test.go
│   │   │   └── sample.conf
│   │   ├── riemann_listener/
│   │   │   ├── README.md
│   │   │   ├── riemann_listener.go
│   │   │   ├── riemann_listener_test.go
│   │   │   └── sample.conf
│   │   ├── s7comm/
│   │   │   ├── README.md
│   │   │   ├── s7comm.go
│   │   │   ├── s7comm_test.go
│   │   │   ├── sample.conf
│   │   │   └── type_conversions.go
│   │   ├── salesforce/
│   │   │   ├── README.md
│   │   │   ├── salesforce.go
│   │   │   ├── salesforce_test.go
│   │   │   └── sample.conf
│   │   ├── sensors/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sensors.go
│   │   │   ├── sensors_notlinux.go
│   │   │   └── sensors_test.go
│   │   ├── sflow/
│   │   │   ├── README.md
│   │   │   ├── binaryio/
│   │   │   │   ├── minreader.go
│   │   │   │   └── minreader_test.go
│   │   │   ├── decoder_test.go
│   │   │   ├── metricencoder.go
│   │   │   ├── packetdecoder.go
│   │   │   ├── packetdecoder_test.go
│   │   │   ├── sample.conf
│   │   │   ├── sflow.go
│   │   │   ├── sflow_test.go
│   │   │   ├── types.go
│   │   │   └── types_test.go
│   │   ├── sip/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── sip.go
│   │   │   └── sip_test.go
│   │   ├── slab/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── slab.go
│   │   │   ├── slab_notlinux.go
│   │   │   ├── slab_test.go
│   │   │   └── testdata/
│   │   │       └── slabinfo
│   │   ├── slurm/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── slurm.go
│   │   │   ├── slurm_test.go
│   │   │   └── testcases/
│   │   │       ├── gather/
│   │   │       │   ├── expected.out
│   │   │       │   ├── responses/
│   │   │       │   │   ├── diag.json
│   │   │       │   │   ├── jobs.json
│   │   │       │   │   ├── nodes.json
│   │   │       │   │   ├── partitions.json
│   │   │       │   │   └── reservations.json
│   │   │       │   └── telegraf.conf
│   │   │       └── panic/
│   │   │           ├── responses/
│   │   │           │   ├── diag.json
│   │   │           │   ├── jobs.json
│   │   │           │   ├── nodes.json
│   │   │           │   ├── partitions.json
│   │   │           │   └── reservations.json
│   │   │           └── telegraf.conf
│   │   ├── smart/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── smart.go
│   │   │   └── smart_test.go
│   │   ├── smartctl/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── smartctl.go
│   │   │   ├── smartctl_device.go
│   │   │   ├── smartctl_json.go
│   │   │   ├── smartctl_scan.go
│   │   │   ├── smartctl_test.go
│   │   │   ├── testcases_device/
│   │   │   │   ├── megaraid/
│   │   │   │   │   ├── device
│   │   │   │   │   ├── deviceType
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── response.json
│   │   │   │   ├── nvme/
│   │   │   │   │   ├── device
│   │   │   │   │   ├── deviceType
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── response.json
│   │   │   │   ├── scsi/
│   │   │   │   │   ├── device
│   │   │   │   │   ├── deviceType
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── response.json
│   │   │   │   ├── scsi_extended/
│   │   │   │   │   ├── device
│   │   │   │   │   ├── deviceType
│   │   │   │   │   ├── expected.out
│   │   │   │   │   └── response.json
│   │   │   │   └── usb/
│   │   │   │       ├── device
│   │   │   │       ├── deviceType
│   │   │   │       ├── expected.out
│   │   │   │       └── response.json
│   │   │   └── testcases_scan/
│   │   │       ├── all/
│   │   │       │   ├── expected.out
│   │   │       │   ├── response.json
│   │   │       │   └── telegraf.toml
│   │   │       ├── exclude/
│   │   │       │   ├── expected.out
│   │   │       │   ├── response.json
│   │   │       │   └── telegraf.toml
│   │   │       ├── include/
│   │   │       │   ├── expected.out
│   │   │       │   ├── response.json
│   │   │       │   └── telegraf.toml
│   │   │       └── megaraid/
│   │   │           ├── expected.out
│   │   │           ├── response.json
│   │   │           └── telegraf.toml
│   │   ├── snmp/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── snmp.go
│   │   │   └── snmp_test.go
│   │   ├── snmp_trap/
│   │   │   ├── README.md
│   │   │   ├── gosmi.go
│   │   │   ├── netsnmp.go
│   │   │   ├── sample.conf
│   │   │   ├── snmp_trap.go
│   │   │   └── snmp_trap_test.go
│   │   ├── socket_listener/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── socket_listener.go
│   │   │   ├── socket_listener_test.go
│   │   │   └── testcases/
│   │   │       ├── invalid_line_format/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── powerdns/
│   │   │       │   ├── dnsmessage.proto
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_delimiter/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_fixed_length/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_newline/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_null/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       ├── splitting_variable_length/
│   │   │       │   ├── expected.out
│   │   │       │   ├── sequence.json
│   │   │       │   └── telegraf.conf
│   │   │       └── timeout/
│   │   │           ├── sequence.json
│   │   │           └── telegraf.conf
│   │   ├── socketstat/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── socketstat.go
│   │   │   ├── socketstat_test.go
│   │   │   ├── socketstat_windows.go
│   │   │   └── testdata/
│   │   │       ├── tcp_no_sockets.txt
│   │   │       ├── tcp_traffic.txt
│   │   │       ├── udp_no_sockets.txt
│   │   │       └── udp_traffic.txt
│   │   ├── solr/
│   │   │   ├── README.md
│   │   │   ├── api.go
│   │   │   ├── sample.conf
│   │   │   ├── solr.go
│   │   │   ├── solr_test.go
│   │   │   ├── testcases/
│   │   │   │   ├── integration-v6.result
│   │   │   │   ├── integration-v7.result
│   │   │   │   ├── integration-v8.result
│   │   │   │   ├── integration-v9.result
│   │   │   │   ├── no_core_data/
│   │   │   │   │   ├── admin/
│   │   │   │   │   │   └── cores.json
│   │   │   │   │   ├── core1/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── main/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── v3.5/
│   │   │   │   │   ├── admin/
│   │   │   │   │   │   └── cores.json
│   │   │   │   │   ├── core1/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── main/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── v4.3/
│   │   │   │   │   ├── admin/
│   │   │   │   │   │   └── cores.json
│   │   │   │   │   ├── core1/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── main/
│   │   │   │   │   │   └── admin/
│   │   │   │   │   │       └── mbeans.json
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── v7/
│   │   │   │       ├── admin/
│   │   │   │       │   └── cores.json
│   │   │   │       ├── expected.out
│   │   │   │       ├── main/
│   │   │   │       │   └── admin/
│   │   │   │       │       └── mbeans.json
│   │   │   │       └── telegraf.conf
│   │   │   ├── types.go
│   │   │   └── util.go
│   │   ├── sql/
│   │   │   ├── README.md
│   │   │   ├── drivers.go
│   │   │   ├── drivers_sqlite.go
│   │   │   ├── sample.conf
│   │   │   ├── sql.go
│   │   │   ├── sql_test.go
│   │   │   └── testdata/
│   │   │       ├── clickhouse/
│   │   │       │   └── expected.sql
│   │   │       ├── mariadb/
│   │   │       │   └── expected.sql
│   │   │       └── postgres/
│   │   │           └── expected.sql
│   │   ├── sqlserver/
│   │   │   ├── README.md
│   │   │   ├── azurearcsqlmiqueries.go
│   │   │   ├── azurearcsqlmiqueries_test.go
│   │   │   ├── azuresqldbqueries.go
│   │   │   ├── azuresqldbqueries_test.go
│   │   │   ├── azuresqlmanagedqueries.go
│   │   │   ├── azuresqlmanagedqueries_test.go
│   │   │   ├── azuresqlpoolqueries.go
│   │   │   ├── azuresqlpoolqueries_test.go
│   │   │   ├── azuretoken.go
│   │   │   ├── connectionstring.go
│   │   │   ├── sample.conf
│   │   │   ├── sqlserver.go
│   │   │   ├── sqlserver_test.go
│   │   │   └── sqlserverqueries.go
│   │   ├── stackdriver/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── stackdriver.go
│   │   │   └── stackdriver_test.go
│   │   ├── statsd/
│   │   │   ├── README.md
│   │   │   ├── datadog.go
│   │   │   ├── datadog_test.go
│   │   │   ├── running_stats.go
│   │   │   ├── running_stats_test.go
│   │   │   ├── sample.conf
│   │   │   ├── statsd.go
│   │   │   └── statsd_test.go
│   │   ├── supervisor/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── supervisor.go
│   │   │   ├── supervisor_test.go
│   │   │   └── testdata/
│   │   │       └── supervisord.conf
│   │   ├── suricata/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── suricata.go
│   │   │   ├── suricata_test.go
│   │   │   └── testdata/
│   │   │       ├── test1.json
│   │   │       ├── test2.json
│   │   │       ├── test3.json
│   │   │       └── v2/
│   │   │           ├── alert.json
│   │   │           ├── dns.json
│   │   │           ├── drop.json
│   │   │           ├── flow.json
│   │   │           ├── http.json
│   │   │           └── status.json
│   │   ├── swap/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── swap.go
│   │   │   └── swap_test.go
│   │   ├── synproxy/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── synproxy.go
│   │   │   ├── synproxy_notlinux.go
│   │   │   └── synproxy_test.go
│   │   ├── syslog/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   ├── syslog.go
│   │   │   ├── syslog_test.go
│   │   │   └── testcases/
│   │   │       ├── non_transparent_best_effort_tcp_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_tcp_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_tcptls_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_tcptls_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_unix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_best_effort_unixtls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_tcp_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_tcp_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_tcptls_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_tcptls_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_unix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── non_transparent_strict_unixtls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_max_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_newline_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_underflow_malfunction/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_underflow_nok/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcp_1st_utf8_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_tcptls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_unix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_best_effort_unixtls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_maxlength_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_avg_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_max_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_min_ok_2nd_min_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_newline_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_underflow_malfunction/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_underflow_nok/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcp_1st_utf8_ok/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_tcptls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_unix/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── octet_counting_strict_unixtls/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc3164_best_effort_udp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc3164_non_transparent_strict_tcp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc3164_octet_counting_strict_tcp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc3164_strict_udp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_toolong_appname/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_average/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_max/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_min_incomplete/
│   │   │       │   ├── expected.err
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_one_per_packet/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_best_effort_udp_trim_message/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_long_appname/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_toolong_appname/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp_average/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp_max/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp_min_incomplete/
│   │   │       │   ├── expected.err
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       ├── rfc5424_strict_udp_one_per_packet/
│   │   │       │   ├── expected.out
│   │   │       │   ├── input.txt
│   │   │       │   └── telegraf.conf
│   │   │       └── rfc5424_strict_udp_trim_message/
│   │   │           ├── expected.out
│   │   │           ├── input.txt
│   │   │           └── telegraf.conf
│   │   ├── sysstat/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── sysstat.go
│   │   │   ├── sysstat_interval_test.go
│   │   │   ├── sysstat_notlinux.go
│   │   │   └── sysstat_test.go
│   │   ├── system/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── system.go
│   │   │   └── system_test.go
│   │   ├── systemd_units/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── systemd_units.go
│   │   │   ├── systemd_units_notlinux.go
│   │   │   └── systemd_units_test.go
│   │   ├── tacacs/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── tacacs.go
│   │   │   └── tacacs_test.go
│   │   ├── tail/
│   │   │   ├── README.md
│   │   │   ├── multiline.go
│   │   │   ├── multiline_test.go
│   │   │   ├── sample.conf
│   │   │   ├── tail.go
│   │   │   ├── tail_solaris.go
│   │   │   ├── tail_test.go
│   │   │   └── testdata/
│   │   │       ├── cpu-utf-16be.influx
│   │   │       ├── cpu-utf-16le.influx
│   │   │       ├── cpu-utf-8.influx
│   │   │       ├── multiline_quoted_backticks.csv
│   │   │       ├── multiline_quoted_double.csv
│   │   │       ├── multiline_quoted_messed_up.csv
│   │   │       ├── multiline_quoted_missing_close.csv
│   │   │       ├── multiline_quoted_single.csv
│   │   │       ├── test-patterns
│   │   │       └── test_multiline.log
│   │   ├── teamspeak/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── teamspeak.go
│   │   │   └── teamspeak_test.go
│   │   ├── temp/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── temp.go
│   │   │   ├── temp_linux.go
│   │   │   ├── temp_notlinux.go
│   │   │   ├── temp_test.go
│   │   │   └── testcases/
│   │   │       ├── general/
│   │   │       │   ├── expected_v1.out
│   │   │       │   ├── expected_v2.out
│   │   │       │   ├── sys/
│   │   │       │   │   └── class/
│   │   │       │   │       └── hwmon/
│   │   │       │   │           ├── hwmon0/
│   │   │       │   │           │   ├── name
│   │   │       │   │           │   ├── temp1_alarm
│   │   │       │   │           │   ├── temp1_crit
│   │   │       │   │           │   ├── temp1_input
│   │   │       │   │           │   ├── temp1_label
│   │   │       │   │           │   ├── temp1_max
│   │   │       │   │           │   ├── temp1_min
│   │   │       │   │           │   ├── temp2_input
│   │   │       │   │           │   ├── temp2_label
│   │   │       │   │           │   ├── temp2_max
│   │   │       │   │           │   ├── temp2_min
│   │   │       │   │           │   ├── temp3_input
│   │   │       │   │           │   ├── temp3_label
│   │   │       │   │           │   ├── temp3_max
│   │   │       │   │           │   └── temp3_min
│   │   │       │   │           └── hwmon1/
│   │   │       │   │               ├── name
│   │   │       │   │               ├── temp1_input
│   │   │       │   │               ├── temp1_label
│   │   │       │   │               ├── temp3_input
│   │   │       │   │               ├── temp3_label
│   │   │       │   │               └── uevent
│   │   │       │   └── telegraf.conf
│   │   │       ├── with_device_tag/
│   │   │       │   ├── expected_v1.out
│   │   │       │   ├── expected_v2.out
│   │   │       │   ├── sys/
│   │   │       │   │   └── class/
│   │   │       │   │       └── hwmon/
│   │   │       │   │           ├── hwmon0/
│   │   │       │   │           │   ├── name
│   │   │       │   │           │   ├── temp1_alarm
│   │   │       │   │           │   ├── temp1_crit
│   │   │       │   │           │   ├── temp1_input
│   │   │       │   │           │   ├── temp1_label
│   │   │       │   │           │   ├── temp1_max
│   │   │       │   │           │   ├── temp1_min
│   │   │       │   │           │   ├── temp2_input
│   │   │       │   │           │   ├── temp2_label
│   │   │       │   │           │   ├── temp2_max
│   │   │       │   │           │   ├── temp2_min
│   │   │       │   │           │   ├── temp3_input
│   │   │       │   │           │   ├── temp3_label
│   │   │       │   │           │   ├── temp3_max
│   │   │       │   │           │   ├── temp3_min
│   │   │       │   │           │   └── uevent
│   │   │       │   │           ├── hwmon1/
│   │   │       │   │           │   ├── name
│   │   │       │   │           │   ├── temp1_alarm
│   │   │       │   │           │   ├── temp1_crit
│   │   │       │   │           │   ├── temp1_input
│   │   │       │   │           │   ├── temp1_label
│   │   │       │   │           │   ├── temp1_max
│   │   │       │   │           │   ├── temp1_min
│   │   │       │   │           │   ├── temp2_input
│   │   │       │   │           │   ├── temp2_label
│   │   │       │   │           │   ├── temp2_max
│   │   │       │   │           │   ├── temp2_min
│   │   │       │   │           │   ├── temp3_input
│   │   │       │   │           │   ├── temp3_label
│   │   │       │   │           │   ├── temp3_max
│   │   │       │   │           │   ├── temp3_min
│   │   │       │   │           │   └── uevent
│   │   │       │   │           └── hwmon2/
│   │   │       │   │               ├── name
│   │   │       │   │               ├── temp1_input
│   │   │       │   │               ├── temp1_label
│   │   │       │   │               ├── temp3_input
│   │   │       │   │               ├── temp3_label
│   │   │       │   │               └── uevent
│   │   │       │   └── telegraf.conf
│   │   │       └── with_name/
│   │   │           ├── expected_v1.out
│   │   │           ├── expected_v2.out
│   │   │           ├── sys/
│   │   │           │   └── class/
│   │   │           │       └── hwmon/
│   │   │           │           ├── hwmon0/
│   │   │           │           │   ├── name
│   │   │           │           │   ├── temp1_alarm
│   │   │           │           │   ├── temp1_crit
│   │   │           │           │   ├── temp1_input
│   │   │           │           │   ├── temp1_label
│   │   │           │           │   ├── temp1_max
│   │   │           │           │   ├── temp1_min
│   │   │           │           │   ├── temp2_input
│   │   │           │           │   ├── temp2_label
│   │   │           │           │   ├── temp2_max
│   │   │           │           │   ├── temp2_min
│   │   │           │           │   ├── temp3_input
│   │   │           │           │   ├── temp3_label
│   │   │           │           │   ├── temp3_max
│   │   │           │           │   ├── temp3_min
│   │   │           │           │   └── uevent
│   │   │           │           ├── hwmon1/
│   │   │           │           │   ├── name
│   │   │           │           │   ├── temp1_alarm
│   │   │           │           │   ├── temp1_crit
│   │   │           │           │   ├── temp1_input
│   │   │           │           │   ├── temp1_label
│   │   │           │           │   ├── temp1_max
│   │   │           │           │   ├── temp1_min
│   │   │           │           │   ├── temp2_input
│   │   │           │           │   ├── temp2_label
│   │   │           │           │   ├── temp2_max
│   │   │           │           │   ├── temp2_min
│   │   │           │           │   ├── temp3_input
│   │   │           │           │   ├── temp3_label
│   │   │           │           │   ├── temp3_max
│   │   │           │           │   ├── temp3_min
│   │   │           │           │   └── uevent
│   │   │           │           └── hwmon2/
│   │   │           │               ├── name
│   │   │           │               ├── temp1_input
│   │   │           │               ├── temp1_label
│   │   │           │               ├── temp3_input
│   │   │           │               ├── temp3_label
│   │   │           │               └── uevent
│   │   │           └── telegraf.conf
│   │   ├── tengine/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── tengine.go
│   │   │   └── tengine_test.go
│   │   ├── timex/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── timex.go
│   │   │   ├── timex_notlinux.go
│   │   │   └── timex_test.go
│   │   ├── tomcat/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── tomcat.go
│   │   │   └── tomcat_test.go
│   │   ├── trig/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── trig.go
│   │   │   └── trig_test.go
│   │   ├── turbostat/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── amd-r7-9700x/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── input.txt
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── intel-unknown/
│   │   │   │       ├── expected.out
│   │   │   │       ├── input.txt
│   │   │   │       └── telegraf.conf
│   │   │   ├── turbostat.go
│   │   │   ├── turbostat_notamd64linux.go
│   │   │   └── turbostat_test.go
│   │   ├── twemproxy/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── twemproxy.go
│   │   │   └── twemproxy_test.go
│   │   ├── unbound/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── unbound.go
│   │   │   └── unbound_test.go
│   │   ├── upsd/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── CyberPowerSystems_CP900EPFCLCD/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   ├── CyberPowerSystems_CP900EPFCLCD_additional/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   ├── CyberPowerSystems_CP900EPFCLCD_full/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   ├── fake/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   ├── fake_force_float/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   ├── types.dev
│   │   │   │   │   └── variables.dev
│   │   │   │   └── fake_force_float_with_string/
│   │   │   │       ├── expected.out
│   │   │   │       ├── telegraf.conf
│   │   │   │       ├── types.dev
│   │   │   │       └── variables.dev
│   │   │   ├── upsd.go
│   │   │   └── upsd_test.go
│   │   ├── uwsgi/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── uwsgi.go
│   │   │   └── uwsgi_test.go
│   │   ├── varnish/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── test_data/
│   │   │   │   ├── varnish4_4.json
│   │   │   │   ├── varnish6.2.1_reload.json
│   │   │   │   ├── varnish6.6.json
│   │   │   │   ├── varnish_types.json
│   │   │   │   ├── varnish_v1_reload.txt
│   │   │   │   ├── varnishadm-200.json
│   │   │   │   └── varnishadm-reload.json
│   │   │   ├── varnish.go
│   │   │   ├── varnish_test.go
│   │   │   └── varnish_windows.go
│   │   ├── vault/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   └── response_key_metrics.json
│   │   │   ├── vault.go
│   │   │   ├── vault_metrics.go
│   │   │   └── vault_test.go
│   │   ├── vsphere/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── endpoint.go
│   │   │   ├── finder.go
│   │   │   ├── sample.conf
│   │   │   ├── selfhealth.go
│   │   │   ├── throttled_exec.go
│   │   │   ├── tscache.go
│   │   │   ├── vsan.go
│   │   │   ├── vsphere.go
│   │   │   └── vsphere_test.go
│   │   ├── webhooks/
│   │   │   ├── README.md
│   │   │   ├── artifactory/
│   │   │   │   ├── README.md
│   │   │   │   ├── artifactory_webhook.go
│   │   │   │   ├── artifactory_webhook_mock_json_test.go
│   │   │   │   ├── artifactory_webhook_models.go
│   │   │   │   └── artifactory_webhook_test.go
│   │   │   ├── filestack/
│   │   │   │   ├── README.md
│   │   │   │   ├── filestack_webhooks.go
│   │   │   │   ├── filestack_webhooks_events.go
│   │   │   │   ├── filestack_webhooks_test.go
│   │   │   │   └── testdata/
│   │   │   │       ├── dialog_open.json
│   │   │   │       ├── upload.json
│   │   │   │       └── video_conversion.json
│   │   │   ├── github/
│   │   │   │   ├── README.md
│   │   │   │   ├── github_webhooks.go
│   │   │   │   ├── github_webhooks_mock_json_test.go
│   │   │   │   ├── github_webhooks_models.go
│   │   │   │   └── github_webhooks_test.go
│   │   │   ├── mandrill/
│   │   │   │   ├── README.md
│   │   │   │   ├── mandrill_webhooks.go
│   │   │   │   ├── mandrill_webhooks_events.go
│   │   │   │   ├── mandrill_webhooks_test.go
│   │   │   │   └── testdata/
│   │   │   │       ├── hard_bounce_event.json
│   │   │   │       └── send_event.json
│   │   │   ├── papertrail/
│   │   │   │   ├── README.md
│   │   │   │   ├── papertrail_test.go
│   │   │   │   ├── papertrail_webhooks.go
│   │   │   │   └── papertrail_webhooks_models.go
│   │   │   ├── particle/
│   │   │   │   ├── README.md
│   │   │   │   ├── particle_webhooks.go
│   │   │   │   └── particle_webhooks_test.go
│   │   │   ├── rollbar/
│   │   │   │   ├── README.md
│   │   │   │   ├── rollbar_webhooks.go
│   │   │   │   ├── rollbar_webhooks_events.go
│   │   │   │   ├── rollbar_webhooks_events_json_test.go
│   │   │   │   └── rollbar_webhooks_test.go
│   │   │   ├── sample.conf
│   │   │   ├── webhooks.go
│   │   │   └── webhooks_test.go
│   │   ├── whois/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── domain_typo/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── invalid_domain/
│   │   │   │   │   ├── expected.err
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── input_invalid-domain.xyz.txt
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── multiple_domains/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── input_example.com.txt
│   │   │   │   │   ├── input_test.com.txt
│   │   │   │   │   └── telegraf.conf
│   │   │   │   ├── valid_domain/
│   │   │   │   │   ├── expected.out
│   │   │   │   │   ├── input_example.com.txt
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── valid_idn_domain/
│   │   │   │       ├── expected.out
│   │   │   │       ├── input_münchen.de.txt
│   │   │   │       ├── input_xn--mnchn-kva.de.txt
│   │   │   │       └── telegraf.conf
│   │   │   ├── whois.go
│   │   │   └── whois_test.go
│   │   ├── win_eventlog/
│   │   │   ├── README.md
│   │   │   ├── event.go
│   │   │   ├── sample.conf
│   │   │   ├── syscall_windows.go
│   │   │   ├── util.go
│   │   │   ├── util_test.go
│   │   │   ├── win_eventlog.go
│   │   │   ├── win_eventlog_notwindows.go
│   │   │   ├── win_eventlog_test.go
│   │   │   └── zsyscall_windows.go
│   │   ├── win_perf_counters/
│   │   │   ├── README.md
│   │   │   ├── kernel32.go
│   │   │   ├── pdh.go
│   │   │   ├── pdh_386.go
│   │   │   ├── pdh_amd64.go
│   │   │   ├── pdh_arm64.go
│   │   │   ├── performance_query.go
│   │   │   ├── sample.conf
│   │   │   ├── win_perf_counters.go
│   │   │   ├── win_perf_counters_integration_test.go
│   │   │   ├── win_perf_counters_notwindows.go
│   │   │   └── win_perf_counters_test.go
│   │   ├── win_services/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── win_services.go
│   │   │   ├── win_services_integration_test.go
│   │   │   ├── win_services_notwindows.go
│   │   │   └── win_services_test.go
│   │   ├── win_wmi/
│   │   │   ├── README.md
│   │   │   ├── method.go
│   │   │   ├── query.go
│   │   │   ├── sample.conf
│   │   │   ├── win_wmi.go
│   │   │   ├── win_wmi_notwindows.go
│   │   │   └── win_wmi_test.go
│   │   ├── wireguard/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── wireguard.go
│   │   │   └── wireguard_test.go
│   │   ├── wireless/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── wireless.go
│   │   │   ├── wireless_linux.go
│   │   │   ├── wireless_notlinux.go
│   │   │   └── wireless_test.go
│   │   ├── x509_cert/
│   │   │   ├── README.md
│   │   │   ├── java_key_store.go
│   │   │   ├── java_key_store_test.go
│   │   │   ├── sample.conf
│   │   │   ├── wincertstore.go
│   │   │   ├── wincertstore_notwindows.go
│   │   │   ├── x509_cert.go
│   │   │   └── x509_cert_test.go
│   │   ├── xtremio/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   ├── sample_bbu_response.json
│   │   │   │   └── sample_get_bbu_response.json
│   │   │   ├── xtremio.go
│   │   │   ├── xtremio_test.go
│   │   │   └── xtremio_types.go
│   │   ├── zfs/
│   │   │   ├── README.md
│   │   │   ├── sample.conf
│   │   │   ├── testcases/
│   │   │   │   ├── freebsd/
│   │   │   │   │   ├── cache/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── cache_poolmetrics/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── dataset/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── dataset_datasetmetrics/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── freebsd14/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── uname.txt
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── freenas/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── freenas_zfetchstats/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   ├── unavailable/
│   │   │   │   │   │   ├── expected.out
│   │   │   │   │   │   ├── sysctl.json
│   │   │   │   │   │   ├── telegraf.conf
│   │   │   │   │   │   ├── zdataset.txt
│   │   │   │   │   │   └── zpool.txt
│   │   │   │   │   └── unavailable_poolmetrics/
│   │   │   │   │       ├── expected.out
│   │   │   │   │       ├── sysctl.json
│   │   │   │   │       ├── telegraf.conf
│   │   │   │   │       ├── zdataset.txt
│   │   │   │   │       └── zpool.txt
│   │   │   │   └── linux/
│   │   │   │       ├── issue_17578/
│   │   │   │       │   ├── expected.out
│   │   │   │       │   ├── telegraf.conf
│   │   │   │       │   └── zfs/
│   │   │   │       │       ├── abdstats
│   │   │   │       │       ├── arcstats
│   │   │   │       │       ├── brtstats
│   │   │   │       │       ├── chksum_bench
│   │   │   │       │       ├── dbufstats
│   │   │   │       │       ├── dmu_tx
│   │   │   │       │       ├── dnodestats
│   │   │   │       │       ├── fletcher_4_bench
│   │   │   │       │       ├── fm
│   │   │   │       │       ├── import_progress
│   │   │   │       │       ├── metaslab_stats
│   │   │   │       │       ├── simd
│   │   │   │       │       ├── store/
│   │   │   │       │       │   ├── ddt_stats_blake3
│   │   │   │       │       │   ├── ddt_stats_edonr
│   │   │   │       │       │   ├── ddt_stats_sha256
│   │   │   │       │       │   ├── ddt_stats_sha512
│   │   │   │       │       │   ├── ddt_stats_skein
│   │   │   │       │       │   ├── dmu_tx_assign
│   │   │   │       │       │   ├── guid
│   │   │   │       │       │   ├── iostats
│   │   │   │       │       │   ├── multihost
│   │   │   │       │       │   ├── objset-0x10101
│   │   │   │       │       │   ├── objset-0x104de
│   │   │   │       │       │   ├── objset-0x10737
│   │   │   │       │       │   ├── objset-0x10848
│   │   │   │       │       │   ├── objset-0x1098f
│   │   │   │       │       │   ├── objset-0x10e73
│   │   │   │       │       │   ├── objset-0x1106c
│   │   │   │       │       │   ├── objset-0x11074
│   │   │   │       │       │   ├── objset-0x11226
│   │   │   │       │       │   ├── objset-0x1132
│   │   │   │       │       │   ├── objset-0x114a6
│   │   │   │       │       │   ├── objset-0x11a19
│   │   │   │       │       │   ├── objset-0x11e5
│   │   │   │       │       │   ├── objset-0x147f
│   │   │   │       │       │   ├── objset-0x185
│   │   │   │       │       │   ├── objset-0x1985
│   │   │   │       │       │   ├── objset-0x19d66
│   │   │   │       │       │   ├── objset-0x19d9
│   │   │   │       │       │   ├── objset-0x1aeb
│   │   │   │       │       │   ├── objset-0x1cbde
│   │   │   │       │       │   ├── objset-0x1ce10
│   │   │   │       │       │   ├── objset-0x1d28e
│   │   │   │       │       │   ├── objset-0x1e8e1
│   │   │   │       │       │   ├── objset-0x1e8e6
│   │   │   │       │       │   ├── objset-0x1e8ed
│   │   │   │       │       │   ├── objset-0x1e9b3
│   │   │   │       │       │   ├── objset-0x1ecad
│   │   │   │       │       │   ├── objset-0x1ee0d
│   │   │   │       │       │   ├── objset-0x1ee87
│   │   │   │       │       │   ├── objset-0x1f18f
│   │   │   │       │       │   ├── objset-0x1f387
│   │   │   │       │       │   ├── objset-0x212b
│   │   │   │       │       │   ├── objset-0x22d1c
│   │   │   │       │       │   ├── objset-0x29f2
│   │   │   │       │       │   ├── objset-0x2a1c
│   │   │   │       │       │   ├── objset-0x2a8
│   │   │   │       │       │   ├── objset-0x2e57
│   │   │   │       │       │   ├── objset-0x32c4
│   │   │   │       │       │   ├── objset-0x36
│   │   │   │       │       │   ├── objset-0x403
│   │   │   │       │       │   ├── objset-0x79d6
│   │   │   │       │       │   ├── objset-0x7ced
│   │   │   │       │       │   ├── objset-0x92ee
│   │   │   │       │       │   ├── objset-0x96
│   │   │   │       │       │   ├── objset-0x9776
│   │   │   │       │       │   ├── objset-0x9bff
│   │   │   │       │       │   ├── objset-0xa67
│   │   │   │       │       │   ├── objset-0xb61
│   │   │   │       │       │   ├── objset-0xb83f5
│   │   │   │       │       │   ├── objset-0xb845b
│   │   │   │       │       │   ├── objset-0xb8733
│   │   │   │       │       │   ├── objset-0xb8788
│   │   │   │       │       │   ├── objset-0xb888e
│   │   │   │       │       │   ├── objset-0xbe32
│   │   │   │       │       │   ├── objset-0xc876
│   │   │   │       │       │   ├── objset-0xc8e5
│   │   │   │       │       │   ├── objset-0xc94
│   │   │   │       │       │   ├── objset-0xc9d7
│   │   │   │       │       │   ├── objset-0xcb42
│   │   │   │       │       │   ├── objset-0xcc56
│   │   │   │       │       │   ├── objset-0xcc8f
│   │   │   │       │       │   ├── objset-0xcdac
│   │   │   │       │       │   ├── objset-0xd34f
│   │   │   │       │       │   ├── objset-0xd4b9
│   │   │   │       │       │   ├── objset-0xe09
│   │   │   │       │       │   ├── objset-0xe144f
│   │   │   │       │       │   ├── objset-0xe1890
│   │   │   │       │       │   ├── objset-0xe46
│   │   │   │       │       │   ├── objset-0xe5967
│   │   │   │       │       │   ├── objset-0xe5d8d
│   │   │   │       │       │   ├── objset-0xfa6
│   │   │   │       │       │   ├── reads
│   │   │   │       │       │   ├── state
│   │   │   │       │       │   └── txgs
│   │   │   │       │       ├── vdev_mirror_stats
│   │   │   │       │       ├── vdev_raidz_bench
│   │   │   │       │       ├── zfetchstats
│   │   │   │       │       ├── zil
│   │   │   │       │       ├── zio_stats
│   │   │   │       │       ├── zroot-nas/
│   │   │   │       │       │   ├── ddt_stats_blake3
│   │   │   │       │       │   ├── ddt_stats_edonr
│   │   │   │       │       │   ├── ddt_stats_sha256
│   │   │   │       │       │   ├── ddt_stats_sha512
│   │   │   │       │       │   ├── ddt_stats_skein
│   │   │   │       │       │   ├── dmu_tx_assign
│   │   │   │       │       │   ├── guid
│   │   │   │       │       │   ├── iostats
│   │   │   │       │       │   ├── multihost
│   │   │   │       │       │   ├── objset-0x196
│   │   │   │       │       │   ├── objset-0x19d
│   │   │   │       │       │   ├── objset-0x1bb
│   │   │   │       │       │   ├── objset-0x1c5
│   │   │   │       │       │   ├── objset-0x28c
│   │   │   │       │       │   ├── objset-0x390
│   │   │   │       │       │   ├── objset-0x40b
│   │   │   │       │       │   ├── objset-0x44da
│   │   │   │       │       │   ├── objset-0x453a
│   │   │   │       │       │   ├── objset-0x47ae
│   │   │   │       │       │   ├── objset-0x49e
│   │   │   │       │       │   ├── objset-0x523
│   │   │   │       │       │   ├── objset-0x84eb
│   │   │   │       │       │   ├── objset-0x886c
│   │   │   │       │       │   ├── objset-0x9f
│   │   │   │       │       │   ├── reads
│   │   │   │       │       │   ├── state
│   │   │   │       │       │   └── txgs
│   │   │   │       │       └── zstd
│   │   │   │       ├── issue_17578_native_types/
│   │   │   │       │   ├── expected.out
│   │   │   │       │   ├── telegraf.conf
│   │   │   │       │   └── zfs/
│   │   │   │       │       ├── abdstats
│   │   │   │       │       ├── arcstats
│   │   │   │       │       ├── brtstats
│   │   │   │       │       ├── chksum_bench
│   │   │   │       │       ├── dbufstats
│   │   │   │       │       ├── dmu_tx
│   │   │   │       │       ├── dnodestats
│   │   │   │       │       ├── fletcher_4_bench
│   │   │   │       │       ├── fm
│   │   │   │       │       ├── import_progress
│   │   │   │       │       ├── metaslab_stats
│   │   │   │       │       ├── simd
│   │   │   │       │       ├── store/
│   │   │   │       │       │   ├── ddt_stats_blake3
│   │   │   │       │       │   ├── ddt_stats_edonr
│   │   │   │       │       │   ├── ddt_stats_sha256
│   │   │   │       │       │   ├── ddt_stats_sha512
│   │   │   │       │       │   ├── ddt_stats_skein
│   │   │   │       │       │   ├── dmu_tx_assign
│   │   │   │       │       │   ├── guid
│   │   │   │       │       │   ├── iostats
│   │   │   │       │       │   ├── multihost
│   │   │   │       │       │   ├── objset-0x10101
│   │   │   │       │       │   ├── objset-0x104de
│   │   │   │       │       │   ├── objset-0x10737
│   │   │   │       │       │   ├── objset-0x10848
│   │   │   │       │       │   ├── objset-0x1098f
│   │   │   │       │       │   ├── objset-0x10e73
│   │   │   │       │       │   ├── objset-0x1106c
│   │   │   │       │       │   ├── objset-0x11074
│   │   │   │       │       │   ├── objset-0x11226
│   │   │   │       │       │   ├── objset-0x1132
│   │   │   │       │       │   ├── objset-0x114a6
│   │   │   │       │       │   ├── objset-0x11a19
│   │   │   │       │       │   ├── objset-0x11e5
│   │   │   │       │       │   ├── objset-0x147f
│   │   │   │       │       │   ├── objset-0x185
│   │   │   │       │       │   ├── objset-0x1985
│   │   │   │       │       │   ├── objset-0x19d66
│   │   │   │       │       │   ├── objset-0x19d9
│   │   │   │       │       │   ├── objset-0x1aeb
│   │   │   │       │       │   ├── objset-0x1cbde
│   │   │   │       │       │   ├── objset-0x1ce10
│   │   │   │       │       │   ├── objset-0x1d28e
│   │   │   │       │       │   ├── objset-0x1e8e1
│   │   │   │       │       │   ├── objset-0x1e8e6
│   │   │   │       │       │   ├── objset-0x1e8ed
│   │   │   │       │       │   ├── objset-0x1e9b3
│   │   │   │       │       │   ├── objset-0x1ecad
│   │   │   │       │       │   ├── objset-0x1ee0d
│   │   │   │       │       │   ├── objset-0x1ee87
│   │   │   │       │       │   ├── objset-0x1f18f
│   │   │   │       │       │   ├── objset-0x1f387
│   │   │   │       │       │   ├── objset-0x212b
│   │   │   │       │       │   ├── objset-0x22d1c
│   │   │   │       │       │   ├── objset-0x29f2
│   │   │   │       │       │   ├── objset-0x2a1c
│   │   │   │       │       │   ├── objset-0x2a8
│   │   │   │       │       │   ├── objset-0x2e57
│   │   │   │       │       │   ├── objset-0x32c4
│   │   │   │       │       │   ├── objset-0x36
│   │   │   │       │       │   ├── objset-0x403
│   │   │   │       │       │   ├── objset-0x79d6
│   │   │   │       │       │   ├── objset-0x7ced
│   │   │   │       │       │   ├── objset-0x92ee
│   │   │   │       │       │   ├── objset-0x96
│   │   │   │       │       │   ├── objset-0x9776
│   │   │   │       │       │   ├── objset-0x9bff
│   │   │   │       │       │   ├── objset-0xa67
│   │   │   │       │       │   ├── objset-0xb61
│   │   │   │       │       │   ├── objset-0xb83f5
│   │   │   │       │       │   ├── objset-0xb845b
│   │   │   │       │       │   ├── objset-0xb8733
│   │   │   │       │       │   ├── objset-0xb8788
│   │   │   │       │       │   ├── objset-0xb888e
│   │   │   │       │       │   ├── objset-0xbe32
│   │   │   │       │       │   ├── objset-0xc876
│   │   │   │       │       │   ├── objset-0xc8e5
│   │   │   │       │       │   ├── objset-0xc94
│   │   │   │       │       │   ├── objset-0xc9d7
│   │   │   │       │       │   ├── objset-0xcb42
│   │   │   │       │       │   ├── objset-0xcc56
│   │   │   │       │       │   ├── objset-0xcc8f
│   │   │   │       │       │   ├── objset-0xcdac
│   │   │   │       │       │   ├── objset-0xd34f
│   │   │   │       │       │   ├── objset-0xd4b9
│   │   │   │       │       │   ├── objset-0xe09
│   │   │   │       │       │   ├── objset-0xe144f
│   │   │   │       │       │   ├── objset-0xe1890
│   │   │   │       │       │   ├── objset-0xe46
│   │   │   │       │       │   ├── objset-0xe5967
│   │   │   │       │       │   ├── objset-0xe5d8d
│   │   │   │       │       │   ├── objset-0xfa6
│   │   │   │       │       │   ├── reads
│   │   │   │       │       │   ├── state
│   │   │   │       │       │   └── txgs
│   │   │   │       │       ├── vdev_mirror_stats
│   │   │   │       │       ├── vdev_raidz_bench
│   │   │   │       │       ├── zfetchstats
│   │   │   │       │       ├── zil
│   │   │   │       │       ├── zio_stats
│   │   │   │       │       ├── zroot-nas/
│   │   │   │       │       │   ├── ddt_stats_blake3
│   │   │   │       │       │   ├── ddt_stats_edonr
│   │   │   │       │       │   ├── ddt_stats_sha256
│   │   │   │       │       │   ├── ddt_stats_sha512
│   │   │   │       │       │   ├── ddt_stats_skein
│   │   │   │       │       │   ├── dmu_tx_assign
│   │   │   │       │       │   ├── guid
│   │   │   │       │       │   ├── iostats
│   │   │   │       │       │   ├── multihost
│   │   │   │       │       │   ├── objset-0x196
│   │   │   │       │       │   ├── objset-0x19d
│   │   │   │       │       │   ├── objset-0x1bb
│   │   │   │       │       │   ├── objset-0x1c5
│   │   │   │       │       │   ├── objset-0x28c
│   │   │   │       │       │   ├── objset-0x390
│   │   │   │       │       │   ├── objset-0x40b
│   │   │   │       │       │   ├── objset-0x44da
│   │   │   │       │       │   ├── objset-0x453a
│   │   │   │       │       │   ├── objset-0x47ae
│   │   │   │       │       │   ├── objset-0x49e
│   │   │   │       │       │   ├── objset-0x523
│   │   │   │       │       │   ├── objset-0x84eb
│   │   │   │       │       │   ├── objset-0x886c
│   │   │   │       │       │   ├── objset-0x9f
│   │   │   │       │       │   ├── reads
│   │   │   │       │       │   ├── state
│   │   │   │       │       │   └── txgs
│   │   │   │       │       └── zstd
│   │   │   │       └── issue_17952/
│   │   │   │           ├── expected.out
│   │   │   │           ├── telegraf.conf
│   │   │   │           └── zfs/
│   │   │   │               ├── abdstats
│   │   │   │               ├── arcstats
│   │   │   │               ├── brtstats
│   │   │   │               ├── chksum_bench
│   │   │   │               ├── dbufstats
│   │   │   │               ├── dmu_tx
│   │   │   │               ├── dnodestats
│   │   │   │               ├── fletcher_4_bench
│   │   │   │               ├── fm
│   │   │   │               ├── import_progress
│   │   │   │               ├── metaslab_stats
│   │   │   │               ├── simd
│   │   │   │               ├── store/
│   │   │   │               │   ├── ddt_stats_blake3
│   │   │   │               │   ├── ddt_stats_edonr
│   │   │   │               │   ├── ddt_stats_sha256
│   │   │   │               │   ├── ddt_stats_sha512
│   │   │   │               │   ├── ddt_stats_skein
│   │   │   │               │   ├── dmu_tx_assign
│   │   │   │               │   ├── guid
│   │   │   │               │   ├── iostats
│   │   │   │               │   ├── multihost
│   │   │   │               │   ├── objset-0x10101
│   │   │   │               │   ├── objset-0x104de
│   │   │   │               │   ├── objset-0x10737
│   │   │   │               │   ├── objset-0x10848
│   │   │   │               │   ├── objset-0x1098f
│   │   │   │               │   ├── objset-0x10e73
│   │   │   │               │   ├── objset-0x1106c
│   │   │   │               │   ├── objset-0x11074
│   │   │   │               │   ├── objset-0x11226
│   │   │   │               │   ├── objset-0x1132
│   │   │   │               │   ├── objset-0x114a6
│   │   │   │               │   ├── objset-0x11a19
│   │   │   │               │   ├── objset-0x11e5
│   │   │   │               │   ├── objset-0x147f
│   │   │   │               │   ├── objset-0x185
│   │   │   │               │   ├── objset-0x1985
│   │   │   │               │   ├── objset-0x19d66
│   │   │   │               │   ├── objset-0x19d9
│   │   │   │               │   ├── objset-0x1aeb
│   │   │   │               │   ├── objset-0x1cbde
│   │   │   │               │   ├── objset-0x1ce10
│   │   │   │               │   ├── objset-0x1d28e
│   │   │   │               │   ├── objset-0x1e8e1
│   │   │   │               │   ├── objset-0x1e8e6
│   │   │   │               │   ├── objset-0x1e8ed
│   │   │   │               │   ├── objset-0x1e9b3
│   │   │   │               │   ├── objset-0x1ecad
│   │   │   │               │   ├── objset-0x1ee0d
│   │   │   │               │   ├── objset-0x1ee87
│   │   │   │               │   ├── objset-0x1f18f
│   │   │   │               │   ├── objset-0x1f387
│   │   │   │               │   ├── objset-0x212b
│   │   │   │               │   ├── objset-0x22d1c
│   │   │   │               │   ├── objset-0x29f2
│   │   │   │               │   ├── objset-0x2a1c
│   │   │   │               │   ├── objset-0x2a8
│   │   │   │               │   ├── objset-0x2e57
│   │   │   │               │   ├── objset-0x32c4
│   │   │   │               │   ├── objset-0x36
│   │   │   │               │   ├── objset-0x403
│   │   │   │               │   ├── objset-0x79d6
│   │   │   │               │   ├── objset-0x7ced
│   │   │   │               │   ├── objset-0x92ee
│   │   │   │               │   ├── objset-0x96
│   │   │   │               │   ├── objset-0x9776
│   │   │   │               │   ├── objset-0x9bff
│   │   │   │               │   ├── objset-0xa67
│   │   │   │               │   ├── objset-0xb61
│   │   │   │               │   ├── objset-0xb83f5
│   │   │   │               │   ├── objset-0xb845b
│   │   │   │               │   ├── objset-0xb8733
│   │   │   │               │   ├── objset-0xb8788
│   │   │   │               │   ├── objset-0xb888e
│   │   │   │               │   ├── objset-0xbe32
│   │   │   │               │   ├── objset-0xc876
│   │   │   │               │   ├── objset-0xc8e5
│   │   │   │               │   ├── objset-0xc94
│   │   │   │               │   ├── objset-0xc9d7
│   │   │   │               │   ├── objset-0xcb42
│   │   │   │               │   ├── objset-0xcc56
│   │   │   │               │   ├── objset-0xcc8f
│   │   │   │               │   ├── objset-0xcdac
│   │   │   │               │   ├── objset-0xd34f
│   │   │   │               │   ├── objset-0xd4b9
│   │   │   │               │   ├── objset-0xe09
│   │   │   │               │   ├── objset-0xe144f
│   │   │   │               │   ├── objset-0xe1890
│   │   │   │               │   ├── objset-0xe46
│   │   │   │               │   ├── objset-0xe5967
│   │   │   │               │   ├── objset-0xe5d8d
│   │   │   │               │   ├── objset-0xfa6
│   │   │   │               │   ├── reads
│   │   │   │               │   ├── state
│   │   │   │               │   └── txgs
│   │   │   │               ├── vdev_mirror_stats
│   │   │   │               ├── vdev_raidz_bench
│   │   │   │               ├── zfetchstats
│   │   │   │               ├── zil
│   │   │   │               ├── zio_stats
│   │   │   │               ├── zroot-nas/
│   │   │   │               │   ├── ddt_stats_blake3
│   │   │   │               │   ├── ddt_stats_edonr
│   │   │   │               │   ├── ddt_stats_sha256
│   │   │   │               │   ├── ddt_stats_sha512
│   │   │   │               │   ├── ddt_stats_skein
│   │   │   │               │   ├── dmu_tx_assign
│   │   │   │               │   ├── guid
│   │   │   │               │   ├── iostats
│   │   │   │               │   ├── multihost
│   │   │   │               │   ├── objset-0x196
│   │   │   │               │   ├── objset-0x19d
│   │   │   │               │   ├── objset-0x1bb
│   │   │   │               │   ├── objset-0x1c5
│   │   │   │               │   ├── objset-0x28c
│   │   │   │               │   ├── objset-0x390
│   │   │   │               │   ├── objset-0x40b
│   │   │   │               │   ├── objset-0x44da
│   │   │   │               │   ├── objset-0x453a
│   │   │   │               │   ├── objset-0x47ae
│   │   │   │               │   ├── objset-0x49e
│   │   │   │               │   ├── objset-0x523
│   │   │   │               │   ├── objset-0x84eb
│   │   │   │               │   ├── objset-0x886c
│   │   │   │               │   ├── objset-0x9f
│   │   │   │               │   ├── reads
│   │   │   │               │   ├── state
│   │   │   │               │   └── txgs
│   │   │   │               └── zstd
│   │   │   ├── zfs.go
│   │   │   ├── zfs_freebsd.go
│   │   │   ├── zfs_freebsd_test.go
│   │   │   ├── zfs_linux.go
│   │   │   ├── zfs_linux_test.go
│   │   │   └── zfs_other.go
│   │   ├── zipkin/
│   │   │   ├── README.md
│   │   │   ├── cmd/
│   │   │   │   ├── stress_test_write/
│   │   │   │   │   └── stress_test_write.go
│   │   │   │   └── thrift_serialize/
│   │   │   │       └── thrift_serialize.go
│   │   │   ├── codec/
│   │   │   │   ├── codec.go
│   │   │   │   ├── codec_test.go
│   │   │   │   ├── jsonV1/
│   │   │   │   │   ├── jsonV1.go
│   │   │   │   │   └── jsonV1_test.go
│   │   │   │   └── thrift/
│   │   │   │       ├── gen-go/
│   │   │   │       │   └── zipkincore/
│   │   │   │       │       ├── GoUnusedProtection__.go
│   │   │   │       │       ├── zipkinCore-consts.go
│   │   │   │       │       └── zipkinCore.go
│   │   │   │       ├── thrift.go
│   │   │   │       └── thrift_test.go
│   │   │   ├── convert.go
│   │   │   ├── convert_test.go
│   │   │   ├── handler.go
│   │   │   ├── handler_test.go
│   │   │   ├── sample.conf
│   │   │   ├── testdata/
│   │   │   │   └── json/
│   │   │   │       ├── brave-tracer-example.json
│   │   │   │       ├── cli_microservice.json
│   │   │   │       ├── distributed_trace_sample.json
│   │   │   │       └── threespans.json
│   │   │   ├── trace/
│   │   │   │   └── trace.go
│   │   │   ├── zipkin.go
│   │   │   └── zipkin_test.go
│   │   └── zookeeper/
│   │       ├── README.md
│   │       ├── dev/
│   │       │   ├── docker-compose.yml
│   │       │   └── telegraf.conf
│   │       ├── sample.conf
│   │       ├── sample.conf.in
│   │       ├── zookeeper.go
│   │       └── zookeeper_test.go
│   ├── outputs/
│   │   ├── all/
│   │   │   ├── all.go
│   │   │   ├── amon.go
│   │   │   ├── amqp.go
│   │   │   ├── application_insights.go
│   │   │   ├── arc.go
│   │   │   ├── azure_data_explorer.go
│   │   │   ├── azure_monitor.go
│   │   │   ├── bigquery.go
│   │   │   ├── clarify.go
│   │   │   ├── cloud_pubsub.go
│   │   │   ├── cloudwatch.go
│   │   │   ├── cloudwatch_logs.go
│   │   │   ├── cratedb.go
│   │   │   ├── datadog.go
│   │   │   ├── discard.go
│   │   │   ├── dynatrace.go
│   │   │   ├── elasticsearch.go
│   │   │   ├── event_hubs.go
│   │   │   ├── exec.go
│   │   │   ├── execd.go
│   │   │   ├── file.go
│   │   │   ├── graphite.go
│   │   │   ├── graylog.go
│   │   │   ├── groundwork.go
│   │   │   ├── health.go
│   │   │   ├── heartbeat.go
│   │   │   ├── http.go
│   │   │   ├── influxdb.go
│   │   │   ├── influxdb_v2.go
│   │   │   ├── influxdb_v3.go
│   │   │   ├── inlong.go
│   │   │   ├── instrumental.go
│   │   │   ├── iotdb.go
│   │   │   ├── kafka.go
│   │   │   ├── kinesis.go
│   │   │   ├── librato.go
│   │   │   ├── logzio.go
│   │   │   ├── loki.go
│   │   │   ├── microsoft_fabric.go
│   │   │   ├── mongodb.go
│   │   │   ├── mqtt.go
│   │   │   ├── nats.go
│   │   │   ├── nebius_cloud_monitoring.go
│   │   │   ├── newrelic.go
│   │   │   ├── nsq.go
│   │   │   ├── opensearch.go
│   │   │   ├── opentelemetry.go
│   │   │   ├── opentsdb.go
│   │   │   ├── parquet.go
│   │   │   ├── postgresql.go
│   │   │   ├── prometheus_client.go
│   │   │   ├── quix.go
│   │   │   ├── redistimeseries.go
│   │   │   ├── remotefile.go
│   │   │   ├── riemann.go
│   │   │   ├── sensu.go
│   │   │   ├── signalfx.go
│   │   │   ├── socket_writer.go
│   │   │   ├── sql.go
│   │   │   ├── stackdriver.go
│   │   │   ├── stomp.go
│   │   │   ├── sumologic.go
│   │   │   ├── syslog.go
│   │   │   ├── timestream.go
│   │   │   ├── warp10.go
│   │   │   ├── wavefront.go
│   │   │   ├── websocket.go
│   │   │   ├── yandex_cloud_monitoring.go
│   │   │   └── zabbix.go
│   │   ├── amon/
│   │   │   ├── README.md
│   │   │   ├── amon.go
│   │   │   ├── amon_test.go
│   │   │   └── sample.conf
│   │   ├── amqp/
│   │   │   ├── README.md
│   │   │   ├── amqp.go
│   │   │   ├── amqp_test.go
│   │   │   ├── client.go
│   │   │   └── sample.conf
│   │   ├── application_insights/
│   │   │   ├── README.md
│   │   │   ├── application_insights.go
│   │   │   ├── application_insights_test.go
│   │   │   ├── diagnostic_message_subscriber.go
│   │   │   ├── mocks/
│   │   │   │   ├── diagnostics_message_listener.go
│   │   │   │   ├── diagnostics_message_subscriber.go
│   │   │   │   └── transmitter.go
│   │   │   ├── sample.conf
│   │   │   └── transmitter.go
│   │   ├── arc/
│   │   │   ├── README.md
│   │   │   ├── arc.go
│   │   │   ├── arc_test.go
│   │   │   ├── groups.go
│   │   │   └── sample.conf
│   │   ├── azure_data_explorer/
│   │   │   ├── README.md
│   │   │   ├── azure_data_explorer.go
│   │   │   ├── azure_data_explorer_test.go
│   │   │   └── sample.conf
│   │   ├── azure_monitor/
│   │   │   ├── README.md
│   │   │   ├── azure_monitor.go
│   │   │   ├── azure_monitor_test.go
│   │   │   ├── sample.conf
│   │   │   └── types.go
│   │   ├── bigquery/
│   │   │   ├── README.md
│   │   │   ├── bigquery.go
│   │   │   ├── bigquery_test.go
│   │   │   └── sample.conf
│   │   ├── clarify/
│   │   │   ├── README.md
│   │   │   ├── clarify.go
│   │   │   ├── clarify_test.go
│   │   │   └── sample.conf
│   │   ├── cloud_pubsub/
│   │   │   ├── README.md
│   │   │   ├── cloud_pubsub.go
│   │   │   ├── cloud_pubsub_test.go
│   │   │   ├── sample.conf
│   │   │   ├── topic_gcp.go
│   │   │   └── topic_stubbed.go
│   │   ├── cloudwatch/
│   │   │   ├── README.md
│   │   │   ├── cloudwatch.go
│   │   │   ├── cloudwatch_test.go
│   │   │   ├── fields.go
│   │   │   └── sample.conf
│   │   ├── cloudwatch_logs/
│   │   │   ├── README.md
│   │   │   ├── cloudwatch_logs.go
│   │   │   ├── cloudwatch_logs_test.go
│   │   │   └── sample.conf
│   │   ├── cratedb/
│   │   │   ├── README.md
│   │   │   ├── cratedb.go
│   │   │   ├── cratedb_test.go
│   │   │   └── sample.conf
│   │   ├── datadog/
│   │   │   ├── README.md
│   │   │   ├── datadog.go
│   │   │   ├── datadog_test.go
│   │   │   └── sample.conf
│   │   ├── deprecations.go
│   │   ├── discard/
│   │   │   ├── README.md
│   │   │   ├── discard.go
│   │   │   └── sample.conf
│   │   ├── dynatrace/
│   │   │   ├── README.md
│   │   │   ├── dynatrace.go
│   │   │   ├── dynatrace_test.go
│   │   │   └── sample.conf
│   │   ├── elasticsearch/
│   │   │   ├── README.md
│   │   │   ├── elasticsearch.go
│   │   │   ├── elasticsearch_test.go
│   │   │   └── sample.conf
│   │   ├── event_hubs/
│   │   │   ├── README.md
│   │   │   ├── event_hubs.go
│   │   │   ├── event_hubs_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── Config.json
│   │   ├── exec/
│   │   │   ├── README.md
│   │   │   ├── exec.go
│   │   │   ├── exec_test.go
│   │   │   └── sample.conf
│   │   ├── execd/
│   │   │   ├── README.md
│   │   │   ├── examples/
│   │   │   │   ├── file/
│   │   │   │   │   ├── file.sh
│   │   │   │   │   └── telegraf.conf
│   │   │   │   └── redis/
│   │   │   │       ├── redis_influx.rb
│   │   │   │       ├── redis_json.rb
│   │   │   │       └── telegraf.conf
│   │   │   ├── execd.go
│   │   │   ├── execd_test.go
│   │   │   └── sample.conf
│   │   ├── file/
│   │   │   ├── README.md
│   │   │   ├── file.go
│   │   │   ├── file_test.go
│   │   │   └── sample.conf
│   │   ├── graphite/
│   │   │   ├── README.md
│   │   │   ├── graphite.go
│   │   │   ├── graphite_test.go
│   │   │   └── sample.conf
│   │   ├── graylog/
│   │   │   ├── README.md
│   │   │   ├── graylog.go
│   │   │   ├── graylog_test.go
│   │   │   ├── graylog_test_linux.go
│   │   │   └── sample.conf
│   │   ├── groundwork/
│   │   │   ├── README.md
│   │   │   ├── groundwork.go
│   │   │   ├── groundwork_test.go
│   │   │   └── sample.conf
│   │   ├── health/
│   │   │   ├── README.md
│   │   │   ├── compares.go
│   │   │   ├── compares_test.go
│   │   │   ├── contains.go
│   │   │   ├── contains_test.go
│   │   │   ├── health.go
│   │   │   ├── health_test.go
│   │   │   └── sample.conf
│   │   ├── heartbeat/
│   │   │   ├── README.md
│   │   │   ├── heartbeat.go
│   │   │   ├── heartbeat_test.go
│   │   │   ├── logging.go
│   │   │   ├── sample.conf
│   │   │   ├── schema_v1.json
│   │   │   ├── statistics.go
│   │   │   ├── status.go
│   │   │   ├── testdata/
│   │   │   │   ├── telegraf.conf
│   │   │   │   └── telegraf.d/
│   │   │   │       ├── inputs.conf
│   │   │   │       └── outputs.conf
│   │   │   └── types.go
│   │   ├── http/
│   │   │   ├── README.md
│   │   │   ├── http.go
│   │   │   ├── http_test.go
│   │   │   ├── sample.conf
│   │   │   └── sample.conf.in
│   │   ├── influxdb/
│   │   │   ├── README.md
│   │   │   ├── http.go
│   │   │   ├── http_test.go
│   │   │   ├── influxdb.go
│   │   │   ├── influxdb_test.go
│   │   │   ├── sample.conf
│   │   │   ├── udp.go
│   │   │   └── udp_test.go
│   │   ├── influxdb_v2/
│   │   │   ├── README.md
│   │   │   ├── batching.go
│   │   │   ├── errors.go
│   │   │   ├── http.go
│   │   │   ├── http_test.go
│   │   │   ├── influxdb_v2.go
│   │   │   ├── influxdb_v2_test.go
│   │   │   └── sample.conf
│   │   ├── influxdb_v3/
│   │   │   ├── README.md
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── errors.go
│   │   │   ├── influxdb_v3.go
│   │   │   ├── influxdb_v3_test.go
│   │   │   ├── sample.conf
│   │   │   ├── sample.conf.in
│   │   │   └── types.go
│   │   ├── inlong/
│   │   │   ├── README.md
│   │   │   ├── inlong.go
│   │   │   ├── inlong_test.go
│   │   │   └── sample.conf
│   │   ├── instrumental/
│   │   │   ├── README.md
│   │   │   ├── instrumental.go
│   │   │   ├── instrumental_test.go
│   │   │   └── sample.conf
│   │   ├── iotdb/
│   │   │   ├── README.md
│   │   │   ├── iotdb.go
│   │   │   ├── iotdb_test.go
│   │   │   └── sample.conf
│   │   ├── kafka/
│   │   │   ├── README.md
│   │   │   ├── kafka.go
│   │   │   ├── kafka_test.go
│   │   │   └── sample.conf
│   │   ├── kinesis/
│   │   │   ├── README.md
│   │   │   ├── kinesis.go
│   │   │   ├── kinesis_test.go
│   │   │   └── sample.conf
│   │   ├── librato/
│   │   │   ├── README.md
│   │   │   ├── librato.go
│   │   │   ├── librato_test.go
│   │   │   └── sample.conf
│   │   ├── logzio/
│   │   │   ├── README.md
│   │   │   ├── logzio.go
│   │   │   ├── logzio_test.go
│   │   │   └── sample.conf
│   │   ├── loki/
│   │   │   ├── README.md
│   │   │   ├── loki.go
│   │   │   ├── loki_test.go
│   │   │   ├── sample.conf
│   │   │   ├── stream.go
│   │   │   └── stream_test.go
│   │   ├── microsoft_fabric/
│   │   │   ├── README.md
│   │   │   ├── event_house.go
│   │   │   ├── event_house_test.go
│   │   │   ├── event_stream.go
│   │   │   ├── event_stream_test.go
│   │   │   ├── microsoft_fabric.go
│   │   │   ├── microsoft_fabric_test.go
│   │   │   └── sample.conf
│   │   ├── mongodb/
│   │   │   ├── README.md
│   │   │   ├── mongodb.go
│   │   │   ├── mongodb_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       ├── auth_scram/
│   │   │       │   └── setup.js
│   │   │       └── auth_x509/
│   │   │           └── setup.js
│   │   ├── mqtt/
│   │   │   ├── README.md
│   │   │   ├── homie.go
│   │   │   ├── mqtt.go
│   │   │   ├── mqtt_test.go
│   │   │   ├── sample.conf
│   │   │   └── testdata/
│   │   │       └── mosquitto.conf
│   │   ├── nats/
│   │   │   ├── README.md
│   │   │   ├── nats.go
│   │   │   ├── nats_test.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       ├── js-async-pub.conf
│   │   │       ├── js-config.conf
│   │   │       ├── js-default.conf
│   │   │       ├── js-layout-nosub.conf
│   │   │       ├── js-layout.conf
│   │   │       ├── js-no-stream.conf
│   │   │       ├── js-subjects.conf
│   │   │       ├── no-js-batch.conf
│   │   │       └── no-js.conf
│   │   ├── nebius_cloud_monitoring/
│   │   │   ├── README.md
│   │   │   ├── nebius_cloud_monitoring.go
│   │   │   ├── nebius_cloud_monitoring_test.go
│   │   │   └── sample.conf
│   │   ├── newrelic/
│   │   │   ├── README.md
│   │   │   ├── newrelic.go
│   │   │   ├── newrelic_test.go
│   │   │   └── sample.conf
│   │   ├── nsq/
│   │   │   ├── README.md
│   │   │   ├── nsq.go
│   │   │   ├── nsq_test.go
│   │   │   └── sample.conf
│   │   ├── opensearch/
│   │   │   ├── README.md
│   │   │   ├── opensearch.go
│   │   │   ├── opensearch_test.go
│   │   │   ├── opensearch_v1_test.go
│   │   │   ├── opensearch_v2_test.go
│   │   │   ├── sample.conf
│   │   │   └── template.json
│   │   ├── opentelemetry/
│   │   │   ├── README.md
│   │   │   ├── client_grpc.go
│   │   │   ├── client_http.go
│   │   │   ├── logger.go
│   │   │   ├── opentelemetry.go
│   │   │   ├── opentelemetry_test.go
│   │   │   └── sample.conf
│   │   ├── opentsdb/
│   │   │   ├── README.md
│   │   │   ├── opentsdb.go
│   │   │   ├── opentsdb_http.go
│   │   │   ├── opentsdb_test.go
│   │   │   └── sample.conf
│   │   ├── parquet/
│   │   │   ├── README.md
│   │   │   ├── parquet.go
│   │   │   ├── parquet_test.go
│   │   │   └── sample.conf
│   │   ├── postgresql/
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── columns.go
│   │   │   ├── datatype_uint8.go
│   │   │   ├── datatypes.go
│   │   │   ├── postgresql.go
│   │   │   ├── postgresql_bench_test.go
│   │   │   ├── postgresql_test.go
│   │   │   ├── sample.conf
│   │   │   ├── sqltemplate/
│   │   │   │   └── template.go
│   │   │   ├── table_manager.go
│   │   │   ├── table_manager_test.go
│   │   │   ├── table_source.go
│   │   │   ├── table_source_test.go
│   │   │   └── utils/
│   │   │       ├── column.go
│   │   │       └── utils.go
│   │   ├── prometheus_client/
│   │   │   ├── README.md
│   │   │   ├── prometheus_client.go
│   │   │   ├── prometheus_client_test.go
│   │   │   ├── prometheus_client_v1_test.go
│   │   │   ├── prometheus_client_v2_test.go
│   │   │   ├── sample.conf
│   │   │   ├── v1/
│   │   │   │   └── collector.go
│   │   │   └── v2/
│   │   │       └── collector.go
│   │   ├── quix/
│   │   │   ├── README.md
│   │   │   ├── config.go
│   │   │   ├── quix.go
│   │   │   ├── quix_test.go
│   │   │   └── sample.conf
│   │   ├── redistimeseries/
│   │   │   ├── README.md
│   │   │   ├── redistimeseries.go
│   │   │   ├── redistimeseries_test.go
│   │   │   ├── sample.conf
│   │   │   └── testcases/
│   │   │       ├── expire/
│   │   │       │   ├── expected.out
│   │   │     
Download .txt
Showing preview only (894K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (10004 symbols across 1085 files)

FILE: accumulator.go
  type Accumulator (line 8) | type Accumulator interface
  type TrackingID (line 58) | type TrackingID
  type TrackingData (line 60) | type TrackingData interface
  type DeliveryInfo (line 69) | type DeliveryInfo interface
  type TrackingAccumulator (line 81) | type TrackingAccumulator interface

FILE: agent/accumulator.go
  type MetricMaker (line 10) | type MetricMaker interface
  type accumulator (line 16) | type accumulator struct
    method AddFields (line 34) | func (ac *accumulator) AddFields(
    method AddGauge (line 43) | func (ac *accumulator) AddGauge(
    method AddCounter (line 52) | func (ac *accumulator) AddCounter(
    method AddSummary (line 61) | func (ac *accumulator) AddSummary(
    method AddHistogram (line 70) | func (ac *accumulator) AddHistogram(
    method AddMetric (line 79) | func (ac *accumulator) AddMetric(m telegraf.Metric) {
    method addMeasurement (line 86) | func (ac *accumulator) addMeasurement(
    method AddError (line 101) | func (ac *accumulator) AddError(err error) {
    method SetPrecision (line 108) | func (ac *accumulator) SetPrecision(precision time.Duration) {
    method getTime (line 112) | func (ac *accumulator) getTime(t []time.Time) time.Time {
    method WithTracking (line 122) | func (ac *accumulator) WithTracking(maxTracked int) telegraf.TrackingA...
  function NewAccumulator (line 22) | func NewAccumulator(
  type trackingAccumulator (line 129) | type trackingAccumulator struct
    method AddTrackingMetric (line 134) | func (a *trackingAccumulator) AddTrackingMetric(m telegraf.Metric) tel...
    method AddTrackingMetricGroup (line 140) | func (a *trackingAccumulator) AddTrackingMetricGroup(group []telegraf....
    method Delivered (line 148) | func (a *trackingAccumulator) Delivered() <-chan telegraf.DeliveryInfo {
    method onDelivery (line 152) | func (a *trackingAccumulator) onDelivery(info telegraf.DeliveryInfo) {

FILE: agent/accumulator_test.go
  function TestAddFields (line 17) | func TestAddFields(t *testing.T) {
  function TestAccAddError (line 49) | func TestAccAddError(t *testing.T) {
  function TestSetPrecision (line 72) | func TestSetPrecision(t *testing.T) {
  function TestAddTrackingMetricGroupEmpty (line 128) | func TestAddTrackingMetricGroupEmpty(t *testing.T) {
  type TestMetricMaker (line 143) | type TestMetricMaker struct
    method Name (line 146) | func (*TestMetricMaker) Name() string {
    method LogName (line 150) | func (tm *TestMetricMaker) LogName() string {
    method MakeMetric (line 154) | func (*TestMetricMaker) MakeMetric(metric telegraf.Metric) telegraf.Me...
    method Log (line 158) | func (*TestMetricMaker) Log() telegraf.Logger {

FILE: agent/agent.go
  type Agent (line 26) | type Agent struct
    method Run (line 106) | func (a *Agent) Run(ctx context.Context) error {
    method InitPlugins (line 223) | func (a *Agent) InitPlugins() error {
    method initPersister (line 264) | func (a *Agent) initPersister() error {
    method startInputs (line 345) | func (*Agent) startInputs(dst chan<- telegraf.Metric, inputs []*models...
    method runInputs (line 396) | func (a *Agent) runInputs(ctx context.Context, startTime time.Time, un...
    method testStartInputs (line 455) | func (*Agent) testStartInputs(dst chan<- telegraf.Metric, inputs []*mo...
    method testRunInputs (line 483) | func (a *Agent) testRunInputs(
    method gatherLoop (line 564) | func (a *Agent) gatherLoop(
    method gatherOnce (line 585) | func (*Agent) gatherOnce(acc telegraf.Accumulator, input *models.Runni...
    method startProcessors (line 614) | func (*Agent) startProcessors(dst chan<- telegraf.Metric, runningProce...
    method runProcessors (line 650) | func (*Agent) runProcessors(units []*processorUnit) {
    method startAggregators (line 673) | func (*Agent) startAggregators(aggC, outputC chan<- telegraf.Metric, a...
    method runAggregators (line 686) | func (a *Agent) runAggregators(
    method push (line 759) | func (*Agent) push(ctx context.Context, aggregator *models.RunningAggr...
    method startOutputs (line 779) | func (a *Agent) startOutputs(
    method connectOutput (line 808) | func (*Agent) connectOutput(ctx context.Context, output *models.Runnin...
    method runOutputs (line 828) | func (a *Agent) runOutputs(
    method flushLoop (line 883) | func (a *Agent) flushLoop(ctx context.Context, output *models.RunningO...
    method flushOnce (line 919) | func (*Agent) flushOnce(output *models.RunningOutput, timer *clock.Tim...
    method flushBatch (line 939) | func (*Agent) flushBatch(output *models.RunningOutput, writeFunc func(...
    method Test (line 947) | func (a *Agent) Test(ctx context.Context, wait time.Duration) error {
    method runTest (line 980) | func (a *Agent) runTest(ctx context.Context, wait time.Duration, outpu...
    method Once (line 1062) | func (a *Agent) Once(ctx context.Context, wait time.Duration) error {
    method runOnce (line 1085) | func (a *Agent) runOnce(ctx context.Context, wait time.Duration) error {
  function NewAgent (line 31) | func NewAgent(cfg *config.Config) *Agent {
  type inputUnit (line 49) | type inputUnit struct
  type processorUnit (line 58) | type processorUnit struct
  type aggregatorUnit (line 80) | type aggregatorUnit struct
  type outputUnit (line 100) | type outputUnit struct
  function stopRunningInputs (line 549) | func stopRunningInputs(inputs []*models.RunningInput) {
  function stopRunningOutputs (line 556) | func stopRunningOutputs(outputs []*models.RunningOutput) {
  function updateWindow (line 743) | func updateWindow(start time.Time, roundInterval bool, period time.Durat...
  function getPrecision (line 1175) | func getPrecision(precision, interval time.Duration) time.Duration {
  function panicRecover (line 1193) | func panicRecover(input *models.RunningInput) {
  function stopTickers (line 1206) | func stopTickers(tickers []*clock.Ticker) {

FILE: agent/agent_posix.go
  constant flushSignal (line 11) | flushSignal = syscall.SIGUSR1
  function watchForFlushSignal (line 13) | func watchForFlushSignal(flushRequested chan os.Signal) {
  function stopListeningForFlushSignal (line 17) | func stopListeningForFlushSignal(flushRequested chan os.Signal) {

FILE: agent/agent_test.go
  function TestAgent_OmitHostname (line 26) | func TestAgent_OmitHostname(t *testing.T) {
  function TestAgent_LoadPlugin (line 33) | func TestAgent_LoadPlugin(t *testing.T) {
  function TestAgent_LoadOutput (line 70) | func TestAgent_LoadOutput(t *testing.T) {
  function TestWindow (line 121) | func TestWindow(t *testing.T) {
  function TestCases (line 180) | func TestCases(t *testing.T) {
  function collect (line 232) | func collect(ctx context.Context, a *Agent, wait time.Duration) ([]teleg...

FILE: agent/agent_windows.go
  function watchForFlushSignal (line 7) | func watchForFlushSignal(_ chan os.Signal) {
  function stopListeningForFlushSignal (line 11) | func stopListeningForFlushSignal(_ chan os.Signal) {

FILE: aggregator.go
  type Aggregator (line 7) | type Aggregator interface

FILE: cmd/telegraf/cmd_config.go
  function getConfigCommands (line 22) | func getConfigCommands(configHandlingFlags []cli.Flag, outputBuffer io.W...

FILE: cmd/telegraf/cmd_plugins.go
  function pluginNames (line 21) | func pluginNames[M ~map[string]V, V any](m M, prefix string) []byte {
  function getPluginCommands (line 30) | func getPluginCommands(outputBuffer io.Writer) []*cli.Command {

FILE: cmd/telegraf/cmd_secretstore.go
  function processFilterOnlySecretStoreFlags (line 16) | func processFilterOnlySecretStoreFlags(ctx *cli.Context) Filters {
  function getSecretStoreCommands (line 36) | func getSecretStoreCommands(m App) []*cli.Command {

FILE: cmd/telegraf/cmd_win_service.go
  function cliFlags (line 15) | func cliFlags() []cli.Flag {
  function getServiceCommands (line 46) | func getServiceCommands(outputBuffer io.Writer) []*cli.Command {

FILE: cmd/telegraf/cmd_win_service_notwindows.go
  function cliFlags (line 11) | func cliFlags() []cli.Flag {
  function getServiceCommands (line 15) | func getServiceCommands(io.Writer) []*cli.Command {

FILE: cmd/telegraf/main.go
  type TelegrafConfig (line 31) | type TelegrafConfig interface
  type Filters (line 36) | type Filters struct
  function appendFilter (line 45) | func appendFilter(a, b string) string {
  function processFilterFlags (line 55) | func processFilterFlags(ctx *cli.Context) Filters {
  function deleteEmpty (line 91) | func deleteEmpty(s []string) []string {
  function runApp (line 103) | func runApp(args []string, outputBuffer io.Writer, pprof Server, c Teleg...
  function main (line 447) | func main() {

FILE: cmd/telegraf/main_test.go
  type MockTelegraf (line 42) | type MockTelegraf struct
    method Init (line 51) | func (m *MockTelegraf) Init(_ <-chan error, _ Filters, g GlobalFlags, ...
    method Run (line 56) | func (*MockTelegraf) Run() error {
    method ListSecretStores (line 60) | func (*MockTelegraf) ListSecretStores() ([]string, error) {
    method GetSecretStore (line 68) | func (*MockTelegraf) GetSecretStore(id string) (telegraf.SecretStore, ...
  function NewMockTelegraf (line 47) | func NewMockTelegraf() *MockTelegraf {
  type MockSecretStore (line 77) | type MockSecretStore struct
    method Init (line 81) | func (*MockSecretStore) Init() error {
    method SampleConfig (line 85) | func (*MockSecretStore) SampleConfig() string {
    method Get (line 89) | func (s *MockSecretStore) Get(key string) ([]byte, error) {
    method Set (line 97) | func (s *MockSecretStore) Set(key, value string) error {
    method List (line 104) | func (s *MockSecretStore) List() ([]string, error) {
    method GetResolver (line 112) | func (s *MockSecretStore) GetResolver(key string) (telegraf.ResolveFun...
  type MockConfig (line 119) | type MockConfig struct
    method CollectDeprecationInfos (line 130) | func (m *MockConfig) CollectDeprecationInfos(_, _, _, _ []string) map[...
    method PrintDeprecationList (line 134) | func (m *MockConfig) PrintDeprecationList(plugins []config.PluginDepre...
  function NewMockConfig (line 124) | func NewMockConfig(buffer io.Writer) *MockConfig {
  type MockServer (line 140) | type MockServer struct
    method Start (line 148) | func (m *MockServer) Start(_ string) {
    method ErrChan (line 152) | func (*MockServer) ErrChan() <-chan error {
  function NewMockServer (line 144) | func NewMockServer() *MockServer {
  function TestUsageFlag (line 156) | func TestUsageFlag(t *testing.T) {
  function TestInputListFlag (line 200) | func TestInputListFlag(t *testing.T) {
  function TestOutputListFlag (line 218) | func TestOutputListFlag(t *testing.T) {
  function TestDeprecationListFlag (line 236) | func TestDeprecationListFlag(t *testing.T) {
  function TestPprofAddressFlag (line 262) | func TestPprofAddressFlag(t *testing.T) {
  function TestPluginDirectoryFlag (line 275) | func TestPluginDirectoryFlag(t *testing.T) {
  function TestCommandConfig (line 283) | func TestCommandConfig(t *testing.T) {
  function TestCommandVersion (line 430) | func TestCommandVersion(t *testing.T) {
  function TestFlagVersion (line 476) | func TestFlagVersion(t *testing.T) {
  function TestGlobablBoolFlags (line 521) | func TestGlobablBoolFlags(t *testing.T) {
  function TestFlagsAreSet (line 542) | func TestFlagsAreSet(t *testing.T) {

FILE: cmd/telegraf/main_win_test.go
  function TestWindowsFlagsAreSet (line 13) | func TestWindowsFlagsAreSet(t *testing.T) {

FILE: cmd/telegraf/pprof.go
  type Server (line 11) | type Server interface
  type PprofServer (line 16) | type PprofServer struct
    method Start (line 26) | func (p *PprofServer) Start(address string) {
    method ErrChan (line 50) | func (p *PprofServer) ErrChan() <-chan error {
  function NewPprofServer (line 20) | func NewPprofServer() *PprofServer {

FILE: cmd/telegraf/printer.go
  function printSampleConfig (line 104) | func printSampleConfig(outputBuffer io.Writer, filters Filters) {
  function printFilteredProcessors (line 215) | func printFilteredProcessors(processorFilters []string, commented bool, ...
  function printFilteredAggregators (line 233) | func printFilteredAggregators(aggregatorFilters []string, commented bool...
  function printFilteredInputs (line 251) | func printFilteredInputs(inputFilters []string, commented bool, outputBu...
  function printFilteredOutputs (line 297) | func printFilteredOutputs(outputFilters []string, commented bool, output...
  function printFilteredSecretstores (line 328) | func printFilteredSecretstores(secretstoreFilters []string, commented bo...
  function printFilteredGlobalSections (line 346) | func printFilteredGlobalSections(sectionFilters []string, outputBuffer i...
  function printConfig (line 356) | func printConfig(name string, p telegraf.PluginDescriber, op string, com...
  function PrintInputConfig (line 389) | func PrintInputConfig(name string, outputBuffer io.Writer) error {
  function PrintOutputConfig (line 400) | func PrintOutputConfig(name string, outputBuffer io.Writer) error {

FILE: cmd/telegraf/telegraf.go
  type GlobalFlags (line 36) | type GlobalFlags struct
  type WindowFlags (line 58) | type WindowFlags struct
  type App (line 67) | type App interface
  type Telegraf (line 76) | type Telegraf struct
    method Init (line 90) | func (t *Telegraf) Init(pprofErr <-chan error, f Filters, g GlobalFlag...
    method ListSecretStores (line 115) | func (t *Telegraf) ListSecretStores() ([]string, error) {
    method GetSecretStore (line 128) | func (t *Telegraf) GetSecretStore(id string) (telegraf.SecretStore, er...
    method reloadLoop (line 143) | func (t *Telegraf) reloadLoop() error {
    method watchLocalConfig (line 218) | func (t *Telegraf) watchLocalConfig(ctx context.Context, signals chan ...
    method watchRemoteConfigs (line 340) | func (*Telegraf) watchRemoteConfigs(ctx context.Context, signals chan ...
    method loadConfiguration (line 392) | func (t *Telegraf) loadConfiguration() (*config.Config, error) {
    method getConfigFiles (line 410) | func (t *Telegraf) getConfigFiles() error {
    method runAgent (line 435) | func (t *Telegraf) runAgent(ctx context.Context, reloadConfig bool) er...
  function isURL (line 570) | func isURL(str string) bool {

FILE: cmd/telegraf/telegraf_posix.go
  method Run (line 11) | func (t *Telegraf) Run() error {
  function getLockedMemoryLimit (line 23) | func getLockedMemoryLimit() uint64 {

FILE: cmd/telegraf/telegraf_windows.go
  function getLockedMemoryLimit (line 23) | func getLockedMemoryLimit() uint64 {
  method Run (line 33) | func (t *Telegraf) Run() error {
  method Execute (line 100) | func (t *Telegraf) Execute(_ []string, r <-chan svc.ChangeRequest, chang...
  type serviceConfig (line 168) | type serviceConfig struct
  function installService (line 179) | func installService(name string, cfg *serviceConfig) error {
  function uninstallService (line 260) | func uninstallService(name string) error {
  function startService (line 291) | func startService(name string) error {
  function stopService (line 323) | func stopService(name string) error {
  function queryService (line 367) | func queryService(name string) (string, error) {
  function stateDescription (line 396) | func stateDescription(state svc.State) string {

FILE: config/config.go
  constant EmptySourcePath (line 76) | EmptySourcePath string = ""
  type Config (line 81) | type Config struct
    method InputNames (line 316) | func (c *Config) InputNames() []string {
    method InputNamesWithSources (line 325) | func (c *Config) InputNamesWithSources() string {
    method AggregatorNames (line 337) | func (c *Config) AggregatorNames() []string {
    method AggregatorNamesWithSources (line 346) | func (c *Config) AggregatorNamesWithSources() string {
    method ProcessorNames (line 358) | func (c *Config) ProcessorNames() []string {
    method ProcessorNamesWithSources (line 367) | func (c *Config) ProcessorNamesWithSources() string {
    method OutputNames (line 379) | func (c *Config) OutputNames() []string {
    method OutputNamesWithSources (line 388) | func (c *Config) OutputNamesWithSources() string {
    method SecretstoreNames (line 400) | func (c *Config) SecretstoreNames() []string {
    method SecretstoreNamesWithSources (line 409) | func (c *Config) SecretstoreNamesWithSources() string {
    method ListTags (line 445) | func (c *Config) ListTags() string {
    method LoadConfig (line 549) | func (c *Config) LoadConfig(path string) error {
    method LoadAll (line 566) | func (c *Config) LoadAll(configFiles ...string) error {
    method LoadConfigData (line 608) | func (c *Config) LoadConfigData(data []byte, path string) error {
    method addAggregator (line 975) | func (c *Config) addAggregator(name, source string, table *ast.Table) ...
    method addSecretStore (line 1012) | func (c *Config) addSecretStore(name, source string, table *ast.Table)...
    method LinkSecrets (line 1076) | func (c *Config) LinkSecrets() error {
    method probeParser (line 1100) | func (c *Config) probeParser(parentCategory, parentName string, table ...
    method addParser (line 1119) | func (c *Config) addParser(parentcategory, parentname string, table *a...
    method probeSerializer (line 1158) | func (c *Config) probeSerializer(table *ast.Table) bool {
    method addSerializer (line 1177) | func (c *Config) addSerializer(parentname string, table *ast.Table) (*...
    method addProcessor (line 1202) | func (c *Config) addProcessor(name, source string, table *ast.Table) e...
    method setupProcessor (line 1270) | func (c *Config) setupProcessor(name string, creator processors.Stream...
    method addOutput (line 1332) | func (c *Config) addOutput(name, source string, table *ast.Table) error {
    method addInput (line 1423) | func (c *Config) addInput(name, source string, table *ast.Table) error {
    method buildAggregator (line 1519) | func (c *Config) buildAggregator(name, source string, tbl *ast.Table) ...
    method buildProcessor (line 1572) | func (c *Config) buildProcessor(category, name, source string, tbl *as...
    method buildFilter (line 1601) | func (c *Config) buildFilter(plugin string, tbl *ast.Table) (models.Fi...
    method buildInput (line 1681) | func (c *Config) buildInput(name, source string, tbl *ast.Table) (*mod...
    method buildOutput (line 1729) | func (c *Config) buildOutput(name, source string, tbl *ast.Table) (*mo...
    method missingTomlField (line 1779) | func (c *Config) missingTomlField(_ reflect.Type, key string) error {
    method setLocalMissingTomlFieldTracker (line 1810) | func (c *Config) setLocalMissingTomlFieldTracker(counter map[string]in...
    method resetMissingTomlFieldTracker (line 1840) | func (c *Config) resetMissingTomlFieldTracker() {
    method getFieldString (line 1844) | func (*Config) getFieldString(tbl *ast.Table, fieldName string) string {
    method getFieldDuration (line 1856) | func (c *Config) getFieldDuration(tbl *ast.Table, fieldName string) (t...
    method getFieldBool (line 1873) | func (c *Config) getFieldBool(tbl *ast.Table, fieldName string) bool {
    method getFieldInt (line 1901) | func (c *Config) getFieldInt(tbl *ast.Table, fieldName string) int {
    method getFieldInt64 (line 1918) | func (c *Config) getFieldInt64(tbl *ast.Table, fieldName string) int64 {
    method getFieldStringSlice (line 1937) | func (c *Config) getFieldStringSlice(tbl *ast.Table, fieldName string)...
    method getFieldTagFilter (line 1957) | func (c *Config) getFieldTagFilter(tbl *ast.Table, fieldName string) [...
    method getFieldMap (line 1984) | func (*Config) getFieldMap(tbl *ast.Table, fieldName string) map[strin...
    method matchesLabelSelection (line 2001) | func (c *Config) matchesLabelSelection(tbl *ast.Table) (bool, error) {
    method hasErrs (line 2031) | func (c *Config) hasErrs() bool {
    method firstErr (line 2035) | func (c *Config) firstErr() error {
    method addError (line 2042) | func (c *Config) addError(tbl *ast.Table, err error) {
  type OrderedPlugin (line 119) | type OrderedPlugin struct
  type OrderedPlugins (line 123) | type OrderedPlugins
    method Len (line 125) | func (op OrderedPlugins) Len() int           { return len(op) }
    method Swap (line 126) | func (op OrderedPlugins) Swap(i, j int)      { op[i], op[j] = op[j], o...
    method Less (line 127) | func (op OrderedPlugins) Less(i, j int) bool { return op[i].Line < op[...
  function NewConfig (line 132) | func NewConfig() *Config {
  type AgentConfig (line 181) | type AgentConfig struct
  function PluginNameCounts (line 424) | func PluginNameCounts(plugins []string) []string {
  function sliceContains (line 456) | func sliceContains(name string, list []string) bool {
  function WalkDirectory (line 466) | func WalkDirectory(path string) ([]string, error) {
  function GetDefaultConfigPath (line 496) | func GetDefaultConfigPath() ([]string, error) {
  function isURL (line 543) | func isURL(str string) bool {
  type cfgDataOptions (line 595) | type cfgDataOptions struct
  type cfgDataOption (line 599) | type cfgDataOption
  function WithSourcePath (line 601) | func WithSourcePath(path string) cfgDataOption {
  function trimBOM (line 834) | func trimBOM(f []byte) []byte {
  function LoadConfigFile (line 841) | func LoadConfigFile(config string) ([]byte, bool, error) {
  function LoadConfigFileWithRetries (line 845) | func LoadConfigFileWithRetries(config string, urlRetryAttempts int) ([]b...
  function GetSources (line 885) | func GetSources() []string {
  function fetchConfig (line 891) | func fetchConfig(u *url.URL, urlRetryAttempts int) ([]byte, error) {
  function requestURLConfig (line 932) | func requestURLConfig(req *http.Request) ([]byte, error) {
  function parseConfig (line 954) | func parseConfig(contents []byte) (*ast.Table, error) {
  function keys (line 2014) | func keys(m map[string]bool) []string {
  function setDefaultParser (line 2022) | func setDefaultParser(category, name string) string {

FILE: config/config_test.go
  function TestReadBinaryFile (line 43) | func TestReadBinaryFile(t *testing.T) {
  function TestConfig_LoadSingleInputWithEnvVars (line 59) | func TestConfig_LoadSingleInputWithEnvVars(t *testing.T) {
  function TestConfig_LoadSingleInput (line 106) | func TestConfig_LoadSingleInput(t *testing.T) {
  function TestConfig_LoadSingleInput_WithSeparators (line 149) | func TestConfig_LoadSingleInput_WithSeparators(t *testing.T) {
  function TestConfig_LoadSingleInput_WithCommentInArray (line 194) | func TestConfig_LoadSingleInput_WithCommentInArray(t *testing.T) {
  function TestConfig_LoadDirectory (line 203) | func TestConfig_LoadDirectory(t *testing.T) {
  function TestConfig_WrongCertPath (line 338) | func TestConfig_WrongCertPath(t *testing.T) {
  function TestConfig_DefaultParser (line 343) | func TestConfig_DefaultParser(t *testing.T) {
  function TestConfig_DefaultExecParser (line 348) | func TestConfig_DefaultExecParser(t *testing.T) {
  function TestConfig_LoadSpecialTypes (line 353) | func TestConfig_LoadSpecialTypes(t *testing.T) {
  function TestConfig_DeprecatedFilters (line 372) | func TestConfig_DeprecatedFilters(t *testing.T) {
  function TestConfig_FieldNotDefined (line 381) | func TestConfig_FieldNotDefined(t *testing.T) {
  function TestConfig_WrongFieldType (line 458) | func TestConfig_WrongFieldType(t *testing.T) {
  function TestConfig_InlineTables (line 470) | func TestConfig_InlineTables(t *testing.T) {
  function TestConfig_SliceComment (line 484) | func TestConfig_SliceComment(t *testing.T) {
  function TestConfig_BadOrdering (line 494) | func TestConfig_BadOrdering(t *testing.T) {
  function TestConfig_AzureMonitorNamespacePrefix (line 507) | func TestConfig_AzureMonitorNamespacePrefix(t *testing.T) {
  function TestGetDefaultConfigPathFromEnvURL (line 521) | func TestGetDefaultConfigPathFromEnvURL(t *testing.T) {
  function TestConfig_URLLikeFileName (line 540) | func TestConfig_URLLikeFileName(t *testing.T) {
  function TestConfig_Filtering (line 557) | func TestConfig_Filtering(t *testing.T) {
  function TestConfig_SerializerInterfaceNewFormat (line 617) | func TestConfig_SerializerInterfaceNewFormat(t *testing.T) {
  function TestConfig_ParserInterface (line 700) | func TestConfig_ParserInterface(t *testing.T) {
  function TestConfig_MultipleProcessorsOrder (line 821) | func TestConfig_MultipleProcessorsOrder(t *testing.T) {
  function TestConfig_ProcessorsWithParsers (line 918) | func TestConfig_ProcessorsWithParsers(t *testing.T) {
  function TestConfigPluginIDsDifferent (line 1052) | func TestConfigPluginIDsDifferent(t *testing.T) {
  function TestConfigPluginIDsSame (line 1075) | func TestConfigPluginIDsSame(t *testing.T) {
  function TestPersisterInputStoreLoad (line 1094) | func TestPersisterInputStoreLoad(t *testing.T) {
  function TestPersisterProcessorRegistration (line 1167) | func TestPersisterProcessorRegistration(t *testing.T) {
  function TestConfigEnvVarsStrict (line 1197) | func TestConfigEnvVarsStrict(t *testing.T) {
  function TestConfigEnvVarsStrictFailNonString (line 1289) | func TestConfigEnvVarsStrictFailNonString(t *testing.T) {
  function TestConfigEnvVarsNonStrict (line 1308) | func TestConfigEnvVarsNonStrict(t *testing.T) {
  function TestConfigEnvVarsNonStrictMalicious (line 1418) | func TestConfigEnvVarsNonStrictMalicious(t *testing.T) {
  type MockupInputPluginParserNew (line 1447) | type MockupInputPluginParserNew struct
    method SampleConfig (line 1452) | func (*MockupInputPluginParserNew) SampleConfig() string {
    method Gather (line 1455) | func (*MockupInputPluginParserNew) Gather(telegraf.Accumulator) error {
    method SetParser (line 1458) | func (m *MockupInputPluginParserNew) SetParser(parser telegraf.Parser) {
    method SetParserFunc (line 1461) | func (m *MockupInputPluginParserNew) SetParserFunc(f telegraf.ParserFu...
  type MockupInputPlugin (line 1466) | type MockupInputPlugin struct
    method SampleConfig (line 1485) | func (*MockupInputPlugin) SampleConfig() string {
    method Gather (line 1488) | func (*MockupInputPlugin) Gather(telegraf.Accumulator) error {
    method SetParser (line 1491) | func (m *MockupInputPlugin) SetParser(parser telegraf.Parser) {
  type MockupInputPluginParserFunc (line 1496) | type MockupInputPluginParserFunc struct
    method SampleConfig (line 1500) | func (*MockupInputPluginParserFunc) SampleConfig() string {
    method Gather (line 1503) | func (*MockupInputPluginParserFunc) Gather(telegraf.Accumulator) error {
    method SetParserFunc (line 1506) | func (m *MockupInputPluginParserFunc) SetParserFunc(pf telegraf.Parser...
  type MockupInputPluginParserOnly (line 1511) | type MockupInputPluginParserOnly struct
    method SampleConfig (line 1515) | func (*MockupInputPluginParserOnly) SampleConfig() string {
    method Gather (line 1518) | func (*MockupInputPluginParserOnly) Gather(telegraf.Accumulator) error {
    method SetParser (line 1521) | func (m *MockupInputPluginParserOnly) SetParser(p telegraf.Parser) {
  type MockupProcessorPluginParser (line 1526) | type MockupProcessorPluginParser struct
    method Start (line 1531) | func (*MockupProcessorPluginParser) Start(telegraf.Accumulator) error {
    method Stop (line 1534) | func (*MockupProcessorPluginParser) Stop() {
    method SampleConfig (line 1536) | func (*MockupProcessorPluginParser) SampleConfig() string {
    method Apply (line 1539) | func (*MockupProcessorPluginParser) Apply(...telegraf.Metric) []telegr...
    method Add (line 1542) | func (*MockupProcessorPluginParser) Add(telegraf.Metric, telegraf.Accu...
    method SetParser (line 1545) | func (m *MockupProcessorPluginParser) SetParser(parser telegraf.Parser) {
    method SetParserFunc (line 1548) | func (m *MockupProcessorPluginParser) SetParserFunc(f telegraf.ParserF...
  type MockupProcessorPlugin (line 1553) | type MockupProcessorPlugin struct
    method SampleConfig (line 1558) | func (*MockupProcessorPlugin) SampleConfig() string {
    method Apply (line 1561) | func (*MockupProcessorPlugin) Apply(in ...telegraf.Metric) []telegraf....
    method GetState (line 1569) | func (m *MockupProcessorPlugin) GetState() interface{} {
    method SetState (line 1572) | func (m *MockupProcessorPlugin) SetState(state interface{}) error {
  type MockupProcessorPluginParserOnly (line 1583) | type MockupProcessorPluginParserOnly struct
    method Start (line 1587) | func (*MockupProcessorPluginParserOnly) Start(telegraf.Accumulator) er...
    method Stop (line 1590) | func (*MockupProcessorPluginParserOnly) Stop() {
    method SampleConfig (line 1592) | func (*MockupProcessorPluginParserOnly) SampleConfig() string {
    method Apply (line 1595) | func (*MockupProcessorPluginParserOnly) Apply(...telegraf.Metric) []te...
    method Add (line 1598) | func (*MockupProcessorPluginParserOnly) Add(telegraf.Metric, telegraf....
    method SetParser (line 1601) | func (m *MockupProcessorPluginParserOnly) SetParser(parser telegraf.Pa...
  type MockupProcessorPluginParserFunc (line 1606) | type MockupProcessorPluginParserFunc struct
    method Start (line 1610) | func (*MockupProcessorPluginParserFunc) Start(telegraf.Accumulator) er...
    method Stop (line 1613) | func (*MockupProcessorPluginParserFunc) Stop() {
    method SampleConfig (line 1615) | func (*MockupProcessorPluginParserFunc) SampleConfig() string {
    method Apply (line 1618) | func (*MockupProcessorPluginParserFunc) Apply(...telegraf.Metric) []te...
    method Add (line 1621) | func (*MockupProcessorPluginParserFunc) Add(telegraf.Metric, telegraf....
    method SetParserFunc (line 1624) | func (m *MockupProcessorPluginParserFunc) SetParserFunc(pf telegraf.Pa...
  type MockupOutputPlugin (line 1629) | type MockupOutputPlugin struct
    method Connect (line 1638) | func (*MockupOutputPlugin) Connect() error {
    method Close (line 1641) | func (*MockupOutputPlugin) Close() error {
    method SampleConfig (line 1644) | func (*MockupOutputPlugin) SampleConfig() string {
    method Write (line 1647) | func (*MockupOutputPlugin) Write([]telegraf.Metric) error {
  type MockupOutputPluginSerializerNew (line 1651) | type MockupOutputPluginSerializerNew struct
    method SetSerializer (line 1655) | func (m *MockupOutputPluginSerializerNew) SetSerializer(s telegraf.Ser...
    method Connect (line 1658) | func (*MockupOutputPluginSerializerNew) Connect() error {
    method Close (line 1661) | func (*MockupOutputPluginSerializerNew) Close() error {
    method SampleConfig (line 1664) | func (*MockupOutputPluginSerializerNew) SampleConfig() string {
    method Write (line 1667) | func (*MockupOutputPluginSerializerNew) Write(_ []telegraf.Metric) err...
  type MockupState (line 1672) | type MockupState struct
  type MockupStatePluginSettings (line 1680) | type MockupStatePluginSettings struct
  type MockupStatePlugin (line 1687) | type MockupStatePlugin struct
    method Init (line 1696) | func (m *MockupStatePlugin) Init() error {
    method GetState (line 1709) | func (m *MockupStatePlugin) GetState() interface{} {
    method SetState (line 1713) | func (m *MockupStatePlugin) SetState(state interface{}) error {
    method SampleConfig (line 1723) | func (*MockupStatePlugin) SampleConfig() string {
    method Gather (line 1727) | func (*MockupStatePlugin) Gather(telegraf.Accumulator) error {
  function init (line 1732) | func init() {

FILE: config/deprecation.go
  type DeprecationInfo (line 22) | type DeprecationInfo struct
    method determineEscalation (line 30) | func (di *DeprecationInfo) determineEscalation() error {
  type PluginDeprecationInfo (line 68) | type PluginDeprecationInfo struct
  method incrementPluginDeprecations (line 75) | func (c *Config) incrementPluginDeprecations(category string) {
  method incrementPluginOptionDeprecations (line 83) | func (c *Config) incrementPluginOptionDeprecations(category string) {
  method collectDeprecationInfo (line 91) | func (c *Config) collectDeprecationInfo(category, name string, plugin in...
  method printUserDeprecation (line 169) | func (c *Config) printUserDeprecation(category, name string, plugin inte...
  method CollectDeprecationInfos (line 193) | func (c *Config) CollectDeprecationInfos(inFilter, outFilter, aggFilter,...
  method PrintDeprecationList (line 255) | func (*Config) PrintDeprecationList(plugins []PluginDeprecationInfo) {
  function printHistoricPluginDeprecationNotice (line 280) | func printHistoricPluginDeprecationNotice(category, name string, info te...
  function walkPluginStruct (line 290) | func walkPluginStruct(value reflect.Value, fn func(f reflect.StructField...
  function deprecationPrefix (line 332) | func deprecationPrefix(level telegraf.LogLevel) string {
  function printPluginDeprecationNotice (line 342) | func printPluginDeprecationNotice(level telegraf.LogLevel, name string, ...
  function PrintOptionDeprecationNotice (line 353) | func PrintOptionDeprecationNotice(plugin, option string, info telegraf.D...
  function PrintOptionValueDeprecationNotice (line 374) | func PrintOptionValueDeprecationNotice(plugin, option string, value inte...

FILE: config/deprecation_test.go
  function TestPluginDeprecation (line 17) | func TestPluginDeprecation(t *testing.T) {
  function TestPluginOptionDeprecation (line 88) | func TestPluginOptionDeprecation(t *testing.T) {
  function TestPluginOptionValueDeprecation (line 175) | func TestPluginOptionValueDeprecation(t *testing.T) {

FILE: config/envvar.go
  type trimmer (line 17) | type trimmer struct
    method process (line 31) | func (t *trimmer) process() error {
    method hasNQuotes (line 80) | func (t *trimmer) hasNQuotes(ref byte, limit int64) bool {
    method readWriteByte (line 99) | func (t *trimmer) readWriteByte() (byte, error) {
    method escape (line 107) | func (t *trimmer) escape() error {
    method singleQuote (line 116) | func (t *trimmer) singleQuote() error {
    method tripleSingleQuote (line 128) | func (t *trimmer) tripleSingleQuote() error {
    method doubleQuote (line 151) | func (t *trimmer) doubleQuote() error {
    method tripleDoubleQuote (line 177) | func (t *trimmer) tripleDoubleQuote() error {
    method comment (line 212) | func (t *trimmer) comment() error {
  function removeComments (line 22) | func removeComments(buf []byte) ([]byte, error) {
  function substituteEnvironmentStrict (line 225) | func substituteEnvironmentStrict(contents []byte, oldReplacementBehavior...
  function walk (line 280) | func walk(node interface{}, f func(interface{}) error) error {
  function substituteEnvironmentNonStrict (line 308) | func substituteEnvironmentNonStrict(contents []byte, oldReplacementBehav...

FILE: config/internal_test.go
  function TestEnvironmentSubstitution (line 16) | func TestEnvironmentSubstitution(t *testing.T) {
  function TestEnvironmentSubstitutionOldBehavior (line 114) | func TestEnvironmentSubstitutionOldBehavior(t *testing.T) {
  function TestEnvironmentSubstitutionNewBehavior (line 214) | func TestEnvironmentSubstitutionNewBehavior(t *testing.T) {
  function TestParseConfig (line 308) | func TestParseConfig(t *testing.T) {
  function TestRemoveComments (line 357) | func TestRemoveComments(t *testing.T) {
  function TestURLRetries3Fails (line 377) | func TestURLRetries3Fails(t *testing.T) {
  function TestURLRetries3FailsThenPasses (line 395) | func TestURLRetries3FailsThenPasses(t *testing.T) {

FILE: config/migration.go
  type section (line 20) | type section struct
  function splitToSections (line 27) | func splitToSections(root *ast.Table) ([]section, error) {
  function assignTextToSections (line 73) | func assignTextToSections(data []byte, sections []section) ([]section, e...
  function ApplyMigrations (line 132) | func ApplyMigrations(data []byte) ([]byte, uint64, error) {

FILE: config/plugin_id.go
  type keyValuePair (line 12) | type keyValuePair struct
  function processTable (line 17) | func processTable(parent string, table *ast.Table) ([]keyValuePair, erro...
  function generatePluginID (line 56) | func generatePluginID(prefix string, table *ast.Table) (string, error) {

FILE: config/plugin_printer.go
  type pluginPrinter (line 14) | type pluginPrinter struct
  type pluginNames (line 19) | type pluginNames
  function getPluginSourcesTable (line 21) | func getPluginSourcesTable(pluginNames []pluginPrinter) string {
  function getTableString (line 54) | func getTableString(headers []string, data [][]any) string {
  function convertToRow (line 100) | func convertToRow(data []string) table.Row {

FILE: config/plugin_selector.go
  constant selectorSeparator (line 13) | selectorSeparator = ";"
  function CheckSelectionKeyValuePairs (line 28) | func CheckSelectionKeyValuePairs(k, v string) error {
  function CheckLabelKeyValuePairs (line 39) | func CheckLabelKeyValuePairs(k, v string) error {
  function SetPluginLabelSelections (line 52) | func SetPluginLabelSelections(selections []string) error {
  type labelSelector (line 56) | type labelSelector struct
    method setSelections (line 60) | func (l *labelSelector) setSelections(selections []string) error {
    method addGroup (line 74) | func (l *labelSelector) addGroup(selection []string) error {
    method matches (line 112) | func (l *labelSelector) matches(labels map[string]string) bool {

FILE: config/plugin_selector_test.go
  function TestSetPluginLabelSelections (line 9) | func TestSetPluginLabelSelections(t *testing.T) {
  function TestKeyRegex (line 93) | func TestKeyRegex(t *testing.T) {
  function TestSelectorValueRegex (line 133) | func TestSelectorValueRegex(t *testing.T) {
  function TestLabelValueRegex (line 179) | func TestLabelValueRegex(t *testing.T) {
  function TestMatches (line 224) | func TestMatches(t *testing.T) {

FILE: config/secret.go
  type secretImpl (line 37) | type secretImpl interface
  function EnableSecretProtection (line 43) | func EnableSecretProtection() {
  function DisableSecretProtection (line 47) | func DisableSecretProtection() {
  type secretContainer (line 53) | type secretContainer interface
  type SecretBuffer (line 62) | type SecretBuffer interface
  type Secret (line 86) | type Secret struct
    method UnmarshalText (line 110) | func (s *Secret) UnmarshalText(b []byte) error {
    method init (line 124) | func (s *Secret) init(secret []byte) {
    method Destroy (line 150) | func (s *Secret) Destroy() {
    method Empty (line 165) | func (s *Secret) Empty() bool {
    method EqualTo (line 170) | func (s *Secret) EqualTo(ref []byte) (bool, error) {
    method Get (line 183) | func (s *Secret) Get() (SecretBuffer, error) {
    method Set (line 230) | func (s *Secret) Set(value []byte) error {
    method GetUnlinked (line 246) | func (s *Secret) GetUnlinked() []string {
    method Link (line 252) | func (s *Secret) Link(resolvers map[string]telegraf.ResolveFunc) error {
  function NewSecret (line 103) | func NewSecret(b []byte) Secret {
  function resolve (line 282) | func resolve(secret []byte, resolvers map[string]telegraf.ResolveFunc) (...
  function splitLink (line 311) | func splitLink(s string) (storeID, key string) {

FILE: config/secret_protected.go
  type protectedSecretImpl (line 9) | type protectedSecretImpl struct
    method Container (line 11) | func (*protectedSecretImpl) Container(secret []byte) secretContainer {
    method EmptyBuffer (line 17) | func (*protectedSecretImpl) EmptyBuffer() SecretBuffer {
    method Wipe (line 21) | func (*protectedSecretImpl) Wipe(secret []byte) {
  type lockedBuffer (line 25) | type lockedBuffer struct
    method Size (line 29) | func (lb *lockedBuffer) Size() int {
    method Grow (line 36) | func (lb *lockedBuffer) Grow(capacity int) {
    method Bytes (line 50) | func (lb *lockedBuffer) Bytes() []byte {
    method TemporaryString (line 57) | func (lb *lockedBuffer) TemporaryString() string {
    method String (line 64) | func (lb *lockedBuffer) String() string {
    method Destroy (line 71) | func (lb *lockedBuffer) Destroy() {
  type protectedSecretContainer (line 79) | type protectedSecretContainer struct
    method Destroy (line 83) | func (c *protectedSecretContainer) Destroy() {
    method Equals (line 96) | func (c *protectedSecretContainer) Equals(ref []byte) (bool, error) {
    method Buffer (line 111) | func (c *protectedSecretContainer) Buffer() (SecretBuffer, error) {
    method AsBuffer (line 125) | func (*protectedSecretContainer) AsBuffer(secret []byte) SecretBuffer {
    method Replace (line 129) | func (c *protectedSecretContainer) Replace(secret []byte) {

FILE: config/secret_test.go
  function TestSecretConstantManually (line 19) | func TestSecretConstantManually(t *testing.T) {
  function TestLinking (line 29) | func TestLinking(t *testing.T) {
  function TestLinkingResolverError (line 45) | func TestLinkingResolverError(t *testing.T) {
  function TestGettingUnlinked (line 58) | func TestGettingUnlinked(t *testing.T) {
  function TestGettingMissingResolver (line 66) | func TestGettingMissingResolver(t *testing.T) {
  function TestGettingResolverError (line 81) | func TestGettingResolverError(t *testing.T) {
  function TestUninitializedEnclave (line 96) | func TestUninitializedEnclave(t *testing.T) {
  function TestEnclaveOpenError (line 106) | func TestEnclaveOpenError(t *testing.T) {
  function TestMissingResolver (line 119) | func TestMissingResolver(t *testing.T) {
  function TestSecretConstant (line 127) | func TestSecretConstant(t *testing.T) {
  function TestSecretUnquote (line 175) | func TestSecretUnquote(t *testing.T) {
  function TestSecretEnvironmentVariable (line 326) | func TestSecretEnvironmentVariable(t *testing.T) {
  function TestSecretCount (line 354) | func TestSecretCount(t *testing.T) {
  function TestSecretStoreStatic (line 379) | func TestSecretStoreStatic(t *testing.T) {
  function TestSecretStoreInvalidKeys (line 420) | func TestSecretStoreInvalidKeys(t *testing.T) {
  function TestSecretStoreDeclarationMissingID (line 466) | func TestSecretStoreDeclarationMissingID(t *testing.T) {
  function TestSecretStoreDeclarationInvalidID (line 476) | func TestSecretStoreDeclarationInvalidID(t *testing.T) {
  function TestSecretStoreDeclarationValidID (line 494) | func TestSecretStoreDeclarationValidID(t *testing.T) {
  type SecretImplTestSuite (line 512) | type SecretImplTestSuite struct
    method SetupSuite (line 517) | func (tsuite *SecretImplTestSuite) SetupSuite() {
    method TearDownSuite (line 525) | func (*SecretImplTestSuite) TearDownSuite() {
    method TearDownTest (line 529) | func (*SecretImplTestSuite) TearDownTest() {
    method TestSecretEqualTo (line 533) | func (tsuite *SecretImplTestSuite) TestSecretEqualTo() {
    method TestSecretStoreInvalidReference (line 548) | func (tsuite *SecretImplTestSuite) TestSecretStoreInvalidReference() {
    method TestSecretStoreStaticChanging (line 578) | func (tsuite *SecretImplTestSuite) TestSecretStoreStaticChanging() {
    method TestSecretStoreDynamic (line 620) | func (tsuite *SecretImplTestSuite) TestSecretStoreDynamic() {
    method TestSecretSet (line 656) | func (tsuite *SecretImplTestSuite) TestSecretSet() {
    method TestSecretSetResolve (line 682) | func (tsuite *SecretImplTestSuite) TestSecretSetResolve() {
    method TestSecretSetResolveInvalid (line 715) | func (tsuite *SecretImplTestSuite) TestSecretSetResolveInvalid() {
    method TestSecretInvalidWarn (line 746) | func (tsuite *SecretImplTestSuite) TestSecretInvalidWarn() {
  function TestSecretImplUnprotected (line 767) | func TestSecretImplUnprotected(t *testing.T) {
  function TestSecretImplTestSuiteUnprotected (line 782) | func TestSecretImplTestSuiteUnprotected(t *testing.T) {
  function TestSecretImplTestSuiteProtected (line 786) | func TestSecretImplTestSuiteProtected(t *testing.T) {
  type MockupSecretPlugin (line 791) | type MockupSecretPlugin struct
    method SampleConfig (line 796) | func (*MockupSecretPlugin) SampleConfig() string                { retu...
    method Gather (line 797) | func (*MockupSecretPlugin) Gather(_ telegraf.Accumulator) error { retu...
  type MockupSecretStore (line 799) | type MockupSecretStore struct
    method Init (line 804) | func (*MockupSecretStore) Init() error {
    method SampleConfig (line 807) | func (*MockupSecretStore) SampleConfig() string {
    method Get (line 811) | func (s *MockupSecretStore) Get(key string) ([]byte, error) {
    method Set (line 819) | func (s *MockupSecretStore) Set(key, value string) error {
    method List (line 824) | func (s *MockupSecretStore) List() ([]string, error) {
    method GetResolver (line 831) | func (s *MockupSecretStore) GetResolver(key string) (telegraf.ResolveF...
  function init (line 839) | func init() {

FILE: config/secret_unprotected.go
  type unprotectedSecretImpl (line 8) | type unprotectedSecretImpl struct
    method Container (line 10) | func (*unprotectedSecretImpl) Container(secret []byte) secretContainer {
    method EmptyBuffer (line 14) | func (*unprotectedSecretImpl) EmptyBuffer() SecretBuffer {
    method Wipe (line 18) | func (*unprotectedSecretImpl) Wipe(secret []byte) {
  type unlockedBuffer (line 24) | type unlockedBuffer struct
    method Size (line 32) | func (lb *unlockedBuffer) Size() int {
    method Grow (line 36) | func (*unlockedBuffer) Grow(int) {
    method Bytes (line 40) | func (lb *unlockedBuffer) Bytes() []byte {
    method TemporaryString (line 44) | func (lb *unlockedBuffer) TemporaryString() string {
    method String (line 49) | func (lb *unlockedBuffer) String() string {
    method Destroy (line 53) | func (lb *unlockedBuffer) Destroy() {
  function newUnlockedBuffer (line 28) | func newUnlockedBuffer(secret []byte) *unlockedBuffer {
  type unprotectedSecretContainer (line 58) | type unprotectedSecretContainer struct
    method Destroy (line 62) | func (c *unprotectedSecretContainer) Destroy() {
    method Equals (line 72) | func (c *unprotectedSecretContainer) Equals(ref []byte) (bool, error) {
    method Buffer (line 80) | func (c *unprotectedSecretContainer) Buffer() (SecretBuffer, error) {
    method AsBuffer (line 88) | func (*unprotectedSecretContainer) AsBuffer(secret []byte) SecretBuffer {
    method Replace (line 92) | func (c *unprotectedSecretContainer) Replace(secret []byte) {

FILE: config/types.go
  type Duration (line 17) | type Duration
    method UnmarshalText (line 23) | func (d *Duration) UnmarshalText(b []byte) error {
  type Size (line 20) | type Size
    method UnmarshalText (line 68) | func (s *Size) UnmarshalText(b []byte) error {

FILE: config/types_test.go
  function TestConfigDuration (line 15) | func TestConfigDuration(t *testing.T) {
  function TestDuration (line 36) | func TestDuration(t *testing.T) {
  function TestSize (line 61) | func TestSize(t *testing.T) {
  function TestTOMLParsingStringDurations (line 80) | func TestTOMLParsingStringDurations(t *testing.T) {
  function TestTOMLParsingIntegerDurations (line 136) | func TestTOMLParsingIntegerDurations(t *testing.T) {
  function TestTOMLParsingFloatDurations (line 166) | func TestTOMLParsingFloatDurations(t *testing.T) {
  function TestTOMLParsingStringSizes (line 194) | func TestTOMLParsingStringSizes(t *testing.T) {
  function TestTOMLParsingIntegerSizes (line 232) | func TestTOMLParsingIntegerSizes(t *testing.T) {
  type MockupTypesPlugin (line 265) | type MockupTypesPlugin struct
    method SampleConfig (line 270) | func (*MockupTypesPlugin) SampleConfig() string                { retur...
    method Gather (line 271) | func (*MockupTypesPlugin) Gather(_ telegraf.Accumulator) error { retur...
  function init (line 274) | func init() {

FILE: filter/filter.go
  type Filter (line 9) | type Filter interface
  function Compile (line 30) | func Compile(filters []string, separators ...rune) (Filter, error) {
  function MustCompile (line 57) | func MustCompile(filters []string, separators ...rune) Filter {
  type IncludeExcludeFilter (line 65) | type IncludeExcludeFilter struct
    method Match (line 90) | func (f *IncludeExcludeFilter) Match(s string) bool {
  function NewIncludeExcludeFilter (line 72) | func NewIncludeExcludeFilter(include, exclude []string) (Filter, error) {
  function NewIncludeExcludeFilterDefaults (line 76) | func NewIncludeExcludeFilterDefaults(include, exclude []string, includeD...

FILE: filter/filter_test.go
  function TestCompile (line 9) | func TestCompile(t *testing.T) {
  function TestMultiple (line 52) | func TestMultiple(t *testing.T) {
  function TestIncludeExclude (line 100) | func TestIncludeExclude(t *testing.T) {
  function BenchmarkFilterSingleNoGlobFalse (line 120) | func BenchmarkFilterSingleNoGlobFalse(b *testing.B) {
  function BenchmarkFilterSingleNoGlobTrue (line 130) | func BenchmarkFilterSingleNoGlobTrue(b *testing.B) {
  function BenchmarkFilter (line 140) | func BenchmarkFilter(b *testing.B) {
  function BenchmarkFilterNoGlob (line 150) | func BenchmarkFilterNoGlob(b *testing.B) {
  function BenchmarkFilter2 (line 160) | func BenchmarkFilter2(b *testing.B) {
  function BenchmarkFilter2NoGlob (line 171) | func BenchmarkFilter2NoGlob(b *testing.B) {

FILE: filter/implementations.go
  type filterSingle (line 5) | type filterSingle struct
    method Match (line 9) | func (f *filterSingle) Match(s string) bool {
  type filterNoGlob (line 13) | type filterNoGlob struct
    method Match (line 25) | func (f *filterNoGlob) Match(s string) bool {
  function newFilterNoGlob (line 17) | func newFilterNoGlob(filters []string) Filter {
  type filterGlobMultiple (line 30) | type filterGlobMultiple struct
    method Match (line 48) | func (f *filterGlobMultiple) Match(s string) bool {
  function newFilterGlobMultiple (line 34) | func newFilterGlobMultiple(filters []string, separators ...rune) (Filter...

FILE: input.go
  type Input (line 3) | type Input interface
  type ServiceInput (line 11) | type ServiceInput interface

FILE: internal/choice/choice.go
  function Contains (line 8) | func Contains(choice string, choices []string) bool {
  function Check (line 19) | func Check(choice string, available []string) error {
  function CheckSlice (line 28) | func CheckSlice(choices, available []string) error {

FILE: internal/clock/options.go
  type config (line 9) | type config struct
  type Option (line 17) | type Option
  function WithClock (line 19) | func WithClock(clk clock.Clock) Option {
  function WithAlignment (line 25) | func WithAlignment(start time.Time) Option {
  function WithStartupNotification (line 32) | func WithStartupNotification(notifier chan bool) Option {

FILE: internal/clock/ticker.go
  type Ticker (line 13) | type Ticker struct
    method Stop (line 71) | func (t *Ticker) Stop() {
    method run (line 76) | func (t *Ticker) run(ctx context.Context) {
  function NewTicker (line 26) | func NewTicker(interval, jitter, offset time.Duration, opt ...Option) *T...

FILE: internal/clock/ticker_aligned_test.go
  function TestAlignedTicker (line 11) | func TestAlignedTicker(t *testing.T) {
  function TestAlignedTickerJitter (line 44) | func TestAlignedTickerJitter(t *testing.T) {
  function TestAlignedTickerOffset (line 71) | func TestAlignedTickerOffset(t *testing.T) {
  function TestAlignedTickerMissedTick (line 102) | func TestAlignedTickerMissedTick(t *testing.T) {
  function TestAlignedTickerJitterBehavior (line 145) | func TestAlignedTickerJitterBehavior(t *testing.T) {
  function TestAlignedTickerDistribution (line 197) | func TestAlignedTickerDistribution(t *testing.T) {
  function TestAlignedTickerDistributionWithOffset (line 218) | func TestAlignedTickerDistributionWithOffset(t *testing.T) {

FILE: internal/clock/ticker_test.go
  type distribution (line 11) | type distribution struct
    method mean (line 39) | func (d *distribution) mean() float64 {
    method print (line 43) | func (d distribution) print() {
  function simulatedTickerDist (line 17) | func simulatedTickerDist(ticker *Ticker, clk *clock.Mock) distribution {

FILE: internal/clock/ticker_unaligned_test.go
  function TestUnalignedTicker (line 11) | func TestUnalignedTicker(t *testing.T) {
  function TestUnalignedTickerJitterBehavior (line 56) | func TestUnalignedTickerJitterBehavior(t *testing.T) {
  function TestUnalignedTickerDistribution (line 106) | func TestUnalignedTickerDistribution(t *testing.T) {
  function TestUnalignedTickerDistributionWithOffset (line 126) | func TestUnalignedTickerDistributionWithOffset(t *testing.T) {

FILE: internal/clock/timer.go
  type Timer (line 24) | type Timer struct
    method Stop (line 65) | func (t *Timer) Stop() {
    method run (line 70) | func (t *Timer) run(ctx context.Context) {
  function NewTimer (line 35) | func NewTimer(interval, jitter time.Duration, opt ...Option) *Timer {

FILE: internal/clock/timer_test.go
  function TestTimer (line 11) | func TestTimer(t *testing.T) {
  function TestTimerJitterDrift (line 66) | func TestTimerJitterDrift(t *testing.T) {
  function TestTimerDistribution (line 119) | func TestTimerDistribution(t *testing.T) {
  function simulatedTimerDist (line 138) | func simulatedTimerDist(timer *Timer, clk *clock.Mock) distribution {

FILE: internal/content_coding.go
  constant defaultMaxDecompressionSize (line 16) | defaultMaxDecompressionSize int64 = 500 * 1024 * 1024
  type DecodingOption (line 20) | type DecodingOption
  type decoderConfig (line 22) | type decoderConfig struct
  function WithMaxDecompressionSize (line 26) | func WithMaxDecompressionSize(maxDecompressionSize int64) DecodingOption {
  type encoderConfig (line 32) | type encoderConfig struct
  type EncodingOption (line 38) | type EncodingOption
  function WithCompressionLevel (line 40) | func WithCompressionLevel(level int) EncodingOption {
  function NewStreamContentDecoder (line 48) | func NewStreamContentDecoder(encoding string, r io.Reader) (io.Reader, e...
  type GzipReader (line 60) | type GzipReader struct
    method Read (line 83) | func (r *GzipReader) Read(b []byte) (int, error) {
  function NewGzipReader (line 66) | func NewGzipReader(r io.Reader) (io.Reader, error) {
  function NewContentEncoder (line 106) | func NewContentEncoder(encoding string, options ...EncodingOption) (Cont...
  type AutoDecoder (line 121) | type AutoDecoder struct
    method SetEncoding (line 127) | func (a *AutoDecoder) SetEncoding(encoding string) {
    method Decode (line 131) | func (a *AutoDecoder) Decode(data []byte) ([]byte, error) {
  function NewAutoContentDecoder (line 138) | func NewAutoContentDecoder(options ...DecodingOption) *AutoDecoder {
  function NewContentDecoder (line 147) | func NewContentDecoder(encoding string, options ...DecodingOption) (Cont...
  type ContentEncoder (line 165) | type ContentEncoder interface
  type GzipEncoder (line 170) | type GzipEncoder struct
    method Encode (line 204) | func (e *GzipEncoder) Encode(data []byte) ([]byte, error) {
    method encodeSmall (line 215) | func (e *GzipEncoder) encodeSmall(data []byte) ([]byte, error) {
    method encodeBig (line 230) | func (e *GzipEncoder) encodeBig(data []byte) ([]byte, error) {
  function NewGzipEncoder (line 176) | func NewGzipEncoder(options ...EncodingOption) (*GzipEncoder, error) {
  type ZlibEncoder (line 245) | type ZlibEncoder struct
    method Encode (line 271) | func (e *ZlibEncoder) Encode(data []byte) ([]byte, error) {
  function NewZlibEncoder (line 250) | func NewZlibEncoder(options ...EncodingOption) (*ZlibEncoder, error) {
  type ZstdEncoder (line 286) | type ZstdEncoder struct
    method Encode (line 317) | func (e *ZstdEncoder) Encode(data []byte) ([]byte, error) {
  function NewZstdEncoder (line 290) | func NewZstdEncoder(options ...EncodingOption) (*ZstdEncoder, error) {
  type IdentityEncoder (line 322) | type IdentityEncoder struct
    method Encode (line 332) | func (*IdentityEncoder) Encode(data []byte) ([]byte, error) {
  function NewIdentityEncoder (line 324) | func NewIdentityEncoder(options ...EncodingOption) (*IdentityEncoder, er...
  type ContentDecoder (line 337) | type ContentDecoder interface
  type GzipDecoder (line 343) | type GzipDecoder struct
    method SetEncoding (line 364) | func (*GzipDecoder) SetEncoding(string) {}
    method Decode (line 366) | func (d *GzipDecoder) Decode(data []byte) ([]byte, error) {
    method decodeSmall (line 377) | func (d *GzipDecoder) decodeSmall(data []byte) ([]byte, error) {
    method decodeBig (line 398) | func (d *GzipDecoder) decodeBig(data []byte) ([]byte, error) {
  function NewGzipDecoder (line 350) | func NewGzipDecoder(options ...DecodingOption) *GzipDecoder {
  type ZlibDecoder (line 419) | type ZlibDecoder struct
    method SetEncoding (line 436) | func (*ZlibDecoder) SetEncoding(string) {}
    method Decode (line 438) | func (d *ZlibDecoder) Decode(data []byte) ([]byte, error) {
  function NewZlibDecoder (line 424) | func NewZlibDecoder(options ...DecodingOption) *ZlibDecoder {
  type ZstdDecoder (line 461) | type ZstdDecoder struct
    method SetEncoding (line 477) | func (*ZstdDecoder) SetEncoding(string) {}
    method Decode (line 479) | func (d *ZstdDecoder) Decode(data []byte) ([]byte, error) {
  function NewZstdDecoder (line 465) | func NewZstdDecoder(options ...DecodingOption) (*ZstdDecoder, error) {
  type IdentityDecoder (line 484) | type IdentityDecoder struct
    method SetEncoding (line 491) | func (*IdentityDecoder) SetEncoding(string) {}
    method Decode (line 493) | func (*IdentityDecoder) Decode(data []byte) ([]byte, error) {
  function NewIdentityDecoder (line 487) | func NewIdentityDecoder(_ ...DecodingOption) *IdentityDecoder {

FILE: internal/content_coding_test.go
  constant maxDecompressionSize (line 13) | maxDecompressionSize = 1024
  function TestGzipEncodeDecode (line 15) | func TestGzipEncodeDecode(t *testing.T) {
  function TestGzipReuse (line 29) | func TestGzipReuse(t *testing.T) {
  function TestZlibEncodeDecode (line 51) | func TestZlibEncodeDecode(t *testing.T) {
  function TestZlibEncodeDecodeWithTooLargeMessage (line 65) | func TestZlibEncodeDecodeWithTooLargeMessage(t *testing.T) {
  function TestZstdEncodeDecode (line 77) | func TestZstdEncodeDecode(t *testing.T) {
  function TestZstdReuse (line 92) | func TestZstdReuse(t *testing.T) {
  function TestIdentityEncodeDecode (line 115) | func TestIdentityEncodeDecode(t *testing.T) {
  function TestStreamIdentityDecode (line 129) | func TestStreamIdentityDecode(t *testing.T) {
  function TestStreamGzipDecode (line 144) | func TestStreamGzipDecode(t *testing.T) {
  function TestCompressionLevel (line 163) | func TestCompressionLevel(t *testing.T) {
  function BenchmarkGzipEncode (line 228) | func BenchmarkGzipEncode(b *testing.B) {
  function BenchmarkGzipDecode (line 247) | func BenchmarkGzipDecode(b *testing.B) {
  function BenchmarkGzipEncodeDecode (line 266) | func BenchmarkGzipEncodeDecode(b *testing.B) {
  function BenchmarkGzipEncodeBig (line 288) | func BenchmarkGzipEncodeBig(b *testing.B) {
  function BenchmarkGzipDecodeBig (line 307) | func BenchmarkGzipDecodeBig(b *testing.B) {
  function BenchmarkGzipEncodeDecodeBig (line 326) | func BenchmarkGzipEncodeDecodeBig(b *testing.B) {
  function BenchmarkZstdEncode (line 348) | func BenchmarkZstdEncode(b *testing.B) {
  function BenchmarkZstdDecode (line 368) | func BenchmarkZstdDecode(b *testing.B) {
  function BenchmarkZstdEncodeDecode (line 388) | func BenchmarkZstdEncodeDecode(b *testing.B) {
  function BenchmarkZstdEncodeBig (line 411) | func BenchmarkZstdEncodeBig(b *testing.B) {
  function BenchmarkZstdDecodeBig (line 431) | func BenchmarkZstdDecodeBig(b *testing.B) {
  function BenchmarkZstdEncodeDecodeBig (line 451) | func BenchmarkZstdEncodeDecodeBig(b *testing.B) {
  function BenchmarkZlibEncode (line 474) | func BenchmarkZlibEncode(b *testing.B) {
  function BenchmarkZlibDecode (line 493) | func BenchmarkZlibDecode(b *testing.B) {
  function BenchmarkZlibEncodeDecode (line 512) | func BenchmarkZlibEncodeDecode(b *testing.B) {
  function BenchmarkIdentityEncodeDecode (line 534) | func BenchmarkIdentityEncodeDecode(b *testing.B) {

FILE: internal/customized_no.go
  constant Customized (line 5) | Customized = ""

FILE: internal/customized_yes.go
  constant Customized (line 5) | Customized = " (customized)"

FILE: internal/docker/docker.go
  function ParseImage (line 7) | func ParseImage(image string) (imageName, imageVersion string) {

FILE: internal/docker/docker_test.go
  function TestParseImage (line 11) | func TestParseImage(t *testing.T) {

FILE: internal/env.go
  function GetProcPath (line 6) | func GetProcPath() string {
  function GetSysPath (line 14) | func GetSysPath() string {

FILE: internal/errors.go
  type StartupError (line 16) | type StartupError struct
    method Error (line 22) | func (e *StartupError) Error() string {
    method Unwrap (line 26) | func (e *StartupError) Unwrap() error {
  type FatalError (line 33) | type FatalError struct
    method Error (line 37) | func (e *FatalError) Error() string {
    method Unwrap (line 41) | func (e *FatalError) Unwrap() error {
  type PartialWriteError (line 50) | type PartialWriteError struct
    method Error (line 57) | func (e *PartialWriteError) Error() string {
    method Unwrap (line 61) | func (e *PartialWriteError) Unwrap() error {

FILE: internal/exec.go
  function CombinedOutputTimeout (line 12) | func CombinedOutputTimeout(c *exec.Cmd, timeout time.Duration) ([]byte, ...
  function StdOutputTimeout (line 26) | func StdOutputTimeout(c *exec.Cmd, timeout time.Duration) ([]byte, error) {
  function RunTimeout (line 39) | func RunTimeout(c *exec.Cmd, timeout time.Duration) error {

FILE: internal/exec_unix.go
  constant KillGrace (line 14) | KillGrace = 5 * time.Second
  function WaitTimeout (line 19) | func WaitTimeout(c *exec.Cmd, timeout time.Duration) error {

FILE: internal/exec_windows.go
  function WaitTimeout (line 14) | func WaitTimeout(c *exec.Cmd, timeout time.Duration) error {

FILE: internal/globpath/globpath.go
  type GlobPath (line 12) | type GlobPath struct
    method Match (line 47) | func (g *GlobPath) Match() []string {
    method MatchString (line 60) | func (g *GlobPath) MatchString(path string) bool {
    method GetRoots (line 75) | func (g *GlobPath) GetRoots() []string {
  function Compile (line 20) | func Compile(path string) (*GlobPath, error) {
  function hasMeta (line 90) | func hasMeta(path string) bool {
  function hasSuperMeta (line 95) | func hasSuperMeta(path string) bool {

FILE: internal/globpath/globpath_test.go
  function TestCompileAndMatch (line 21) | func TestCompileAndMatch(t *testing.T) {
  function TestRootGlob (line 60) | func TestRootGlob(t *testing.T) {
  function TestFindNestedTextFile (line 78) | func TestFindNestedTextFile(t *testing.T) {
  function TestMatch_ErrPermission (line 87) | func TestMatch_ErrPermission(t *testing.T) {
  function TestWindowsSeparator (line 104) | func TestWindowsSeparator(t *testing.T) {
  function getTestdataDir (line 116) | func getTestdataDir() string {

FILE: internal/goplugin/noplugin.go
  function LoadExternalPlugins (line 7) | func LoadExternalPlugins(_ string) error {

FILE: internal/goplugin/plugin.go
  function LoadExternalPlugins (line 16) | func LoadExternalPlugins(rootDir string) error {

FILE: internal/http.go
  type BasicAuthErrorFunc (line 15) | type BasicAuthErrorFunc
  function JWTAuthHandler (line 19) | func JWTAuthHandler(secret, username string, onError BasicAuthErrorFunc)...
  type jwtAuthHandler (line 30) | type jwtAuthHandler struct
    method ServeHTTP (line 37) | func (h *jwtAuthHandler) ServeHTTP(rw http.ResponseWriter, req *http.R...
  function BasicAuthHandler (line 87) | func BasicAuthHandler(username, password, realm string, onError BasicAut...
  type basicAuthHandler (line 99) | type basicAuthHandler struct
    method ServeHTTP (line 107) | func (h *basicAuthHandler) ServeHTTP(rw http.ResponseWriter, req *http...
  type GenericAuthErrorFunc (line 135) | type GenericAuthErrorFunc
  function GenericAuthHandler (line 138) | func GenericAuthHandler(credentials string, onError GenericAuthErrorFunc...
  type genericAuthHandler (line 149) | type genericAuthHandler struct
    method ServeHTTP (line 155) | func (h *genericAuthHandler) ServeHTTP(rw http.ResponseWriter, req *ht...
  type ErrorFunc (line 170) | type ErrorFunc
  function IPRangeHandler (line 174) | func IPRangeHandler(networks []*net.IPNet, onError ErrorFunc) func(h htt...
  type ipRangeHandler (line 184) | type ipRangeHandler struct
    method ServeHTTP (line 190) | func (h *ipRangeHandler) ServeHTTP(rw http.ResponseWriter, req *http.R...
  function OnClientError (line 218) | func OnClientError(client *http.Client, err error) {

FILE: internal/internal.go
  constant alphanum (line 27) | alphanum string = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopq...
  constant NoMetricsCreatedMsg (line 28) | NoMetricsCreatedMsg = "No metrics were created from a message. Verify yo...
  type ReadWaitCloser (line 47) | type ReadWaitCloser struct
    method Close (line 211) | func (r *ReadWaitCloser) Close() error {
  function FormatFullVersion (line 52) | func FormatFullVersion() string {
  function ProductToken (line 76) | func ProductToken() string {
  function ReadLines (line 86) | func ReadLines(filename string) ([]string, error) {
  function RandomString (line 103) | func RandomString(n int) (string, error) {
  function SnakeCase (line 117) | func SnakeCase(in string) string {
  function RandomSleep (line 141) | func RandomSleep(limit time.Duration, shutdown chan struct{}) {
  function RandomDuration (line 158) | func RandomDuration(limit time.Duration) time.Duration {
  function SleepContext (line 167) | func SleepContext(ctx context.Context, duration time.Duration) error {
  function AlignDuration (line 184) | func AlignDuration(tm time.Time, interval time.Duration) time.Duration {
  function AlignTime (line 190) | func AlignTime(tm time.Time, interval time.Duration) time.Time {
  function ExitStatus (line 201) | func ExitStatus(err error) (int, bool) {
  function CompressWithGzip (line 222) | func CompressWithGzip(data io.Reader) io.ReadCloser {
  function ParseTimestamp (line 271) | func ParseTimestamp(format string, timestamp interface{}, location *time...
  function parseUnix (line 297) | func parseUnix(format string, timestamp interface{}, separator []string)...
  function timeFromFraction (line 349) | func timeFromFraction(f *big.Rat, factor int64) time.Time {
  function sanitizeTimestamp (line 365) | func sanitizeTimestamp(timestamp string, decimalSeparator []string) stri...
  function parseTime (line 385) | func parseTime(format, timestamp string, location *time.Location) (time....

FILE: internal/internal_test.go
  type SnakeTest (line 18) | type SnakeTest struct
  function TestSnakeCase (line 40) | func TestSnakeCase(t *testing.T) {
  function TestRunTimeout (line 48) | func TestRunTimeout(t *testing.T) {
  function TestRunTimeoutFastExit (line 67) | func TestRunTimeoutFastExit(t *testing.T) {
  function TestCombinedOutputTimeout (line 91) | func TestCombinedOutputTimeout(t *testing.T) {
  function TestCombinedOutput (line 108) | func TestCombinedOutput(t *testing.T) {
  function TestCombinedOutputError (line 122) | func TestCombinedOutputError(t *testing.T) {
  function TestRunError (line 138) | func TestRunError(t *testing.T) {
  function TestRandomSleep (line 149) | func TestRandomSleep(t *testing.T) {
  function TestCompressWithGzip (line 176) | func TestCompressWithGzip(t *testing.T) {
  type mockReader (line 191) | type mockReader struct
    method Read (line 197) | func (r *mockReader) Read(p []byte) (n int, err error) {
  function TestCompressWithGzipEarlyClose (line 211) | func TestCompressWithGzipEarlyClose(t *testing.T) {
  function TestCompressWithGzipErrorPropagationCopy (line 231) | func TestCompressWithGzipErrorPropagationCopy(t *testing.T) {
  function TestCompressWithGzipErrorPropagationReadAll (line 244) | func TestCompressWithGzipErrorPropagationReadAll(t *testing.T) {
  function TestAlignDuration (line 257) | func TestAlignDuration(t *testing.T) {
  function TestAlignTime (line 309) | func TestAlignTime(t *testing.T) {
  function TestParseTimestamp (line 344) | func TestParseTimestamp(t *testing.T) {
  function TestParseTimestampInvalid (line 814) | func TestParseTimestampInvalid(t *testing.T) {
  function TestTimestampAbbrevWarning (line 887) | func TestTimestampAbbrevWarning(t *testing.T) {
  function TestGoVersion (line 910) | func TestGoVersion(t *testing.T) {
  function TestProductToken (line 938) | func TestProductToken(t *testing.T) {

FILE: internal/limiter/limiter.go
  function NewRateLimiter (line 10) | func NewRateLimiter(n int, rate time.Duration) *rateLimiter {
  type rateLimiter (line 22) | type rateLimiter struct
    method Stop (line 31) | func (r *rateLimiter) Stop() {
    method limiter (line 37) | func (r *rateLimiter) limiter() {

FILE: internal/network.go
  function ResolveLocalTCPAddress (line 10) | func ResolveLocalTCPAddress(addr string) (*net.TCPAddr, error) {

FILE: internal/process/process.go
  type Process (line 18) | type Process struct
    method Start (line 61) | func (p *Process) Start() error {
    method Stop (line 81) | func (p *Process) Stop() {
    method Pid (line 93) | func (p *Process) Pid() int {
    method State (line 98) | func (p *Process) State() (state *os.ProcessState, running bool) {
    method cmdStart (line 105) | func (p *Process) cmdStart() error {
    method cmdLoop (line 138) | func (p *Process) cmdLoop(ctx context.Context) error {
    method cmdWait (line 165) | func (p *Process) cmdWait(ctx context.Context) error {
  function New (line 40) | func New(command, envs []string) (*Process, error) {
  function isQuitting (line 208) | func isQuitting(ctx context.Context) bool {
  function defaultReadPipe (line 212) | func defaultReadPipe(r io.Reader) {

FILE: internal/process/process_posix.go
  method gracefulStop (line 12) | func (p *Process) gracefulStop(ctx context.Context, cmd *exec.Cmd, timeo...

FILE: internal/process/process_test.go
  function TestRestartingRebindsPipes (line 22) | func TestRestartingRebindsPipes(t *testing.T) {
  function TestMain (line 63) | func TestMain(m *testing.M) {
  function externalProcess (line 76) | func externalProcess() {

FILE: internal/process/process_windows.go
  method gracefulStop (line 11) | func (p *Process) gracefulStop(ctx context.Context, cmd *exec.Cmd, timeo...

FILE: internal/rotate/file_writer.go
  constant FilePerm (line 19) | FilePerm   = os.FileMode(0644)
  constant DateFormat (line 20) | DateFormat = "2006-01-02"
  type FileWriter (line 28) | type FileWriter struct
    method Write (line 76) | func (w *FileWriter) Write(p []byte) (n int, err error) {
    method Close (line 93) | func (w *FileWriter) Close() (err error) {
    method openCurrent (line 111) | func (w *FileWriter) openCurrent() (err error) {
    method rotateIfNeeded (line 134) | func (w *FileWriter) rotateIfNeeded() error {
    method rotate (line 146) | func (w *FileWriter) rotate() (err error) {
    method purgeArchivesIfNeeded (line 161) | func (w *FileWriter) purgeArchivesIfNeeded() (err error) {
  function NewFileWriter (line 41) | func NewFileWriter(filename string, interval time.Duration, maxSizeInByt...
  function openFile (line 62) | func openFile(filename string) (*os.File, error) {
  function getFilenameRotationTemplate (line 66) | func getFilenameRotationTemplate(filename string) string {

FILE: internal/rotate/file_writer_test.go
  function TestFileWriter_NoRotation (line 12) | func TestFileWriter_NoRotation(t *testing.T) {
  function TestFileWriter_TimeRotation (line 27) | func TestFileWriter_TimeRotation(t *testing.T) {
  function TestFileWriter_ReopenTimeRotation (line 45) | func TestFileWriter_ReopenTimeRotation(t *testing.T) {
  function TestFileWriter_SizeRotation (line 62) | func TestFileWriter_SizeRotation(t *testing.T) {
  function TestFileWriter_ReopenSizeRotation (line 78) | func TestFileWriter_ReopenSizeRotation(t *testing.T) {
  function TestFileWriter_DeleteArchives (line 95) | func TestFileWriter_DeleteArchives(t *testing.T) {
  function TestFileWriter_CloseDoesNotRotate (line 139) | func TestFileWriter_CloseDoesNotRotate(t *testing.T) {

FILE: internal/templating/engine.go
  constant DefaultSeparator (line 10) | DefaultSeparator = "."
  type Engine (line 15) | type Engine struct
    method Apply (line 24) | func (e *Engine) Apply(line string) (measurementName string, tags map[...
  function NewEngine (line 29) | func NewEngine(joiner string, defaultTemplate *Template, templates []str...
  function parseTemplateSpecs (line 45) | func parseTemplateSpecs(templates []string) templateSpecs {

FILE: internal/templating/engine_test.go
  function TestEngineAlternateSeparator (line 9) | func TestEngineAlternateSeparator(t *testing.T) {
  function TestEngineWithWildcardTemplate (line 25) | func TestEngineWithWildcardTemplate(t *testing.T) {

FILE: internal/templating/matcher.go
  type matcher (line 9) | type matcher struct
    method addSpec (line 22) | func (m *matcher) addSpec(tmplt templateSpec) error {
    method add (line 41) | func (m *matcher) add(filter string, template *Template) {
    method match (line 52) | func (m *matcher) match(line string) *Template {
  function newMatcher (line 15) | func newMatcher(defaultTemplate *Template) *matcher {

FILE: internal/templating/node.go
  type node (line 10) | type node struct
    method insert (line 19) | func (n *node) insert(filter string, template *Template) {
    method recursiveInsert (line 25) | func (n *node) recursiveInsert(values []string, template *Template) {
    method search (line 51) | func (n *node) search(line string) *Template {
    method recursiveSearch (line 57) | func (n *node) recursiveSearch(lineParts []string) *Template {
  type nodes (line 100) | type nodes
    method Less (line 120) | func (n *nodes) Less(j, k int) bool {
    method Swap (line 133) | func (n *nodes) Swap(i, j int) { (*n)[i], (*n)[j] = (*n)[j], (*n)[i] }
    method Len (line 136) | func (n *nodes) Len() int { return len(*n) }

FILE: internal/templating/template.go
  type Template (line 9) | type Template struct
    method Apply (line 21) | func (t *Template) Apply(line string, joiner string) (measurementName ...
  function NewDefaultTemplateWithPattern (line 80) | func NewDefaultTemplateWithPattern(pattern string) (*Template, error) {
  function NewTemplate (line 85) | func NewTemplate(separator, pattern string, defaultTags map[string]strin...
  type templateSpec (line 113) | type templateSpec struct
  type templateSpecs (line 121) | type templateSpecs
    method Less (line 125) | func (e templateSpecs) Less(j, k int) bool {
    method Swap (line 139) | func (e templateSpecs) Swap(i, j int) { e[i], e[j] = e[j], e[i] }
    method Len (line 142) | func (e templateSpecs) Len() int { return len(e) }

FILE: internal/templating/template_test.go
  function BenchmarkTemplateLess (line 5) | func BenchmarkTemplateLess(b *testing.B) {

FILE: internal/type_conversions.go
  function ToFloat64 (line 12) | func ToFloat64(value interface{}) (float64, error) {
  function ToFloat32 (line 55) | func ToFloat32(value interface{}) (float32, error) {
  function ToUint64 (line 104) | func ToUint64(value interface{}) (uint64, error) {
  function ToUint32 (line 171) | func ToUint32(value interface{}) (uint32, error) {
  function ToUint16 (line 245) | func ToUint16(value interface{}) (uint16, error) {
  function ToUint8 (line 322) | func ToUint8(value interface{}) (uint8, error) {
  function ToInt64 (line 402) | func ToInt64(value interface{}) (int64, error) {
  function ToInt32 (line 460) | func ToInt32(value interface{}) (int32, error) {
  function ToInt16 (line 531) | func ToInt16(value interface{}) (int16, error) {
  function ToInt8 (line 605) | func ToInt8(value interface{}) (int8, error) {
  function ToString (line 685) | func ToString(value interface{}) (string, error) {
  function ToBool (line 725) | func ToBool(value interface{}) (bool, error) {

FILE: logger.go
  type LogLevel (line 4) | type LogLevel
    method String (line 37) | func (e LogLevel) String() string {
    method Indicator (line 53) | func (e LogLevel) Indicator() string {
    method Includes (line 69) | func (e LogLevel) Includes(level LogLevel) bool {
  constant None (line 8) | None LogLevel = iota
  constant Error (line 10) | Error
  constant Warn (line 12) | Warn
  constant Info (line 14) | Info
  constant Debug (line 16) | Debug
  constant Trace (line 18) | Trace
  function LogLevelFromString (line 21) | func LogLevelFromString(name string) LogLevel {
  type Logger (line 74) | type Logger interface

FILE: logger/event_logger.go
  constant eidInfo (line 17) | eidInfo    = 1
  constant eidWarning (line 18) | eidWarning = 2
  constant eidError (line 19) | eidError   = 3
  type eventLogger (line 22) | type eventLogger struct
    method Close (line 27) | func (l *eventLogger) Close() error {
    method Print (line 38) | func (l *eventLogger) Print(level telegraf.LogLevel, _ time.Time, pref...
  function createEventLogger (line 62) | func createEventLogger(cfg *Config) (sink, error) {
  function init (line 76) | func init() {

FILE: logger/event_logger_test.go
  type Levels (line 17) | type Levels
  constant Info (line 20) | Info Levels = iota + 1
  constant Warning (line 21) | Warning
  constant Error (line 22) | Error
  type Event (line 25) | type Event struct
  function getEventLog (line 30) | func getEventLog(t *testing.T, since time.Time) []Event {
  function TestEventLogIntegration (line 52) | func TestEventLogIntegration(t *testing.T) {
  function TestRestrictedEventLogIntegration (line 74) | func TestRestrictedEventLogIntegration(t *testing.T) {

FILE: logger/handler.go
  type entry (line 16) | type entry struct
  type handler (line 24) | type handler struct
    method switchSink (line 53) | func (h *handler) switchSink(impl sink, level telegraf.LogLevel, tz *t...
    method add (line 74) | func (h *handler) add(level telegraf.LogLevel, ts time.Time, prefix st...
    method close (line 90) | func (h *handler) close() error {
  function defaultHandler (line 34) | func defaultHandler() *handler {
  function redirectHandler (line 43) | func redirectHandler(w io.Writer) *handler {
  type redirectLogger (line 111) | type redirectLogger struct
    method Print (line 115) | func (l *redirectLogger) Print(level telegraf.LogLevel, ts time.Time, ...
    method Close (line 134) | func (l *redirectLogger) Close() error {

FILE: logger/logger.go
  type CallbackFunc (line 29) | type CallbackFunc
  type sink (line 38) | type sink interface
  type logger (line 43) | type logger struct
    method Level (line 87) | func (l *logger) Level() telegraf.LogLevel {
    method AddAttribute (line 95) | func (l *logger) AddAttribute(key string, value interface{}) {
    method Errorf (line 105) | func (l *logger) Errorf(format string, args ...interface{}) {
    method Error (line 109) | func (l *logger) Error(args ...interface{}) {
    method Warnf (line 117) | func (l *logger) Warnf(format string, args ...interface{}) {
    method Warn (line 121) | func (l *logger) Warn(args ...interface{}) {
    method Infof (line 126) | func (l *logger) Infof(format string, args ...interface{}) {
    method Info (line 130) | func (l *logger) Info(args ...interface{}) {
    method Debugf (line 135) | func (l *logger) Debugf(format string, args ...interface{}) {
    method Debug (line 139) | func (l *logger) Debug(args ...interface{}) {
    method Tracef (line 144) | func (l *logger) Tracef(format string, args ...interface{}) {
    method Trace (line 148) | func (l *logger) Trace(args ...interface{}) {
    method Print (line 152) | func (l *logger) Print(level telegraf.LogLevel, ts time.Time, args ......
    method SetLevel (line 179) | func (l *logger) SetLevel(level telegraf.LogLevel) {
    method SetLogLevel (line 184) | func (l *logger) SetLogLevel(name string) error {
    method RegisterErrorCallback (line 197) | func (l *logger) RegisterErrorCallback(f func()) {
  function New (line 56) | func New(category, name, alias string) *logger {
  type Config (line 201) | type Config struct
  function SetupLogging (line 228) | func SetupLogging(cfg *Config) error {
  function RedirectLogging (line 309) | func RedirectLogging(w io.Writer) {
  function CloseLogging (line 313) | func CloseLogging() error {
  function AddCallback (line 328) | func AddCallback(callback CallbackFunc) (string, error) {
  function RemoveCallback (line 345) | func RemoveCallback(id string) {
  function init (line 351) | func init() {

FILE: logger/logger_test.go
  function TestTextLogTargetDefault (line 12) | func TestTextLogTargetDefault(t *testing.T) {
  function TestErrorCounting (line 25) | func TestErrorCounting(t *testing.T) {

FILE: logger/registry.go
  type creator (line 3) | type creator
  function add (line 7) | func add(name string, creator creator) {

FILE: logger/stdlog_redirector.go
  type stdlogRedirector (line 7) | type stdlogRedirector struct
    method Write (line 11) | func (s *stdlogRedirector) Write(b []byte) (n int, err error) {

FILE: logger/structured_logger.go
  type structuredLogger (line 16) | type structuredLogger struct
    method Close (line 23) | func (l *structuredLogger) Close() error {
    method Print (line 35) | func (l *structuredLogger) Print(level telegraf.LogLevel, ts time.Time...
  function init (line 64) | func init() {

FILE: logger/structured_logger_test.go
  function TestStructuredStderr (line 18) | func TestStructuredStderr(t *testing.T) {
  function TestStructuredFile (line 32) | func TestStructuredFile(t *testing.T) {
  function TestStructuredFileDebug (line 68) | func TestStructuredFileDebug(t *testing.T) {
  function TestStructuredFileError (line 104) | func TestStructuredFileError(t *testing.T) {
  function TestStructuredAddDefaultLogLevel (line 142) | func TestStructuredAddDefaultLogLevel(t *testing.T) {
  function TestStructuredDerivedLogger (line 178) | func TestStructuredDerivedLogger(t *testing.T) {
  function TestStructuredDerivedLoggerWithAttributes (line 219) | func TestStructuredDerivedLoggerWithAttributes(t *testing.T) {
  function TestStructuredWriteToTruncatedFile (line 265) | func TestStructuredWriteToTruncatedFile(t *testing.T) {
  function TestStructuredWriteToFileInRotation (line 320) | func TestStructuredWriteToFileInRotation(t *testing.T) {
  function TestStructuredLogMessageKey (line 339) | func TestStructuredLogMessageKey(t *testing.T) {
  function BenchmarkTelegrafStructuredLogWrite (line 381) | func BenchmarkTelegrafStructuredLogWrite(b *testing.B) {

FILE: logger/text_logger.go
  constant LogTargetFile (line 21) | LogTargetFile   = "file"
  constant LogTargetStderr (line 22) | LogTargetStderr = "stderr"
  type textLogger (line 25) | type textLogger struct
    method Close (line 29) | func (l *textLogger) Close() error {
    method Print (line 43) | func (l *textLogger) Print(level telegraf.LogLevel, ts time.Time, pref...
  function createTextLogger (line 48) | func createTextLogger(cfg *Config) (sink, error) {
  function init (line 66) | func init() {

FILE: logger/text_logger_test.go
  function TestTextStderr (line 16) | func TestTextStderr(t *testing.T) {
  function TestTextFile (line 30) | func TestTextFile(t *testing.T) {
  function TestTextFileDebug (line 55) | func TestTextFileDebug(t *testing.T) {
  function TestTextFileError (line 80) | func TestTextFileError(t *testing.T) {
  function TestTextAddDefaultLogLevel (line 106) | func TestTextAddDefaultLogLevel(t *testing.T) {
  function TestTextWriteToTruncatedFile (line 131) | func TestTextWriteToTruncatedFile(t *testing.T) {
  function TestTextWriteToFileInRotation (line 164) | func TestTextWriteToFileInRotation(t *testing.T) {
  function TestTextWriteDerivedLogger (line 183) | func TestTextWriteDerivedLogger(t *testing.T) {
  function TestTextWriteDerivedLoggerWithAttributes (line 211) | func TestTextWriteDerivedLoggerWithAttributes(t *testing.T) {
  function BenchmarkTelegrafTextLogWrite (line 244) | func BenchmarkTelegrafTextLogWrite(b *testing.B) {

FILE: metric.go
  type ValueType (line 8) | type ValueType
  constant _ (line 12) | _ ValueType = iota
  constant Counter (line 13) | Counter
  constant Gauge (line 14) | Gauge
  constant Untyped (line 15) | Untyped
  constant Summary (line 16) | Summary
  constant Histogram (line 17) | Histogram
  type Tag (line 21) | type Tag struct
  type Field (line 27) | type Field struct
  type Metric (line 37) | type Metric interface
  type TemplateMetric (line 138) | type TemplateMetric interface
  type UnwrappableMetric (line 148) | type UnwrappableMetric interface
  type TrackingMetric (line 154) | type TrackingMetric interface

FILE: metric/deserialize.go
  type serializedMetric (line 27) | type serializedMetric struct
  function ToBytes (line 32) | func ToBytes(m telegraf.Metric) ([]byte, error) {
  function FromBytes (line 55) | func FromBytes(b []byte) (telegraf.Metric, error) {

FILE: metric/init.go
  function Init (line 5) | func Init() {

FILE: metric/metric.go
  type metric (line 14) | type metric struct
    method String (line 90) | func (m *metric) String() string {
    method Name (line 94) | func (m *metric) Name() string {
    method Tags (line 98) | func (m *metric) Tags() map[string]string {
    method TagList (line 106) | func (m *metric) TagList() []*telegraf.Tag {
    method Fields (line 110) | func (m *metric) Fields() map[string]interface{} {
    method FieldList (line 119) | func (m *metric) FieldList() []*telegraf.Field {
    method Time (line 123) | func (m *metric) Time() time.Time {
    method Type (line 127) | func (m *metric) Type() telegraf.ValueType {
    method SetName (line 131) | func (m *metric) SetName(name string) {
    method AddPrefix (line 135) | func (m *metric) AddPrefix(prefix string) {
    method AddSuffix (line 139) | func (m *metric) AddSuffix(suffix string) {
    method AddTag (line 143) | func (m *metric) AddTag(key, value string) {
    method HasTag (line 163) | func (m *metric) HasTag(key string) bool {
    method GetTag (line 172) | func (m *metric) GetTag(key string) (string, bool) {
    method Tag (line 181) | func (m *metric) Tag(key string) string {
    method RemoveTag (line 186) | func (m *metric) RemoveTag(key string) {
    method AddField (line 197) | func (m *metric) AddField(key string, value interface{}) {
    method HasField (line 207) | func (m *metric) HasField(key string) bool {
    method GetField (line 216) | func (m *metric) GetField(key string) (interface{}, bool) {
    method Field (line 225) | func (m *metric) Field(key string) interface{} {
    method RemoveField (line 232) | func (m *metric) RemoveField(key string) {
    method SetTime (line 243) | func (m *metric) SetTime(t time.Time) {
    method SetType (line 247) | func (m *metric) SetType(t telegraf.ValueType) {
    method Copy (line 251) | func (m *metric) Copy() telegraf.Metric {
    method HashID (line 270) | func (m *metric) HashID() uint64 {
    method HashIDWithFieldsFiltered (line 283) | func (m *metric) HashIDWithFieldsFiltered(excludedTags, excludedFields...
    method Accept (line 309) | func (*metric) Accept() {
    method Reject (line 312) | func (*metric) Reject() {
    method Drop (line 315) | func (*metric) Drop() {
  function New (line 23) | func New(
  function FromMetric (line 71) | func FromMetric(other telegraf.Metric) telegraf.Metric {
  function convertField (line 319) | func convertField(v interface{}) interface{} {

FILE: metric/metric_test.go
  function TestNewMetric (line 12) | func TestNewMetric(t *testing.T) {
  function baseMetric (line 33) | func baseMetric() telegraf.Metric {
  function TestHasTag (line 44) | func TestHasTag(t *testing.T) {
  function TestAddTagOverwrites (line 54) | func TestAddTagOverwrites(t *testing.T) {
  function TestRemoveTagNoEffectOnMissingTags (line 66) | func TestRemoveTagNoEffectOnMissingTags(t *testing.T) {
  function TestGetTag (line 78) | func TestGetTag(t *testing.T) {
  function TestHasField (line 95) | func TestHasField(t *testing.T) {
  function TestAddFieldOverwrites (line 105) | func TestAddFieldOverwrites(t *testing.T) {
  function TestAddFieldChangesType (line 118) | func TestAddFieldChangesType(t *testing.T) {
  function TestRemoveFieldNoEffectOnMissingFields (line 131) | func TestRemoveFieldNoEffectOnMissingFields(t *testing.T) {
  function TestGetField (line 143) | func TestGetField(t *testing.T) {
  function TestTagList_Sorted (line 160) | func TestTagList_Sorted(t *testing.T) {
  function TestEquals (line 173) | func TestEquals(t *testing.T) {
  function TestHashID (line 204) | func TestHashID(t *testing.T) {
  function TestHashID_Consistency (line 237) | func TestHashID_Consistency(t *testing.T) {
  function TestHashID_Delimiting (line 270) | func TestHashID_Delimiting(t *testing.T) {
  function TestSetName (line 296) | func TestSetName(t *testing.T) {
  function TestAddPrefix (line 302) | func TestAddPrefix(t *testing.T) {
  function TestAddSuffix (line 310) | func TestAddSuffix(t *testing.T) {
  function TestValueType (line 318) | func TestValueType(t *testing.T) {

FILE: metric/series_grouper.go
  function NewSeriesGrouper (line 23) | func NewSeriesGrouper() *SeriesGrouper {
  type SeriesGrouper (line 31) | type SeriesGrouper struct
    method Add (line 39) | func (g *SeriesGrouper) Add(
    method AddMetric (line 65) | func (g *SeriesGrouper) AddMetric(
    method Metrics (line 82) | func (g *SeriesGrouper) Metrics() []telegraf.Metric {
  function groupID (line 86) | func groupID(seed maphash.Seed, measurement string, taglist []*telegraf....

FILE: metric/series_grouper_test.go
  function BenchmarkGroupID (line 33) | func BenchmarkGroupID(b *testing.B) {

FILE: metric/tracking.go
  function WithTracking (line 16) | func WithTracking(metric telegraf.Metric, fn NotifyFunc) (telegraf.Metri...
  function WithGroupTracking (line 22) | func WithGroupTracking(metric []telegraf.Metric, fn NotifyFunc) ([]teleg...
  function newTrackingID (line 31) | func newTrackingID() telegraf.TrackingID {
  type trackingData (line 35) | type trackingData struct
    method incr (line 44) | func (d *trackingData) incr() {
    method RefCount (line 48) | func (d *trackingData) RefCount() int32 {
    method decr (line 52) | func (d *trackingData) decr() int32 {
    method accept (line 56) | func (d *trackingData) accept() {
    method reject (line 60) | func (d *trackingData) reject() {
    method notify (line 64) | func (d *trackingData) notify() {
    method ID (line 189) | func (d *trackingData) ID() telegraf.TrackingID {
  type trackingMetric (line 74) | type trackingMetric struct
    method Copy (line 125) | func (m *trackingMetric) Copy() telegraf.Metric {
    method Accept (line 133) | func (m *trackingMetric) Accept() {
    method Reject (line 138) | func (m *trackingMetric) Reject() {
    method Drop (line 143) | func (m *trackingMetric) Drop() {
    method decr (line 147) | func (m *trackingMetric) decr() {
    method TrackingID (line 162) | func (m *trackingMetric) TrackingID() telegraf.TrackingID {
    method TrackingData (line 166) | func (m *trackingMetric) TrackingData() telegraf.TrackingData {
    method Unwrap (line 171) | func (m *trackingMetric) Unwrap() telegraf.Metric {
  function newTrackingMetric (line 79) | func newTrackingMetric(metric telegraf.Metric, fn NotifyFunc) (telegraf....
  function newTrackingMetricGroup (line 97) | func newTrackingMetricGroup(group []telegraf.Metric, fn NotifyFunc) ([]t...
  type deliveryInfo (line 175) | type deliveryInfo struct
    method ID (line 181) | func (r *deliveryInfo) ID() telegraf.TrackingID {
    method Delivered (line 185) | func (r *deliveryInfo) Delivered() bool {

FILE: metric/tracking_test.go
  function mustMetric (line 13) | func mustMetric(
  type deliveries (line 24) | type deliveries struct
    method onDelivery (line 28) | func (d *deliveries) onDelivery(info telegraf.DeliveryInfo) {
  function TestNewTrackingID (line 32) | func TestNewTrackingID(t *testing.T) {
  function TestTracking (line 69) | func TestTracking(t *testing.T) {
  function TestGroupTracking (line 177) | func TestGroupTracking(t *testing.T) {

FILE: migrations/common/filter_options.go
  type FilterOptions (line 3) | type FilterOptions struct

FILE: migrations/common/input_options.go
  type InputOptions (line 3) | type InputOptions struct
    method Migrate (line 31) | func (io *InputOptions) Migrate() {

FILE: migrations/common/output_options.go
  type OutputOptions (line 3) | type OutputOptions struct
    method Migrate (line 23) | func (oo *OutputOptions) Migrate() {

FILE: migrations/general_common_tls/migration.go
  function migrate (line 13) | func migrate(category, name string, tbl *ast.Table) ([]byte, string, err...
  function init (line 80) | func init() {

FILE: migrations/general_common_tls/migration_test.go
  function TestNoMigration (line 17) | func TestNoMigration(t *testing.T) {
  function TestConflict (line 104) | func TestConflict(t *testing.T) {
  function TestCases (line 166) | func TestCases(t *testing.T) {
  type MockupInputPlugin (line 217) | type MockupInputPlugin struct
    method SampleConfig (line 223) | func (*MockupInputPlugin) SampleConfig() string {
    method Gather (line 226) | func (*MockupInputPlugin) Gather(telegraf.Accumulator) error {

FILE: migrations/general_metricfilter/migration.go
  function migrate (line 14) | func migrate(category, name string, tbl *ast.Table) ([]byte, string, err...
  function init (line 110) | func init() {

FILE: migrations/general_metricfilter/migration_test.go
  function TestNoMigration (line 16) | func TestNoMigration(t *testing.T) {
  function TestCases (line 35) | func TestCases(t *testing.T) {
  type MockupInputPlugin (line 86) | type MockupInputPlugin struct
    method SampleConfig (line 91) | func (*MockupInputPlugin) SampleConfig() string {
    method Gather (line 94) | func (*MockupInputPlugin) Gather(telegraf.Accumulator) error {

FILE: migrations/global_agent/migration.go
  function migrate (line 13) | func migrate(name string, tbl *ast.Table) ([]byte, string, error) {
  function init (line 73) | func init() {

FILE: migrations/global_agent/migration_test.go
  function TestNoMigration (line 14) | func TestNoMigration(t *testing.T) {
  function TestLogTargetEventlogCollision (line 45) | func TestLogTargetEventlogCollision(t *testing.T) {
  function TestCases (line 60) | func TestCases(t *testing.T) {

FILE: migrations/inputs_KNXListener/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 28) | func init() {

FILE: migrations/inputs_KNXListener/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 29) | func TestCases(t *testing.T) {

FILE: migrations/inputs_amqp_consumer/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 64) | func init() {

FILE: migrations/inputs_amqp_consumer/migration_test.go
  function TestNoMigration (line 16) | func TestNoMigration(t *testing.T) {
  function TestCases (line 28) | func TestCases(t *testing.T) {

FILE: migrations/inputs_cassandra/migration.go
  type cassandra (line 17) | type cassandra struct
  type metricConfig (line 25) | type metricConfig struct
  type jolokiaAgent (line 32) | type jolokiaAgent struct
    method fillCommon (line 193) | func (j *jolokiaAgent) fillCommon(o common.InputOptions) {
  function migrate (line 61) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 245) | func init() {

FILE: migrations/inputs_cassandra/migration_test.go
  function TestCases (line 15) | func TestCases(t *testing.T) {

FILE: migrations/inputs_cisco_telemetry_gnmi/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 29) | func init() {

FILE: migrations/inputs_cisco_telemetry_gnmi/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 29) | func TestCases(t *testing.T) {

FILE: migrations/inputs_cloudwatch/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 68) | func init() {

FILE: migrations/inputs_cloudwatch/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_consul/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 60) | func init() {

FILE: migrations/inputs_consul/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestDataCentreConflict (line 27) | func TestDataCentreConflict(t *testing.T) {
  function TestCases (line 41) | func TestCases(t *testing.T) {

FILE: migrations/inputs_disk/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 65) | func init() {

FILE: migrations/inputs_disk/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 40) | func TestCases(t *testing.T) {

FILE: migrations/inputs_docker/migration.go
  function migrate (line 15) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 149) | func init() {

FILE: migrations/inputs_docker/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 39) | func TestCases(t *testing.T) {

FILE: migrations/inputs_elasticsearch/migration.go
  function migrate (line 13) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 56) | func init() {

FILE: migrations/inputs_elasticsearch/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestTimeoutConflict (line 27) | func TestTimeoutConflict(t *testing.T) {
  function TestCases (line 42) | func TestCases(t *testing.T) {

FILE: migrations/inputs_filecount/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 65) | func init() {

FILE: migrations/inputs_filecount/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_gnmi/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 71) | func init() {

FILE: migrations/inputs_gnmi/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestEnableTLSConflict (line 27) | func TestEnableTLSConflict(t *testing.T) {
  function TestCases (line 50) | func TestCases(t *testing.T) {

FILE: migrations/inputs_http/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 60) | func init() {

FILE: migrations/inputs_http/migration_test.go
  function TestNoMigration (line 16) | func TestNoMigration(t *testing.T) {
  function TestBearerToken (line 28) | func TestBearerToken(t *testing.T) {
  function TestCases (line 45) | func TestCases(t *testing.T) {

FILE: migrations/inputs_http_listener/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 29) | func init() {

FILE: migrations/inputs_http_listener/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 29) | func TestCases(t *testing.T) {

FILE: migrations/inputs_http_listener_v2/migration.go
  function migrate (line 17) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 117) | func init() {

FILE: migrations/inputs_http_listener_v2/migration_test.go
  function TestNoMigration (line 16) | func TestNoMigration(t *testing.T) {
  function TestPortConflict (line 28) | func TestPortConflict(t *testing.T) {
  function TestCases (line 42) | func TestCases(t *testing.T) {

FILE: migrations/inputs_http_response/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 65) | func init() {

FILE: migrations/inputs_http_response/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_httpjson/migration.go
  constant msg (line 15) | msg = `
  type httpJSON (line 21) | type httpJSON struct
  function migrate (line 34) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 141) | func init() {

FILE: migrations/inputs_httpjson/migration_test.go
  function TestCases (line 23) | func TestCases(t *testing.T) {
  function TestParsing (line 71) | func TestParsing(t *testing.T) {

FILE: migrations/inputs_icinga2/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 65) | func init() {

FILE: migrations/inputs_icinga2/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_influxdb_listener/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 42) | func init() {

FILE: migrations/inputs_influxdb_listener/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_internet_speed/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 61) | func init() {

FILE: migrations/inputs_internet_speed/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestEnableFileDownloadConflict (line 27) | func TestEnableFileDownloadConflict(t *testing.T) {
  function TestCases (line 40) | func TestCases(t *testing.T) {

FILE: migrations/inputs_io/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 30) | func init() {

FILE: migrations/inputs_io/migration_test.go
  function TestCases (line 15) | func TestCases(t *testing.T) {

FILE: migrations/inputs_jolokia/migration.go
  type jolokia (line 15) | type jolokia struct
  type server (line 26) | type server struct
  type metric (line 34) | type metric struct
  type jolokiaAgent (line 42) | type jolokiaAgent struct
    method fillCommon (line 240) | func (j *jolokiaAgent) fillCommon(o common.InputOptions) {
  type jolokiaProxy (line 72) | type jolokiaProxy struct
    method fillCommon (line 295) | func (j *jolokiaProxy) fillCommon(o common.InputOptions) {
  type targetConfig (line 103) | type targetConfig struct
  type metricConfig (line 109) | type metricConfig struct
  function migrate (line 118) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 351) | func init() {

FILE: migrations/inputs_jolokia/migration_test.go
  function TestCases (line 16) | func TestCases(t *testing.T) {

FILE: migrations/inputs_kafka_consumer_legacy/migration.go
  constant msg (line 9) | msg = `
  function migrate (line 14) | func migrate(_ *ast.Table) ([]byte, string, error) {
  function init (line 19) | func init() {

FILE: migrations/inputs_kafka_consumer_legacy/migration_test.go
  function TestNoMigration (line 13) | func TestNoMigration(t *testing.T) {

FILE: migrations/inputs_kube_inventory/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 48) | func init() {

FILE: migrations/inputs_kube_inventory/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_kubernetes/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 48) | func init() {

FILE: migrations/inputs_kubernetes/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_logparser/migration.go
  function migrate (line 13) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function getGrok (line 132) | func getGrok(logparserPlugin map[string]interface{}) (map[string]interfa...
  function init (line 147) | func init() {

FILE: migrations/inputs_logparser/migration_test.go
  function TestCases (line 16) | func TestCases(t *testing.T) {

FILE: migrations/inputs_mqtt_consumer/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 41) | func init() {

FILE: migrations/inputs_mqtt_consumer/migration_test.go
  function TestNoMigration (line 16) | func TestNoMigration(t *testing.T) {
  function TestCases (line 115) | func TestCases(t *testing.T) {

FILE: migrations/inputs_nats_consumer/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 41) | func init() {

FILE: migrations/inputs_nats_consumer/migration_test.go
  function TestNoMigration (line 16) | func TestNoMigration(t *testing.T) {
  function TestCases (line 89) | func TestCases(t *testing.T) {

FILE: migrations/inputs_nsq_consumer/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 65) | func init() {

FILE: migrations/inputs_nsq_consumer/migration_test.go
  function TestNoMigration (line 16) | func TestNoMigration(t *testing.T) {
  function TestCases (line 28) | func TestCases(t *testing.T) {

FILE: migrations/inputs_ntpq/migration.go
  function migrate (line 16) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 76) | func init() {

FILE: migrations/inputs_ntpq/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_openldap/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 90) | func init() {

FILE: migrations/inputs_openldap/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_procstat/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 112) | func init() {

FILE: migrations/inputs_procstat/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_rabbitmq/migration.go
  function migrate (line 15) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 100) | func init() {

FILE: migrations/inputs_rabbitmq/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestNameConflict (line 27) | func TestNameConflict(t *testing.T) {
  function TestCases (line 50) | func TestCases(t *testing.T) {

FILE: migrations/inputs_sflow/migration.go
  constant msg (line 13) | msg = `
  type sflow (line 19) | type sflow struct
  function migrate (line 26) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 66) | func init() {

FILE: migrations/inputs_sflow/migration_test.go
  function TestCases (line 16) | func TestCases(t *testing.T) {

FILE: migrations/inputs_smart/migration.go
  function migrate (line 12) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 43) | func init() {

FILE: migrations/inputs_smart/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestPathConflict (line 27) | func TestPathConflict(t *testing.T) {
  function TestCases (line 41) | func TestCases(t *testing.T) {

FILE: migrations/inputs_snmp_legacy/migration.go
  constant msg (line 9) | msg = `
  function migrate (line 14) | func migrate(_ *ast.Table) ([]byte, string, error) {
  function init (line 19) | func init() {

FILE: migrations/inputs_snmp_legacy/migration_test.go
  function TestNoMigration (line 13) | func TestNoMigration(t *testing.T) {

FILE: migrations/inputs_sqlserver/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 74) | func init() {

FILE: migrations/inputs_sqlserver/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_statsd/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 70) | func init() {

FILE: migrations/inputs_statsd/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/inputs_tcp_listener/migration.go
  constant allowPendingMessagesMsg (line 12) | allowPendingMessagesMsg = `
  type tcpListener (line 18) | type tcpListener
  function migrate (line 21) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 65) | func init() {

FILE: migrations/inputs_tcp_listener/migration_test.go
  function TestCases (line 16) | func TestCases(t *testing.T) {

FILE: migrations/inputs_udp_listener/migration.go
  constant allowPendingMessagesMsg (line 12) | allowPendingMessagesMsg = `
  constant udpPacketSizeMsg (line 17) | udpPacketSizeMsg = `
  type udpListener (line 22) | type udpListener
  function migrate (line 25) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 71) | func init() {

FILE: migrations/inputs_udp_listener/migration_test.go
  function TestCases (line 16) | func TestCases(t *testing.T) {

FILE: migrations/inputs_vsphere/migration.go
  function migrate (line 11) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 41) | func init() {

FILE: migrations/inputs_vsphere/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/outputs_amqp/migration.go
  constant messagePrefix (line 10) | messagePrefix = "could not migrate one or more options from the 'outputs...
  function migrate (line 12) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function getHeaders (line 77) | func getHeaders(plugin map[string]interface{}) map[string]string {
  function getBrokers (line 88) | func getBrokers(plugin map[string]interface{}) []interface{} {
  function init (line 100) | func init() {

FILE: migrations/outputs_amqp/migration_test.go
  function TestCases (line 16) | func TestCases(t *testing.T) {

FILE: migrations/outputs_influxdb/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 72) | func init() {

FILE: migrations/outputs_influxdb/migration_test.go
  function TestNoMigration (line 15) | func TestNoMigration(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/outputs_kinesis/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function getPartition (line 102) | func getPartition(plugin map[string]interface{}) (map[string]interface{}...
  function init (line 120) | func init() {

FILE: migrations/outputs_kinesis/migration_test.go
  function TestPartitionKeyConflict (line 16) | func TestPartitionKeyConflict(t *testing.T) {
  function TestPartitionMethodConflict (line 31) | func TestPartitionMethodConflict(t *testing.T) {
  function TestCases (line 46) | func TestCases(t *testing.T) {

FILE: migrations/outputs_librato/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 57) | func init() {

FILE: migrations/outputs_librato/migration_test.go
  function TestCases (line 15) | func TestCases(t *testing.T) {

FILE: migrations/outputs_mqtt/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 64) | func init() {

FILE: migrations/outputs_mqtt/migration_test.go
  function TestNoMigration (line 16) | func TestNoMigration(t *testing.T) {
  function TestCases (line 28) | func TestCases(t *testing.T) {

FILE: migrations/outputs_remotefile/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 59) | func init() {

FILE: migrations/outputs_remotefile/migration_test.go
  function TestCases (line 16) | func TestCases(t *testing.T) {

FILE: migrations/outputs_riemann_legacy/migration.go
  type riemannLegacy (line 12) | type riemannLegacy struct
  type riemann (line 20) | type riemann struct
    method fillCommon (line 65) | func (j *riemann) fillCommon(o common.OutputOptions) {
  function migrate (line 38) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 104) | func init() {

FILE: migrations/outputs_riemann_legacy/migration_test.go
  function TestCases (line 15) | func TestCases(t *testing.T) {

FILE: migrations/outputs_wavefront/migration.go
  function migrate (line 14) | func migrate(tbl *ast.Table) ([]byte, string, error) {
  function init (line 78) | func init() {

FILE: migrations/outputs_wavefront/migration_test.go
  function TestCannotMigrateStringToNumber (line 15) | func TestCannotMigrateStringToNumber(t *testing.T) {
  function TestCases (line 27) | func TestCases(t *testing.T) {

FILE: migrations/registry.go
  type PluginMigrationFunc (line 12) | type PluginMigrationFunc
  function AddPluginMigration (line 16) | func AddPluginMigration(name string, f PluginMigrationFunc) {
  type PluginOptionMigrationFunc (line 23) | type PluginOptionMigrationFunc
  function AddPluginOptionMigration (line 27) | func AddPluginOptionMigration(name string, f PluginOptionMigrationFunc) {
  type GeneralMigrationFunc (line 34) | type GeneralMigrationFunc
  function AddGeneralMigration (line 38) | func AddGeneralMigration(f GeneralMigrationFunc) {
  type GlobalMigrationFunc (line 42) | type GlobalMigrationFunc
  function AddGlobalMigration (line 46) | func AddGlobalMigration(f GlobalMigrationFunc) {

FILE: migrations/utils.go
  type pluginTOMLStruct (line 7) | type pluginTOMLStruct
    method Add (line 17) | func (p *pluginTOMLStruct) Add(category, name string, plugin interface...
  function CreateTOMLStruct (line 9) | func CreateTOMLStruct(category, name string) pluginTOMLStruct {
  function AsStringSlice (line 22) | func AsStringSlice(raw interface{}) ([]string, error) {

FILE: models/buffer.go
  type Transaction (line 20) | type Transaction struct
    method AcceptAll (line 37) | func (tx *Transaction) AcceptAll() {
    method KeepAll (line 44) | func (*Transaction) KeepAll() {}
    method InferKeep (line 46) | func (tx *Transaction) InferKeep() []int {
  type Buffer (line 64) | type Buffer interface
  type BufferStats (line 88) | type BufferStats struct
    method metricAdded (line 159) | func (b *BufferStats) metricAdded(count int64) {
    method metricWritten (line 163) | func (b *BufferStats) metricWritten(m telegraf.Metric) {
    method metricRejected (line 169) | func (b *BufferStats) metricRejected(m telegraf.Metric) {
    method metricDropped (line 175) | func (b *BufferStats) metricDropped(m telegraf.Metric) {
  function NewBuffer (line 100) | func NewBuffer(name, id, alias string, capacity int, strategy, path stri...
  function NewBufferStats (line 121) | func NewBufferStats(tags map[string]string, capacity int) BufferStats {

FILE: models/buffer_disk.go
  type DiskBuffer (line 18) | type DiskBuffer struct
    method Len (line 59) | func (b *DiskBuffer) Len() int {
    method length (line 65) | func (b *DiskBuffer) length() int {
    method entries (line 69) | func (b *DiskBuffer) entries() int {
    method readIndex (line 77) | func (b *DiskBuffer) readIndex() uint64 {
    method writeIndex (line 86) | func (b *DiskBuffer) writeIndex() uint64 {
    method Add (line 94) | func (b *DiskBuffer) Add(metrics ...telegraf.Metric) int {
    method BeginTransaction (line 122) | func (b *DiskBuffer) BeginTransaction(batchSize int) *Transaction {
    method EndTransaction (line 184) | func (b *DiskBuffer) EndTransaction(tx *Transaction) {
    method Stats (line 257) | func (b *DiskBuffer) Stats() BufferStats {
    method Close (line 261) | func (b *DiskBuffer) Close() error {
    method resetBatch (line 268) | func (b *DiskBuffer) resetBatch() {
  function NewDiskBuffer (line 38) | func NewDiskBuffer(id, path string, stats BufferStats, diskSync bool) (*...

FILE: models/buffer_disk_test.go
  function TestDiskBufferTruncate (line 19) | func TestDiskBufferTruncate(t *testing.T) {
  function TestDiskBufferEmptyReuse (line 77) | func TestDiskBufferEmptyReuse(t *testing.T) {
  function TestDiskBufferEmptyClose (line 125) | func TestDiskBufferEmptyClose(t *testing.T) {
  function TestDiskBufferRetainsTrackingInformation (line 180) | func TestDiskBufferRetainsTrackingInformation(t *testing.T) {
  function TestDiskBufferTrackingDroppedFromOldWal (line 200) | func TestDiskBufferTrackingDroppedFromOldWal(t *testing.T) {
  function TestDiskBufferTrackingOnOutputOutage (line 267) | func TestDiskBufferTrackingOnOutputOutage(t *testing.T) {

FILE: models/buffer_mem.go
  type MemoryBuffer (line 10) | type MemoryBuffer struct
    method Len (line 32) | func (b *MemoryBuffer) Len() int {
    method Add (line 39) | func (b *MemoryBuffer) Add(metrics ...telegraf.Metric) int {
    method BeginTransaction (line 54) | func (b *MemoryBuffer) BeginTransaction(batchSize int) *Transaction {
    method EndTransaction (line 78) | func (b *MemoryBuffer) EndTransaction(tx *Transaction) {
    method Close (line 122) | func (*MemoryBuffer) Close() error {
    method Stats (line 126) | func (b *MemoryBuffer) Stats() BufferStats {
    method length (line 130) | func (b *MemoryBuffer) length() int {
    method addMetric (line 134) | func (b *MemoryBuffer) addMetric(m telegraf.Metric) int {
    method next (line 161) | func (b *MemoryBuffer) next(index int) int {
    method nextby (line 170) | func (b *MemoryBuffer) nextby(index, count int) int {
    method prevby (line 177) | func (b *MemoryBuffer) prevby(index, count int) int {
    method resetBatch (line 187) | func (b *MemoryBuffer) resetBatch() {
  function NewMemoryBuffer (line 24) | func NewMemoryBuffer(capacity int, stats BufferStats) (*MemoryBuffer, er...

FILE: models/buffer_mem_test.go
  function TestMemoryBufferAcceptCallsMetricAccept (line 12) | func TestMemoryBufferAcceptCallsMetricAccept(t *testing.T) {
  function BenchmarkMemoryBufferAddMetrics (line 34) | func BenchmarkMemoryBufferAddMetrics(b *testing.B) {

FILE: models/buffer_suite_test.go
  type BufferSuiteTest (line 15) | type BufferSuiteTest struct
    method SetupTest (line 23) | func (s *BufferSuiteTest) SetupTest() {
    method TearDownTest (line 35) | func (s *BufferSuiteTest) TearDownTest() {
    method newTestBuffer (line 50) | func (s *BufferSuiteTest) newTestBuffer(capacity int) Buffer {
    method TestBufferLenEmpty (line 61) | func (s *BufferSuiteTest) TestBufferLenEmpty() {
    method TestBufferLenOne (line 68) | func (s *BufferSuiteTest) TestBufferLenOne() {
    method TestBufferLenFull (line 77) | func (s *BufferSuiteTest) TestBufferLenFull() {
    method TestBufferLenOverfill (line 86) | func (s *BufferSuiteTest) TestBufferLenOverfill() {
    method TestBufferBatchLenZero (line 99) | func (s *BufferSuiteTest) TestBufferBatchLenZero() {
    method TestBufferBatchLenBufferEmpty (line 107) | func (s *BufferSuiteTest) TestBufferBatchLenBufferEmpty() {
    method TestBufferBatchLenUnderfill (line 115) | func (s *BufferSuiteTest) TestBufferBatchLenUnderfill() {
    method TestBufferBatchLenFill (line 125) | func (s *BufferSuiteTest) TestBufferBatchLenFill() {
    method TestBufferBatchLenExact (line 135) | func (s *BufferSuiteTest) TestBufferBatchLenExact() {
    method TestBufferBatchLenLargerThanBuffer (line 145) | func (s *BufferSuiteTest) TestBufferBatchLenLargerThanBuffer() {
    method TestBufferBatchWrap (line 155) | func (s *BufferSuiteTest) TestBufferBatchWrap() {
    method TestBufferBatchLatest (line 169) | func (s *BufferSuiteTest) TestBufferBatchLatest() {
    method TestBufferBatchLatestWrap (line 185) | func (s *BufferSuiteTest) TestBufferBatchLatestWrap() {
    method TestBufferMultipleBatch (line 207) | func (s *BufferSuiteTest) TestBufferMultipleBatch() {
    method TestBufferRejectWithRoom (line 237) | func (s *BufferSuiteTest) TestBufferRejectWithRoom() {
    method TestBufferRejectNothingNewFull (line 263) | func (s *BufferSuiteTest) TestBufferRejectNothingNewFull() {
    method TestBufferRejectNoRoom (line 289) | func (s *BufferSuiteTest) TestBufferRejectNoRoom() {
    method TestBufferRejectRoomExact (line 323) | func (s *BufferSuiteTest) TestBufferRejectRoomExact() {
    method TestBufferRejectRoomOverwriteOld (line 350) | func (s *BufferSuiteTest) TestBufferRejectRoomOverwriteOld() {
    method TestBufferRejectPartialRoom (line 382) | func (s *BufferSuiteTest) TestBufferRejectPartialRoom() {
    method TestBufferRejectNewMetricsWrapped (line 414) | func (s *BufferSuiteTest) TestBufferRejectNewMetricsWrapped() {
    method TestBufferRejectWrapped (line 464) | func (s *BufferSuiteTest) TestBufferRejectWrapped() {
    method TestBufferRejectAdjustFirst (line 502) | func (s *BufferSuiteTest) TestBufferRejectAdjustFirst() {
    method TestBufferAddDropsOverwrittenMetrics (line 561) | func (s *BufferSuiteTest) TestBufferAddDropsOverwrittenMetrics() {
    method TestBufferAcceptRemovesBatch (line 577) | func (s *BufferSuiteTest) TestBufferAcceptRemovesBatch() {
    method TestBufferRejectLeavesBatch (line 589) | func (s *BufferSuiteTest) TestBufferRejectLeavesBatch() {
    method TestBufferAcceptWritesOverwrittenBatch (line 601) | func (s *BufferSuiteTest) TestBufferAcceptWritesOverwrittenBatch() {
    method TestBufferBatchRejectDropsOverwrittenBatch (line 616) | func (s *BufferSuiteTest) TestBufferBatchRejectDropsOverwrittenBatch() {
    method TestBufferMetricsOverwriteBatchAccept (line 635) | func (s *BufferSuiteTest) TestBufferMetricsOverwriteBatchAccept() {
    method TestBufferMetricsOverwriteBatchReject (line 649) | func (s *BufferSuiteTest) TestBufferMetricsOverwriteBatchReject() {
    method TestBufferMetricsBatchAcceptRemoved (line 667) | func (s *BufferSuiteTest) TestBufferMetricsBatchAcceptRemoved() {
    method TestBufferWrapWithBatch (line 685) | func (s *BufferSuiteTest) TestBufferWrapWithBatch() {
    method TestBufferBatchNotRemoved (line 701) | func (s *BufferSuiteTest) TestBufferBatchNotRemoved() {
    method TestBufferBatchRejectAcceptNoop (line 712) | func (s *BufferSuiteTest) TestBufferBatchRejectAcceptNoop() {
    method TestBufferAddCallsMetricRejectWhenNoBatch (line 726) | func (s *BufferSuiteTest) TestBufferAddCallsMetricRejectWhenNoBatch() {
    method TestBufferAddCallsMetricRejectWhenNotInBatch (line 746) | func (s *BufferSuiteTest) TestBufferAddCallsMetricRejectWhenNotInBatch...
    method TestBufferRejectCallsMetricRejectWithOverwritten (line 770) | func (s *BufferSuiteTest) TestBufferRejectCallsMetricRejectWithOverwri...
    method TestBufferAddOverwriteAndReject (line 794) | func (s *BufferSuiteTest) TestBufferAddOverwriteAndReject() {
    method TestBufferAddOverwriteAndRejectOffset (line 821) | func (s *BufferSuiteTest) TestBufferAddOverwriteAndRejectOffset() {
    method TestBufferRejectEmptyBatch (line 858) | func (s *BufferSuiteTest) TestBufferRejectEmptyBatch() {
    method TestBufferFlushedPartial (line 874) | func (s *BufferSuiteTest) TestBufferFlushedPartial() {
    method TestBufferFlushedFull (line 889) | func (s *BufferSuiteTest) TestBufferFlushedFull() {
    method TestPartialWriteBackToFront (line 903) | func (s *BufferSuiteTest) TestPartialWriteBackToFront() {
  function TestMemoryBufferSuite (line 42) | func TestMemoryBufferSuite(t *testing.T) {
  function TestDiskBufferSuite (line 46) | func TestDiskBufferSuite(t *testing.T) {
  type mockMetric (line 937) | type mockMetric struct
    method Accept (line 944) | func (m *mockMetric) Accept() {
    method Reject (line 950) | func (m *mockMetric) Reject() {
    method Drop (line 956) | func (m *mockMetric) Drop() {

FILE: models/common.go
  function logName (line 11) | func logName(pluginType, name, alias string) string {
  function SetLoggerOnPlugin (line 18) | func SetLoggerOnPlugin(i interface{}, logger telegraf.Logger) {
  function SetStatisticsOnPlugin (line 41) | func SetStatisticsOnPlugin(plugin interface{}, logger telegraf.Logger, t...

FILE: models/filter.go
  type TagFilter (line 19) | type TagFilter struct
    method Compile (line 25) | func (tf *TagFilter) Compile() error {
  type Filter (line 35) | type Filter struct
    method Compile (line 67) | func (f *Filter) Compile() error {
    method Select (line 131) | func (f *Filter) Select(metric telegraf.Metric) (bool, error) {
    method Modify (line 165) | func (f *Filter) Modify(metric telegraf.Metric) {
    method IsActive (line 175) | func (f *Filter) IsActive() bool {
    method shouldNamePass (line 181) | func (f *Filter) shouldNamePass(key string) bool {
    method shouldTagsPass (line 203) | func (f *Filter) shouldTagsPass(tags []*telegraf.Tag) bool {
    method filterFields (line 208) | func (f *Filter) filterFields(metric telegraf.Metric) {
    method filterTags (line 222) | func (f *Filter) filterTags(metric telegraf.Metric) {
    method compileMetricFilter (line 236) | func (f *Filter) compileMetricFilter() error {
  function ShouldPassFilters (line 287) | func ShouldPassFilters(include, exclude filter.Filter, key string) bool {
  function ShouldTagsPass (line 298) | func ShouldTagsPass(passFilters, dropFilters []TagFilter, tags []*telegr...

FILE: models/filter_test.go
  function TestFilterApplyEmpty (line 13) | func TestFilterApplyEmpty(t *testing.T) {
  function TestFilterApplyTagsDontPass (line 27) | func TestFilterApplyTagsDontPass(t *testing.T) {
  function TestFilterApplyDeleteFields (line 50) | func TestFilterApplyDeleteFields(t *testing.T) {
  function TestFilterApplyDeleteAllFields (line 72) | func TestFilterApplyDeleteAllFields(t *testing.T) {
  function TestFilterEmpty (line 94) | func TestFilterEmpty(t *testing.T) {
  function TestFilterNamePass (line 114) | func TestFilterNamePass(t *testing.T) {
  function TestFilterNamePass_WithSeparator (line 148) | func TestFilterNamePass_WithSeparator(t *testing.T) {
  function TestFilterNameDrop (line 184) | func TestFilterNameDrop(t *testing.T) {
  function TestFilterNameDrop_WithSeparator (line 218) | func TestFilterNameDrop_WithSeparator(t *testing.T) {
  function TestFilterFieldInclude (line 254) | func TestFilterFieldInclude(t *testing.T) {
  function TestFilterFieldExclude (line 284) | func TestFilterFieldExclude(t *testing.T) {
  function TestFilterTagPass (line 314) | func TestFilterTagPass(t *testing.T) {
  function TestFilterTagDrop (line 358) | func TestFilterTagDrop(t *testing.T) {
  function TestFilterTagsNoMatches (line 402) | func TestFilterTagsNoMatches(t *testing.T) {
  function TestFilterTagsMatches (line 430) | func TestFilterTagsMatches(t *testing.T) {
  function TestFilterNamePassAndDrop (line 469) | func TestFilterNamePassAndDrop(t *testing.T) {
  function TestFilterFieldIncludeAndExclude (line 488) | func TestFilterFieldIncludeAndExclude(t *testing.T) {
  function TestFilterTagsPassAndDrop (line 507) | func TestFilterTagsPassAndDrop(t *testing.T) {
  function TestFilterMetricPass (line 546) | func TestFilterMetricPass(t *testing.T) {
  function BenchmarkFilter (line 648) | func BenchmarkFilter(b *testing.B) {

FILE: models/makemetric.go
  function makeMetric (line 8) | func makeMetric(metric telegraf.Metric, nameOverride, namePrefix, nameSu...

FILE: models/running_aggregator.go
  type RunningAggregator (line 13) | type RunningAggregator struct
    method LogName (line 93) | func (r *RunningAggregator) LogName() string {
    method Init (line 97) | func (r *RunningAggregator) Init() error {
    method ID (line 107) | func (r *RunningAggregator) ID() string {
    method Period (line 114) | func (r *RunningAggregator) Period() time.Duration {
    method EndPeriod (line 118) | func (r *RunningAggregator) EndPeriod() time.Time {
    method UpdateWindow (line 122) | func (r *RunningAggregator) UpdateWindow(start, until time.Time) {
    method MakeMetric (line 128) | func (r *RunningAggregator) MakeMetric(telegrafMetric telegraf.Metric)...
    method Add (line 144) | func (r *RunningAggregator) Add(m telegraf.Metric) bool {
    method Push (line 178) | func (r *RunningAggregator) Push(acc telegraf.Accumulator) {
    method Log (line 204) | func (r *RunningAggregator) Log() telegraf.Logger {
  function NewRunningAggregator (line 27) | func NewRunningAggregator(aggregator telegraf.Aggregator, config *Aggreg...
  type AggregatorConfig (line 75) | type AggregatorConfig struct

FILE: models/running_aggregator_test.go
  function TestRunningAggregatorAdd (line 14) | func TestRunningAggregatorAdd(t *testing.T) {
  function TestRunningAggregatorAddMetricsOutsideCurrentPeriod (line 43) | func TestRunningAggregatorAddMetricsOutsideCurrentPeriod(t *testing.T) {
  function TestRunningAggregatorAddMetricsOutsideCurrentPeriodWithGrace (line 93) | func TestRunningAggregatorAddMetricsOutsideCurrentPeriodWithGrace(t *tes...
  function TestRunningAggregatorAddAndPushOnePeriod (line 155) | func TestRunningAggregatorAddAndPushOnePeriod(t *testing.T) {
  function TestRunningAggregatorAddDropOriginal (line 184) | func TestRunningAggregatorAddDropOriginal(t *testing.T) {
  function TestRunningAggregatorAddDoesNotModifyMetric (line 217) | func TestRunningAggregatorAddDoesNotModifyMetric(t *testing.T) {
  type mockAggregator (line 243) | type mockAggregator struct
    method SampleConfig (line 247) | func (*mockAggregator) SampleConfig() string {
    method Reset (line 251) | func (t *mockAggregator) Reset() {
    method Push (line 255) | func (t *mockAggregator) Push(acc telegraf.Accumulator) {
    method Add (line 262) | func (t *mockAggregator) Add(in telegraf.Metric) {

FILE: models/running_input.go
  type RunningInput (line 20) | type RunningInput struct
    method metricFiltered (line 110) | func (*RunningInput) metricFiltered(metric telegraf.Metric) {
    method LogName (line 114) | func (r *RunningInput) LogName() string {
    method Init (line 118) | func (r *RunningInput) Init() error {
    method Start (line 139) | func (r *RunningInput) Start(acc telegraf.Accumulator) error {
    method Probe (line 178) | func (r *RunningInput) Probe() error {
    method Stop (line 186) | func (r *RunningInput) Stop() {
    method ID (line 192) | func (r *RunningInput) ID() string {
    method MakeMetric (line 199) | func (r *RunningInput) MakeMetric(metric telegraf.Metric) telegraf.Met...
    method Gather (line 246) | func (r *RunningInput) Gather(acc telegraf.Accumulator) error {
    method SetDefaultTags (line 271) | func (r *RunningInput) SetDefaultTags(tags map[string]string) {
    method Log (line 275) | func (r *RunningInput) Log() telegraf.Logger {
    method IncrGatherTimeouts (line 279) | func (r *RunningInput) IncrGatherTimeouts() {
  function NewRunningInput (line 39) | func NewRunningInput(input telegraf.Input, config *InputConfig) *Running...
  type InputConfig (line 88) | type InputConfig struct

FILE: models/running_input_test.go
  function TestRunningInputMakeMetricFilterAfterApplyingGlobalTags (line 16) | func TestRunningInputMakeMetricFilterAfterApplyingGlobalTags(t *testing....
  function TestRunningInputMakeMetricNoFields (line 47) | func TestRunningInputMakeMetricNoFields(t *testing.T) {
  function TestRunningInputMakeMetricNilFields (line 63) | func TestRunningInputMakeMetricNilFields(t *testing.T) {
  function TestRunningInputMakeMetricWithPluginTags (line 90) | func TestRunningInputMakeMetricWithPluginTags(t *testing.T) {
  function TestRunningInputMakeMetricFilteredOut (line 120) | func TestRunningInputMakeMetricFilteredOut(t *testing.T) {
  function TestRunningInputMakeMetricWithDaemonTags (line 143) | func TestRunningInputMakeMetricWithDaemonTags(t *testing.T) {
  function TestRunningInputMakeMetricNameOverride (line 172) | func TestRunningInputMakeMetricNameOverride(t *testing.T) {
  function TestRunningInputMakeMetricNamePrefix (line 197) | func TestRunningInputMakeMetricNamePrefix(t *testing.T) {
  function TestRunningInputMakeMetricNameSuffix (line 222) | func TestRunningInputMakeMetricNameSuffix(t *testing.T) {
  function TestRunningInputMetricErrorCounters (line 247) | func TestRunningInputMetricErrorCounters(t *testing.T) {
  function TestRunningInputMakeMetricWithAlwaysKeepingPluginTagsDisabled (line 276) | func TestRunningInputMakeMetricWithAlwaysKeepingPluginTagsDisabled(t *te...
  function TestRunningInputMakeMetricWithAlwaysKeepingLocalPluginTagsEnabled (line 313) | func TestRunningInputMakeMetricWithAlwaysKeepingLocalPluginTagsEnabled(t...
  function TestRunningInputMakeMetricWithAlwaysKeepingGlobalPluginTagsEnabled (line 352) | func TestRunningInputMakeMetricWithAlwaysKeepingGlobalPluginTagsEnabled(...
  function TestRunningInputMakeMetricWithAlwaysKeepingPluginTagsEnabled (line 391) | func TestRunningInputMakeMetricWithAlwaysKeepingPluginTagsEnabled(t *tes...
  function TestRunningInputMakeMetricWithGatherMetricTimeSource (line 432) | func TestRunningInputMakeMetricWithGatherMetricTimeSource(t *testing.T) {
  function TestRunningInputMakeMetricWithGatherStartTimeSource (line 453) | func TestRunningInputMakeMetricWithGatherStartTimeSource(t *testing.T) {
  function TestRunningInputMakeMetricWithGatherEndTimeSource (line 474) | func TestRunningInputMakeMetricWithGatherEndTimeSource(t *testing.T) {
  function TestRunningInputProbingFailure (line 491) | func TestRunningInputProbingFailure(t *testing.T) {
  function TestRunningInputProbingSuccess (line 502) | func TestRunningInputProbingSuccess(t *testing.T) {
  type mockInput (line 536) | type mockInput struct
    method SampleConfig (line 540) | func (*mockInput) SampleConfig() string {
    method Probe (line 544) | func (m *mockInput) Probe() error {
    method Gather (line 548) | func (*mockInput) Gather(telegraf.Accumulator) error {

FILE: models/running_output.go
  constant DefaultMetricBatchSize (line 18) | DefaultMetricBatchSize = 1000
  constant DefaultMetricBufferLimit (line 21) | DefaultMetricBufferLimit = 10000
  type OutputConfig (line 25) | type OutputConfig struct
  type RunningOutput (line 50) | type RunningOutput struct
    method LogName (line 142) | func (r *RunningOutput) LogName() string {
    method metricFiltered (line 146) | func (r *RunningOutput) metricFiltered(metric telegraf.Metric) {
    method ID (line 151) | func (r *RunningOutput) ID() string {
    method Init (line 158) | func (r *RunningOutput) Init() error {
    method Connect (line 174) | func (r *RunningOutput) Connect() error {
    method Close (line 205) | func (r *RunningOutput) Close() {
    method AddMetric (line 217) | func (r *RunningOutput) AddMetric(metric telegraf.Metric) {
    method AddMetricNoCopy (line 231) | func (r *RunningOutput) AddMetricNoCopy(metric telegraf.Metric) {
    method add (line 243) | func (r *RunningOutput) add(metric telegraf.Metric) {
    method triggerBatchCheck (line 274) | func (r *RunningOutput) triggerBatchCheck() {
    method Write (line 294) | func (r *RunningOutput) Write() error {
    method WriteBatch (line 341) | func (r *RunningOutput) WriteBatch() error {
    method doTransaction (line 364) | func (r *RunningOutput) doTransaction() error {
    method writeMetrics (line 376) | func (r *RunningOutput) writeMetrics(metrics []telegraf.Metric) error {
    method updateTransaction (line 393) | func (r *RunningOutput) updateTransaction(tx *Transaction, err error) {
    method LogBufferStatus (line 418) | func (r *RunningOutput) LogBufferStatus() {
    method Log (line 427) | func (r *RunningOutput) Log() telegraf.Logger {
    method BufferLength (line 431) | func (r *RunningOutput) BufferLength() int {
  function NewRunningOutput (line 76) | func NewRunningOutput(output telegraf.Output, config *OutputConfig, batc...

FILE: models/running_output_test.go
  function TestRunningOutputDropFilter (line 37) | func TestRunningOutputDropFilter(t *testing.T) {
  function TestRunningOutputPassFilter (line 62) | func TestRunningOutputPassFilter(t *testing.T) {
  function TestRunningOutputTagIncludeNoMatch (line 87) | func TestRunningOutputTagIncludeNoMatch(t *testing.T) {
  function TestRunningOutputTagExcludeMatch (line 108) | func TestRunningOutputTagExcludeMatch(t *testing.T) {
  function TestRunningOutputTagExcludeNoMatch (line 129) | func TestRunningOutputTagExcludeNoMatch(t *testing.T) {
  function TestRunningOutputTagIncludeMatch (line 150) | func TestRunningOutputTagIncludeMatch(t *testing.T) {
  function TestRunningOutputNameOverride (line 171) | func TestRunningOutputNameOverride(t *testing.T) {
  function TestRunningOutputNamePrefix (line 189) | func TestRunningOutputNamePrefix(t *testing.T) {
  function TestRunningOutputNameSuffix (line 207) | func TestRunningOutputNameSuffix(t *testing.T) {
  function TestRunningOutputDefault (line 225) | func TestRunningOutputDefault(t *testing.T) {
  function TestRunningOutputWriteFail (line 246) | func TestRunningOutputWriteFail(t *testing.T) {
  function TestRunningOutputWriteFailOrder (line 278) | func TestRunningOutputWriteFailOrder(t *testing.T) {
  function TestRunningOutputWriteFailOrder2 (line 316) | func TestRunningOutputWriteFailOrder2(t *testing.T) {
  function TestRunningOutputWriteFailOrder3 (line 379) | func TestRunningOutputWriteFailOrder3(t *testing.T) {
  function TestRunningOutputBufferFullyDrained (line 418) | func TestRunningOutputBufferFullyDrained(t *testing.T) {
  function TestRunningOutputBufferImmediateRestartOnContinuousWrite (line 500) | func TestRunningOutputBufferImmediateRestartOnContinuousWrite(t *testing...
  function TestRunningOutputNoRetriggerOnError (line 579) | func TestRunningOutputNoRetriggerOnError(t *testing.T) {
  function TestRunningOutputNoRetriggerOnSuccessfulPartialWriteError (line 641) | func TestRunningOutputNoRetriggerOnSuccessfulPartialWriteError(t *testin...
  function TestRunningOutputNoRetriggerOnUnsuccessfulPartialWriteError (line 716) | func TestRunningOutputNoRetriggerOnUnsuccessfulPartialWriteError(t *test...
  function TestRunningOutputInternalMetrics (line 781) | func TestRunningOutputInternalMetrics(t *testing.T) {
  function TestRunningOutputStartupBehaviorInvalid (line 826) | func TestRunningOutputStartupBehaviorInvalid(t *testing.T) {
  function TestRunningOutputRetryableStartupBehaviorDefault (line 840) | func TestRunningOutputRetryableStartupBehaviorDefault(t *testing.T) {
  function TestRunningOutputRetryableStartupBehaviorError (line 864) | func TestRunningOutputRetryableStartupBehaviorError(t *testing.T) {
  function TestRunningOutputRetryableStartupBehaviorRetry (line 889) | func TestRunningOutputRetryableStartupBehaviorRetry(t *testing.T) {
  function TestRunningOutputRetryableStartupBehaviorIgnore (line 930) | func TestRunningOutputRetryableStartupBehaviorIgnore(t *testing.T) {
  function TestRunningOutputNonRetryableStartupBehaviorDefault (line 959) | func TestRunningOutputNonRetryableStartupBehaviorDefault(t *testing.T) {
  function TestRunningOutputUntypedStartupBehaviorIgnore (line 991) | func TestRunningOutputUntypedStartupBehaviorIgnore(t *testing.T) {
  function TestRunningOutputPartiallyStarted (line 1020) | func TestRunningOutputPartiallyStarted(t *testing.T) {
  function TestRunningOutputWritePartialSuccess (line 1063) | func TestRunningOutputWritePartialSuccess(t *testing.T) {
  function TestRunningOutputWritePartialSuccessAndLoss (line 1102) | func TestRunningOutputWritePartialSuccessAndLoss(t *testing.T) {
  function TestRunningOutputWriteBatchPartialSuccess (line 1148) | func TestRunningOutputWriteBatchPartialSuccess(t *testing.T) {
  function TestRunningOutputWriteBatchPartialSuccessAndLoss (line 1187) | func TestRunningOutputWriteBatchPartialSuccessAndLoss(t *testing.T) {
  function BenchmarkRunningOutputAddWrite (line 1234) | func BenchmarkRunningOutputAddWrite(b *testing.B) {
  function BenchmarkRunningOutputAddWriteEvery100 (line 1248) | func BenchmarkRunningOutputAddWriteEvery100(b *testing.B) {
  function BenchmarkRunningOutputAddFailWrites (line 1264) | func BenchmarkRunningOutputAddFailWrites(b *testing.B) {
  type mockOutput (line 1275) | type mockOutput struct
    method Connect (line 1295) | func (m *mockOutput) Connect() error {
    method Close (line 1305) | func (*mockOutput) Close() error {
    method SampleConfig (line 1309) | func (*mockOutput) SampleConfig() string {
    method Write (line 1313) | func (m *mockOutput) Write(metrics []telegraf.Metric) error {
    method Metrics (line 1359) | func (m *mockOutput) Metrics() []telegraf.Metric {
  type perfOutput (line 1365) | type perfOutput struct
    method Connect (line 1370) | func (*perfOutput) Connect() error {
    method Close (line 1374) | func (*perfOutput) Close() error {
    method SampleConfig (line 1378) | func (*perfOutput) SampleConfig() string {
    method Write (line 1382) | func (m *perfOutput) Write([]telegraf.Metric) error {

FILE: models/running_parsers.go
  type RunningParser (line 11) | type RunningParser struct
    method LogName (line 63) | func (r *RunningParser) LogName() string {
    method Init (line 67) | func (r *RunningParser) Init() error {
    method Parse (line 77) | func (r *RunningParser) Parse(buf []byte) ([]telegraf.Metric, error) {
    method ParseLine (line 87) | func (r *RunningParser) ParseLine(line string) (telegraf.Metric, error) {
    method SetDefaultTags (line 97) | func (r *RunningParser) SetDefaultTags(tags map[string]string) {
    method Log (line 101) | func (r *RunningParser) Log() telegraf.Logger {
  function NewRunningParser (line 20) | func NewRunningParser(parser telegraf.Parser, config *ParserConfig) *Run...
  type ParserConfig (line 55) | type ParserConfig struct

FILE: models/running_processor.go
  type RunningProcessor (line 11) | type RunningProcessor struct
    method metricFiltered (line 62) | func (*RunningProcessor) metricFiltered(metric telegraf.Metric) {
    method Init (line 66) | func (rp *RunningProcessor) Init() error {
    method ID (line 76) | func (rp *RunningProcessor) ID() string {
    method Log (line 83) | func (rp *RunningProcessor) Log() telegraf.Logger {
    method LogName (line 87) | func (rp *RunningProcessor) LogName() string {
    method MakeMetric (line 91) | func (*RunningProcessor) MakeMetric(metric telegraf.Metric) telegraf.M...
    method Start (line 95) | func (rp *RunningProcessor) Start(acc telegraf.Accumulator) error {
    method Add (line 99) | func (rp *RunningProcessor) Add(m telegraf.Metric, acc telegraf.Accumu...
    method Stop (line 119) | func (rp *RunningProcessor) Stop() {
  type RunningProcessors (line 18) | type RunningProcessors
    method Len (line 20) | func (rp RunningProcessors) Len() int           { return len(rp) }
    method Swap (line 21) | func (rp RunningProcessors) Swap(i, j int)      { rp[i], rp[j] = rp[j]...
    method Less (line 22) | func (rp RunningProcessors) Less(i, j int) bool { return rp[i].Config....
  type ProcessorConfig (line 25) | type ProcessorConfig struct
  function NewRunningProcessor (line 35) | func NewRunningProcessor(processor telegraf.StreamingProcessor, config *...

FILE: models/running_processor_test.go
  function TestRunningProcessorInit (line 17) | func TestRunningProcessorInit(t *testing.T) {
  function TestRunningProcessorApply (line 26) | func TestRunningProcessorApply(t *testing.T) {
  function TestRunningProcessorOrder (line 186) | func TestRunningProcessorOrder(t *testing.T) {
  type mockProcessor (line 211) | type mockProcessor struct
    method SampleConfig (line 216) | func (*mockProcessor) SampleConfig() string {
    method Init (line 220) | func (p *mockProcessor) Init() error {
    method Apply (line 225) | func (p *mockProcessor) Apply(in ...telegraf.Metric) []telegraf.Metric {

FILE: models/running_serializer.go
  type SerializerConfig (line 12) | type SerializerConfig struct
  type RunningSerializer (line 20) | type RunningSerializer struct
    method LogName (line 69) | func (r *RunningSerializer) LogName() string {
    method Init (line 73) | func (r *RunningSerializer) Init() error {
    method Serialize (line 83) | func (r *RunningSerializer) Serialize(metric telegraf.Metric) ([]byte,...
    method SerializeBatch (line 94) | func (r *RunningSerializer) SerializeBatch(metrics []telegraf.Metric) ...
    method Log (line 105) | func (r *RunningSerializer) Log() telegraf.Logger {
  function NewRunningSerializer (line 30) | func NewRunningSerializer(serializer telegraf.Serializer, config *Serial...

FILE: output.go
  type Output (line 3) | type Output interface
  type AggregatingOutput (line 20) | type AggregatingOutput interface

FILE: parser.go
  type Parser (line 4) | type Parser interface
  type ParserFunc (line 26) | type ParserFunc
  type ParserPlugin (line 30) | type ParserPlugin interface
  type ParserFuncPlugin (line 37) | type ParserFuncPlugin interface

FILE: persister/persister.go
  type Persister (line 12) | type Persister struct
    method Init (line 18) | func (p *Persister) Init() error {
    method Register (line 24) | func (p *Persister) Register(id string, plugin telegraf.StatefulPlugin...
    method Load (line 33) | func (p *Persister) Load() error {
    method Store (line 72) | func (p *Persister) Store() error {

FILE: plugin.go
  type DeprecationInfo (line 4) | type DeprecationInfo struct
  type Initializer (line 16) | type Initializer interface
  type PluginDescriber (line 26) | type PluginDescriber interface
  type PluginWithID (line 34) | type PluginWithID interface
  type StatefulPlugin (line 46) | type StatefulPlugin interface
  type ProbePlugin (line 62) | type ProbePlugin interface

FILE: plugins/aggregators/basicstats/basicstats.go
  type BasicStats (line 16) | type BasicStats struct
    method SampleConfig (line 64) | func (*BasicStats) SampleConfig() string {
    method Init (line 68) | func (b *BasicStats) Init() error {
    method Add (line 74) | func (b *BasicStats) Add(in telegraf.Metric) {
    method Push (line 166) | func (b *BasicStats) Push(acc telegraf.Accumulator) {
    method Reset (line 230) | func (b *BasicStats) Reset() {
    method parseStats (line 235) | func (b *BasicStats) parseStats() *configuredStats {
    method initConfiguredStats (line 278) | func (b *BasicStats) initConfiguredStats() {
  type configuredStats (line 24) | type configuredStats struct
  type aggregate (line 42) | type aggregate struct
  type basicstats (line 48) | type basicstats struct
  function convert (line 302) | func convert(in interface{}) (float64, bool) {
  function newBasicStats (line 315) | func newBasicStats() *BasicStats {
  function init (line 321) | func init() {

FILE: plugins/aggregators/basicstats/basicstats_test.go
  function BenchmarkApply (line 41) | func BenchmarkApply(b *testing.B) {
  function TestBasicStatsWithPeriod (line 53) | func TestBasicStatsWithPeriod(t *testing.T) {
  function TestBasicStatsDifferentPeriods (line 111) | func TestBasicStatsDifferentPeriods(t *testing.T) {
  function TestBasicStatsWithOnlyCount (line 212) | func TestBasicStatsWithOnlyCount(t *testing.T) {
  function TestBasicStatsWithOnlyMin (line 240) | func TestBasicStatsWithOnlyMin(t *testing.T) {
  function TestBasicStatsWithOnlyMax (line 268) | func TestBasicStatsWithOnlyMax(t *testing.T) {
  function TestBasicStatsWithOnlyMean (line 296) | func TestBasicStatsWithOnlyMean(t *testing.T) {
  function TestBasicStatsWithOnlySum (line 324) | func TestBasicStatsWithOnlySum(t *testing.T) {
  function TestBasicStatsWithOnlySumFloatingPointErrata (line 354) | func TestBasicStatsWithOnlySumFloatingPointErrata(t *testing.T) {
  function TestBasicStatsWithOnlyVariance (line 405) | func TestBasicStatsWithOnlyVariance(t *testing.T) {
  function TestBasicStatsWithOnlyStandardDeviation (line 431) | func TestBasicStatsWithOnlyStandardDeviation(t *testing.T) {
  function TestBasicStatsWithMinAndMax (line 457) | func TestBasicStatsWithMinAndMax(t *testing.T) {
  function TestBasicStatsWithDiff (line 492) | func TestBasicStatsWithDiff(t *testing.T) {
  function TestBasicStatsWithRate (line 517) | func TestBasicStatsWithRate(t *testing.T) {
  function TestBasicStatsWithNonNegativeRate (line 541) | func TestBasicStatsWithNonNegativeRate(t *testing.T) {
  function TestBasicStatsWithPctChange (line 565) | func TestBasicStatsWithPctChange(t *testing.T) {
  function TestBasicStatsWithInterval (line 589) | func TestBasicStatsWithInterval(t *testing.T) {
  function TestBasicStatsWithNonNegativeDiff (line 615) | func TestBasicStatsWithNonNegativeDiff(t *testing.T) {
  function TestBasicStatsWithAllStats (line 640) | func TestBasicStatsWithAllStats(t *testing.T) {
  function TestBasicStatsWithNoStats (line 719) | func TestBasicStatsWithNoStats(t *testing.T) {
  function TestBasicStatsWithUnknownStat (line 735) | func TestBasicStatsWithUnknownStat(t *testing.T) {
  function TestBasicStatsWithDefaultStats (line 754) | func TestBasicStatsWithDefaultStats(t *testing.T) {
  function TestBasicStatsWithOnlyLast (line 774) | func TestBasicStatsWithOnlyLast(t *testing.T) {
  function TestBasicStatsWithOnlyFirst (line 801) | func TestBasicStatsWithOnlyFirst(t *testing.T) {

FILE: plugins/aggregators/derivative/derivative.go
  constant defaultSuffix (line 16) | defaultSuffix = "_rate"
  type Derivative (line 18) | type Derivative struct
    method Init (line 39) | func (d *Derivative) Init() error {
    method SampleConfig (line 45) | func (*Derivative) SampleConfig() string {
    method Add (line 49) | func (d *Derivative) Add(in telegraf.Metric) {
    method Push (line 73) | func (d *Derivative) Push(acc telegraf.Accumulator) {
    method Reset (line 114) | func (d *Derivative) Reset() {
  type aggregate (line 26) | type aggregate struct
  type event (line 34) | type event struct
  function newAggregate (line 128) | func newAggregate(in telegraf.Metric) *aggregate {
  function newEvent (line 139) | func newEvent(in telegraf.Metric) *event {
  function extractConvertedFields (line 146) | func extractConvertedFields(in telegraf.Metric) map[string]float64 {
  function upsertConvertedFields (line 152) | func upsertConvertedFields(source map[string]interface{}, target map[str...
  function convert (line 160) | func convert(in interface{}) (float64, bool) {
  function newDerivative (line 172) | func newDerivative() *Derivative {
  function init (line 179) | func init() {

FILE: plugins/aggregators/derivative/derivative_test.go
  function TestTwoFullEventsWithParameter (line 37) | func TestTwoFullEventsWithParameter(t *testing.T) {
  function TestTwoFullEventsWithParameterReverseSequence (line 64) | func TestTwoFullEventsWithParameterReverseSequence(t *testing.T) {
  function TestTwoFullEventsWithoutParameter (line 91) | func TestTwoFullEventsWithoutParameter(t *testing.T) {
  function TestTwoFullEventsInSeparatePushes (line 130) | func TestTwoFullEventsInSeparatePushes(t *testing.T) {
  function TestTwoFullEventsInSeparatePushesWithSeveralRollOvers (line 164) | func TestTwoFullEventsInSeparatePushesWithSeveralRollOvers(t *testing.T) {
  function TestTwoFullEventsInSeparatePushesWithOutRollOver (line 197) | func TestTwoFullEventsInSeparatePushesWithOutRollOver(t *testing.T) {
  function TestIgnoresMissingVariable (line 224) | func TestIgnoresMissingVariable(t *testing.T) {
  function TestMergesDifferentMetricsWithSameHash (line 269) | func TestMergesDifferentMetricsWithSameHash(t *testing.T) {
  function TestDropsAggregatesOnMaxRollOver (line 317) | func TestDropsAggregatesOnMaxRollOver(t *testing.T) {
  function TestAddMetricsResetsRollOver (line 339) | func TestAddMetricsResetsRollOver(t *testing.T) {
  function TestCalculatesCorrectDerivativeOnTwoConsecutivePeriods (line 368) | func TestCalculatesCorrectDerivativeOnTwoConsecutivePeriods(t *testing.T) {

FILE: plugins/aggregators/final/final.go
  type Final (line 17) | type Final struct
    method SampleConfig (line 26) | func (*Final) SampleConfig() string {
    method Init (line 30) | func (m *Final) Init() error {
    method Add (line 47) | func (m *Final) Add(in telegraf.Metric) {
    method Push (line 52) | func (m *Final) Push(acc telegraf.Accumulator) {
    method Reset (line 77) | func (*Final) Reset() {
  function newFinal (line 80) | func newFinal() *Final {
  function init (line 86) | func init() {

FILE: plugins/aggregators/final/final_test.go
  function TestSimple (line 15) | func TestSimple(t *testing.T) {
  function TestTwoTags (line 51) | func TestTwoTags(t *testing.T) {
  function TestLongDifference (line 97) | func TestLongDifference(t *testing.T) {
  function TestOutputStrategyInvalid (line 151) | func TestOutputStrategyInvalid(t *testing.T) {
  function TestOutputStrategyTimeout (line 159) | func TestOutputStrategyTimeout(t *testing.T) {
  function TestOutputStrategyPeriodic (line 215) | func TestOutputStrategyPeriodic(t *testing.T) {
  function TestKeepOriginalFieldNames (line 279) | func TestKeepOriginalFieldNames(t *testing.T) {

FILE: plugins/aggregators/histogram/histogram.go
  constant bucketRightTag (line 22) | bucketRightTag = "le"
  constant bucketPosInf (line 24) | bucketPosInf = "+Inf"
  constant bucketLeftTag (line 26) | bucketLeftTag = "gt"
  constant bucketNegInf (line 28) | bucketNegInf = "-Inf"
  type Histogram (line 31) | type Histogram struct
    method SampleConfig (line 77) | func (*Histogram) SampleConfig() string {
    method Add (line 81) | func (h *Histogram) Add(in telegraf.Metric) {
    method Push (line 126) | func (h *Histogram) Push(acc telegraf.Accumulator) {
    method Reset (line 152) | func (h *Histogram) Reset() {
    method groupFieldsByBuckets (line 160) | func (h *Histogram) groupFieldsByBuckets(
    method resetCache (line 206) | func (h *Histogram) resetCache() {
    method getBuckets (line 211) | func (h *Histogram) getBuckets(metric, field string) []float64 {
  type bucketConfig (line 43) | type bucketConfig struct
  type bucketsByMetrics (line 50) | type bucketsByMetrics
  type bucketsByFields (line 53) | type bucketsByFields
  type buckets (line 56) | type buckets
  type metricHistogramCollection (line 59) | type metricHistogramCollection struct
  type counts (line 68) | type counts
  type groupedByCountFields (line 71) | type groupedByCountFields struct
  function groupField (line 187) | func groupField(metricsWithGroupedFields *[]groupedByCountFields, name, ...
  function isBucketExists (line 234) | func isBucketExists(field string, cfg bucketConfig) bool {
  function sortBuckets (line 249) | func sortBuckets(buckets []float64) []float64 {
  function convert (line 261) | func convert(in interface{}) (float64, bool) {
  function copyTags (line 273) | func copyTags(tags map[string]string) map[string]string {
  function isTagsIdentical (line 283) | func isTagsIdentical(originalTags, checkedTags map[string]string) bool {
  function makeFieldsWithCount (line 298) | func makeFieldsWithCount(fieldsWithCountIn map[string]int64) map[string]...
  function newHistogramAggregator (line 307) | func newHistogramAggregator() *Histogram {
  function init (line 317) | func init() {

FILE: plugins/aggregators/histogram/histogram_test.go
  type fields (line 16) | type fields
  type tags (line 17) | type tags
  function newTestHistogram (line 20) | func newTestHistogram(cfg []bucketConfig, reset, cumulative, pushOnlyOnU...
  function newTestHistogramWithExpirationInterval (line 24) | func newTestHistogramWithExpirationInterval(
  function BenchmarkApply (line 72) | func BenchmarkApply(b *testing.B) {
  function TestHistogram (line 83) | func TestHistogram(t *testing.T) {
  function TestHistogramPushOnUpdate (line 110) | func TestHistogramPushOnUpdate(t *testing.T) {
  function TestHistogramNonCumulative (line 151) | func TestHistogramNonCumulative(t *testing.T) {
  function TestHistogramWithReset (line 178) | func TestHistogramWithReset(t *testing.T) {
  function TestHistogramWithAllFields (line 205) | func TestHistogramWithAllFields(t *testing.T) {
  function TestHistogramWithAllFieldsNonCumulative (line 290) | func TestHistogramWithAllFieldsNonCumulative(t *testing.T) {
  function TestHistogramWithTwoPeriodsAndAllFields (line 400) | func TestHistogramWithTwoPeriodsAndAllFields(t *testing.T) {
  function TestWrongBucketsOrder (line 439) | func TestWrongBucketsOrder(t *testing.T) {
  function TestHistogramMetricExpiration (line 461) | func TestHistogramMetricExpiration(t *testing.T) {
  function assertContainsTaggedField (line 536) | func assertContainsTaggedField(t *testing.T, acc *testutil.Accumulator, ...

FILE: plugins/aggregators/merge/merge.go
  type Merge (line 17) | type Merge struct
    method SampleConfig (line 22) | func (*Merge) SampleConfig() string {
    method Init (line 26) | func (a *Merge) Init() error {
    method Add (line 31) | func (a *Merge) Add(m telegraf.Metric) {
    method Push (line 45) | func (a *Merge) Push(acc telegraf.Accumulator) {
    method Reset (line 55) | func (a *Merge) Reset() {
  function init (line 59) | func init() {

FILE: plugins/aggregators/merge/merge_test.go
  function TestSimple (line 15) | func TestSimple(t *testing.T) {
  function TestNanosecondPrecision (line 64) | func TestNanosecondPrecision(t *testing.T) {
  function TestNoRounding (line 115) | func TestNoRounding(t *testing.T) {
  function TestWithRounding (line 175) | func TestWithRounding(t *testing.T) {
  function TestReset (line 226) | func TestReset(t *testing.T) {
  function BenchmarkMergeOne (line 289) | func BenchmarkMergeOne(b *testing.B) {
  function BenchmarkMergeTwo (line 321) | func BenchmarkMergeTwo(b *testing.B) {

FILE: plugins/aggregators/minmax/minmax.go
  type MinMax (line 14) | type MinMax struct
    method SampleConfig (line 29) | func (*MinMax) SampleConfig() string {
    method Add (line 33) | func (m *MinMax) Add(in telegraf.Metric) {
    method Push (line 76) | func (m *MinMax) Push(acc telegraf.Accumulator) {
    method Reset (line 87) | func (m *MinMax) Reset() {
  type aggregate (line 18) | type aggregate struct
  type minmax (line 24) | type minmax struct
  function convert (line 91) | func convert(in interface{}) (float64, bool) {
  function newMinMax (line 104) | func newMinMax() telegraf.Aggregator {
  function init (line 110) | func init() {

FILE: plugins/aggregators/minmax/minmax_test.go
  function BenchmarkApply (line 48) | func BenchmarkApply(b *testing.B) {
  function TestMinMaxWithPeriod (line 58) | func TestMinMaxWithPeriod(t *testing.T) {
  function TestMinMaxDifferentPeriods (line 100) | func TestMinMaxDifferentPeriods(t *testing.T) {

FILE: plugins/aggregators/quantile/algorithms.go
  type algorithm (line 10) | type algorithm interface
  function newTDigest (line 15) | func newTDigest(compression float64) (algorithm, error) {
  type exactAlgorithmR7 (line 19) | type exactAlgorithmR7 struct
    method Add (line 29) | func (e *exactAlgorithmR7) Add(value float64) error {
    method Quantile (line 37) | func (e *exactAlgorithmR7) Quantile(q float64) float64 {
  function newExactR7 (line 24) | func newExactR7(_ float64) (algorithm, error) {
  type exactAlgorithmR8 (line 67) | type exactAlgorithmR8 struct
    method Add (line 77) | func (e *exactAlgorithmR8) Add(value float64) error {
    method Quantile (line 85) | func (e *exactAlgorithmR8) Quantile(q float64) float64 {
  function newExactR8 (line 72) | func newExactR8(_ float64) (algorithm, error) {

FILE: plugins/aggregators/quantile/quantile.go
  type Quantile (line 15) | type Quantile struct
    method SampleConfig (line 35) | func (*Quantile) SampleConfig() string {
    method Init (line 39) | func (q *Quantile) Init() error {
    method Add (line 76) | func (q *Quantile) Add(in telegraf.Metric) {
    method Push (line 115) | func (q *Quantile) Push(acc telegraf.Accumulator) {
    method Reset (line 127) | func (q *Quantile) Reset() {
  type aggregate (line 27) | type aggregate struct
  type newAlgorithmFunc (line 33) | type newAlgorithmFunc
  function convert (line 131) | func convert(in interface{}) (float64, bool) {
  function init (line 144) | func init() {

FILE: plugins/aggregators/quantile/quantile_test.go
  function TestConfigInvalidAlgorithm (line 16) | func TestConfigInvalidAlgorithm(t *testing.T) {
  function TestConfigInvalidCompression (line 23) | func TestConfigInvalidCompression(t *testing.T) {
  function TestConfigInvalidQuantiles (line 30) | func TestConfigInvalidQuantiles(t *testing.T) {
  function TestSingleMetricTDigest (line 47) | func TestSingleMetricTDigest(t *testing.T) {
  function TestMultipleMetricsTDigest (line 117) | func TestMultipleMetricsTDigest(t *testing.T) {
  function TestSingleMetricExactR7 (line 179) | func TestSingleMetricExactR7(t *testing.T) {
  function TestMultipleMetricsExactR7 (line 249) | func TestMultipleMetricsExactR7(t *testing.T) {
  function TestSingleMetricExactR8 (line 311) | func TestSingleMetricExactR8(t *testing.T) {
  function TestMultipleMetricsExactR8 (line 381) | func TestMultipleMetricsExactR8(t *testing.T) {
  function BenchmarkDefaultTDigest (line 443) | func BenchmarkDefaultTDigest(b *testing.B) {
  function BenchmarkDefaultTDigest100Q (line 479) | func BenchmarkDefaultTDigest100Q(b *testing.B) {
  function BenchmarkDefaultExactR7 (line 520) | func BenchmarkDefaultExactR7(b *testing.B) {
  function BenchmarkDefaultExactR7100Q (line 556) | func BenchmarkDefaultExactR7100Q(b *testing.B) {
  function BenchmarkDefaultExactR8 (line 597) | func BenchmarkDefaultExactR8(b *testing.B) {
  function BenchmarkDefaultExactR8100Q (line 633) | func BenchmarkDefaultExactR8100Q(b *testing.B) {

FILE: plugins/aggregators/registry.go
  type Creator (line 6) | type Creator
  function Add (line 12) | func Add(name string, creator Creator) {

FILE: plugins/aggregators/starlark/starlark.go
  type Starlark (line 17) | type Starlark struct
    method SampleConfig (line 21) | func (*Starlark) SampleConfig() string {
    method Init (line 25) | func (s *Starlark) Init() error {
    method Add (line 53) | func (s *Starlark) Add(metric telegraf.Metric) {
    method Push (line 67) | func (s *Starlark) Push(acc telegraf.Accumulator) {
    method Reset (line 98) | func (s *Starlark) Reset() {
  function init (line 105) | func init() {

FILE: plugins/aggregators/starlark/starlark_test.go
  function BenchmarkApply (line 52) | func BenchmarkApply(b *testing.B) {
  function TestMinMaxWithPeriod (line 63) | func TestMinMaxWithPeriod(t *testing.T) {
  function TestMinMaxDifferentPeriods (line 106) | func TestMinMaxDifferentPeriods(t *testing.T) {
  function newMinMax (line 175) | func newMinMax() (*Starlark, error) {
  function TestSimple (line 179) | func TestSimple(t *testing.T) {
  function TestNanosecondPrecision (line 231) | func TestNanosecondPrecision(t *testing.T) {
  function TestReset (line 285) | func TestReset(t *testing.T) {
  function newMerge (line 351) | func newMerge() (*Starlark, error) {
  function TestLastFromSource (line 355) | func TestLastFromSource(t *testing.T) {
  function newStarlarkFromSource (line 406) | func newStarlarkFromSource(source string) (*Starlark, error) {
  function newStarlarkFromScript (line 421) | func newStarlarkFromScript(script string) (*Starlark, error) {

FILE: plugins/aggregators/valuecounter/valuecounter.go
  type ValueCounter (line 15) | type ValueCounter struct
    method SampleConfig (line 27) | func (*ValueCounter) SampleConfig() string {
    method Add (line 31) | func (vc *ValueCounter) Add(in telegraf.Metric) {
    method Push (line 56) | func (vc *ValueCounter) Push(acc telegraf.Accumulator) {
    method Reset (line 67) | func (vc *ValueCounter) Reset() {
  type aggregate (line 21) | type aggregate struct
  function newValueCounter (line 71) | func newValueCounter() telegraf.Aggregator {
  function init (line 77) | func init() {

FILE: plugins/aggregators/valuecounter/valuecounter_test.go
  function newTestValueCounter (line 13) | func newTestValueCounter(fields []string) telegraf.Aggregator {
  function BenchmarkApply (line 42) | func BenchmarkApply(b *testing.B) {
  function TestBasic (line 52) | func TestBasic(t *testing.T) {
  function TestMultipleFields (line 72) | func TestMultipleFields(t *testing.T) {
  function TestWithReset (line 94) | func TestWithReset(t *testing.T) {

FILE: plugins/all_test.go
  function Test_AllPlugins (line 27) | func Test_AllPlugins(t *testing.T) {
  function testPluginDirectory (line 34) | func testPluginDirectory(t *testing.T, directory string) {
  function parseSourceFile (line 49) | func parseSourceFile(t *testing.T, goPluginFile, pluginCategory string) {
  function resolvePluginFromImports (line 68) | func resolvePluginFromImports(t *testing.T, imports []*ast.ImportSpec) s...
  function testBuildTags (line 83) | func testBuildTags(t *testing.T, buildComment, pluginCategory, plugin st...
  function getPluginBuildTag (line 100) | func getPluginBuildTag(tags []string, pluginCategory string) string {
  function stringMap (line 109) | func stringMap(elems []string, transFormFunc func(string) string) []stri...

FILE: plugins/common/adx/adx.go
  constant TablePerMetric (line 22) | TablePerMetric = "tablepermetric"
  constant SingleTable (line 23) | SingleTable    = "singletable"
  constant bufferSize (line 25) | bufferSize       = 1 << 20
  constant maxBuffers (line 26) | maxBuffers       = 5
  constant ManagedIngestion (line 27) | ManagedIngestion = "managed"
  constant QueuedIngestion (line 28) | QueuedIngestion  = "queued"
  type Config (line 31) | type Config struct
    method NewClient (line 48) | func (cfg *Config) NewClient(app string, log telegraf.Logger) (*Client...
  type Client (line 41) | type Client struct
    method Close (line 96) | func (adx *Client) Close() error {
    method PushMetrics (line 118) | func (adx *Client) PushMetrics(format ingest.FileOption, tableName str...
    method getMetricIngestor (line 137) | func (adx *Client) getMetricIngestor(ctx context.Context, tableName st...
  function createTableCommand (line 171) | func createTableCommand(table string) kusto.Statement {
  function createTableMappingCommand (line 178) | func createTableMappingCommand(table string) kusto.Statement {

FILE: plugins/common/adx/adx_test.go
  function TestInitBlankEndpointData (line 21) | func TestInitBlankEndpointData(t *testing.T) {
  function TestQueryConstruction (line 32) | func TestQueryConstruction(t *testing.T) {
  function TestGetMetricIngestor (line 43) | func TestGetMetricIngestor(t *testing.T) {
  function TestGetMetricIngestorNoIngester (line 59) | func TestGetMetricIngestorNoIngester(t *testing.T) {
  function TestPushMetrics (line 74) | func TestPushMetrics(t *testing.T) {
  function TestPushMetricsOutputs (line 90) | func TestPushMetricsOutputs(t *testing.T) {
  function TestAlreadyClosed (line 187) | func TestAlreadyClosed(t *testing.T) {
  type fakeIngestor (line 198) | type fakeIngestor struct
    method FromReader (line 202) | func (f *fakeIngestor) FromReader(_ context.Context, reader io.Reader,...
    method FromFile (line 213) | func (*fakeIngestor) FromFile(_ context.Context, _ string, _ ...ingest...
    method Close (line 217) | func (*fakeIngestor) Close() error {

FILE: plugins/common/auth/basic_auth.go
  type BasicAuth (line 8) | type BasicAuth struct
    method Verify (line 13) | func (b *BasicAuth) Verify(r *http.Request) bool {

FILE: plugins/common/auth/basic_auth_test.go
  function TestBasicAuth_VerifyWithCredentials (line 10) | func TestBasicAuth_VerifyWithCredentials(t *testing.T) {
  function TestBasicAuth_VerifyWithoutCredentials (line 19) | func TestBasicAuth_VerifyWithoutCredentials(t *testing.T) {
  function TestBasicAuth_VerifyWithInvalidCredentials (line 27) | func TestBasicAuth_VerifyWithInvalidCredentials(t *testing.T) {

FILE: plugins/common/aws/credentials.go
  type CredentialConfig (line 13) | type CredentialConfig struct
    method Credentials (line 26) | func (c *CredentialConfig) Credentials() (aws.Config, error) {
    method configWithRootCredentials (line 33) | func (c *CredentialConfig) configWithRootCredentials() (aws.Config, er...
    method configWithAssumeCredentials (line 53) | func (c *CredentialConfig) configWithAssumeCredentials() (aws.Config, ...

FILE: plugins/common/cookie/cookie.go
  type CookieAuthConfig (line 19) | type CookieAuthConfig struct
    method Start (line 36) | func (c *CookieAuthConfig) Start(client *http.Client, log telegraf.Log...
    method initializeClient (line 51) | func (c *CookieAuthConfig) initializeClient(client *http.Client) (err ...
    method authRenewal (line 61) | func (c *CookieAuthConfig) authRenewal(ctx context.Context, ticker *cl...
    method auth (line 75) | func (c *CookieAuthConfig) auth() error {

FILE: plugins/common/cookie/cookie_test.go
  constant reqUser (line 22) | reqUser      = "testUser"
  constant reqPasswd (line 23) | reqPasswd    = "testPassword"
  constant reqBody (line 24) | reqBody      = "a body"
  constant reqHeaderKey (line 25) | reqHeaderKey = "hello"
  constant reqHeaderVal (line 26) | reqHeaderVal = "world"
  constant authEndpointNoCreds (line 28) | authEndpointNoCreds                   = "/auth"
  constant authEndpointWithBasicAuth (line 29) | authEndpointWithBasicAuth             = "/authWithCreds"
  constant authEndpointWithBasicAuthOnlyUsername (line 30) | authEndpointWithBasicAuthOnlyUsername = "/authWithCredsUser"
  constant authEndpointWithBody (line 31) | authEndpointWithBody                  = "/authWithBody"
  constant authEndpointWithHeader (line 32) | authEndpointWithHeader                = "/authWithHeader"
  type fakeServer (line 42) | type fakeServer struct
    method checkResp (line 107) | func (s fakeServer) checkResp(t *testing.T, expCode int) {
    method checkAuthCount (line 120) | func (s fakeServer) checkAuthCount(t *testing.T, atLeast int32) {
  function newFakeServer (line 47) | func newFakeServer(t *testing.T) fakeServer {
  function TestAuthConfig_Start (line 125) | func TestAuthConfig_Start(t *testing.T) {

FILE: plugins/common/docker/stats_helpers.go
  function CalculateCPUPercentUnix (line 10) | func CalculateCPUPercentUnix(previousCPU, previousSystem uint64, v *cont...
  function CalculateCPUPercentWindows (line 30) | func CalculateCPUPercentWindows(v *container.StatsResponse) float64 {
  function CalculateMemUsageUnixNoCache (line 55) | func CalculateMemUsageUnixNoCache(mem container.MemoryStats) float64 {
  function CalculateMemPercentUnixNoCache (line 72) | func CalculateMemPercentUnixNoCache(limit, usedNoCache float64) float64 {

FILE: plugins/common/encoding/decoder.go
  function NewDecoder (line 22) | func NewDecoder(enc string) (*Decoder, error) {

FILE: plugins/common/encoding/decoder_reader.go
  function createDecoder (line 13) | func createDecoder(t transform.Transformer) *Decoder {
  type Decoder (line 22) | type Decoder struct
    method Bytes (line 33) | func (d *Decoder) Bytes(b []byte) ([]byte, error) {
    method String (line 43) | func (d *Decoder) String(s string) (string, error) {
    method Reader (line 55) | func (d *Decoder) Reader(r io.Reader) io.Reader {
  type Reader (line 60) | type Reader struct
    method Read (line 101) | func (r *Reader) Read(p []byte) (int, error) {
  constant defaultBufSize (line 86) | defaultBufSize = 4096
  function NewReader (line 90) | func NewReader(r io.Reader, t transform.Transformer) *Reader {

FILE: plugins/common/encoding/decoder_test.go
  function TestDecoder (line 11) | func TestDecoder(t *testing.T) {

FILE: plugins/common/gcp/auth.go
  function ParseCredentialType (line 9) | func ParseCredentialType(credentialsFile string) (string, error) {

FILE: plugins/common/http/config.go
  type TransportConfig (line 25) | type TransportConfig struct
    method CreateTransport (line 35) | func (h *TransportConfig) CreateTransport() (*http.Transport, error) {
  type HTTPClientConfig (line 68) | type HTTPClientConfig struct
    method CreateClient (line 75) | func (h *HTTPClientConfig) CreateClient(ctx context.Context, log teleg...

FILE: plugins/common/jolokia2/client.go
  type Client (line 16) | type Client struct
    method read (line 156) | func (c *Client) read(requests []ReadRequest) ([]ReadResponse, error) {
  type ClientConfig (line 22) | type ClientConfig struct
  type ProxyConfig (line 31) | type ProxyConfig struct
  type ProxyTargetConfig (line 37) | type ProxyTargetConfig struct
  type ReadRequest (line 43) | type ReadRequest struct
  type ReadResponse (line 49) | type ReadResponse struct
  type jolokiaRequest (line 66) | type jolokiaRequest struct
  type jolokiaTarget (line 74) | type jolokiaTarget struct
  type jolokiaOptions (line 83) | type jolokiaOptions struct
  type jolokiaResponse (line 120) | type jolokiaResponse struct
  type jolokiaResponseRequest (line 128) | type jolokiaResponseRequest struct
  function NewClient (line 133) | func NewClient(address string, config *ClientConfig) (*Client, error) {
  function makeJolokiaRequests (line 203) | func makeJolokiaRequests(rrequests []ReadRequest, proxyConfig *ProxyConf...
  function makeJolokiaRequest (line 233) | func makeJolokiaRequest(rrequest ReadRequest, jtarget *jolokiaTarget) jo...
  function makeReadResponses (line 251) | func makeReadResponses(jresponses []jolokiaResponse) []ReadResponse {
  function formatReadURL (line 296) | func formatReadURL(configURL, username, password string) (string, error) {

FILE: plugins/common/jolokia2/client_test.go
  function TestMakeReadResponses_Jolokia1xTarget (line 9) | func TestMakeReadResponses_Jolokia1xTarget(t *testing.T) {
  function TestMakeReadResponses_Jolokia2xTarget (line 36) | func TestMakeReadResponses_Jolokia2xTarget(t *testing.T) {
  function TestMakeReadResponses_NoTarget (line 65) | func TestMakeReadResponses_NoTarget(t *testing.T) {
  function TestMakeReadResponses_Jolokia1xTakesPrecedence (line 88) | func TestMakeReadResponses_Jolokia1xTakesPrecedence(t *testing.T) {
  function TestMakeReadResponses_MultipleTargets (line 119) | func TestMakeReadResponses_MultipleTargets(t *testing.T) {

FILE: plugins/common/jolokia2/gatherer.go
  constant defaultFieldName (line 11) | defaultFieldName = "value"
  type Gatherer (line 13) | type Gatherer struct
    method Gather (line 27) | func (g *Gatherer) Gather(client *Client, acc telegraf.Accumulator) er...
    method gatherResponses (line 48) | func (g *Gatherer) gatherResponses(responses []ReadResponse, tags map[...
  function NewGatherer (line 18) | func NewGatherer(metrics []Metric) *Gatherer {
  function generatePoints (line 75) | func generatePoints(metric Metric, responses []ReadResponse) ([]point, [...
  function mergeTags (line 115) | func mergeTags(metricTags, outerTags map[string]string) map[string]string {
  function metricMatchesResponse (line 130) | func metricMatchesResponse(metric Metric, response ReadResponse) bool {
  function compactPoints (line 151) | func compactPoints(points []point) []point {
  function tagSetsMatch (line 177) | func tagSetsMatch(a, b map[string]string) bool {
  function makeReadRequests (line 196) | func makeReadRequests(metrics []Metric) []ReadRequest {
  function findRequestAttributesWithoutPaths (line 244) | func findRequestAttributesWithoutPaths(attributes map[string][]string) [...
  function findRequestAttributesWithPaths (line 256) | func findRequestAttributesWithPaths(attributes map[string][]string) []st...

FILE: plugins/common/jolokia2/gatherer_test.go
  function TestJolokia2_makeReadRequests (line 9) | func TestJolokia2_makeReadRequests(t *testing.T) {

FILE: plugins/common/jolokia2/metric.go
  type MetricConfig (line 7) | type MetricConfig struct
  type Metric (line 21) | type Metric struct
    method MatchObjectName (line 72) | func (m Metric) MatchObjectName(name string) bool {
    method MatchAttributeAndPath (line 100) | func (m Metric) MatchAttributeAndPath(attribute, innerPath string) bool {
  function NewMetric (line 35) | func NewMetric(config MetricConfig, defaultFieldPrefix, defaultFieldSepa...
  function parseMbeanObjectName (line 115) | func parseMbeanObjectName(name string) (string, []string) {

FILE: plugins/common/jolokia2/point_builder.go
  type point (line 8) | type point struct
  type pointBuilder (line 13) | type pointBuilder struct
    method Build (line 30) | func (pb *pointBuilder) Build(mbean string, value interface{}) ([]poin...
    method extractTags (line 53) | func (pb *pointBuilder) extractTags(mbean string) map[string]string {
    method includeTag (line 67) | func (pb *pointBuilder) includeTag(tagName string) bool {
    method formatTagName (line 77) | func (pb *pointBuilder) formatTagName(tagName string) string {
    method extractFields (line 91) | func (pb *pointBuilder) extractFields(mbean string, value interface{})...
    method formatFieldName (line 136) | func (pb *pointBuilder) formatFieldName(attribute, path string) string {
    method FillFields (line 154) | func (pb *pointBuilder) FillFields(name string, value interface{}, fie...
    method applySubstitutions (line 195) | func (pb *pointBuilder) applySubstitutions(mbean string, fieldMap map[...
  function NewPointBuilder (line 20) | func NewPointBuilder(metric Metric, attributes []string, path string) *p...
  function makePropertyMap (line 214) | func makePropertyMap(mbean string) map[string]string {
  function makeSubstitutionList (line 242) | func makeSubstitutionList(mbean string) []string {

FILE: plugins/common/kafka/config.go
  type ReadConfig (line 18) | type ReadConfig struct
    method SetConfig (line 23) | func (k *ReadConfig) SetConfig(cfg *sarama.Config, log telegraf.Logger...
  type WriteConfig (line 29) | type WriteConfig struct
    method SetConfig (line 39) | func (k *WriteConfig) SetConfig(cfg *sarama.Config, log telegraf.Logge...
  type Config (line 54) | type Config struct
    method SetConfig (line 86) | func (k *Config) SetConfig(cfg *sarama.Config, log telegraf.Logger) er...
  type BackoffFunc (line 73) | type BackoffFunc
  function makeBackoffFunc (line 75) | func makeBackoffFunc(backoff, maxDuration time.Duration) BackoffFunc {

FILE: plugins/common/kafka/config_test.go
  function TestBackoffFunc (line 10) | func TestBackoffFunc(t *testing.T) {

FILE: plugins/common/kafka/logger.go
  type debugLogger (line 17) | type debugLogger struct
    method Print (line 19) | func (*debugLogger) Print(v ...interface{}) {
    method Printf (line 23) | func (*debugLogger) Printf(format string, v ...interface{}) {
    method Println (line 27) | func (l *debugLogger) Println(v ...interface{}) {
  function SetLogger (line 32) | func SetLogger(level telegraf.LogLevel) {

FILE: plugins/common/kafka/sasl.go
  type SASLAuth (line 12) | type SASLAuth struct
    method SetSASLConfig (line 35) | func (k *SASLAuth) SetSASLConfig(cfg *sarama.Config) error {
  function SASLVersion (line 100) | func SASLVersion(kafkaVersion sarama.KafkaVersion, saslVersion *int) (in...
  function gssapiAuthType (line 118) | func gssapiAuthType(authType string) int {

FILE: plugins/common/kafka/sasl_aws_iam_msk.go
  constant saslTypeOAuthAWSMSKIAM (line 12) | saslTypeOAuthAWSMSKIAM = "AWS-MSK-IAM"
  type SASLOAuthAWSMSKIAMConfig (line 14) | type SASLOAuthAWSMSKIAMConfig struct
    method tokenProvider (line 21) | func (c *SASLOAuthAWSMSKIAMConfig) tokenProvider(extensions map[string...
  type oauthAWSMSKIAM (line 64) | type oauthAWSMSKIAM struct
    method Token (line 70) | func (a *oauthAWSMSKIAM) Token() (*sarama.AccessToken, error) {

FILE: plugins/common/kafka/sasl_oauth_file.go
  type oauthToken (line 11) | type oauthToken struct
    method Token (line 17) | func (a *oauthToken) Token() (*sarama.AccessToken, error) {

FILE: plugins/common/kafka/scram_client.go
  type XDGSCRAMClient (line 14) | type XDGSCRAMClient struct
    method Begin (line 20) | func (x *XDGSCRAMClient) Begin(userName, password, authzID string) (er...
    method Step (line 29) | func (x *XDGSCRAMClient) Step(challenge string) (response string, err ...
    method Done (line 33) | func (x *XDGSCRAMClient) Done() bool {

FILE: plugins/common/logrus/hook.go
  type LogHook (line 14) | type LogHook struct
    method Fire (line 27) | func (*LogHook) Fire(entry *logrus.Entry) error {
    method Levels (line 33) | func (*LogHook) Levels() []logrus.Level {
  function InstallHook (line 20) | func InstallHook() {

FILE: plugins/common/mqtt/mqtt.go
  type PublishProperties (line 17) | type PublishProperties struct
  type MqttConfig (line 25) | type MqttConfig struct
  type Client (line 49) | type Client interface
  function NewClient (line 57) | func NewClient(cfg *MqttConfig) (Client, error) {
  function parseServers (line 79) | func parseServers(servers []string) ([]*url.URL, error) {

FILE: plugins/common/mqtt/mqtt_logger.go
  type mqttLogger (line 7) | type mqttLogger struct
    method Printf (line 11) | func (l mqttLogger) Printf(fmt string, args ...interface{}) {
    method Println (line 15) | func (l mqttLogger) Println(args ...interface{}) {

FILE: plugins/common/mqtt/mqtt_test.go
  function TestRandomClientID (line 10) | func TestRandomClientID(t *testing.T) {

FILE: plugins/common/mqtt/mqtt_v3.go
  type mqttv311Client (line 13) | type mqttv311Client struct
    method Connect (line 97) | func (m *mqttv311Client) Connect() (bool, error) {
    method Publish (line 116) | func (m *mqttv311Client) Publish(topic string, body []byte) error {
    method SubscribeMultiple (line 124) | func (m *mqttv311Client) SubscribeMultiple(filters map[string]byte, ca...
    method AddRoute (line 130) | func (m *mqttv311Client) AddRoute(topic string, callback mqttv3.Messag...
    method Close (line 134) | func (m *mqttv311Client) Close() error {
  function NewMQTTv311Client (line 20) | func NewMQTTv311Client(cfg *MqttConfig) (*mqttv311Client, error) {

FILE: plugins/common/mqtt/mqtt_v5.go
  type mqttv5Client (line 18) | type mqttv5Client struct
    method Connect (line 110) | func (m *mqttv5Client) Connect() (bool, error) {
    method Publish (line 138) | func (m *mqttv5Client) Publish(topic string, body []byte) error {
    method SubscribeMultiple (line 153) | func (*mqttv5Client) SubscribeMultiple(filters map[string]byte, callba...
    method AddRoute (line 158) | func (*mqttv5Client) AddRoute(topic string, callback paho.MessageHandl...
    method Close (line 163) | func (m *mqttv5Client) Close() error {
  function NewMQTTv5Client (line 30) | func NewMQTTv5Client(cfg *MqttConfig) (*mqttv5Client, error) {

FILE: plugins/common/oauth/config.go
  type OAuth2Config (line 12) | type OAuth2Config struct
    method CreateOauth2Client (line 21) | func (o *OAuth2Config) CreateOauth2Client(ctx context.Context, client ...

FILE: plugins/common/opcua/client.go
  type OpcUAWorkarounds (line 21) | type OpcUAWorkarounds struct
  type ConnectionState (line 25) | type ConnectionState
    method String (line 35) | func (c ConnectionState) String() string {
  constant Closed (line 28) | Closed       ConnectionState = ConnectionState(opcua.Closed)
  constant Connected (line 29) | Connected    ConnectionState = ConnectionState(opcua.Connected)
  constant Connecting (line 30) | Connecting   ConnectionState = ConnectionState(opcua.Connecting)
  constant Disconnected (line 31) | Disconnected ConnectionState = ConnectionState(opcua.Disconnected)
  constant Reconnecting (line 32) | Reconnecting ConnectionState = ConnectionState(opcua.Reconnecting)
  type OpcUAClientConfig (line 39) | type OpcUAClientConfig struct
    method Validate (line 58) | func (o *OpcUAClientConfig) Validate() error {
    method validateCertificateConfiguration (line 142) | func (o *OpcUAClientConfig) validateCertificateConfiguration() error {
    method CreateClient (line 164) | func (o *OpcUAClientConfig) CreateClient(telegrafLogger telegraf.Logge...
  type OpcUAClient (line 185) | type OpcUAClient struct
    method determineOrCreateCertificates (line 197) | func (o *OpcUAClient) determineOrCreateCertificates() error {
    method SetupOptions (line 261) | func (o *OpcUAClient) SetupOptions() error {
    method setupWorkarounds (line 285) | func (o *OpcUAClient) setupWorkarounds() error {
    method StatusCodeOK (line 298) | func (o *OpcUAClient) StatusCodeOK(code ua.StatusCode) bool {
    method Connect (line 308) | func (o *OpcUAClient) Connect(ctx context.Context) error {
    method Disconnect (line 356) | func (o *OpcUAClient) Disconnect(ctx context.Context) error {
    method State (line 383) | func (o *OpcUAClient) State() ConnectionState {
    method UpdateNamespaceArray (line 392) | func (o *OpcUAClient) UpdateNamespaceArray(ctx context.Context) error {
    method NamespaceArray (line 436) | func (o *OpcUAClient) NamespaceArray() []string {

FILE: plugins/common/opcua/client_test.go
  function TestSetupWorkarounds (line 10) | func TestSetupWorkarounds(t *testing.T) {
  function TestCheckStatusCode (line 29) | func TestCheckStatusCode(t *testing.T) {
  function TestOpcUAClientConfigValidateSuccess (line 35) | func TestOpcUAClientConfigValidateSuccess(t *testing.T) {
  function TestOpcUAClientConfigValidateFail (line 46) | func TestOpcUAClientConfigValidateFail(t *testing.T) {
  function TestOpcUAClientSetupWorkarounds (line 134) | func TestOpcUAClientSetupWorkarounds(t *testing.T) {
  function TestRemoteCertificateValidation (line 181) | func TestRemoteCertificateValidation(t *testing.T) {

FILE: plugins/common/opcua/errors.go
  type EndpointError (line 39) | type EndpointError struct
    method Error (line 44) | func (e *EndpointError) Error() string {
    method Unwrap (line 48) | func (e *EndpointError) Unwrap() error {
  type SecurityError (line 53) | type SecurityError struct
    method Error (line 59) | func (e *SecurityError) Error() string {
    method Unwrap (line 70) | func (e *SecurityError) Unwrap() error {
  type AuthenticationError (line 75) | type AuthenticationError struct
    method Error (line 80) | func (e *AuthenticationError) Error() string {
    method Unwrap (line 84) | func (e *AuthenticationError) Unwrap() error {
  type CertificateError (line 89) | type CertificateError struct
    method Error (line 95) | func (e *CertificateError) Error() string {
    method Unwrap (line 102) | func (e *CertificateError) Unwrap() error {

FILE: plugins/common/opcua/errors_test.go
  function TestEndpointError (line 10) | func TestEndpointError(t *testing.T) {
  function TestSecurityError (line 42) | func TestSecurityError(t *testing.T) {
  function TestAuthenticationError (line 90) | func TestAuthenticationError(t *testing.T) {
  function TestCertificateError (line 121) | func TestCertificateError(t *testing.T) {
  function TestErrorWrapping (line 154) | func TestErrorWrapping(t *testing.T) {

FILE: plugins/common/opcua/input/input_client.go
  type Trigger (line 22) | type Trigger
  constant Status (line 25) | Status               Trigger = "Status"
  constant StatusValue (line 26) | StatusValue          Trigger = "StatusValue"
  constant StatusValueTimestamp (line 27) | StatusValueTimestamp Trigger = "StatusValueTimestamp"
  type DeadbandType (line 30) | type DeadbandType
  constant None (line 33) | None     DeadbandType = "None"
  constant Absolute (line 34) | Absolute DeadbandType = "Absolute"
  constant Percent (line 35) | Percent  DeadbandType = "Percent"
  type DataChangeFilter (line 38) | type DataChangeFilter struct
  type MonitoringParameters (line 44) | type MonitoringParameters struct
  type NodeSettings (line 52) | type NodeSettings struct
    method NodeID (line 64) | func (tag *NodeSettings) NodeID() string {
  type NodeGroupSettings (line 75) | type NodeGroupSettings struct
  type EventNodeSettings (line 85) | type EventNodeSettings struct
    method NodeID (line 93) | func (e *EventNodeSettings) NodeID() string {
    method validateEventNodeSettings (line 163) | func (e EventNodeSettings) validateEventNodeSettings() error {
  type EventGroupSettings (line 103) | type EventGroupSettings struct
    method UpdateNodeIDSettings (line 115) | func (e *EventGroupSettings) UpdateNodeIDSettings() {
    method Validate (line 137) | func (e *EventGroupSettings) Validate() error {
  type TimestampSource (line 198) | type TimestampSource
  constant TimestampSourceServer (line 201) | TimestampSourceServer   TimestampSource = "server"
  constant TimestampSourceSource (line 202) | TimestampSourceSource   TimestampSource = "source"
  constant TimestampSourceTelegraf (line 203) | TimestampSourceTelegraf TimestampSource = "gather"
  type InputClientConfig (line 207) | type InputClientConfig struct
    method Validate (line 217) | func (o *InputClientConfig) Validate() error {
    method CreateInputClient (line 245) | func (o *InputClientConfig) CreateInputClient(log telegraf.Logger) (*O...
  type NodeMetricMapping (line 283) | type NodeMetricMapping struct
  function NewNodeMetricMapping (line 291) | func NewNodeMetricMapping(metricName string, node NodeSettings, groupTag...
  type EventNodeMetricMapping (line 304) | type EventNodeMetricMapping struct
    method CreateEventFilter (line 729) | func (node *EventNodeMetricMapping) CreateEventFilter() (*ua.Extension...
    method createSelectClauses (line 748) | func (node *EventNodeMetricMapping) createSelectClauses() ([]*ua.Simpl...
    method createWhereClauses (line 764) | func (node *EventNodeMetricMapping) createWhereClauses() (*ua.ContentF...
    method determineNodeIDType (line 815) | func (node *EventNodeMetricMapping) determineNodeIDType() (*ua.NodeID,...
  type NodeValue (line 314) | type NodeValue struct
  type OpcUAInputClient (line 327) | type OpcUAInputClient struct
    method Stop (line 340) | func (o *OpcUAInputClient) Stop(ctx context.Context) <-chan struct{} {
    method InitNodeMetricMapping (line 443) | func (o *OpcUAInputClient) InitNodeMetricMapping() error {
    method InitNodeIDs (line 495) | func (o *OpcUAInputClient) InitNodeIDs() error {
    method InitEventNodeIDs (line 515) | func (o *OpcUAInputClient) InitEventNodeIDs() error {
    method initLastReceivedValues (line 551) | func (o *OpcUAInputClient) initLastReceivedValues() {
    method UpdateNodeValue (line 558) | func (o *OpcUAInputClient) UpdateNodeValue(nodeIdx int, d *ua.DataValu...
    method MetricForNode (line 586) | func (o *OpcUAInputClient) MetricForNode(nodeIdx int) telegraf.Metric {
    method MetricForEvent (line 677) | func (o *OpcUAInputClient) MetricForEvent(nodeIdx int, event *ua.Event...
  type metricParts (line 352) | type metricParts struct
  function newMP (line 358) | func newMP(n *NodeMetricMapping) metricParts {
  function validateNodeToAdd (line 385) | func validateNodeToAdd(existing map[metricParts]struct{}, nmm *NodeMetri...
  function unpack (line 668) | func unpack[Slice ~[]E, E any](prefix string, value Slice) map[string]in...

FILE: plugins/common/opcua/input/input_client_test.go
  function TestValidateOPCTags (line 18) | func TestValidateOPCTags(t *testing.T) {
  function TestNewNodeMetricMappingTags (line 226) | func TestNewNodeMetricMappingTags(t *testing.T) {
  function TestNewNodeMetricMappingIdStrInstantiated (line 307) | func TestNewNodeMetricMappingIdStrInstantiated(t *testing.T) {
  function TestValidateNodeToAdd (line 318) | func TestValidateNodeToAdd(t *testing.T) {
  function TestInitNodeMetricMapping (line 470) | func TestInitNodeMetricMapping(t *testing.T) {
  function TestUpdateNodeValue (line 613) | func TestUpdateNodeValue(t *testing.T) {
  function TestMetricForNode (line 709) | func TestMetricForNode(t *testing.T) {
  function TestMetricForEvent (line 883) | func TestMetricForEvent(t *testing.T) {
  function TestNodeIDGeneration (line 1075) | func TestNodeIDGeneration(t *testing.T) {
  function TestEventNodeIDGeneration (line 1143) | func TestEventNodeIDGeneration(t *testing.T) {
  function TestNodeValidationBothNamespaces (line 1184) | func TestNodeValidationBothNamespaces(t *testing.T) {
  function TestNodeValidationNeitherNamespace (line 1201) | func TestNodeValidationNeitherNamespace(t *testing.T) {
  function TestEventNodeValidationBothNamespaces (line 1216) | func TestEventNodeValidationBothNamespaces(t *testing.T) {
  function TestEventNodeValidationNeitherNamespace (line 1230) | func TestEventNodeValidationNeitherNamespace(t *testing.T) {
  function TestGroupNamespaceURIInheritance (line 1242) | func TestGroupNamespaceURIInheritance(t *testing.T) {
  function TestEventGroupNamespaceURIInheritance (line 1282) | func TestEventGroupNamespaceURIInheritance(t *testing.T) {
  function TestValidateOPCTagsWithNodeID (line 1309) | func TestValidateOPCTagsWithNodeID(t *testing.T) {
  function TestValidateOPCTagsWithNodeIDError (line 1356) | func TestValidateOPCTagsWithNodeIDError(t *testing.T) {
  function TestNodeGroupWithNodeIDString (line 1385) | func TestNodeGroupWithNodeIDString(t *testing.T) {
  function TestEventGroupWithNodeIDString (line 1411) | func TestEventGroupWithNodeIDString(t *testing.T) {

FILE: plugins/common/opcua/logger.go
  type DebugLogger (line 8) | type DebugLogger struct
    method Write (line 12) | func (l *DebugLogger) Write(p []byte) (n int, err error) {

FILE: plugins/common/opcua/opcua_util.go
  function newTempDir (line 30) | func newTempDir() (string, error) {
  function generateCert (line 35) | func generateCert(host string, rsaBits int, certFile, keyFile string, du...
  function publicKey (line 186) | func publicKey(priv interface{}) interface{} {
  function pemBlockForKey (line 197) | func pemBlockForKey(priv interface{}) (*pem.Block, error) {
  method generateClientOpts (line 212) | func (o *OpcUAClient) generateClientOpts(endpoints []*ua.EndpointDescrip...
  method generateAuth (line 381) | func (o *OpcUAClient) generateAuth(a string, cert []byte, pk *rsa.Privat...
  function validateEndpointConfig (line 440) | func validateEndpointConfig(endpoints []*ua.EndpointDescription, secPoli...

FILE: plugins/common/opcua/opcua_util_test.go
  function TestGenerateCertEmptyPaths (line 12) | func TestGenerateCertEmptyPaths(t *testing.T) {
  function TestGenerateCertPersistentPaths (line 28) | func TestGenerateCertPersistentPaths(t *testing.T) {
  function TestGenerateCertCreatesParentDirectory (line 57) | func TestGenerateCertCreatesParentDirectory(t *testing.T) {
  function TestGenerateCertMissingHost (line 79) | func TestGenerateCertMissingHost(t *testing.T) {
  function TestGenerateCertDifferentKeySize (line 88) | func TestGenerateCertDifferentKeySize(t *testing.T) {

FILE: plugins/common/parallel/ordered.go
  type Ordered (line 9) | type Ordered struct
    method Enqueue (line 35) | func (p *Ordered) Enqueue(metric telegraf.Metric) {
    method readQueue (line 48) | func (p *Ordered) readQueue(acc telegraf.Accumulator) {
    method startWorkers (line 60) | func (p *Ordered) startWorkers(count int) {
    method Stop (line 73) | func (p *Ordered) Stop() {
  function NewOrdered (line 20) | func NewOrdered(acc telegraf.Accumulator, fn func(telegraf.Metric) []tel...
  type futureMetric (line 79) | type futureMetric
  type job (line 81) | type job struct

FILE: plugins/common/parallel/parallel.go
  type Parallel (line 5) | type Parallel interface

FILE: plugins/common/parallel/parallel_test.go
  function TestOrderedJobsStayOrdered (line 15) | func TestOrderedJobsStayOrdered(t *testing.T) {
  function TestUnorderedJobsDontDropAnyJobs (line 43) | func TestUnorderedJobsDontDropAnyJobs(t *testing.T) {
  function BenchmarkOrdered (line 75) | func BenchmarkOrdered(b *testing.B) {
  function BenchmarkUnordered (line 95) | func BenchmarkUnordered(b *testing.B) {
  function jobFunc (line 115) | func jobFunc(m telegraf.Metric) []telegraf.Metric {

FILE: plugins/common/parallel/unordered.go
  type Unordered (line 9) | type Unordered struct
    method startWorkers (line 37) | func (p *Unordered) startWorkers(count int) {
    method Stop (line 53) | func (p *Unordered) Stop() {
    method Enqueue (line 58) | func (p *Unordered) Enqueue(m telegraf.Metric) {
  function NewUnordered (line 16) | func NewUnordered(

FILE: plugins/common/postgresql/config.go
  type Config (line 21) | type Config struct
    method CreateService (line 30) | func (c *Config) CreateService() (*Service, error) {
    method sanitizedAddress (line 89) | func (c *Config) sanitizedAddress() (string, error) {
  function connectionDatabase (line 78) | func connectionDatabase(sanitizedAddr string) string {
  function toKeyValue (line 115) | func toKeyValue(uri string) (string, error) {

FILE: plugins/common/postgresql/config_test.go
  function TestURIParsing (line 12) | func TestURIParsing(t *testing.T) {
  function TestSanitizeAddressKeyValue (line 80) | func TestSanitizeAddressKeyValue(t *testing.T) {
  function TestSanitizeAddressURI (line 195) | func TestSanitizeAddressURI(t *testing.T) {

FILE: plugins/common/postgresql/service.go
  type Service (line 13) | type Service struct
    method Start (line 24) | func (p *Service) Start() error {
    method Stop (line 38) | func (p *Service) Stop() {

FILE: plugins/common/proxy/connect.go
  type httpConnectProxy (line 15) | type httpConnectProxy struct
    method DialContext (line 20) | func (c *httpConnectProxy) DialContext(ctx context.Context, network, a...
    method Dial (line 92) | func (c *httpConnectProxy) Dial(network, addr string) (net.Conn, error) {
  function newHTTPConnectProxy (line 96) | func newHTTPConnectProxy(proxyURL *url.URL, forward proxy.Dialer) (proxy...
  function init (line 100) | func init() {
  type contextDialerShim (line 110) | type contextDialerShim struct
    method Dial (line 114) | func (cd *contextDialerShim) Dial(network, addr string) (net.Conn, err...
    method DialContext (line 118) | func (cd *contextDialerShim) DialContext(ctx context.Context, network,...

FILE: plugins/common/proxy/dialer.go
  type ProxiedDialer (line 11) | type ProxiedDialer struct
    method Dial (line 15) | func (pd *ProxiedDialer) Dial(network, addr string) (net.Conn, error) {
    method DialContext (line 19) | func (pd *ProxiedDialer) DialContext(ctx context.Context, network, add...
    method DialTimeout (line 28) | func (pd *ProxiedDialer) DialTimeout(network, addr string, timeout tim...

FILE: plugins/common/proxy/proxy.go
  type HTTPProxy (line 11) | type HTTPProxy struct
    method Proxy (line 18) | func (p *HTTPProxy) Proxy() (proxyFunc, error) {
  type proxyFunc (line 16) | type proxyFunc
  type TCPProxy (line 32) | type TCPProxy struct
    method Proxy (line 37) | func (p *TCPProxy) Proxy() (*ProxiedDialer, error) {

FILE: plugins/common/proxy/socks5.go
  type Socks5ProxyConfig (line 7) | type Socks5ProxyConfig struct
    method GetDialer (line 14) | func (c *Socks5ProxyConfig) GetDialer() (proxy.Dialer, error) {

FILE: plugins/common/proxy/socks5_test.go
  function TestSocks5ProxyConfigIntegration (line 12) | func TestSocks5ProxyConfigIntegration(t *testing.T) {

FILE: plugins/common/ps
Copy disabled (too large) Download .json
Condensed preview — 5868 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (17,354K chars).
[
  {
    "path": ".circleci/config.yml",
    "chars": 25285,
    "preview": "version: 2.1\norbs:\n  win: circleci/windows@5.0.0\n  aws-cli: circleci/aws-cli@3.1.1\n\nexecutors:\n  telegraf-ci:\n    workin"
  },
  {
    "path": ".gitattributes",
    "chars": 221,
    "preview": "CHANGELOG.md merge=union\nREADME.md merge=union\ngo.sum merge=union\nplugins/inputs/all/all.go merge=union\nplugins/outputs/"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/BUG_REPORT.yml",
    "chars": 2482,
    "preview": "name: Bug Report\ndescription: Create a bug report to help us improve\nlabels: [\"bug\"]\nbody:\n  - type: markdown\n    attrib"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/FEATURE_REQUEST.yml",
    "chars": 1170,
    "preview": "name: Feature request\ndescription: Create a feature request to make Telegraf more awesome\nlabels: [\"feature request\"]\nbo"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/SUPPORT.yml",
    "chars": 816,
    "preview": "name: Support request\ndescription: Open a support request\nlabels: [\"support\"]\nbody:\n  - type: markdown\n    attributes:\n "
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 591,
    "preview": "## Summary\n<!-- Mandatory\nExplain here the why, the rationale and motivation, for the changes.\n-->\n\n## Checklist\n<!-- Ma"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 637,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n  "
  },
  {
    "path": ".github/workflows/linter.yml",
    "chars": 1728,
    "preview": "---\n#################################\n#################################\n## Super Linter GitHub Actions ##\n##############"
  },
  {
    "path": ".github/workflows/milestones.yml",
    "chars": 780,
    "preview": "name: Milestones\non:\n  pull_request_target:\n    types:\n      - closed\n\npermissions:\n  issues: write\n  pull-requests: wri"
  },
  {
    "path": ".github/workflows/pr-target-branch.yml",
    "chars": 573,
    "preview": "name: Target Branch\non:\n  pull_request:\n    types:\n      - opened\n      - reopened\n      - synchronize\n      - edited\n\nj"
  },
  {
    "path": ".github/workflows/readme-linter.yml",
    "chars": 848,
    "preview": "name: Lint plugin readmes\non:\n#  push:\n#    branches-ignore: master\n  pull_request:\n    branches: # Names of target bran"
  },
  {
    "path": ".github/workflows/semantic.yml",
    "chars": 291,
    "preview": "---\nname: \"Semantic PR and Commit Messages\"\n\non:\n  pull_request:\n    types: [opened, reopened, synchronize, edited]\n    "
  },
  {
    "path": ".gitignore",
    "chars": 471,
    "preview": "/.idea\n/build\n/etc/telegraf.conf\n/telegraf\n/telegraf.exe\n/telegraf.gz\n/tools/package_lxd_test/package_lxd_test\n/tools/li"
  },
  {
    "path": ".golangci.yml",
    "chars": 23249,
    "preview": "version: \"2\"\n\nlinters:\n  # Default set of linters.\n  # The value can be:\n  # - `standard`: https://golangci-lint.run/doc"
  },
  {
    "path": ".markdownlint.jsonc",
    "chars": 159,
    "preview": "{\n  \"MD013\": {\n    \"code_blocks\": false,\n    \"tables\": false,\n    \"heading_line_length\": 90\n  },\n  \"MD033\": {\n    \"allow"
  },
  {
    "path": ".markdownlintignore",
    "chars": 49,
    "preview": ".github/PULL_REQUEST_TEMPLATE.md\ndocs/includes/*\n"
  },
  {
    "path": "CHANGELOG-1.13.md",
    "chars": 204295,
    "preview": "<!-- markdownlint-disable MD013 MD024 -->\n# Changelog v1.13 and Earlier\n\n## v1.13.4 [2020-02-25]\n\n### Release Notes\n\n- O"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 503541,
    "preview": "<!-- markdownlint-disable MD013 MD024 -->\n# Changelog\n\n## v1.38.1 [2026-03-16]\n\n### Bugfixes\n\n- [#18491](https://github."
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3059,
    "preview": "\n# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make particip"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 6096,
    "preview": "# Contributing to Telegraf\n\nThere are many ways to get involved in the Telegraf project! From opening\nissues, creating p"
  },
  {
    "path": "EXTERNAL_PLUGINS.md",
    "chars": 4835,
    "preview": "<!-- markdownlint-disable MD013 -->\n# External Plugins\n\nThis is a list of plugins that can be compiled outside of Telegr"
  },
  {
    "path": "LICENSE",
    "chars": 1087,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2015-2025 InfluxData Inc.\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": "Makefile",
    "chars": 17249,
    "preview": "ifneq (,$(filter $(OS),Windows_NT Windows))\n\tEXEEXT=.exe\nendif\n\ncat := $(if $(filter $(OS),sh.exe),type,cat)\nnext_versio"
  },
  {
    "path": "README.md",
    "chars": 6761,
    "preview": "# ![tiger](assets/TelegrafTigerSmall.png \"tiger\") Telegraf\n\n[![GoDoc](https://img.shields.io/badge/doc-reference-00ADD8."
  },
  {
    "path": "SECURITY.md",
    "chars": 495,
    "preview": "# Security Policy\n\n## Reporting a Vulnerability\n\nInfluxData takes security and our users' trust seriously. If you believ"
  },
  {
    "path": "accumulator.go",
    "chars": 2841,
    "preview": "package telegraf\n\nimport (\n\t\"time\"\n)\n\n// Accumulator allows adding metrics to the processing flow.\ntype Accumulator inte"
  },
  {
    "path": "agent/README.md",
    "chars": 191,
    "preview": "# Agent\n\nFor a complete list of configuration options and details about the agent, please\nsee the [configuration][] docu"
  },
  {
    "path": "agent/accumulator.go",
    "chars": 3623,
    "preview": "package agent\n\nimport (\n\t\"time\"\n\n\t\"github.com/influxdata/telegraf\"\n\t\"github.com/influxdata/telegraf/metric\"\n)\n\ntype Metr"
  },
  {
    "path": "agent/accumulator_test.go",
    "chars": 4024,
    "preview": "package agent\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"os\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.co"
  },
  {
    "path": "agent/agent.go",
    "chars": 32698,
    "preview": "package agent\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"runtime\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/fatih/color\"\n\n"
  },
  {
    "path": "agent/agent_posix.go",
    "chars": 317,
    "preview": "//go:build !windows\n\npackage agent\n\nimport (\n\t\"os\"\n\t\"os/signal\"\n\t\"syscall\"\n)\n\nconst flushSignal = syscall.SIGUSR1\n\nfunc "
  },
  {
    "path": "agent/agent_test.go",
    "chars": 7197,
    "preview": "package agent\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/google/go-cmp/"
  },
  {
    "path": "agent/agent_windows.go",
    "chars": 187,
    "preview": "//go:build windows\n\npackage agent\n\nimport \"os\"\n\nfunc watchForFlushSignal(_ chan os.Signal) {\n\t// not supported\n}\n\nfunc s"
  },
  {
    "path": "agent/testcases/aggregators-rerun-processors/expected.out",
    "chars": 54,
    "preview": "metric value=420\nmetric value_min=4200,value_max=4200\n"
  },
  {
    "path": "agent/testcases/aggregators-rerun-processors/input.influx",
    "chars": 18,
    "preview": "metric value=42.0\n"
  },
  {
    "path": "agent/testcases/aggregators-rerun-processors/telegraf.conf",
    "chars": 498,
    "preview": "# Test for not skipping processors after running aggregators\n[agent]\n  omit_hostname = true\n  skip_processors_after_aggr"
  },
  {
    "path": "agent/testcases/aggregators-skip-processors/expected.out",
    "chars": 52,
    "preview": "metric value=420\nmetric value_min=420,value_max=420\n"
  },
  {
    "path": "agent/testcases/aggregators-skip-processors/input.influx",
    "chars": 18,
    "preview": "metric value=42.0\n"
  },
  {
    "path": "agent/testcases/aggregators-skip-processors/telegraf.conf",
    "chars": 492,
    "preview": "# Test for skipping processors after running aggregators\n[agent]\n  omit_hostname = true\n  skip_processors_after_aggregat"
  },
  {
    "path": "agent/testcases/processor-order-appearance/expected.out",
    "chars": 198,
    "preview": "new_metric_from_starlark,foo=bar baz=42i,timestamp=\"2023-07-13T12:53:54.197709713Z\" 1689252834197709713\nold_metric_from_"
  },
  {
    "path": "agent/testcases/processor-order-appearance/input.influx",
    "chars": 61,
    "preview": "old_metric_from_mock,mood=good value=23i 1689253834000000000\n"
  },
  {
    "path": "agent/testcases/processor-order-appearance/telegraf.conf",
    "chars": 553,
    "preview": "# Test for using the appearance order in the file for processor order\n[[inputs.file]]\n  files = [\"testcases/processor-or"
  },
  {
    "path": "agent/testcases/processor-order-explicit/expected.out",
    "chars": 198,
    "preview": "new_metric_from_starlark,foo=bar baz=42i,timestamp=\"2023-07-13T12:53:54.197709713Z\" 1689252834197709713\nold_metric_from_"
  },
  {
    "path": "agent/testcases/processor-order-explicit/input.influx",
    "chars": 61,
    "preview": "old_metric_from_mock,mood=good value=23i 1689253834000000000\n"
  },
  {
    "path": "agent/testcases/processor-order-explicit/telegraf.conf",
    "chars": 554,
    "preview": "# Test for specifying an explicit processor order\n[[inputs.file]]\n  files = [\"testcases/processor-order-explicit/input.i"
  },
  {
    "path": "agent/testcases/processor-order-mixed/expected.out",
    "chars": 198,
    "preview": "new_metric_from_starlark,foo=bar baz=42i,timestamp=\"2023-07-13T12:53:54.197709713Z\" 1689252834197709713\nold_metric_from_"
  },
  {
    "path": "agent/testcases/processor-order-mixed/input.influx",
    "chars": 61,
    "preview": "old_metric_from_mock,mood=good value=23i 1689253834000000000\n"
  },
  {
    "path": "agent/testcases/processor-order-mixed/telegraf.conf",
    "chars": 563,
    "preview": "# Test for using the appearance order in the file for processor order\n[[inputs.file]]\n  files = [\"testcases/processor-or"
  },
  {
    "path": "agent/testcases/processor-order-no-starlark/expected.out",
    "chars": 155,
    "preview": "new_metric_from_starlark,foo=bar baz=42i 1689252834197709713\nold_metric_from_mock,mood=good value=23i,timestamp=\"2023-07"
  },
  {
    "path": "agent/testcases/processor-order-no-starlark/input.influx",
    "chars": 61,
    "preview": "old_metric_from_mock,mood=good value=23i 1689253834000000000\n"
  },
  {
    "path": "agent/testcases/processor-order-no-starlark/telegraf.conf",
    "chars": 656,
    "preview": "# Test for using the appearance order in the file for processor order.\n# This will not add the \"timestamp\" field as the "
  },
  {
    "path": "aggregator.go",
    "chars": 530,
    "preview": "package telegraf\n\n// Aggregator is an interface for implementing an Aggregator plugin.\n// the RunningAggregator wraps th"
  },
  {
    "path": "build_version.txt",
    "chars": 6,
    "preview": "1.39.0"
  },
  {
    "path": "cmd/telegraf/agent.conf",
    "chars": 4584,
    "preview": "# Configuration for telegraf agent\n[agent]\n  ## Default data collection interval for all inputs\n  interval = \"10s\"\n  ## "
  },
  {
    "path": "cmd/telegraf/cmd_config.go",
    "chars": 8964,
    "preview": "// Command handling for configuration \"config\" command\npackage main\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"net/url\"\n\t"
  },
  {
    "path": "cmd/telegraf/cmd_plugins.go",
    "chars": 5744,
    "preview": "// Command handling for configuration \"plugins\" command\npackage main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github"
  },
  {
    "path": "cmd/telegraf/cmd_secretstore.go",
    "chars": 8292,
    "preview": "// Command handling for secret-stores' \"secrets\" command\npackage main\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"sort\"\n\t\"strings"
  },
  {
    "path": "cmd/telegraf/cmd_win_service.go",
    "chars": 5904,
    "preview": "//go:build windows\n\n// Command handling for configuration \"service\" command\npackage main\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io"
  },
  {
    "path": "cmd/telegraf/cmd_win_service_notwindows.go",
    "chars": 208,
    "preview": "//go:build !windows\n\npackage main\n\nimport (\n\t\"io\"\n\n\t\"github.com/urfave/cli/v2\"\n)\n\nfunc cliFlags() []cli.Flag {\n\treturn m"
  },
  {
    "path": "cmd/telegraf/main.go",
    "chars": 15611,
    "preview": "package main\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/awnumar/memguard\"\n\t\"github.c"
  },
  {
    "path": "cmd/telegraf/main_test.go",
    "chars": 13884,
    "preview": "package main\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/tes"
  },
  {
    "path": "cmd/telegraf/main_win_test.go",
    "chars": 883,
    "preview": "//go:build windows\n\npackage main\n\nimport (\n\t\"bytes\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc Tes"
  },
  {
    "path": "cmd/telegraf/pprof.go",
    "chars": 980,
    "preview": "package main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\t_ \"net/http/pprof\" //nolint:gosec // Import for pprof, only enabled via CLI f"
  },
  {
    "path": "cmd/telegraf/printer.go",
    "chars": 12427,
    "preview": "package main\n\nimport (\n\t_ \"embed\"\n\t\"fmt\"\n\t\"io\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/influxdata/telegraf\"\n\t\"github.com/influx"
  },
  {
    "path": "cmd/telegraf/telegraf.go",
    "chars": 16203,
    "preview": "package main\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"os/signal\"\n\t\"strings\"\n\t\"syscall"
  },
  {
    "path": "cmd/telegraf/telegraf_posix.go",
    "chars": 892,
    "preview": "//go:build !windows\n\npackage main\n\nimport (\n\t\"log\"\n\t\"runtime\"\n\t\"syscall\"\n)\n\nfunc (t *Telegraf) Run() error {\n\tstop = mak"
  },
  {
    "path": "cmd/telegraf/telegraf_windows.go",
    "chars": 12312,
    "preview": "//go:build windows\n\n//go:generate ../../scripts/windows-gen-syso.sh $GOARCH\n\npackage main\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"l"
  },
  {
    "path": "config/config.go",
    "chars": 63090,
    "preview": "package config\n\nimport (\n\t\"bytes\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"path/filepa"
  },
  {
    "path": "config/config_test.go",
    "chars": 51968,
    "preview": "package config_test\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"refle"
  },
  {
    "path": "config/deprecation.go",
    "chars": 11260,
    "preview": "package config\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/coreos/go-semver/semver\"\n\t\""
  },
  {
    "path": "config/deprecation_test.go",
    "chars": 7205,
    "preview": "package config\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"log\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/coreos/go-semver/semver\"\n\t"
  },
  {
    "path": "config/envvar.go",
    "chars": 7864,
    "preview": "package config\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/compose-spec/compose-go/template"
  },
  {
    "path": "config/internal_test.go",
    "chars": 9914,
    "preview": "package config\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"testing\"\n\t\"time\"\n\n\t\"g"
  },
  {
    "path": "config/migration.go",
    "chars": 7262,
    "preview": "package config\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/influxdata/tom"
  },
  {
    "path": "config/plugin_id.go",
    "chars": 2167,
    "preview": "package config\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"sort\"\n\n\t\"github.com/influxdata/toml/ast\"\n)\n\ntype keyV"
  },
  {
    "path": "config/plugin_printer.go",
    "chars": 2360,
    "preview": "package config\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/jedib0t/go-pretty/v6/table\"\n)\n\nvar headers = ["
  },
  {
    "path": "config/plugin_selector.go",
    "chars": 3587,
    "preview": "package config\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"github.com/influxdata/telegraf/filter\"\n)\n\nconst (\n\tsel"
  },
  {
    "path": "config/plugin_selector_test.go",
    "chars": 10332,
    "preview": "package config\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestSetPluginLabelSelections(t *test"
  },
  {
    "path": "config/secret.go",
    "chars": 9513,
    "preview": "package config\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"regexp\"\n\t\"strings\"\n\t\"sync/atomic\"\n\n\t\"github.com/influxdata/telegraf\"\n)\n\n// unli"
  },
  {
    "path": "config/secret_protected.go",
    "chars": 2443,
    "preview": "package config\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/awnumar/memguard\"\n)\n\ntype protectedSecretImpl struct{}\n\nfunc (*protectedSe"
  },
  {
    "path": "config/secret_test.go",
    "chars": 21544,
    "preview": "package config\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"log\"\n\t\"testing\"\n\n\t\"github.com/awnumar/memguard\"\n\t\"github.com/stretc"
  },
  {
    "path": "config/secret_unprotected.go",
    "chars": 1905,
    "preview": "package config\n\nimport (\n\t\"bytes\"\n\t\"unsafe\"\n)\n\ntype unprotectedSecretImpl struct{}\n\nfunc (*unprotectedSecretImpl) Contai"
  },
  {
    "path": "config/testdata/addressbook.proto",
    "chars": 435,
    "preview": "syntax = \"proto3\";\n\npackage addressbook;\n\nmessage Person {\n  string name = 1;\n  int32 id = 2;  // Unique ID number for t"
  },
  {
    "path": "config/testdata/azure_monitor.toml",
    "chars": 77,
    "preview": "[[outputs.azure_monitor]]\n\n[[outputs.azure_monitor]]\n  namespace_prefix = \"\"\n"
  },
  {
    "path": "config/testdata/default_parser.toml",
    "chars": 39,
    "preview": "[[inputs.file]]\n   files = [\"metrics\"]\n"
  },
  {
    "path": "config/testdata/default_parser_exec.toml",
    "chars": 58,
    "preview": "[[inputs.exec]]\n  command = '/usr/bin/echo {\"value\": 42}'\n"
  },
  {
    "path": "config/testdata/deprecated_field_filter.toml",
    "chars": 145,
    "preview": "[[inputs.file]]\n  pass = [\"foo\"]\n  fieldpass = [\"bar\"]\n  fieldinclude = [\"baz\"]\n\n  drop = [\"foo\"]\n  fielddrop = [\"bar\"]\n"
  },
  {
    "path": "config/testdata/envvar_comments.toml",
    "chars": 2388,
    "preview": "# Telegraf Configuration\n#\n# Telegraf is entirely plugin driven. All metrics are gathered from the\n# declared inputs, an"
  },
  {
    "path": "config/testdata/envvar_comments_expected.toml",
    "chars": 1626,
    "preview": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n[global_tags]\n\n[agent]\ninterval = \"10s\"\nround_interval = true\nmetric_batch_size = 1000\nmetric_buffer_limi"
  },
  {
    "path": "config/testdata/envvar_malicious.conf",
    "chars": 322,
    "preview": "[[inputs.memcached]]\n  # this comment line will be ignored by the parser\n  servers = [\"my.server.com\"]\n  port = 8080\n   "
  },
  {
    "path": "config/testdata/envvar_non_string.conf",
    "chars": 302,
    "preview": "[[inputs.memcached]]\n  # this comment line will be ignored by the parser\n  servers = [\"$MY_TEST_SERVER\"]\n  port = ${PORT"
  },
  {
    "path": "config/testdata/envvar_non_string_multiline.conf",
    "chars": 217,
    "preview": "[[inputs.memcached]]\n  # this comment line will be ignored by the parser\n  servers = [\"$MY_TEST_SERVER\"]\n  port = ${PORT"
  },
  {
    "path": "config/testdata/envvar_valid.conf",
    "chars": 299,
    "preview": "[[inputs.memcached]]\n  # this comment line will be ignored by the parser\n  servers = [\"$MY_TEST_SERVER\"]\n  port = 8080\n "
  },
  {
    "path": "config/testdata/envvar_valid_multiline.conf",
    "chars": 214,
    "preview": "[[inputs.memcached]]\n  # this comment line will be ignored by the parser\n  servers = [\"$MY_TEST_SERVER\"]\n  port = 8080\n "
  },
  {
    "path": "config/testdata/filter_metricpass.toml",
    "chars": 126,
    "preview": "[[processors.processor]]\n  metricpass = '(\"state\" in tags && tags.state == \"on\") || time > timestamp(\"2023-04-24T00:00:0"
  },
  {
    "path": "config/testdata/inline_table.toml",
    "chars": 257,
    "preview": "[[outputs.http]]\n    headers = { Authorization = \"Token $TOKEN\",Content-Type = \"application/json\" }\n    taginclude = [\"o"
  },
  {
    "path": "config/testdata/invalid_field.toml",
    "chars": 49,
    "preview": "[[inputs.http_listener_v2]]\n  not_a_field = true\n"
  },
  {
    "path": "config/testdata/invalid_field_in_parser_table.toml",
    "chars": 97,
    "preview": "[[inputs.parser]]\n  data_format = \"xpath_json\"\n\n  [[inputs.parser.xpath]]\n    not_a_field = true\n"
  },
  {
    "path": "config/testdata/invalid_field_in_parserfunc_table.toml",
    "chars": 107,
    "preview": "[[inputs.parser_func]]\n  data_format = \"xpath_json\"\n\n  [[inputs.parser_func.xpath]]\n    not_a_field = true\n"
  },
  {
    "path": "config/testdata/invalid_field_processor.toml",
    "chars": 46,
    "preview": "[[processors.processor]]\n  not_a_field = true\n"
  },
  {
    "path": "config/testdata/invalid_field_processor_in_parser.toml",
    "chars": 78,
    "preview": "[[processors.processor_parser]]\n  not_a_field = true\n  data_format = \"influx\"\n"
  },
  {
    "path": "config/testdata/invalid_field_processor_in_parser_table.toml",
    "chars": 125,
    "preview": "[[processors.processor_parser]]\n  data_format = \"xpath_json\"\n\n  [[processors.processor_parser.xpath]]\n    not_a_field = "
  },
  {
    "path": "config/testdata/invalid_field_processor_in_parserfunc.toml",
    "chars": 82,
    "preview": "[[processors.processor_parserfunc]]\n  not_a_field = true\n  data_format = \"influx\"\n"
  },
  {
    "path": "config/testdata/invalid_field_processor_in_parserfunc_table.toml",
    "chars": 107,
    "preview": "[[inputs.parser_func]]\n  data_format = \"xpath_json\"\n\n  [[inputs.parser_func.xpath]]\n    not_a_field = true\n"
  },
  {
    "path": "config/testdata/invalid_field_processor_with_parser.toml",
    "chars": 78,
    "preview": "[[processors.processor_parser]]\n  not_a_field = true\n  data_format = \"influx\"\n"
  },
  {
    "path": "config/testdata/invalid_field_processor_with_parserfunc.toml",
    "chars": 82,
    "preview": "[[processors.processor_parserfunc]]\n  not_a_field = true\n  data_format = \"influx\"\n"
  },
  {
    "path": "config/testdata/invalid_field_with_parser.toml",
    "chars": 64,
    "preview": "[[inputs.parser]]\n  not_a_field = true\n  data_format = \"influx\"\n"
  },
  {
    "path": "config/testdata/invalid_field_with_parserfunc.toml",
    "chars": 69,
    "preview": "[[inputs.parser_func]]\n  not_a_field = true\n  data_format = \"influx\"\n"
  },
  {
    "path": "config/testdata/non_slice_slice.toml",
    "chars": 106,
    "preview": "[[outputs.http]]\n  [outputs.http.headers]\n    Content-Type = \"application/json\"\n  taginclude = [\"org_id\"]\n"
  },
  {
    "path": "config/testdata/parsers_new.toml",
    "chars": 1347,
    "preview": "[[inputs.parser_test_new]]\n  data_format = \"collectd\"\n\n[[inputs.parser_test_new]]\n  data_format = \"csv\"\n  csv_header_row"
  },
  {
    "path": "config/testdata/processor_order/multiple_processors.toml",
    "chars": 123,
    "preview": "[[processors.processor]]\n\n[[processors.parser_test]]\n\n[[processors.processor_parser]]\n\n[[processors.processor_parserfunc"
  },
  {
    "path": "config/testdata/processor_order/multiple_processors_messy_order.toml",
    "chars": 250,
    "preview": "[[processors.parser_test]]\n\n[[processors.processor_parser]]\n    order = 2\n\n[[processors.processor_parserfunc]]\n\n[[proces"
  },
  {
    "path": "config/testdata/processor_order/multiple_processors_simple_order.toml",
    "chars": 138,
    "preview": "[[processors.parser_test]]\n\n[[processors.processor_parser]]\n\n[[processors.processor_parserfunc]]\n\n[[processors.processor"
  },
  {
    "path": "config/testdata/processors_with_parsers.toml",
    "chars": 1347,
    "preview": "[[processors.parser_test]]\n  data_format = \"collectd\"\n\n[[processors.parser_test]]\n  data_format = \"csv\"\n  csv_header_row"
  },
  {
    "path": "config/testdata/serializers_new.toml",
    "chars": 667,
    "preview": "[[outputs.serializer_test_new]]\n  data_format = \"carbon2\"\n\n[[outputs.serializer_test_new]]\n  data_format = \"csv\"\n\n[[outp"
  },
  {
    "path": "config/testdata/serializers_old.toml",
    "chars": 667,
    "preview": "[[outputs.serializer_test_old]]\n  data_format = \"carbon2\"\n\n[[outputs.serializer_test_old]]\n  data_format = \"csv\"\n\n[[outp"
  },
  {
    "path": "config/testdata/single_plugin.toml",
    "chars": 304,
    "preview": "[[inputs.memcached]]\n  servers = [\"localhost\"]\n  namepass = [\"metricname1\"]\n  namedrop = [\"metricname2\"]\n  fieldinclude "
  },
  {
    "path": "config/testdata/single_plugin_env_vars.toml",
    "chars": 1414,
    "preview": "# Telegraf Configuration\n#\n# Telegraf is entirely plugin driven. All metrics are gathered from the\n# declared inputs, an"
  },
  {
    "path": "config/testdata/single_plugin_with_comment_in_array.toml",
    "chars": 84,
    "preview": "[[inputs.memcached]]\n  servers = [\n    # A comment in the array\n    \"localhost\"\n  ]\n"
  },
  {
    "path": "config/testdata/single_plugin_with_separators.toml",
    "chars": 358,
    "preview": "[[inputs.memcached]]\n  servers = [\"localhost\"]\n  namepass = [\"metricname1\"]\n  namepass_separator = \".\"\n  namedrop = [\"me"
  },
  {
    "path": "config/testdata/slice_comment.toml",
    "chars": 69,
    "preview": "[[outputs.http]]\n  scopes = [\n    # comment\n    \"test\" # comment\n  ]\n"
  },
  {
    "path": "config/testdata/special_types.key",
    "chars": 227,
    "preview": "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEIFYI4Hm+jRW3OC3zvoWDaCig6E7X0Ql9l8elHPU3e5+toAoGCCqGSM49\nAwEHoUQDQgAEGOw1XQ84Ai3G"
  },
  {
    "path": "config/testdata/special_types.pem",
    "chars": 599,
    "preview": "-----BEGIN CERTIFICATE-----\nMIIBjTCCATOgAwIBAgIRALJ1hlgDYCh5dWfr6tdrBEYwCgYIKoZIzj0EAwIwFDES\nMBAGA1UEAxMJbG9jYWxob3N0MB4"
  },
  {
    "path": "config/testdata/special_types.toml",
    "chars": 200,
    "preview": "[[inputs.http_listener_v2]]\n  write_timeout = \"1s\"\n  max_body_size = \"1MiB\"\n  paths = [ \"\"\"\n/path/\n\"\"\" ]\n  tls_cert = \"\""
  },
  {
    "path": "config/testdata/state_persistence_input_all_different.toml",
    "chars": 920,
    "preview": "[[inputs.statetest]]\n\n[[inputs.statetest]]\n  servers = [\"myserver.com\", \"myserver.org\"]\n\n[[inputs.statetest]]\n  servers "
  },
  {
    "path": "config/testdata/state_persistence_input_all_same.toml",
    "chars": 1515,
    "preview": "[[inputs.statetest]]\n  servers = [\"myserver.org\", \"myserver.com\"]\n  port = 80\n  method = \"strange\"\n  setup = [\n    {name"
  },
  {
    "path": "config/testdata/state_persistence_input_store_load.toml",
    "chars": 310,
    "preview": "[[inputs.statetest]]\n  servers = [\"myserverA.org\"]\n  port = 42\n  method = \"strange\"\n\n[[inputs.statetest]]\n  servers = [\""
  },
  {
    "path": "config/testdata/state_persistence_processors.toml",
    "chars": 140,
    "preview": "[[processors.statetest]]\n  option = \"foo\"\n\n[[processors.statetest]]\n  option = \"bar\"\n\n[[processors.statetest]]\n  option "
  },
  {
    "path": "config/testdata/subconfig/exec.conf",
    "chars": 125,
    "preview": "[[inputs.exec]]\n  # the command to run\n  command = \"/usr/bin/myothercollector --foo=bar\"\n  name_suffix = \"_myothercollec"
  },
  {
    "path": "config/testdata/subconfig/memcached.conf",
    "chars": 290,
    "preview": "[[inputs.memcached]]\n  servers = [\"192.168.1.1\"]\n  namepass = [\"metricname1\"]\n  namedrop = [\"metricname2\"]\n  pass = [\"so"
  },
  {
    "path": "config/testdata/subconfig/procstat.conf",
    "chars": 63,
    "preview": "[[inputs.procstat]]\n  pid_file = \"/var/run/grafana-server.pid\"\n"
  },
  {
    "path": "config/testdata/telegraf-agent.toml",
    "chars": 10324,
    "preview": "# Telegraf configuration\n\n# Telegraf is entirely plugin driven. All metrics are gathered from the\n# declared inputs.\n\n# "
  },
  {
    "path": "config/testdata/wrong_cert_path.toml",
    "chars": 129,
    "preview": "[[inputs.http_listener_v2]]\n  write_timeout = \"1s\"\n  max_body_size = \"1MiB\"\n  tls_cert = \"invalid.pem\"\n  tls_key = \"inva"
  },
  {
    "path": "config/testdata/wrong_field_type.toml",
    "chars": 42,
    "preview": "[[inputs.http_listener_v2]]\n  port = \"80\"\n"
  },
  {
    "path": "config/testdata/wrong_field_type2.toml",
    "chars": 47,
    "preview": "[[inputs.http_listener_v2]]\n  methods = \"POST\"\n"
  },
  {
    "path": "config/types.go",
    "chars": 1798,
    "preview": "package config\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/alecthomas/units\"\n)\n\n// Regexp for"
  },
  {
    "path": "config/types_test.go",
    "chars": 6456,
    "preview": "package config_test\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/influxdata/telegr"
  },
  {
    "path": "docs/AGGREGATORS.md",
    "chars": 4288,
    "preview": "# Aggregator Plugins\n\nThis section is for developers who want to create a new aggregator plugin.\n\n## Aggregator Plugin G"
  },
  {
    "path": "docs/AGGREGATORS_AND_PROCESSORS.md",
    "chars": 4134,
    "preview": "# Aggregator & Processor Plugins\n\nTelegraf has the concept of aggregator and processor plugins, which sit between\ninputs"
  },
  {
    "path": "docs/APPARMOR.md",
    "chars": 1171,
    "preview": "# AppArmor\n\nWhen running Telegraf under AppArmor users may see denial messages depending on\nthe Telegraf plugins used an"
  },
  {
    "path": "docs/COMMANDS_AND_FLAGS.md",
    "chars": 1402,
    "preview": "# Telegraf Commands & Flags\n\nThe following page describes some of the commands and flags available via the\nTelegraf comm"
  },
  {
    "path": "docs/CONFIGURATION.md",
    "chars": 33095,
    "preview": "<!-- markdownlint-disable MD024 -->\n\n# Configuration\n\nTelegraf's configuration file is written using [TOML][] and is com"
  },
  {
    "path": "docs/CUSTOMIZATION.md",
    "chars": 1699,
    "preview": "# Customization\n\nYou can build customized versions of Telegraf with a specific plugin set using\nthe [custom builder](/to"
  },
  {
    "path": "docs/DATA_FORMATS_INPUT.md",
    "chars": 1605,
    "preview": "# Input Data Formats\n\nTelegraf contains many general purpose plugins that support parsing input data\nusing a configurabl"
  },
  {
    "path": "docs/DATA_FORMATS_OUTPUT.md",
    "chars": 1175,
    "preview": "# Output Data Formats\n\nIn addition to output specific data formats, Telegraf supports a set of\nstandard data formats tha"
  },
  {
    "path": "docs/DOCKER.md",
    "chars": 2383,
    "preview": "# Docker Images\n\nTelegraf is available as an [Official image][] on DockerHub. Official images\nare a curated set of Docke"
  },
  {
    "path": "docs/EXTERNAL_PLUGINS.md",
    "chars": 5285,
    "preview": "# External Plugins\n\n[External plugins](/EXTERNAL_PLUGINS.md) are external programs that are built\noutside of Telegraf th"
  },
  {
    "path": "docs/FAQ.md",
    "chars": 5141,
    "preview": "# Frequently Asked Questions\n\n## When is the next release? When will my PR or fix get released?\n\nTelegraf has four minor"
  },
  {
    "path": "docs/INPUTS.md",
    "chars": 6809,
    "preview": "# Input Plugins\n\nThis section is for developers who want to create new collection inputs.\nTelegraf is entirely plugin dr"
  },
  {
    "path": "docs/INSTALL_GUIDE.md",
    "chars": 5438,
    "preview": "# Installation\n\nTelegraf compiles to a single static binary, which makes it easy to install.\nBoth InfluxData and the com"
  },
  {
    "path": "docs/INTEGRATION_TESTS.md",
    "chars": 5667,
    "preview": "# Integration Tests\n\n## Running\n\nTo run all named integration tests:\n\n```shell\nmake test-integration\n```\n\nTo run all tes"
  },
  {
    "path": "docs/LICENSE_OF_DEPENDENCIES.md",
    "chars": 60495,
    "preview": "<!-- markdownlint-disable MD013 -->\n# Licenses of dependencies\n\nWhen distributed in a binary form, Telegraf may contain "
  },
  {
    "path": "docs/METRICS.md",
    "chars": 2327,
    "preview": "# Metrics\n\nTelegraf metrics are the internal representation used to model data during\nprocessing.  Metrics are closely b"
  },
  {
    "path": "docs/NIGHTLIES.md",
    "chars": 5578,
    "preview": "\n# Nightly Builds\n\nThese builds are generated from the master branch at midnight UTC:\n\n| DEB             | RPM          "
  },
  {
    "path": "docs/OUTPUTS.md",
    "chars": 4762,
    "preview": "# Output Plugins\n\nThis section is for developers who want to create a new output sink. Outputs\nare created in a similar "
  },
  {
    "path": "docs/PARSING_DATA.md",
    "chars": 9365,
    "preview": "# Parsing Data\n\nTelegraf has the ability to take data in a variety of formats. Telegraf requires\nconfiguration from the "
  },
  {
    "path": "docs/PROCESSORS.md",
    "chars": 5813,
    "preview": "# Processor Plugins\n\nThis section is for developers who want to create a new processor plugin.\n\n## Processor Plugin Guid"
  },
  {
    "path": "docs/PROFILING.md",
    "chars": 1618,
    "preview": "# Profiling\n\nTelegraf uses the standard package `net/http/pprof`. This package serves via\nits HTTP server runtime profil"
  },
  {
    "path": "docs/QUICK_START.md",
    "chars": 2027,
    "preview": "# Quick Start\n\nThe following demos getting started with Telegraf quickly using Docker to\nmonitor the local system.\n\n## I"
  },
  {
    "path": "docs/README.md",
    "chars": 2576,
    "preview": "# Telegraf Documentation\n\n* [FAQ][]\n* [Install Guide][]\n* [Quick Start][]\n\n## Usage\n\n* [Commands and Flags][]\n* [Configu"
  },
  {
    "path": "docs/RELEASES.md",
    "chars": 922,
    "preview": "# Releases\n\nTelegraf has four minor releases a year in March, June, September, and\nDecember. In between each of those mi"
  },
  {
    "path": "docs/SECRETSTORES.md",
    "chars": 3303,
    "preview": "# Secret Store Plugins\n\nThis section is for developers who want to create a new secret store plugin.\n\n## Secret Store Pl"
  },
  {
    "path": "docs/SQL_DRIVERS_INPUT.md",
    "chars": 7184,
    "preview": "# Available SQL drivers for the SQL input plugin\n\nThis is a list of available drivers for the SQL input plugin. The\ndata"
  },
  {
    "path": "docs/SUPPORTED_PLATFORMS.md",
    "chars": 2452,
    "preview": "# Supported Platforms\n\nThis doc helps define the platform support for Telegraf. See the\n[install guide][] for specific o"
  },
  {
    "path": "docs/TEMPLATE_PATTERN.md",
    "chars": 3432,
    "preview": "# Template Patterns\n\nTemplate patterns are a mini language that describes how a dot delimited\nstring should be mapped to"
  },
  {
    "path": "docs/TLS.md",
    "chars": 4476,
    "preview": "# Transport Layer Security\n\nThere is an ongoing effort to standardize TLS options across plugins.  When\npossible, plugin"
  },
  {
    "path": "docs/TOML.md",
    "chars": 3075,
    "preview": "# TOML\n\nTelegraf uses TOML as the configuration language. The following outlines a few\ncommon questions and issues that "
  },
  {
    "path": "docs/WINDOWS_SERVICE.md",
    "chars": 4957,
    "preview": "# Running Telegraf as a Windows Service\n\nTelegraf natively supports running as a Windows Service. Outlined below is are\n"
  },
  {
    "path": "docs/developers/CODE_STYLE.md",
    "chars": 326,
    "preview": "# Code Style\n\nCode is required to be formatted using `gofmt`, this covers most code style\nrequirements.  It is also high"
  },
  {
    "path": "docs/developers/DEBUG.md",
    "chars": 2567,
    "preview": "# Debug\n\nThe following describes how to use the [delve][1] debugger with telegraf\nduring development. Delve has many, ve"
  },
  {
    "path": "docs/developers/DEPRECATION.md",
    "chars": 3024,
    "preview": "# Deprecation\n\nDeprecation is the primary tool for making changes in Telegraf.  A deprecation\nindicates that the communi"
  },
  {
    "path": "docs/developers/LOGGING.md",
    "chars": 2259,
    "preview": "# Logging\n\n## Plugin Logging\n\nYou can access the Logger for a plugin by defining a field named `Log`.  This\n`Logger` is "
  },
  {
    "path": "docs/developers/METRIC_FORMAT_CHANGES.md",
    "chars": 3952,
    "preview": "# Metric Format Changes\n\nWhen making changes to an existing input plugin, care must be taken not to\nchange the metric fo"
  },
  {
    "path": "docs/developers/PACKAGING.md",
    "chars": 3422,
    "preview": "# Packaging\n\nBuilding the packages for Telegraf is automated using [Make][make]. Just running\n`make` will build a Telegr"
  },
  {
    "path": "docs/developers/PROFILING.md",
    "chars": 1398,
    "preview": "# Profiling\n\nThis article describes how to collect performance traces and memory profiles\nfrom Telegraf. If you are subm"
  },
  {
    "path": "docs/developers/REVIEWS.md",
    "chars": 10945,
    "preview": "# Reviews\n\nPull-requests require two approvals before being merged. Expect several rounds\nof back and forth on reviews, "
  },
  {
    "path": "docs/developers/SAMPLE_CONFIG.md",
    "chars": 2363,
    "preview": "# Sample Configuration\n\nThe sample config file is generated from a results of the `SampleConfig()`\nfunctions of the plug"
  },
  {
    "path": "docs/developers/STATE_PERSISTENCE.md",
    "chars": 6643,
    "preview": "# State-persistence for plugins\n\n## Purpose\n\nPlugin state-persistence allows a plugin to save its state across restarts "
  },
  {
    "path": "docs/includes/plugin_config.md",
    "chars": 293,
    "preview": "Plugins support additional global and plugin configuration settings for tasks\nsuch as modifying metrics, tags, and field"
  },
  {
    "path": "docs/includes/secret_usage.md",
    "chars": 422,
    "preview": "Secrets defined by a store are referenced with `@{<store-id>:<secret_key>}`\nthe Telegraf configuration. Only certain Tel"
  },
  {
    "path": "docs/includes/service_input.md",
    "chars": 412,
    "preview": "This plugin is a service input. Normal plugins gather metrics determined by the\ninterval setting. Service plugins start "
  },
  {
    "path": "docs/includes/startup_error_behavior.md",
    "chars": 891,
    "preview": "In addition to the plugin-specific and global configuration settings the plugin\nsupports options for specifying the beha"
  },
  {
    "path": "docs/specs/README.md",
    "chars": 2578,
    "preview": "# Telegraf Specification Overview\n\n## Objective\n\nDefine and layout the Telegraf specification process.\n\n## Overview\n\nThe"
  },
  {
    "path": "docs/specs/template.md",
    "chars": 317,
    "preview": "# Title\n\n## Objective\n\nOne sentence explanation of the feature.\n\n## Overview\n\nBackground and details about the feature.\n"
  },
  {
    "path": "docs/specs/tsd-001-deprecation.md",
    "chars": 7146,
    "preview": "# Plugin and Plugin Option Deprecation\n\n## Objective\n\nSpecifies the process of deprecating and removing plugins, plugin "
  },
  {
    "path": "docs/specs/tsd-002-custom-builder.md",
    "chars": 2680,
    "preview": "# Telegraf Custom-Builder\n\n## Objective\n\nProvide a tool to build a customized, smaller version of Telegraf with only\nthe"
  },
  {
    "path": "docs/specs/tsd-003-state-persistence.md",
    "chars": 5861,
    "preview": "# Plugin State-Persistence\n\n## Objective\n\nRetain the state of stateful plugins across restarts of Telegraf.\n\n## Keywords"
  },
  {
    "path": "docs/specs/tsd-004-configuration-migration.md",
    "chars": 3414,
    "preview": "# Configuration Migration\n\n## Objective\n\nProvides a subcommand and framework to migrate configurations containing\ndeprec"
  },
  {
    "path": "docs/specs/tsd-005-output-buffer-strategy.md",
    "chars": 3381,
    "preview": "# Telegraf Output Buffer Strategy\n\n## Objective\n\nIntroduce a new agent-level config option to choose a disk buffer strat"
  },
  {
    "path": "docs/specs/tsd-006-startup-error-behavior.md",
    "chars": 5676,
    "preview": "# Startup Error Behavior\n\n## Objective\n\nUnified, configurable behavior on retriable startup errors.\n\n## Keywords\n\ninputs"
  },
  {
    "path": "docs/specs/tsd-007-url-config-behavior.md",
    "chars": 3099,
    "preview": "# URL-Based Config Behavior\n\n## Objective\n\nDefine the retry and reload behavior of remote URLs that are passed as config"
  },
  {
    "path": "docs/specs/tsd-008-partial-write-error-handling.md",
    "chars": 4227,
    "preview": "# Partial write error handling\n\n## Objective\n\nProvide a way to pass information about partial metric write errors from a"
  },
  {
    "path": "docs/specs/tsd-009-probe-on-startup.md",
    "chars": 3355,
    "preview": "# Probing plugins after startup\n\n## Objective\n\nAllow Telegraf to probe plugins during startup to enable enhanced plugin "
  },
  {
    "path": "docs/specs/tsd-010-labels-and-selectors.md",
    "chars": 9034,
    "preview": "# Labels and Selectors for Plugin Enablement\n\n## Objective\n\nIntroduce a label and selector system to enable or disable p"
  },
  {
    "path": "docs/specs/tsd-011-internal-plugin-statistics.md",
    "chars": 2380,
    "preview": "# Internal plugin statistics collection\n\n## Objective\n\nProvide a way to report plugin-internal statistics for collection"
  },
  {
    "path": "etc/logrotate.d/telegraf",
    "chars": 131,
    "preview": "/var/log/telegraf/telegraf.log \n{\n    rotate 6\n    daily\n    missingok\n    dateext\n    copytruncate\n    notifempty\n    c"
  },
  {
    "path": "filter/filter.go",
    "chars": 2511,
    "preview": "package filter\n\nimport (\n\t\"strings\"\n\n\t\"github.com/gobwas/glob\"\n)\n\ntype Filter interface {\n\tMatch(string) bool\n}\n\n// Comp"
  },
  {
    "path": "filter/filter_test.go",
    "chars": 4473,
    "preview": "package filter\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestCompile(t *testing.T) {\n\tf, err "
  },
  {
    "path": "filter/implementations.go",
    "chars": 980,
    "preview": "package filter\n\nimport \"github.com/gobwas/glob\"\n\ntype filterSingle struct {\n\ts string\n}\n\nfunc (f *filterSingle) Match(s "
  },
  {
    "path": "go.mod",
    "chars": 31235,
    "preview": "module github.com/influxdata/telegraf\n\ngo 1.25.7\n\ngodebug x509negativeserial=1\n\nrequire (\n\tcloud.google.com/go/auth v0.1"
  }
]

// ... and 5668 more files (download for full content)

About this extraction

This page contains the full source code of the influxdata/telegraf GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 5868 files (23.1 MB), approximately 4.3M tokens, and a symbol index with 10004 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!