Commit Graph

66 Commits

Author SHA1 Message Date
Paweł Żak 4e7821a4fd
chore: Fix linter findings for `revive:unused-receiver` in `agent`, `cmd`, `config`, `internal`, `metric`, `migrations`, `models`, `testutils` and `tools` (#16340) 2025-01-15 20:58:58 +01:00
Paweł Żak 0d30797c08
chore: Enable `revive:enforce-slice-style` rule (#16173) 2024-11-13 01:24:35 -06:00
Lars Stegman ccdbc4c480
perf(agent): Reduce complexity of creating new metrics to 'O(N_fields)' (#15889) 2024-09-16 10:57:55 -05:00
Dane Strandboge 7245ea96bd
feat(agent): Add metric disk buffer (#15564) 2024-07-17 12:42:45 -06:00
Paweł Żak 1422c09294
test(linters): Enable `testifylint`: `blank-import`, `float-compare`, `negative-positive`, `nil-compare` and `useless-assert` (#15566) 2024-07-01 15:00:13 +02:00
Dane Strandboge d8aa46e9a9
chore(agent): Export internal metric fields (#15376) 2024-05-21 10:55:17 +02:00
Sven Rebhan 9e88381085
chore(parsers.prometheus): Migrate tests to test-cases (#14527) 2024-01-05 09:23:38 -07:00
Sven Rebhan 57fbc73814
fix(processors.starlark): Avoid negative refcounts for tracking metrics (#14395) 2023-12-07 08:45:09 -07:00
Paweł Żak 34ae468a8c
chore(linters): Fix findings found by testifylint: len (#14203) 2023-10-31 10:29:53 +01:00
Sven Rebhan 3c3c0d8352
fix(processors.lookup): Fix tracking metrics (#13092) 2023-04-18 09:46:22 -06:00
Paweł Żak c76f319b84
chore: Remove `revive:unhandled-error` - `errcheck` is more flexible (#13008) 2023-04-03 07:19:43 -06:00
Sven Rebhan df19061166
feat(processors): Add lookup processor (#12809) 2023-03-08 10:44:23 -07:00
Paweł Żak 6816aefcd5
chore: fix linter findings for unparam and revive.unused-parameter (#12150) 2022-11-08 12:04:12 -07:00
Paweł Żak 9d9eb403a6
chore: Review of //nolint comments (#12088) 2022-10-26 12:06:08 +02:00
Paweł Żak 5878278fca
chore: resolve linter issues for unhandled-error (#11969) 2022-10-12 14:23:53 -06:00
Paweł Żak 08c1ce9cb6
chore: Resolve linter issues for ineffassign, nilerr, gosimple... (#11966) 2022-10-12 13:08:03 -06:00
Howie 381dc22723
chore: typos across source code comments (#10361) 2022-01-05 08:20:10 -07:00
David Bennett 842a788022
Remove error return type from metric.New method (#9116)
* Remove error return type from metric.New method.

* Formatting changes for linter + gofmt

* Additional linter fixes.

* More linter fixes.

* Linter fix.

* address comments
2021-04-13 14:40:03 -04:00
Sven Rebhan 5524acfb78
Remove deprecated and unused SetAggregate() and IsAggregate() functions. (#8994) 2021-04-06 10:14:06 -06:00
Paweł Żak 5de640b855
Linter fixes - unconvert, revive:empty-lines, revive:var-naming, revive:unused-parameter (#9036)
Co-authored-by: Pawel Zak <Pawel Zak>
2021-03-24 11:27:46 -04:00
Paweł Żak 74a1acd814
Linter fixes - revive:unused-parameter, unparam, varcheck and unused (#8984)
* Linter fixes - revive:unused-parameter and unparam

* Linter fixes - revive:unused-parameter and unparam

* Linter fixes - revive:unused-parameter and unparam

* "nolint"'s removed

* Fixes for "varcheck" and "unused" added.

* Fixes for "varcheck" and "unused" added.

* Fixes for "varcheck" and "unused" added.

* Fixes for "varcheck" and "unused" added.

* Fixes for "varcheck" and "unused" added.

* Fixes for "varcheck" and "unused" added.

* Fixes for "varcheck" and "unused" added.

Co-authored-by: Pawel Zak <Pawel Zak>
2021-03-22 12:21:36 -05:00
Paweł Żak 38c61c07ef
Revive fixes - part 4: (#8981)
empty-lines

Co-authored-by: Pawel Zak <Pawel Zak>
2021-03-12 14:21:51 -06:00
Patrick Hemmer 910b726876
Optimize SeriesGrouper & aggregators.merge (#8391)
The previous implementation of SeriesGrouper required breaking a metric object apart into its constituents, converting tags and keys into unoptimized maps, only to have it put them back together into another metric object. This resulted in a significant performance overhead. This overhead was further compounded when the number of fields was large.

This change adds a new AddMetric method to SeriesGrouper which preserves the metric object and removes the back-and-forth conversion.

Additionlly the method used for calculating the metric's hash was switched to use maphash, which is optimized for this case.

----

Benchmarks

Before:

    BenchmarkMergeOne-16          106012	     11790 ns/op
    BenchmarkMergeTwo-16           48529	     24819 ns/op
    BenchmarkGroupID-16           780018	      1608 ns/op

After:

    BenchmarkMergeOne-16          907093	      1173 ns/op
    BenchmarkMergeTwo-16          508321	      2168 ns/op
    BenchmarkGroupID-16         11217788	      99.4 ns/op
2021-01-07 11:39:12 -05:00
Josh Soref bf1eb291f2
Fix assorted spelling mistakes (#7507) 2020-05-15 15:43:32 -07:00
reimda a0276385b1
Refactor InfluxDB listener (#6974)
Use streaming parser in InfluxDB listener
2020-03-04 11:13:44 -07:00
Asgaut Eng 9823952597
Fix duplicate TrackingIDs returned (#6960)
There is a small chance the newTrackingID() function in tracking.go
will return the same id to multiple simultaneous callers.
The function must return the value returned by atomic.AddUint64()
to be safe.
2020-01-31 12:03:54 -08:00
Daniel Nelson 1ea7863b9b
Add pivot and unpivot processors (#5991) 2019-06-14 15:26:56 -07:00
Greg 98e922123a Dereference pointer fields in metrics (#5525) 2019-03-04 13:34:52 -08:00
Daniel Nelson c57f2d9d48
Ignore tracking for metrics added to aggregator (#5508) 2019-03-01 11:21:31 -08:00
Daniel Nelson 843d842d02
Add stackdriver input plugin (#5406) 2019-02-20 13:23:59 -08:00
Daniel Nelson 7497a2027b
Deliver empty metric tracking group immediately (#5176) 2018-12-26 19:36:10 -08:00
Daniel Nelson 6e5c2f8bb6
Remove outputs blocking inputs when output is slow (#4938) 2018-11-05 13:34:28 -08:00
Daniel Nelson 100d11f24e
Remove unused cruft 2018-10-22 17:15:57 -07:00
Ayrdrie 9f8de25e0e Add parser processor (#4551) 2018-08-22 16:28:50 -07:00
Daniel Nelson 6d876c18e0
Fix metric can have duplicate field (#4422) 2018-07-13 22:54:34 -07:00
Daniel Nelson 0af40a8a5d
Fix dropwizard parsing error for metrics that need escaped (#4142)
If the dropwizard parser cannot convert the metric name into a valid
line protocol series then we will accept the name as is.
2018-05-14 11:00:03 -07:00
Daniel Nelson ee9a2f73a1
Fix duplicate tags when overriding tag (#4056) 2018-04-20 18:39:31 -07:00
Daniel Nelson e4009234e9
Fix HashID conflicts in pathological cases
Use "\n" as delimiter as it cannot occur in the series name.
2018-04-12 18:09:31 -07:00
Daniel Nelson bcaaeda49c
Fix precision truncation when no timestamp included (#3961) 2018-04-02 14:32:33 -07:00
Daniel Nelson 7e3ec16e15
Allow empty string field values 2018-03-30 16:57:35 -07:00
Daniel Nelson b99cd14129
Add influx uint support as a runtime option (#3948) 2018-03-29 13:31:43 -07:00
Matt a320f91516 Add line protocol uint64 support (#3946) 2018-03-28 16:43:25 -07:00
Daniel Nelson 1c0f63a90d
Add new line protocol parser and serializer, influxdb output (#3924) 2018-03-27 17:30:51 -07:00
Daniel Nelson 72682973bd
Fix typo in error message 2017-11-13 15:07:54 -08:00
faye-sama a411306fba Fail metrics parsing on unescaped quotes (#3409)
Before this change Fields() method on a metric parsed from a line with
unescaped quotes could panic. This change makes such line unparseable.

Fixes #3326
2017-11-13 15:06:47 -08:00
Maximilien Richer 5f215c22fe Fix typos in comments (#3415) 2017-10-31 17:00:06 -07:00
Daniel Nelson cafb22d145
Fix unittest for golang 1.9 2017-09-22 17:35:58 -07:00
Daniel Nelson 28d16188b3 Fix panic when handling string fields with escapes (#3188) 2017-08-30 21:16:37 -07:00
Daniel Nelson ae24a0754b Escape backslash within string fields (#3161) 2017-08-23 15:17:26 -07:00
Daniel Nelson 1388e2cf92 Do not allow metrics with trailing slashes (#3007)
It is not possible to encode a measurement, tag, or field whose last
character is a backslash due to it being an unescapable character.
Because the tight coupling between line protocol and the internal metric
model, prevent metrics like this from being created.

Measurements with a trailing slash are not allowed and the point will be
dropped.  Tags and fields with a trailing a slash will be dropped from
the point.
2017-07-11 15:54:38 -07:00