linters: disable-all: true enable: # - telegraflinter - asasalint - asciicheck - bidichk - bodyclose - depguard - dogsled - errcheck - errname - exportloopref - goprintffuncname - gosimple - govet - ineffassign - interfacebloat - lll - nakedret - nilerr - prealloc - predeclared - revive - sqlclosecheck - staticcheck - tparallel - typecheck - unconvert - unparam - unused linters-settings: depguard: # Kind of list is passed in. # Allowed values: allowlist|denylist # Default: denylist list-type: denylist # Check the list against standard lib. # Default: false include-go-root: true # A list of packages for the list type specified. # Can accept both string prefixes and string glob patterns. # Default: [] packages: - log # A list of packages for the list type specified. # Specify an error message to output when a denied package is used. # Default: [] packages-with-error-message: - log: 'Use injected telegraf.Logger instead' # Specify rules by which the linter ignores certain files for consideration. # Can accept both string prefixes and string glob patterns. # The ! character in front of the rule is a special character # which signals that the linter should negate the rule. # This allows for more precise control, but it is only available for glob patterns. # Default: [] ignore-file-rules: - "**/agent/**" - "**/cmd/**" - "**/config/**" - "**/filter/**" - "**/internal/**" - "**/logger/**" - "**/metric/**" - "**/models/**" - "**/plugins/serializers/**" - "**/scripts/**" - "**/selfstat/**" - "**/testutil/**" - "**/tools/**" - "**/*_test.go" 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 prealloc: # Report pre-allocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. # Default: true simple: false revive: rules: - name: argument-limit arguments: [ 6 ] - name: atomic - name: bare-return - name: blank-imports - name: bool-literal-in-expr - name: call-to-gc - name: confusing-naming - name: confusing-results - name: constant-logical-expr - name: context-as-argument - name: context-keys-type - name: deep-exit - name: defer - name: dot-imports - name: duplicated-imports - name: early-return - name: empty-block - name: empty-lines - name: error-naming - name: error-return - name: error-strings - name: errorf - name: function-result-limit arguments: [ 3 ] - name: identical-branches - name: if-return - name: import-shadowing - name: increment-decrement - name: indent-error-flow - name: modifies-parameter - name: modifies-value-receiver - name: package-comments - name: range - name: range-val-address - name: range-val-in-closure - name: receiver-naming - name: redefines-builtin-id - name: string-of-int - name: struct-tag - name: superfluous-else - name: time-naming - name: unconditional-recursion - name: unexported-naming - name: unhandled-error arguments: [ "outputBuffer.Write", "fmt.Printf", "fmt.Println", "fmt.Print", "fmt.Fprintf", "fmt.Fprint", "fmt.Fprintln" ] - name: unnecessary-stmt - name: unreachable-code - name: unused-parameter - name: var-declaration - name: var-naming - name: waitgroup-by-value nakedret: # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 max-func-lines: 1 run: # timeout for analysis, e.g. 30s, 5m, default is 1m timeout: 10m # which dirs to skip: issues from them won't be reported; # can use regexp here: generated.*, regexp is applied on full path; # default value is empty list, but default dirs are skipped independently # from this option's value (see skip-dirs-use-default). # "/" will be replaced by current OS file path separator to properly work # on Windows. skip-dirs: - assets - docs - etc # which files to skip: they will be analyzed, but issues from them # won't be reported. Default value is empty list, but there is # no need to include all autogenerated files, we confidently recognize # autogenerated files. If it's not please let us know. # "/" will be replaced by current OS file path separator to properly work # on Windows. skip-files: - plugins/parsers/influx/machine.go* issues: # Maximum issues count per one linter. Set to 0 to disable. Default is 50. max-issues-per-linter: 0 # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. max-same-issues: 0 exclude: - don't use an underscore in package name #revive:var-naming exclude-rules: - path: plugins/parsers/influx linters: - govet - path: cmd/telegraf/(main|printer).go text: "Error return value of `outputBuffer.Write` is not checked" output: format: tab