influxdata / telegraf

Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.
https://influxdata.com/telegraf
MIT License
14.5k stars 5.55k forks source link

Linter: revive, Rule: `function-length` - Checks if functions don't contain too many lines and statements. Should we enable it? #15818

Closed zak-pawel closed 2 weeks ago

zak-pawel commented 2 weeks ago

Description

This issue starts a discussion about enabling:

Configuration:

(int,int) the maximum allowed statements and lines. Must be non-negative integers. Set to 0 to disable the check

Example configuration:

      - name: function-length
        exclude: ["TEST"]
        arguments: [50, 100]

Will check for functions exceeding 50 statements and 100 lines.

Expected output

Decision about enabling or not enabling this rule.

Findings

For this rule (with above configuration), the following findings were found in the current codebase:

agent/agent.go:103:1                                                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 64
agent/agent.go:103:1                                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 104
cmd/telegraf/cmd_config.go:21:1                                              revive  function-length: maximum number of lines per function exceeded; max 100 but got 207
cmd/telegraf/cmd_plugins.go:29:1                                             revive  function-length: maximum number of lines per function exceeded; max 100 but got 161
cmd/telegraf/cmd_secretstore.go:36:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 224
cmd/telegraf/main.go:101:1                                                   revive  function-length: maximum number of statements per function exceeded; max 50 but got 66
cmd/telegraf/main.go:101:1                                                   revive  function-length: maximum number of lines per function exceeded; max 100 but got 291
cmd/telegraf/printer.go:104:1                                                revive  function-length: maximum number of statements per function exceeded; max 50 but got 65
cmd/telegraf/printer.go:104:1                                                revive  function-length: maximum number of lines per function exceeded; max 100 but got 108
cmd/telegraf/telegraf.go:336:1                                               revive  function-length: maximum number of statements per function exceeded; max 50 but got 67
cmd/telegraf/telegraf.go:336:1                                               revive  function-length: maximum number of lines per function exceeded; max 100 but got 129
config/config.go:509:1                                                       revive  function-length: maximum number of statements per function exceeded; max 50 but got 93
config/config.go:509:1                                                       revive  function-length: maximum number of lines per function exceeded; max 100 but got 220
config/migration.go:132:1                                                    revive  function-length: maximum number of statements per function exceeded; max 50 but got 67
config/migration.go:132:1                                                    revive  function-length: maximum number of lines per function exceeded; max 100 but got 105
internal/snmp/field.go:97:1                                                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 108
internal/snmp/field.go:97:1                                                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 208
internal/snmp/table.go:120:1                                                 revive  function-length: maximum number of lines per function exceeded; max 100 but got 170
internal/snmp/table.go:120:1                                                 revive  function-length: maximum number of statements per function exceeded; max 50 but got 65
internal/snmp/wrapper.go:43:1                                                revive  function-length: maximum number of lines per function exceeded; max 100 but got 109
internal/snmp/wrapper.go:43:1                                                revive  function-length: maximum number of statements per function exceeded; max 50 but got 59
migrations/inputs_cassandra/migration.go:61:1                                revive  function-length: maximum number of statements per function exceeded; max 50 but got 67
migrations/inputs_cassandra/migration.go:61:1                                revive  function-length: maximum number of lines per function exceeded; max 100 but got 129
migrations/inputs_httpjson/migration.go:34:1                                 revive  function-length: maximum number of statements per function exceeded; max 50 but got 63
migrations/inputs_httpjson/migration.go:34:1                                 revive  function-length: maximum number of lines per function exceeded; max 100 but got 103
migrations/inputs_jolokia/migration.go:118:1                                 revive  function-length: maximum number of lines per function exceeded; max 100 but got 119
plugins/common/opcua/opcua_util.go:153:1                                     revive  function-length: maximum number of statements per function exceeded; max 50 but got 78
plugins/common/opcua/opcua_util.go:153:1                                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 147
plugins/common/yangmodel/decoder.go:26:1                                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 105
plugins/common/yangmodel/decoder.go:26:1                                     revive  function-length: maximum number of statements per function exceeded; max 50 but got 66
plugins/inputs/aerospike/aerospike.go:100:1                                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 57
plugins/inputs/aliyuncms/discovery.go:91:1                                   revive  function-length: maximum number of lines per function exceeded; max 100 but got 152
plugins/inputs/aliyuncms/discovery.go:91:1                                   revive  function-length: maximum number of statements per function exceeded; max 50 but got 71
plugins/inputs/cisco_telemetry_mdt/cisco_telemetry_mdt.go:102:1              revive  function-length: maximum number of statements per function exceeded; max 50 but got 64
plugins/inputs/cisco_telemetry_mdt/cisco_telemetry_mdt.go:102:1              revive  function-length: maximum number of lines per function exceeded; max 100 but got 116
plugins/inputs/cisco_telemetry_mdt/cisco_telemetry_mdt.go:652:1              revive  function-length: maximum number of lines per function exceeded; max 100 but got 118
plugins/inputs/cisco_telemetry_mdt/cisco_telemetry_util.go:201:1             revive  function-length: maximum number of statements per function exceeded; max 50 but got 87
plugins/inputs/cisco_telemetry_mdt/cisco_telemetry_util.go:301:1             revive  function-length: maximum number of lines per function exceeded; max 100 but got 127
plugins/inputs/cisco_telemetry_mdt/cisco_telemetry_util.go:301:1             revive  function-length: maximum number of statements per function exceeded; max 50 but got 127
plugins/inputs/cloudwatch_metric_streams/cloudwatch_metric_streams.go:181:1  revive  function-length: maximum number of lines per function exceeded; max 100 but got 119
plugins/inputs/cloudwatch_metric_streams/cloudwatch_metric_streams.go:181:1  revive  function-length: maximum number of statements per function exceeded; max 50 but got 69
plugins/inputs/couchbase/couchbase.go:183:1                                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 222
plugins/inputs/couchbase/couchbase.go:183:1                                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 219
plugins/inputs/couchdb/couchdb.go:117:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 93
plugins/inputs/couchdb/couchdb.go:117:1                                      revive  function-length: maximum number of lines per function exceeded; max 100 but got 136
plugins/inputs/disque/disque.go:94:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 104
plugins/inputs/disque/disque.go:94:1                                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 60
plugins/inputs/dmcache/dmcache_linux.go:61:1                                 revive  function-length: maximum number of statements per function exceeded; max 50 but got 57
plugins/inputs/docker/docker.go:153:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 54
plugins/inputs/docker/docker.go:327:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 119
plugins/inputs/docker/docker.go:607:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 168
plugins/inputs/docker/docker.go:607:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 69
plugins/inputs/docker/docker_testdata.go:246:1                               revive  function-length: maximum number of lines per function exceeded; max 100 but got 124
plugins/inputs/docker/docker_testdata.go:373:1                               revive  function-length: maximum number of statements per function exceeded; max 50 but got 55
plugins/inputs/ecs/stats.go:198:1                                            revive  function-length: maximum number of statements per function exceeded; max 50 but got 60
plugins/inputs/elasticsearch/elasticsearch.go:213:1                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 58
plugins/inputs/fluentd/fluentd.go:80:1                                       revive  function-length: maximum number of lines per function exceeded; max 100 but got 139
plugins/inputs/fluentd/fluentd.go:80:1                                       revive  function-length: maximum number of statements per function exceeded; max 50 but got 58
plugins/inputs/gnmi/gnmi.go:102:1                                            revive  function-length: maximum number of lines per function exceeded; max 100 but got 132
plugins/inputs/gnmi/gnmi.go:102:1                                            revive  function-length: maximum number of statements per function exceeded; max 50 but got 67
plugins/inputs/gnmi/handler.go:130:1                                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 89
plugins/inputs/gnmi/handler.go:130:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 168
plugins/inputs/http/http.go:128:1                                            revive  function-length: maximum number of statements per function exceeded; max 50 but got 51
plugins/inputs/http_response/http_response.go:235:1                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 67
plugins/inputs/http_response/http_response.go:235:1                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 139
plugins/inputs/influxdb/influxdb.go:100:1                                    revive  function-length: maximum number of lines per function exceeded; max 100 but got 183
plugins/inputs/influxdb/influxdb.go:100:1                                    revive  function-length: maximum number of statements per function exceeded; max 50 but got 59
plugins/inputs/influxdb_listener/influxdb_listener.go:254:1                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 64
plugins/inputs/influxdb_listener/influxdb_listener.go:254:1                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 106
plugins/inputs/influxdb_listener/influxdb_listener.go:363:1                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 113
plugins/inputs/influxdb_listener/influxdb_listener.go:363:1                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 67
plugins/inputs/kernel/kernel.go:70:1                                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 53
plugins/inputs/kube_inventory/pod.go:52:1                                    revive  function-length: maximum number of lines per function exceeded; max 100 but got 115
plugins/inputs/kube_inventory/pod.go:52:1                                    revive  function-length: maximum number of statements per function exceeded; max 50 but got 56
plugins/inputs/kubernetes/kubernetes.go:286:1                                revive  function-length: maximum number of statements per function exceeded; max 50 but got 53
plugins/inputs/lustre2/lustre2.go:514:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 55
plugins/inputs/lustre2/lustre2.go:648:1                                      revive  function-length: maximum number of lines per function exceeded; max 100 but got 119
plugins/inputs/mem/mem.go:31:1                                               revive  function-length: maximum number of statements per function exceeded; max 50 but got 52
plugins/inputs/mesos/mesos.go:199:1                                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 240
plugins/inputs/modbus/configuration_metric.go:47:1                           revive  function-length: maximum number of lines per function exceeded; max 100 but got 129
plugins/inputs/modbus/configuration_metric.go:47:1                           revive  function-length: maximum number of statements per function exceeded; max 50 but got 55
plugins/inputs/modbus/configuration_request.go:50:1                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 161
plugins/inputs/modbus/configuration_request.go:50:1                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 66
plugins/inputs/modbus/modbus.go:258:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 63
plugins/inputs/modbus/request.go:199:1                                       revive  function-length: maximum number of lines per function exceeded; max 100 but got 109
plugins/inputs/mongodb/mongodb_server.go:273:1                               revive  function-length: maximum number of lines per function exceeded; max 100 but got 103
plugins/inputs/mongodb/mongodb_server.go:273:1                               revive  function-length: maximum number of statements per function exceeded; max 50 but got 59
plugins/inputs/mongodb/mongostat.go:940:1                                    revive  function-length: maximum number of lines per function exceeded; max 100 but got 562
plugins/inputs/mongodb/mongostat.go:940:1                                    revive  function-length: maximum number of statements per function exceeded; max 50 but got 295
plugins/inputs/monit/monit.go:215:1                                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 118
plugins/inputs/mqtt_consumer/topic_parser.go:32:1                            revive  function-length: maximum number of lines per function exceeded; max 100 but got 118
plugins/inputs/mqtt_consumer/topic_parser.go:32:1                            revive  function-length: maximum number of statements per function exceeded; max 50 but got 72
plugins/inputs/mysql/mysql.go:433:1                                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 76
plugins/inputs/mysql/mysql.go:433:1                                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 128
plugins/inputs/mysql/mysql.go:767:1                                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 68
plugins/inputs/mysql/mysql.go:767:1                                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 121
plugins/inputs/mysql/mysql.go:1031:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 144
plugins/inputs/mysql/mysql.go:1367:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 130
plugins/inputs/mysql/mysql.go:1504:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 123
plugins/inputs/nats_consumer/nats_consumer.go:90:1                           revive  function-length: maximum number of statements per function exceeded; max 50 but got 53
plugins/inputs/nats_consumer/nats_consumer.go:90:1                           revive  function-length: maximum number of lines per function exceeded; max 100 but got 103
plugins/inputs/neptune_apex/neptune_apex.go:93:1                             revive  function-length: maximum number of statements per function exceeded; max 50 but got 54
plugins/inputs/neptune_apex/neptune_apex.go:93:1                             revive  function-length: maximum number of lines per function exceeded; max 100 but got 120
plugins/inputs/netflow/netflow_decoder.go:545:1                              revive  function-length: maximum number of statements per function exceeded; max 50 but got 85
plugins/inputs/netflow/netflow_decoder.go:545:1                              revive  function-length: maximum number of lines per function exceeded; max 100 but got 146
plugins/inputs/netflow/netflow_decoder.go:797:1                              revive  function-length: maximum number of statements per function exceeded; max 50 but got 51
plugins/inputs/netflow/sflow_v5.go:38:1                                      revive  function-length: maximum number of lines per function exceeded; max 100 but got 166
plugins/inputs/netflow/sflow_v5.go:38:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 77
plugins/inputs/netflow/sflow_v5.go:207:1                                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 125
plugins/inputs/netflow/sflow_v5.go:207:1                                     revive  function-length: maximum number of statements per function exceeded; max 50 but got 92
plugins/inputs/netflow/sflow_v5.go:335:1                                     revive  function-length: maximum number of statements per function exceeded; max 50 but got 81
plugins/inputs/netflow/sflow_v5.go:335:1                                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 125
plugins/inputs/nfsclient/nfsclient.go:66:1                                   revive  function-length: maximum number of statements per function exceeded; max 50 but got 52
plugins/inputs/nfsclient/nfsclient.go:66:1                                   revive  function-length: maximum number of lines per function exceeded; max 100 but got 155
plugins/inputs/nfsclient/nfsclient.go:324:1                                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 156
plugins/inputs/nginx_vts/nginx_vts.go:185:1                                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 134
plugins/inputs/ntpq/ntpq.go:144:1                                            revive  function-length: maximum number of statements per function exceeded; max 50 but got 81
plugins/inputs/ntpq/ntpq.go:144:1                                            revive  function-length: maximum number of lines per function exceeded; max 100 but got 137
plugins/inputs/nvidia_smi/schema_v11/parser.go:11:1                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 52
plugins/inputs/nvidia_smi/schema_v12/parser.go:12:1                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 110
plugins/inputs/nvidia_smi/schema_v12/parser.go:12:1                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 90
plugins/inputs/openntpd/openntpd.go:82:1                                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 108
plugins/inputs/openntpd/openntpd.go:82:1                                     revive  function-length: maximum number of statements per function exceeded; max 50 but got 63
plugins/inputs/openstack/openstack.go:143:1                                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 67
plugins/inputs/openstack/openstack.go:143:1                                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 123
plugins/inputs/procstat/filter.go:92:1                                       revive  function-length: maximum number of lines per function exceeded; max 100 but got 126
plugins/inputs/procstat/filter.go:92:1                                       revive  function-length: maximum number of statements per function exceeded; max 50 but got 72
plugins/inputs/procstat/process.go:72:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 186
plugins/inputs/procstat/process.go:72:1                                      revive  function-length: maximum number of lines per function exceeded; max 100 but got 307
plugins/inputs/procstat/procstat.go:85:1                                     revive  function-length: maximum number of statements per function exceeded; max 50 but got 56
plugins/inputs/procstat/procstat.go:85:1                                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 123
plugins/inputs/procstat/procstat.go:219:1                                    revive  function-length: maximum number of lines per function exceeded; max 100 but got 103
plugins/inputs/prometheus/prometheus.go:124:1                                revive  function-length: maximum number of statements per function exceeded; max 50 but got 61
plugins/inputs/prometheus/prometheus.go:124:1                                revive  function-length: maximum number of lines per function exceeded; max 100 but got 115
plugins/inputs/prometheus/prometheus.go:376:1                                revive  function-length: maximum number of statements per function exceeded; max 50 but got 91
plugins/inputs/prometheus/prometheus.go:376:1                                revive  function-length: maximum number of lines per function exceeded; max 100 but got 177
plugins/inputs/rabbitmq/rabbitmq.go:445:1                                    revive  function-length: maximum number of lines per function exceeded; max 100 but got 113
plugins/inputs/rabbitmq/rabbitmq.go:445:1                                    revive  function-length: maximum number of statements per function exceeded; max 50 but got 57
plugins/inputs/raindrops/raindrops.go:54:1                                   revive  function-length: maximum number of statements per function exceeded; max 50 but got 61
plugins/inputs/redfish/redfish.go:361:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 51
plugins/inputs/redfish/redfish.go:433:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 59
plugins/inputs/redis/redis.go:358:1                                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 73
plugins/inputs/redis/redis.go:358:1                                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 122
plugins/inputs/s7comm/s7comm.go:274:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 63
plugins/inputs/s7comm/s7comm.go:274:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 121
plugins/inputs/smart/smart.go:736:1                                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 159
plugins/inputs/smart/smart.go:736:1                                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 88
plugins/inputs/smartctl/smartctl_device.go:12:1                              revive  function-length: maximum number of lines per function exceeded; max 100 but got 183
plugins/inputs/smartctl/smartctl_device.go:12:1                              revive  function-length: maximum number of statements per function exceeded; max 50 but got 90
plugins/inputs/snmp_trap/snmp_trap.go:118:1                                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 141
plugins/inputs/snmp_trap/snmp_trap.go:118:1                                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 70
plugins/inputs/snmp_trap/snmp_trap.go:276:1                                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 110
plugins/inputs/sql/sql.go:58:1                                               revive  function-length: maximum number of lines per function exceeded; max 100 but got 156
plugins/inputs/sql/sql.go:58:1                                               revive  function-length: maximum number of statements per function exceeded; max 50 but got 91
plugins/inputs/sql/sql.go:238:1                                              revive  function-length: maximum number of statements per function exceeded; max 50 but got 72
plugins/inputs/sql/sql.go:238:1                                              revive  function-length: maximum number of lines per function exceeded; max 100 but got 137
plugins/inputs/sqlserver/sqlserver.go:89:1                                   revive  function-length: maximum number of lines per function exceeded; max 100 but got 116
plugins/inputs/statsd/datadog.go:26:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 110
plugins/inputs/statsd/datadog.go:26:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 61
plugins/inputs/statsd/statsd.go:231:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 57
plugins/inputs/statsd/statsd.go:327:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 69
plugins/inputs/statsd/statsd.go:327:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 107
plugins/inputs/statsd/statsd.go:574:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 70
plugins/inputs/statsd/statsd.go:574:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 152
plugins/inputs/statsd/statsd.go:811:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 101
plugins/inputs/systemd_units/systemd_units_linux.go:208:1                    revive  function-length: maximum number of statements per function exceeded; max 50 but got 108
plugins/inputs/systemd_units/systemd_units_linux.go:208:1                    revive  function-length: maximum number of lines per function exceeded; max 100 but got 204
plugins/inputs/tacacs/tacacs.go:114:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 65
plugins/inputs/tail/tail.go:270:1                                            revive  function-length: maximum number of lines per function exceeded; max 100 but got 111
plugins/inputs/tail/tail.go:270:1                                            revive  function-length: maximum number of statements per function exceeded; max 50 but got 52
plugins/inputs/temp/temp_linux.go:110:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 51
plugins/inputs/tengine/tengine.go:123:1                                      revive  function-length: maximum number of lines per function exceeded; max 100 but got 178
plugins/inputs/tengine/tengine.go:123:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 109
plugins/inputs/vsphere/client.go:125:1                                       revive  function-length: maximum number of statements per function exceeded; max 50 but got 63
plugins/inputs/vsphere/client.go:125:1                                       revive  function-length: maximum number of lines per function exceeded; max 100 but got 114
plugins/inputs/vsphere/endpoint.go:120:1                                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 143
plugins/inputs/vsphere/endpoint.go:447:1                                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 108
plugins/inputs/vsphere/endpoint.go:447:1                                     revive  function-length: maximum number of statements per function exceeded; max 50 but got 60
plugins/inputs/vsphere/endpoint.go:767:1                                     revive  function-length: maximum number of statements per function exceeded; max 50 but got 61
plugins/inputs/vsphere/endpoint.go:767:1                                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 109
plugins/inputs/vsphere/endpoint.go:1214:1                                    revive  function-length: maximum number of statements per function exceeded; max 50 but got 64
plugins/inputs/vsphere/endpoint.go:1214:1                                    revive  function-length: maximum number of lines per function exceeded; max 100 but got 106
plugins/inputs/vsphere/finder.go:80:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 57
plugins/inputs/vsphere/finder.go:80:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 110
plugins/inputs/vsphere/vsan.go:201:1                                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 65
plugins/inputs/vsphere/vsan.go:201:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 105
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:3:1              revive  function-length: maximum number of lines per function exceeded; max 100 but got 140
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:146:1            revive  function-length: maximum number of lines per function exceeded; max 100 but got 113
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:262:1            revive  function-length: maximum number of lines per function exceeded; max 100 but got 111
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:376:1            revive  function-length: maximum number of lines per function exceeded; max 100 but got 142
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:521:1            revive  function-length: maximum number of lines per function exceeded; max 100 but got 173
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:697:1            revive  function-length: maximum number of lines per function exceeded; max 100 but got 196
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:896:1            revive  function-length: maximum number of lines per function exceeded; max 100 but got 118
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:1017:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 182
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:1202:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 154
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:1359:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 128
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:1554:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 139
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:1696:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 108
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:1807:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 446
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:2256:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 412
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:2671:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 161
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:2835:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 119
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:2957:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 148
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:3108:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 206
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:3317:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 129
plugins/inputs/webhooks/github/github_webhooks_mock_json.go:3449:1           revive  function-length: maximum number of lines per function exceeded; max 100 but got 109
plugins/inputs/x509_cert/x509_cert.go:95:1                                   revive  function-length: maximum number of statements per function exceeded; max 50 but got 65
plugins/inputs/x509_cert/x509_cert.go:95:1                                   revive  function-length: maximum number of lines per function exceeded; max 100 but got 117
plugins/inputs/x509_cert/x509_cert.go:309:1                                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 141
plugins/inputs/x509_cert/x509_cert.go:309:1                                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 89
plugins/outputs/cloudwatch_logs/cloudwatch_logs.go:220:1                     revive  function-length: maximum number of lines per function exceeded; max 100 but got 177
plugins/outputs/cloudwatch_logs/cloudwatch_logs.go:220:1                     revive  function-length: maximum number of statements per function exceeded; max 50 but got 74
plugins/outputs/elasticsearch/elasticsearch.go:147:1                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 104
plugins/outputs/graylog/graylog_test_linux.go:202:1                          revive  function-length: maximum number of statements per function exceeded; max 50 but got 69
plugins/outputs/graylog/graylog_test_linux.go:202:1                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 102
plugins/outputs/groundwork/groundwork.go:221:1                               revive  function-length: maximum number of lines per function exceeded; max 100 but got 166
plugins/outputs/http/http.go:135:1                                           revive  function-length: maximum number of lines per function exceeded; max 100 but got 120
plugins/outputs/http/http.go:135:1                                           revive  function-length: maximum number of statements per function exceeded; max 50 but got 75
plugins/outputs/influxdb/http.go:341:1                                       revive  function-length: maximum number of lines per function exceeded; max 100 but got 103
plugins/outputs/opensearch/opensearch.go:214:1                               revive  function-length: maximum number of statements per function exceeded; max 50 but got 51
plugins/outputs/postgresql/datatype_uint8.go:51:1                            revive  function-length: maximum number of lines per function exceeded; max 100 but got 125
plugins/outputs/postgresql/datatype_uint8.go:51:1                            revive  function-length: maximum number of statements per function exceeded; max 50 but got 73
plugins/outputs/prometheus_client/prometheus_client.go:77:1                  revive  function-length: maximum number of lines per function exceeded; max 100 but got 113
plugins/outputs/prometheus_client/prometheus_client.go:77:1                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 54
plugins/outputs/prometheus_client/v1/collector.go:231:1                      revive  function-length: maximum number of lines per function exceeded; max 100 but got 177
plugins/outputs/prometheus_client/v1/collector.go:231:1                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 87
plugins/outputs/stackdriver/stackdriver.go:217:1                             revive  function-length: maximum number of statements per function exceeded; max 50 but got 87
plugins/outputs/stackdriver/stackdriver.go:217:1                             revive  function-length: maximum number of lines per function exceeded; max 100 but got 199
plugins/parsers/avro/parser.go:183:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 137
plugins/parsers/avro/parser.go:183:1                                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 72
plugins/parsers/binary/entry.go:28:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 137
plugins/parsers/binary/entry.go:28:1                                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 70
plugins/parsers/csv/parser.go:345:1                                          revive  function-length: maximum number of lines per function exceeded; max 100 but got 124
plugins/parsers/grok/parser.go:200:1                                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 104
plugins/parsers/grok/parser.go:200:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 181
plugins/parsers/json_v2/parser.go:317:1                                      revive  function-length: maximum number of lines per function exceeded; max 100 but got 133
plugins/parsers/json_v2/parser.go:317:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 57
plugins/parsers/openmetrics/metric_v1.go:13:1                                revive  function-length: maximum number of statements per function exceeded; max 50 but got 88
plugins/parsers/openmetrics/metric_v1.go:13:1                                revive  function-length: maximum number of lines per function exceeded; max 100 but got 149
plugins/parsers/openmetrics/metric_v2.go:13:1                                revive  function-length: maximum number of lines per function exceeded; max 100 but got 175
plugins/parsers/openmetrics/metric_v2.go:13:1                                revive  function-length: maximum number of statements per function exceeded; max 50 but got 100
plugins/parsers/openmetrics/textparse.go:21:1                                revive  function-length: maximum number of statements per function exceeded; max 50 but got 85
plugins/parsers/openmetrics/textparse.go:21:1                                revive  function-length: maximum number of lines per function exceeded; max 100 but got 194
plugins/parsers/openmetrics/textparse.go:252:1                               revive  function-length: maximum number of lines per function exceeded; max 100 but got 141
plugins/parsers/openmetrics/textparse.go:252:1                               revive  function-length: maximum number of statements per function exceeded; max 50 but got 68
plugins/parsers/prometheusremotewrite/parser.go:23:1                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 52
plugins/parsers/xpath/parser.go:90:1                                         revive  function-length: maximum number of lines per function exceeded; max 100 but got 106
plugins/parsers/xpath/parser.go:258:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 136
plugins/parsers/xpath/parser.go:258:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 251
plugins/processors/port_name/port_name.go:90:1                               revive  function-length: maximum number of lines per function exceeded; max 100 but got 104
plugins/processors/port_name/port_name.go:90:1                               revive  function-length: maximum number of statements per function exceeded; max 50 but got 55
plugins/processors/strings/strings.go:174:1                                  revive  function-length: maximum number of statements per function exceeded; max 50 but got 69
plugins/processors/topk/topk.go:268:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 106
plugins/secretstores/http/aes.go:25:1                                        revive  function-length: maximum number of lines per function exceeded; max 100 but got 102
plugins/secretstores/http/aes.go:25:1                                        revive  function-length: maximum number of statements per function exceeded; max 50 but got 60
plugins/secretstores/oauth2/oauth2.go:50:1                                   revive  function-length: maximum number of statements per function exceeded; max 50 but got 51
plugins/serializers/prometheus/collection.go:183:1                           revive  function-length: maximum number of lines per function exceeded; max 100 but got 156
plugins/serializers/prometheus/collection.go:183:1                           revive  function-length: maximum number of statements per function exceeded; max 50 but got 74
plugins/serializers/prometheusremotewrite/prometheusremotewrite.go:31:1      revive  function-length: maximum number of lines per function exceeded; max 100 but got 184
plugins/serializers/prometheusremotewrite/prometheusremotewrite.go:31:1      revive  function-length: maximum number of statements per function exceeded; max 50 but got 94
testutil/plugin_input/plugin.go:45:1                                         revive  function-length: maximum number of statements per function exceeded; max 50 but got 55
tools/config_includer/generator.go:36:1                                      revive  function-length: maximum number of lines per function exceeded; max 100 but got 105
tools/config_includer/generator.go:36:1                                      revive  function-length: maximum number of statements per function exceeded; max 50 but got 68
tools/license_checker/main.go:33:1                                           revive  function-length: maximum number of statements per function exceeded; max 50 but got 135
tools/license_checker/main.go:33:1                                           revive  function-length: maximum number of lines per function exceeded; max 100 but got 211
tools/readme_config_includer/generator.go:115:1                              revive  function-length: maximum number of lines per function exceeded; max 100 but got 133
tools/readme_config_includer/generator.go:115:1                              revive  function-length: maximum number of statements per function exceeded; max 50 but got 82
srebhan commented 2 weeks ago

A clear "no" from my side. While some of the code really needs fixing, it is not true in general. Take Init() functions for example where you set a lot of default, check options and initialize stuff, I really like to keep this in one function as it is easier to read having everything in one place than scrolling through the code to find what happens to parameter a during processing...

DStrand1 commented 2 weeks ago

I agree with @srebhan, I think more often than not longer functions are that way because they make sense to be rather than a messy function... I think it makes sense to refactor these as we come across them rather than with a linter warning