Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: cloudwatch metrics collection #10027 #10112

Merged
merged 1 commit into from
Dec 1, 2021
Merged

Conversation

n2N8Z
Copy link
Contributor

@n2N8Z n2N8Z commented Nov 16, 2021

Required for all PRs:

resolves #10027

store pointer to metric rather than pointer to range value variable

Copied from #10123:

getDataQueries iterates over all filteredMetrics and takes the address of the metric from that list to store it in the dataQueries map. However since go seems to re-use the same object for every iteration of the loop the pointer that is taken always points to the exact same memory location. Due to this the Metric field will always contain the same pointer (and therefore value) after the for loop is done. The fix is easy and I will provide it as soon as I am done with this issue: the metric struct needs to be copied once to allocate new memory, after that the address can be taken.

@telegraf-tiger
Copy link
Contributor

Thanks so much for the pull request!
🤝 ✒️ Just a reminder that the CLA has not yet been signed, and we'll need it before merging. Please sign the CLA when you get a chance, then post a comment here saying !signed-cla

@telegraf-tiger telegraf-tiger bot added the fix pr to fix corresponding bug label Nov 16, 2021
@n2N8Z
Copy link
Contributor Author

n2N8Z commented Nov 16, 2021

!signed-cla

@powersj
Copy link
Contributor

powersj commented Nov 16, 2021

Thanks for the PR, I've been wanting to get back to looking at that bug so I appreciate the help! can you explain why changed what you did and how it fixes things?

@n2N8Z
Copy link
Contributor Author

n2N8Z commented Nov 17, 2021

I had included "store pointer to metric rather than pointer to range value variable"
in the description, but it was hidden in a comment.

@powersj
Copy link
Contributor

powersj commented Nov 24, 2021

@n2N8Z thanks for that

Can you show some test output? I'm curious if we should take this or the fix in #10123

@n2N8Z
Copy link
Contributor Author

n2N8Z commented Nov 30, 2021

@powersj I don't do much golang, so don't know whether the fix i #10123 is better than what I've proposed, but the issue being fixed is the same. Not sure why any test output is required, the bug is pretty clear. But if you insist, what do you want, the output of "--test" without and with the fix applied ?

@powersj powersj merged commit 69afb14 into influxdata:master Dec 1, 2021
@powersj powersj changed the title fix #10027 fix: cloudwatch metrics collection #10027 Dec 1, 2021
@maxmoehl
Copy link

Hi @powersj any ETA on when this will be released?

@powersj
Copy link
Contributor

powersj commented Dec 13, 2021

This will be part of v1.21.0. We have already released 2x v1.21.0 RCs, which you can find on the releases page if you want to give it a shot to ensure it fixes the issue.

The official v1.21.0 release is scheduled for this Wednesday!

@n2N8Z
Copy link
Contributor Author

n2N8Z commented Jan 13, 2022

Confirmed fixed in 1.21.2

phemmer added a commit to phemmer/telegraf that referenced this pull request Feb 18, 2022
* origin/master: (133 commits)
  chore: restart service if it is already running and upgraded via RPM (influxdata#9970)
  feat: update etc/telegraf.conf and etc/telegraf_windows.conf (influxdata#10237)
  fix: Handle duplicate registration of protocol-buffer files gracefully. (influxdata#10188)
  fix(http_listener_v2): fix panic on close (influxdata#10132)
  feat: add Vault input plugin (influxdata#10198)
  feat: support aws managed service for prometheus (influxdata#10202)
  fix: Make telegraf compile on Windows with golang 1.16.2 (influxdata#10246)
  Update changelog
  feat: Modbus add per-request tags (influxdata#10231)
  fix: Implement NaN and inf handling for elasticsearch output (influxdata#10196)
  feat: add nomad input plugin (influxdata#10106)
  fix: Print loaded plugins and deprecations for once and test (influxdata#10205)
  fix: eliminate MIB dependency for ifname processor (influxdata#10214)
  feat: Optimize locking for SNMP MIBs loading. (influxdata#10206)
  feat: Add SMART plugin concurrency configuration option, nvme-cli v1.14+ support and lint fixes. (influxdata#10150)
  feat: update configs (influxdata#10236)
  fix(inputs/kube_inventory): set TLS server name config properly (influxdata#9975)
  fix: Sudden close of Telegraf caused by OPC UA input plugin (influxdata#10230)
  fix: bump github.com/eclipse/paho.mqtt.golang from 1.3.0 to 1.3.5 (influxdata#9913)
  fix: json_v2 parser timestamp setting (influxdata#10221)
  fix: ensure graylog spec fields not prefixed with '_' (influxdata#10209)
  docs: remove duplicate links in CONTRIBUTING.md (influxdata#10218)
  fix: pool detection and metrics gathering for ZFS >= 2.1.x (influxdata#10099)
  fix: parallelism fix for ifname processor (influxdata#10007)
  chore: Forbids "log" package only for aggregators, inputs, outputs, parsers and processors (influxdata#10191)
  docs: address documentation gap when running telegraf in k8s (influxdata#10215)
  feat: update etc/telegraf.conf and etc/telegraf_windows.conf (influxdata#10211)
  fix: mqtt topic extracting no longer requires all three fields (influxdata#10208)
  fix: windows service - graceful shutdown of telegraf (influxdata#9616)
  feat: update etc/telegraf.conf and etc/telegraf_windows.conf (influxdata#10201)
  feat: Modbus support multiple slaves (gateway feature) (influxdata#9279)
  fix: Revert unintented corruption of the Makefile from influxdata#10200. (influxdata#10203)
  chore: remove triggering update-config bot in CI (influxdata#10195)
  Update changelog
  feat: Implement deprecation infrastructure (influxdata#10200)
  fix: extra lock on init for safety (influxdata#10199)
  fix: resolve influxdata#10027 (influxdata#10112)
  fix: register bigquery to output plugins influxdata#10177 (influxdata#10178)
  fix: sysstat use unique temp file vs hard-coded (influxdata#10165)
  refactor: snmp to use gosmi (influxdata#9518)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix pr to fix corresponding bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cloudwatch input changes for 1.20 are breaking
3 participants