AI Slop Code Risk Monitor

influxdata/telegraf

SlopCodeMonitor badge for influxdata/telegraf Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.

1.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for influxdata/telegraf, a Go project with 17,890 GitHub stars. SynthScan examined 706,598 lines of code across 3422 source files, recording 799 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 1.3 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.3
Adjusted Signal
1.3
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
17.9K
Stars
Go
Language
706.6K
Lines of Code
3.4K
Files
799
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 5.5/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 772 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

Are imports declared and package/API names verified? 6 finding(s).

Agent Over-Engineering Ratio 0.7/100 · LOW

Are wrappers, guards, and repeated structures necessary? 21 finding(s).

PR Review Velocity Impact 6.0/100 · LOW

Which changes need focused human review? 799 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 4MEDIUM 25LOW 770

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 799 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Over-Commented Block760 hits · 758 pts
SeverityFileLineSnippetContext
LOWprocessor.go21 // can choose to save it in the plugin, or use the one received from Add().COMMENT
LOW.golangci.yml61 #COMMENT
LOW.golangci.yml421 # Run `GL_DEBUG=staticcheck golangci-lint run --enable=staticcheck` to see all available checks and enabled by conCOMMENT
LOW.golangci.yml481 # Enable/disable `os.TempDir()` detections.COMMENT
LOW.golangci.yml581 #COMMENT
LOW.golangci.yml601 max-same-issues: 0COMMENT
LOW.golangci.yml621 # 1. errorCOMMENT
LOW.golangci.yml641 # this will be the default severity applied.COMMENT
LOWserializer.go1package telegrafCOMMENT
LOWplugin.go21COMMENT
LOWplugin.go41// persist an internal state across Telegraf runs.COMMENT
LOWmetric.go61 // Type returns a general type for the entire metric that describes how youCOMMENT
LOWparser.go1package telegrafCOMMENT
LOWcmd/telegraf/printer.go21 sectionDefaults = []string{"global_tags", "agent", "secretstores", "outputs", "processors", "aggregators", "inputs"}COMMENT
LOWcmd/telegraf/printer.go41# Environment variables can be used anywhere in this config file, simply surroundCOMMENT
LOWtools/readme_linter/rules.go401// To do: Check markdown files that aren't plugin readme files for paragraphsCOMMENT
LOWconfig/config.go181}COMMENT
LOWconfig/config.go201 // Precision will NOT be used for service inputs. It is up to each individualCOMMENT
LOWconfig/config.go221 // number of telegraf instances.COMMENT
LOWconfig/config.go281 // If uncommented and not empty, this file will be used to save the state ofCOMMENT
LOWconfig/config.go301 // this setting to true will skip the first run of processors.COMMENT
LOWconfig/secret.go61 Buffer() (SecretBuffer, error)COMMENT
LOWconfig/testdata/envvar_comments.toml1# Telegraf ConfigurationCOMMENT
LOWconfig/testdata/single_plugin_env_vars.toml1# Telegraf ConfigurationCOMMENT
LOWconfig/testdata/telegraf-agent.toml1# Telegraf configurationCOMMENT
LOWconfig/testdata/telegraf-agent.toml81 totalcpu = trueCOMMENT
LOWconfig/testdata/telegraf-agent.toml141 # no configurationCOMMENT
LOWconfig/testdata/telegraf-agent.toml161COMMENT
LOWconfig/testdata/telegraf-agent.toml181 master_collections = ["resources","master","system","slaves","frameworks","messages","evqueue","registrar"]COMMENT
LOWconfig/testdata/telegraf-agent.toml201 servers = ["localhost"]COMMENT
LOWconfig/testdata/telegraf-agent.toml221 count = 1 # requiredCOMMENT
LOWconfig/testdata/telegraf-agent.toml241 # with the same name as the user. This dbname is just for instantiating aCOMMENT
LOWconfig/testdata/telegraf-agent.toml261# Read metrics from one or many RabbitMQ servers via the management APICOMMENT
LOWconfig/testdata/telegraf-agent.toml281COMMENT
LOW…ugins/parsers/openmetrics/openmetrics_data_model.pb.go361 //COMMENT
LOW…ins/parsers/openmetrics/testcases/valid_info/input.txt1# HELP cadvisor_version A metric with a constant '1' value labeled by kernel version, OS version, docker version, cadvisCOMMENT
LOW…ugins/parsers/openmetrics/testcases/multiple/input.txt21# HELP process_cpu_seconds Total user and system CPU time spent in seconds.COMMENT
LOW…ns/parsers/openmetrics/testcases/valid_gauge/input.txt1# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program stCOMMENT
LOW…/parsers/openmetrics/testcases/valid_unknown/input.txt1# HELP redis_connected_clients Redis connected clientsCOMMENT
LOW…/parsers/openmetrics/testcases/valid_counter/input.txt1# TYPE get_token_fail_count counterCOMMENT
LOWplugins/parsers/influx/README.md21 ## and more memory efficient.COMMENT
LOWplugins/parsers/xpath/README.md101XPath expressions.COMMENT
LOWplugins/parsers/xpath/README.md121 # xpath_protobuf_import_paths = ["."]COMMENT
LOWplugins/parsers/xpath/README.md141 ## Multiple parsing sections are allowedCOMMENT
LOWplugins/parsers/xpath/README.md161COMMENT
LOWplugins/parsers/xpath/README.md221 ## Name of the protocol-buffer message type to use in a fully qualified form.COMMENT
LOWplugins/parsers/xpath/README.md241 ## Optional: XPath-query to select a subset of nodes from the XML document.COMMENT
LOWplugins/parsers/xpath/README.md261 # field_name = "name()"COMMENT
LOWplugins/parsers/grok/README.md81COMMENT
LOWplugins/parsers/grok/README.md101 ## Other common built-in patterns are:COMMENT
LOWplugins/parsers/json/README.md41COMMENT
LOWplugins/parsers/json/README.md61 ## json_time_format = "unix"COMMENT
LOWplugins/parsers/avro/README.md41 max_message_len = 1000000COMMENT
LOWplugins/parsers/avro/README.md61 # {COMMENT
LOWplugins/parsers/avro/README.md81COMMENT
LOWplugins/parsers/avro/README.md101 # avro_timestamp = ""COMMENT
LOWplugins/parsers/csv/README.md21 ## If `csv_column_names` is specified, the column names in header will be overridden.COMMENT
LOWplugins/parsers/csv/README.md41 ## If set, the parser would use the provided separators in the csv_metadata_separators to look for metadata.COMMENT
LOWplugins/parsers/csv/README.md61 ## By default, the parser assumes a comma (",")COMMENT
LOWplugins/parsers/csv/README.md101 ## Indicates values to skip, such as an empty string value "".COMMENT
700 more matches not shown…
Decorative Section Separators21 hits · 92 pts
SeverityFileLineSnippetContext
MEDIUM⚡agent/agent.go44// ┌───────┐COMMENT
MEDIUM⚡agent/agent.go46// └───────┘ │COMMENT
MEDIUM⚡agent/agent.go47// ┌───────┐ │ ______COMMENT
MEDIUM⚡agent/agent.go49// └───────┘ │COMMENT
MEDIUM⚡agent/agent.go50// ┌───────┐ │COMMENT
MEDIUM⚡agent/agent.go52// └───────┘COMMENT
MEDIUM⚡agent/agent.go58// ______ ┌───────────┐ ______COMMENT
MEDIUM⚡agent/agent.go60// └───────────┘COMMENT
MEDIUM⚡agent/agent.go72// ┌────────────┐COMMENT
MEDIUM⚡agent/agent.go74// │ └────────────┘ │COMMENT
MEDIUM⚡agent/agent.go75// ______ │ ┌────────────┐ │ ______COMMENT
MEDIUM⚡agent/agent.go77// │ └────────────┘ │COMMENT
MEDIUM⚡agent/agent.go78// │ ┌────────────┐ │COMMENT
MEDIUM⚡agent/agent.go80// │ └────────────┘COMMENT
MEDIUM⚡agent/agent.go82// └────────────────────────▶ ()_____)COMMENT
MEDIUM⚡agent/agent.go94// ┌────────┐COMMENT
MEDIUM⚡agent/agent.go96// │ └────────┘COMMENT
MEDIUM⚡agent/agent.go97// ______ ┌─────┐ │ ┌────────┐COMMENT
MEDIUM⚡agent/agent.go99// └─────┘ │ └────────┘COMMENT
MEDIUM⚡agent/agent.go100// │ ┌────────┐COMMENT
MEDIUM⚡agent/agent.go102// └────────┘COMMENT
Synthetic Comment Markers3 hits · 22 pts
SeverityFileLineSnippetContext
HIGHplugins/inputs/procstat/procstat_test.go180 // Add the tags as requested by the userCOMMENT
HIGHplugins/inputs/procstat/process.go207 // Add the tags as requested by the userCOMMENT
HIGHplugins/inputs/filecount/filecount_test.go272 // create our desired "filesystem" object, complete with an internal map allowing our funcs to return meta data as requCOMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMplugins/parsers/csv/parser_test.go1642 // Stress test with more goroutines and iterations to ensure robust thread safetyCOMMENT
MEDIUMplugins/common/starlark/starlark.go68 // base64 encoding for a robust guess.COMMENT
Slop Phrases2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMconfig/testdata/telegraf-agent.toml120 # Or you can also use local socket(not work yet)COMMENT
MEDIUMplugins/inputs/statsd/statsd.go1002 s.Log.Warn("Maximum TCP Connections reached, you may want to adjust max_tcp_connections")CODE
Fake / Example Data5 hits · 5 pts
SeverityFileLineSnippetContext
LOWplugins/outputs/opentsdb/opentsdb_test.go196 testutil.TestMetric("Lorem Ipsum", "justametric.string"),CODE
LOW…ins/inputs/influxdb_listener/influxdb_listener_test.go173 TokenUsername: "John Doe",CODE
LOW…ins/inputs/influxdb_listener/influxdb_listener_test.go204 TokenUsername: "John Doe",CODE
LOW…ins/inputs/influxdb_listener/influxdb_listener_test.go235 TokenUsername: "John Doe",CODE
LOWplugins/inputs/consul/consul_test.go17 Notes: "lorem ipsum",CODE
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…ns/inputs/webhooks/filestack/testdata/dialog_open.json15 "apikey": "YOUR_API_KEY",CODE
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWplugins/serializers/csv/README.md41 ## NOTE: The output will only contain the specified tags, fields, etc. AllCOMMENT
LOWplugins/outputs/mqtt/README.md108 ## NOTE: The following options will ignore the 'data_format' option and send single valuesCOMMENT
LOWplugins/inputs/cpu/README.md29 ## NOTE: The resulting 'time_active' field INCLUDES 'iowait'!COMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWconfig/config.go525 // At this point we need to check if the files under /etc/telegraf areCOMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/check-plugin-changes.sh9# Check if we're in a pull requestCOMMENT