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

improve textlogger #362

Merged
merged 14 commits into from Jan 19, 2023
Merged

improve textlogger #362

merged 14 commits into from Jan 19, 2023

Conversation

pohly
Copy link

@pohly pohly commented Dec 22, 2022

What this PR does / why we need it:

This is a combination of several performance improvements.

Eventually the goal is to use just that textlogger in Kubernetes, without going through any of the klog APIs like klog.Info nor through the legacy output handling.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #360
Fixes #334

Special notes for your reviewer:

Release note:

improved performance

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Dec 22, 2022
@k8s-ci-robot k8s-ci-robot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Dec 22, 2022
Copy link

@harshanarayana harshanarayana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did a quick first pass and things look good. I will do another round of check and test a few things locally and update again

freeList *Buffer
var buffers = sync.Pool {
New: func() interface{} {
return new(Buffer)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose the sync.Pool is a bit slower in terms of ns/op if you run the benchmark. Would that impact the klog behavior in any way ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The microbenchmarks which use this buffer (header formatting) didn't show any measurable difference (see commit message).

For a full before/after comparison the bugfix in textlogger would have to be pulled into a separate commit. I've not done that.

logger = logger.WithValues(test.withValues...) // <WITH-VALUES>
loggers := []logr.Logger{logger}
if test.moreValues != nil {
loggers = append(loggers, logger.WithValues(test.moreValues...), logger) // <WITH-VALUES-2>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It must not have been modified. This produces three log entries.

Is this by mistake ? or was there a reason behind that ? Why is the logger getting included again ? Should it not be just

Suggested change
loggers = append(loggers, logger.WithValues(test.moreValues...), logger) // <WITH-VALUES-2>
loggers = append(loggers, logger.WithValues(test.moreValues...)) // <WITH-VALUES-2>

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment above explains this:

	// When we have multiple WithValues calls, we test
	// first with the initial set of additional values, then
	// the combination, then again the original logger.
	// It must not have been modified. This produces
	// three log entries.

The moreValues are the ones only used by the logger in the middle.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@harshanarayana: this this okay? Can we merge this PR?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes @pohly

@logicalhan
Copy link
Member

/triage accepted
/assign @serathius @thockin

@k8s-ci-robot k8s-ci-robot added the triage/accepted Indicates an issue or PR is ready to be actively worked on. label Jan 12, 2023
@k8s-ci-robot k8s-ci-robot removed the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Jan 12, 2023
@@ -171,12 +171,8 @@ func testOutput(t *testing.T, format string) {
err: errors.New("whoops"),
// The message is printed to three different log files (info, warning, error), so we see it three times in our output buffer.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is no longer relevant.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, fixed.

@harshanarayana
Copy link

Looks like the vmodule tests are failing again ?

@harshanarayana
Copy link

Looks like the vmodule tests are failing again ?

I am running tests locally and not seem to be reproducing. Am I missing something @pohly ?

❯ go version                                                                                                                                                                                                                                                                           100%  ▓▒░
go version go1.18 darwin/amd64

..... truncated logs
    --- PASS: TestKlogrInternalStackZapr/log_with_name_and_values (0.00s)
    --- PASS: TestKlogrInternalStackZapr/override_WithValues (0.00s)
    --- PASS: TestKlogrInternalStackZapr/handle_odd-numbers_of_KVs_in_both_log_values_and_Info_args (0.00s)
PASS
ok  	example/output_test	0.857s
?   	example/set_output	[no test files]
?   	example/structured_logging	[no test files]

These functions get called for a pointer because that is what we use to
implement the LogSink interface. The variant of these functions which take a
value instead of a pointer was never used, so providing directly what is needed
instead of relying on the compiler to generate that is more efficient (less
code, avoids one extra callstack entry at runtime).

The With* functions must continue to take a value because they need to modify
that copy.
This makes it possible to use test.Output inside packages
that have other tests.
When klogr called V(), it didn't pass the callstack offset, which broke
evaluation of the -vmodule patterns. A new VWithOffset klog API is needed to
fix this.

A unit test for this will follow.
Besides sharing code, it's also better in two regards:
- restores state after test
- avoids triple printing of errors
@pohly
Copy link
Author

pohly commented Jan 16, 2023

Looks like the vmodule tests are failing again ?

I am running tests locally and not seem to be reproducing.

I am not sure why you couldn't reproduce. It failed inside the example directory for me reliably. The root cause was the conceptual problem with V assuming to be called directly by the code which logs and the two klogr implementations not doing that.

I initially wanted to disable the failing unit tests, but then would have had to document the bug. At that point I decided that fixing it is easier 😁 It needs a new VDepth function, though.

@pohly
Copy link
Author

pohly commented Jan 16, 2023

@harshanarayana: tests are passing, except for the known (and IMHO acceptable) API changes:

  • klogr: klogger.Enabled/Error/Info can be ignored because the "removed" value receivers are not needed by anyone
  • k8s.io/klog/v2/test.InitKLog: this was explicitly marked as "experimental" and still is


// freeList is a list of byte buffers, maintained under mu.
freeList *Buffer
var buffers = sync.Pool{
Copy link

@serathius serathius Jan 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When comparing performance using benchstat please ensure that p factor is lower than <0.05, so the results are statistically significant. Fact that benchstat returns ~ for time delta doesn't mean that results are equal. It means that there were not enough tries to make any conclusions.

I recommend increase number of tries to when benchmarking to at last 10.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That didn't help. For example:

$ go test -bench=KlogOutput/verbosity_disabled -benchmem -count=10 . >/tmp/run1.log
$ go test -bench=KlogOutput/verbosity_disabled -benchmem -count=10 . >/tmp/run2.log
$ $GOPATH/bin/benchstat /tmp/run1.log /tmp/run2.log 
name                              old time/op    new time/op    delta
KlogOutput/verbosity_disabled-36    14.8ns ± 0%    14.8ns ± 0%   ~     (p=1.000 n=10+10)

name                              old alloc/op   new alloc/op   delta
KlogOutput/verbosity_disabled-36     0.00B          0.00B        ~     (all equal)

name                              old allocs/op  new allocs/op  delta
KlogOutput/verbosity_disabled-36      0.00           0.00        ~     (all equal)

There's no code change at all between the two invocations and the 14.8ns duration is the same with very little variance (0%), but p remains at 1.000.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

High p value means that there is no statistically significant difference between both solutions. It makes sense as both options take exactly 14.8ns. https://pkg.go.dev/golang.org/x/perf/cmd/benchstat#hdr-Tips

This is exactly what we would result to be if you would want to prove that solutions have same performance.

Interesting thing is that variance is so low. I would always expect at 1% variation. Not sure why, maybe problem with benchmark?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now I am confused. Earlier you said:

Fact that benchstat returns ~ for time delta doesn't mean that results are equal. It means that there were not enough tries to make any conclusions.

But in this example it means exactly that: results are equal.

Copy link

@serathius serathius Jan 18, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for confusion, ~ just means it could not determine whether there is a statistically significant improvement difference between two runs. This happens when p is above 0.05 . This can mean either:

  • There is a change, but we didn't get enough runs to be sure. For example we got p equal 0.5, which means we are 50% sure that there is an improvement.
  • Results are equal.

In first case increasing number of runs should result in p decreasing. In that case we should increase the number of runs until we get p below 0.05.

As in example below. We can see that new time is on average 0.06µs faster. However we also see that this difference is around the about the result variance ± 6%. So if we take best results from old time, they are still better then new time. In such situation we need to use statistical analysis to confirm the result. Thankfully benchstat already gives us the p value equal 0.246 which means that there is 75.4% (1-0.246) chance that there is an improvement. This however is usually not enough and we want to have at least 95% certainty (p value below 0.05). In this case we should increasing number of runs should help

name              old time/op    new time/op    delta
Header-36         1.68µs ± 7%    1.62µs ± 6%    ~     (p=0.246 n=5+5)

In second case p will never decrease no matter how many runs we do. Example:

name                             old time/op    new time/op    delta
KlogOutput/verbosity_disabled-36 14.8ns ± 0%    14.8ns ± 0%    ~ (p=1.000 n=10+10)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In second case results are suspicious. There are many factors that should cause execution time to vary, like cpu temperature, boost, background processes etc. However the point stand that increasing number of runs doesn't help. I would recommend double checking if benchmark is correctly implemented.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are many factors that should cause execution time to vary, like cpu temperature, boost, background processes etc.

I am running this on a high-quality desktop with nothing besides the benchmark running. I think it is valid that the results are stable.

@@ -31,7 +32,12 @@ type ObjectRef struct {

func (ref ObjectRef) String() string {
if ref.Namespace != "" {
return fmt.Sprintf("%s/%s", ref.Namespace, ref.Name)
var builder strings.Builder
Copy link

@serathius serathius Jan 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment about benchmarking as above.

@@ -175,6 +179,8 @@ func KVFormat(b *bytes.Buffer, k, v interface{}) {
// than plain strings
// (https://github.com/kubernetes/kubernetes/pull/106594#issuecomment-975526235).
switch v := v.(type) {
case textWriter:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment about benchmarking as above.

@k8s-ci-robot k8s-ci-robot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. lgtm "Looks good to me", indicates that a PR is ready to be merged. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Jan 17, 2023
@pohly
Copy link
Author

pohly commented Jan 18, 2023

I compared the baseline (= the "use output test cases also for benchmarking" commit) with the final state of the PR, using -count=10.

My recent vmodule fixes (#362 (comment)) unintentionally slowed down the printWithKLog function and thus affected benchmark results. I've fixed that before running these benchmarks.

Here's the result for the textlogger:

name                                                                            old time/op    new time/op    delta
TextloggerOutput/override_single_value-36                                         4.60µs ± 7%    2.94µs ±10%  -36.14%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_nil_entry-36                                           5.61µs ± 6%    2.67µs ± 5%  -52.36%  (p=0.000 n=10+10)
TextloggerOutput/Error()_for_nil-36                                               7.94µs ± 6%    6.51µs ± 3%  -18.05%  (p=0.000 n=10+10)
TextloggerOutput/String()_for_nil-36                                              9.31µs ± 8%    6.55µs ±11%  -29.63%  (p=0.000 n=10+10)
TextloggerOutput/struct_keys-36                                                   5.34µs ± 9%    3.83µs ± 5%  -28.36%  (p=0.000 n=9+10)
TextloggerOutput/verbosity_disabled-36                                             162ns ± 2%     167ns ± 3%   +3.34%  (p=0.000 n=10+10)
TextloggerOutput/call_depth-36                                                    4.58µs ± 9%    3.32µs ± 6%  -27.46%  (p=0.000 n=10+10)
TextloggerOutput/print_duplicate_keys_in_arguments-36                             4.40µs ± 8%    3.06µs ± 9%  -30.49%  (p=0.000 n=10+9)
TextloggerOutput/KObjSlice_nil_arg-36                                             3.56µs ± 7%    2.67µs ± 7%  -24.88%  (p=0.000 n=10+10)
TextloggerOutput/MarshalLog()_that_panics-36                                      5.11µs ± 6%    3.82µs ± 3%  -25.19%  (p=0.000 n=10+9)
TextloggerOutput/vmodule-36                                                        668ns ± 7%     657ns ± 6%     ~     (p=0.218 n=10+10)
TextloggerOutput/override_WithValues-36                                           5.37µs ± 8%    3.52µs ± 7%  -34.46%  (p=0.000 n=10+10)
TextloggerOutput/KObjs-36                                                         5.68µs ± 7%    3.75µs ±12%  -33.87%  (p=0.000 n=9+10)
TextloggerOutput/odd_WithValues-36                                                14.6µs ± 7%    10.1µs ± 8%  -30.87%  (p=0.000 n=10+10)
TextloggerOutput/quotation-36                                                     4.33µs ± 7%    3.02µs ±11%  -30.24%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_int_arg-36                                             5.30µs ± 6%    2.80µs ± 9%  -47.15%  (p=0.000 n=10+10)
TextloggerOutput/regular_error_types_as_value-36                                  4.14µs ± 5%    2.80µs ± 7%  -32.28%  (p=0.000 n=10+10)
TextloggerOutput/handle_integer_keys-36                                           7.02µs ± 7%    4.26µs ± 7%  -39.39%  (p=0.000 n=10+10)
TextloggerOutput/verbosity_enabled-36                                             3.49µs ± 6%    2.65µs ± 8%  -24.01%  (p=0.000 n=10+10)
TextloggerOutput/log_with_values-36                                               4.09µs ± 5%    2.81µs ± 8%  -31.36%  (p=0.000 n=10+10)
TextloggerOutput/handle_odd-numbers_of_KVs_in_both_log_values_and_Info_args-36    6.57µs ± 6%    4.04µs ± 6%  -38.45%  (p=0.000 n=10+10)
TextloggerOutput/KObj-36                                                          4.78µs ± 6%    2.60µs ±16%  -45.62%  (p=0.000 n=10+10)
TextloggerOutput/Error()_that_panics-36                                           4.90µs ± 5%    3.40µs ± 8%  -30.58%  (p=0.000 n=10+10)
TextloggerOutput/String()_that_panics-36                                          5.02µs ± 6%    3.35µs ± 6%  -33.35%  (p=0.000 n=10+10)
TextloggerOutput/other_vmodule-36                                                  666ns ± 4%     649ns ± 7%     ~     (p=0.345 n=10+9)
TextloggerOutput/log_with_name_and_values-36                                      4.58µs ± 8%    3.17µs ± 6%  -30.67%  (p=0.000 n=10+9)
TextloggerOutput/log_with_multiple_names_and_values-36                            5.05µs ± 6%    3.82µs ±10%  -24.36%  (p=0.000 n=10+10)
TextloggerOutput/multiple_WithValues-36                                           18.5µs ± 9%    12.5µs ± 6%  -32.48%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_okay-36                                                6.71µs ± 7%    2.73µs ± 8%  -59.33%  (p=0.000 n=10+10)
TextloggerOutput/ignore_MarshalJSON-36                                            4.22µs ±10%    2.78µs ±12%  -34.04%  (p=0.000 n=10+10)
TextloggerOutput/empty_WithValues-36                                              3.44µs ± 6%    2.59µs ± 6%  -24.52%  (p=0.000 n=10+10)
TextloggerOutput/preserve_order_of_key/value_pairs-36                             6.93µs ± 9%    4.17µs ± 8%  -39.87%  (p=0.000 n=10+10)
TextloggerOutput/regular_error_types_when_using_logr.Error-36                     3.98µs ± 8%    2.57µs ± 7%  -35.34%  (p=0.000 n=10+10)
TextloggerOutput/MarshalLog()_for_nil-36                                          8.27µs ± 7%    3.82µs ± 8%  -53.83%  (p=0.000 n=10+10)
TextloggerOutput/handle_odd-numbers_of_KVs-36                                     4.95µs ± 6%    3.29µs ± 7%  -33.53%  (p=0.000 n=9+10)
TextloggerOutput/html_characters-36                                               3.61µs ± 7%    2.81µs ± 8%  -22.11%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_ints-36                                                6.72µs ± 4%    2.81µs ±10%  -58.16%  (p=0.000 n=9+10)
TextloggerOutput/MarshalLog()_that_returns_itself-36                              4.46µs ±10%    2.90µs ± 7%  -34.96%  (p=0.000 n=10+10)
TextloggerOutput/map_keys-36                                                      5.27µs ± 8%    3.85µs ± 7%  -26.86%  (p=0.000 n=10+10)

name                                                                            old alloc/op   new alloc/op   delta
TextloggerOutput/override_single_value-36                                           704B ± 0%      336B ± 0%  -52.27%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_nil_entry-36                                             817B ± 0%      288B ± 0%  -64.75%  (p=0.000 n=10+10)
TextloggerOutput/Error()_for_nil-36                                               1.03kB ± 0%    0.71kB ± 0%  -30.88%  (p=0.000 n=10+10)
TextloggerOutput/String()_for_nil-36                                              1.28kB ± 0%    0.72kB ± 0%  -43.64%  (p=0.000 n=10+10)
TextloggerOutput/struct_keys-36                                                     809B ± 0%      409B ± 0%  -49.44%  (p=0.000 n=10+10)
TextloggerOutput/verbosity_disabled-36                                             64.0B ± 0%     64.0B ± 0%     ~     (all equal)
TextloggerOutput/call_depth-36                                                      680B ± 0%      376B ± 0%  -44.71%  (p=0.000 n=10+10)
TextloggerOutput/print_duplicate_keys_in_arguments-36                               624B ± 0%      320B ± 0%  -48.72%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_nil_arg-36                                               480B ± 0%      288B ± 0%  -40.00%  (p=0.000 n=10+10)
TextloggerOutput/MarshalLog()_that_panics-36                                        705B ± 0%      401B ± 0%  -43.12%  (p=0.000 n=10+10)
TextloggerOutput/vmodule-36                                                        64.0B ± 0%     64.0B ± 0%     ~     (all equal)
TextloggerOutput/override_WithValues-36                                             816B ± 0%      384B ± 0%  -52.94%  (p=0.000 n=10+10)
TextloggerOutput/KObjs-36                                                           865B ± 0%      497B ± 0%  -42.54%  (p=0.000 n=10+10)
TextloggerOutput/odd_WithValues-36                                                2.13kB ± 0%    1.09kB ± 0%  -48.83%  (p=0.000 n=10+10)
TextloggerOutput/quotation-36                                                       624B ± 0%      320B ± 0%  -48.72%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_int_arg-36                                               817B ± 0%      288B ± 0%  -64.75%  (p=0.000 n=10+10)
TextloggerOutput/regular_error_types_as_value-36                                    608B ± 0%      304B ± 0%  -50.00%  (p=0.000 n=10+10)
TextloggerOutput/handle_integer_keys-36                                           1.15kB ± 0%    0.46kB ± 0%  -60.09%  (p=0.000 n=10+10)
TextloggerOutput/verbosity_enabled-36                                               472B ± 0%      296B ± 0%  -37.29%  (p=0.000 n=10+10)
TextloggerOutput/log_with_values-36                                                 608B ± 0%      304B ± 0%  -50.00%  (p=0.000 n=10+10)
TextloggerOutput/handle_odd-numbers_of_KVs_in_both_log_values_and_Info_args-36    1.11kB ± 0%    0.42kB ± 0%  -61.87%  (p=0.000 n=10+10)
TextloggerOutput/KObj-36                                                            680B ± 0%      288B ± 0%  -57.67%  (p=0.000 n=10+10)
TextloggerOutput/Error()_that_panics-36                                             680B ± 0%      377B ± 0%  -44.56%  (p=0.000 n=9+10)
TextloggerOutput/String()_that_panics-36                                            688B ± 0%      385B ± 0%  -44.08%  (p=0.000 n=10+10)
TextloggerOutput/other_vmodule-36                                                  64.0B ± 0%     64.0B ± 0%     ~     (all equal)
TextloggerOutput/log_with_name_and_values-36                                        680B ± 0%      376B ± 0%  -44.71%  (p=0.000 n=10+10)
TextloggerOutput/log_with_multiple_names_and_values-36                              784B ± 0%      480B ± 0%  -38.78%  (p=0.000 n=10+10)
TextloggerOutput/multiple_WithValues-36                                           2.63kB ± 0%    1.48kB ± 0%  -43.81%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_okay-36                                                1.03kB ± 0%    0.29kB ± 0%  -72.12%  (p=0.000 n=10+10)
TextloggerOutput/ignore_MarshalJSON-36                                              608B ± 0%      304B ± 0%  -50.00%  (p=0.000 n=10+10)
TextloggerOutput/empty_WithValues-36                                                464B ± 0%      288B ± 0%  -37.93%  (p=0.000 n=10+10)
TextloggerOutput/preserve_order_of_key/value_pairs-36                             1.18kB ± 0%    0.46kB ± 0%  -60.81%  (p=0.000 n=10+10)
TextloggerOutput/regular_error_types_when_using_logr.Error-36                       608B ± 0%      304B ± 0%  -50.00%  (p=0.000 n=10+10)
TextloggerOutput/MarshalLog()_for_nil-36                                          1.39kB ± 0%    0.42kB ± 0%  -70.09%  (p=0.000 n=10+10)
TextloggerOutput/handle_odd-numbers_of_KVs-36                                       704B ± 0%      336B ± 0%  -52.27%  (p=0.000 n=10+10)
TextloggerOutput/html_characters-36                                                 480B ± 0%      304B ± 0%  -36.67%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_ints-36                                                1.03kB ± 0%    0.30kB ± 0%  -71.35%  (p=0.000 n=10+10)
TextloggerOutput/MarshalLog()_that_returns_itself-36                                624B ± 0%      320B ± 0%  -48.72%  (p=0.000 n=10+10)
TextloggerOutput/map_keys-36                                                        745B ± 0%      441B ± 0%  -40.81%  (p=0.000 n=10+10)

name                                                                            old allocs/op  new allocs/op  delta
TextloggerOutput/override_single_value-36                                           10.0 ± 0%       6.0 ± 0%  -40.00%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_nil_entry-36                                             15.0 ± 0%       4.0 ± 0%  -73.33%  (p=0.000 n=10+10)
TextloggerOutput/Error()_for_nil-36                                                 12.0 ± 0%       9.0 ± 0%  -25.00%  (p=0.000 n=10+10)
TextloggerOutput/String()_for_nil-36                                                13.0 ± 0%       9.0 ± 0%  -30.77%  (p=0.000 n=10+10)
TextloggerOutput/struct_keys-36                                                     14.0 ± 0%      10.0 ± 0%  -28.57%  (p=0.000 n=10+10)
TextloggerOutput/verbosity_disabled-36                                              1.00 ± 0%      1.00 ± 0%     ~     (all equal)
TextloggerOutput/call_depth-36                                                      9.00 ± 0%      6.00 ± 0%  -33.33%  (p=0.000 n=10+10)
TextloggerOutput/print_duplicate_keys_in_arguments-36                               9.00 ± 0%      6.00 ± 0%  -33.33%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_nil_arg-36                                               9.00 ± 0%      4.00 ± 0%  -55.56%  (p=0.000 n=10+10)
TextloggerOutput/MarshalLog()_that_panics-36                                        10.0 ± 0%       7.0 ± 0%  -30.00%  (p=0.000 n=10+10)
TextloggerOutput/vmodule-36                                                         1.00 ± 0%      1.00 ± 0%     ~     (all equal)
TextloggerOutput/override_WithValues-36                                             15.0 ± 0%      11.0 ± 0%  -26.67%  (p=0.000 n=10+10)
TextloggerOutput/KObjs-36                                                           17.0 ± 0%      10.0 ± 0%  -41.18%  (p=0.000 n=10+10)
TextloggerOutput/odd_WithValues-36                                                  30.0 ± 0%      18.0 ± 0%  -40.00%  (p=0.000 n=10+10)
TextloggerOutput/quotation-36                                                       8.00 ± 0%      5.00 ± 0%  -37.50%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_int_arg-36                                               12.0 ± 0%       4.0 ± 0%  -66.67%  (p=0.000 n=10+10)
TextloggerOutput/regular_error_types_as_value-36                                    8.00 ± 0%      5.00 ± 0%  -37.50%  (p=0.000 n=10+10)
TextloggerOutput/handle_integer_keys-36                                             16.0 ± 0%      11.0 ± 0%  -31.25%  (p=0.000 n=10+10)
TextloggerOutput/verbosity_enabled-36                                               6.00 ± 0%      4.00 ± 0%  -33.33%  (p=0.000 n=10+10)
TextloggerOutput/log_with_values-36                                                 8.00 ± 0%      5.00 ± 0%  -37.50%  (p=0.000 n=10+10)
TextloggerOutput/handle_odd-numbers_of_KVs_in_both_log_values_and_Info_args-36      14.0 ± 0%       9.0 ± 0%  -35.71%  (p=0.000 n=10+10)
TextloggerOutput/KObj-36                                                            11.0 ± 0%       4.0 ± 0%  -63.64%  (p=0.000 n=10+10)
TextloggerOutput/Error()_that_panics-36                                             9.00 ± 0%      6.00 ± 0%  -33.33%  (p=0.000 n=10+10)
TextloggerOutput/String()_that_panics-36                                            9.00 ± 0%      6.00 ± 0%  -33.33%  (p=0.000 n=10+10)
TextloggerOutput/other_vmodule-36                                                   1.00 ± 0%      1.00 ± 0%     ~     (all equal)
TextloggerOutput/log_with_name_and_values-36                                        9.00 ± 0%      6.00 ± 0%  -33.33%  (p=0.000 n=10+10)
TextloggerOutput/log_with_multiple_names_and_values-36                              12.0 ± 0%       9.0 ± 0%  -25.00%  (p=0.000 n=10+10)
TextloggerOutput/multiple_WithValues-36                                             34.0 ± 0%      20.0 ± 0%  -41.18%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_okay-36                                                  21.0 ± 0%       4.0 ± 0%  -80.95%  (p=0.000 n=10+10)
TextloggerOutput/ignore_MarshalJSON-36                                              8.00 ± 0%      5.00 ± 0%  -37.50%  (p=0.000 n=10+10)
TextloggerOutput/empty_WithValues-36                                                6.00 ± 0%      4.00 ± 0%  -33.33%  (p=0.000 n=10+10)
TextloggerOutput/preserve_order_of_key/value_pairs-36                               15.0 ± 0%      10.0 ± 0%  -33.33%  (p=0.000 n=10+10)
TextloggerOutput/regular_error_types_when_using_logr.Error-36                       8.00 ± 0%      5.00 ± 0%  -37.50%  (p=0.000 n=10+10)
TextloggerOutput/MarshalLog()_for_nil-36                                            14.0 ± 0%       6.0 ± 0%  -57.14%  (p=0.000 n=10+10)
TextloggerOutput/handle_odd-numbers_of_KVs-36                                       10.0 ± 0%       6.0 ± 0%  -40.00%  (p=0.000 n=10+10)
TextloggerOutput/html_characters-36                                                 8.00 ± 0%      6.00 ± 0%  -25.00%  (p=0.000 n=10+10)
TextloggerOutput/KObjSlice_ints-36                                                  14.0 ± 0%       5.0 ± 0%  -64.29%  (p=0.000 n=10+10)
TextloggerOutput/MarshalLog()_that_returns_itself-36                                8.00 ± 0%      5.00 ± 0%  -37.50%  (p=0.000 n=10+10)
TextloggerOutput/map_keys-36                                                        14.0 ± 0%      11.0 ± 0%  -21.43%  (p=0.000 n=10+10)

Here are the results for klog itself:

name                                                                      old time/op    new time/op    delta
Header-36                                                                   1.65µs ± 8%    1.65µs ± 7%     ~     (p=0.782 n=10+10)
HeaderWithDir-36                                                            1.71µs ±12%    1.69µs ± 6%     ~     (p=0.494 n=10+10)
V-36                                                                        2.37ns ± 0%    2.37ns ± 0%     ~     (p=0.257 n=10+8)
KRef-36                                                                     0.49ns ± 0%    0.49ns ± 1%   +0.39%  (p=0.027 n=10+8)
KObj-36                                                                     6.42ns ± 0%    6.42ns ± 0%     ~     (p=0.197 n=10+10)
KObjs/0/simple-36                                                            260ns ± 3%     266ns ± 3%     ~     (p=0.055 n=10+10)
KObjs/0/conditional-36                                                      2.61ns ± 1%    2.61ns ± 0%     ~     (p=0.481 n=10+9)
KObjs/10/simple-36                                                          1.20µs ± 4%    1.23µs ± 4%     ~     (p=0.101 n=10+10)
KObjs/10/conditional-36                                                     2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.285 n=10+10)
KObjs/20/simple-36                                                          1.97µs ± 5%    1.99µs ± 4%     ~     (p=0.363 n=10+10)
KObjs/20/conditional-36                                                     2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.445 n=10+10)
KObjs/30/simple-36                                                          2.71µs ± 3%    2.77µs ± 3%   +2.13%  (p=0.015 n=10+10)
KObjs/30/conditional-36                                                     2.60ns ± 0%    2.61ns ± 0%     ~     (p=0.148 n=9+10)
KObjs/40/simple-36                                                          3.47µs ± 3%    3.53µs ± 3%   +1.65%  (p=0.033 n=9+10)
KObjs/40/conditional-36                                                     2.60ns ± 0%    2.61ns ± 0%     ~     (p=0.409 n=9+10)
KObjs/50/simple-36                                                          4.19µs ± 2%    4.25µs ± 2%   +1.42%  (p=0.012 n=10+10)
KObjs/50/conditional-36                                                     2.61ns ± 0%    2.60ns ± 0%   -0.29%  (p=0.000 n=10+10)
KObjs/60/simple-36                                                          5.28µs ± 3%    5.34µs ± 3%     ~     (p=0.218 n=10+10)
KObjs/60/conditional-36                                                     2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.533 n=10+9)
KObjs/70/simple-36                                                          5.92µs ± 2%    6.03µs ± 2%   +1.91%  (p=0.002 n=10+10)
KObjs/70/conditional-36                                                     2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.794 n=9+10)
KObjs/80/simple-36                                                          6.94µs ± 2%    7.01µs ± 3%     ~     (p=0.190 n=10+10)
KObjs/80/conditional-36                                                     2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.615 n=9+10)
KObjs/90/simple-36                                                          7.51µs ± 1%    7.56µs ± 1%     ~     (p=0.089 n=10+10)
KObjs/90/conditional-36                                                     2.60ns ± 0%    2.61ns ± 0%     ~     (p=0.092 n=8+9)
KObjs/100/simple-36                                                         8.28µs ± 2%    8.41µs ± 2%   +1.58%  (p=0.002 n=9+9)
KObjs/100/conditional-36                                                    2.61ns ± 0%    2.60ns ± 0%     ~     (p=0.091 n=10+8)
KObjSlice/0/simple-36                                                        269ns ± 6%     274ns ± 4%     ~     (p=0.190 n=10+10)
KObjSlice/0/conditional-36                                                  2.60ns ± 0%    2.61ns ± 0%     ~     (p=0.283 n=9+9)
KObjSlice/10/simple-36                                                       272ns ± 3%     275ns ± 4%     ~     (p=0.315 n=10+9)
KObjSlice/10/conditional-36                                                 2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.860 n=9+10)
KObjSlice/20/simple-36                                                       272ns ± 4%     274ns ± 3%     ~     (p=0.325 n=10+10)
KObjSlice/20/conditional-36                                                 2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.855 n=9+10)
KObjSlice/30/simple-36                                                       269ns ± 4%     277ns ± 6%   +3.14%  (p=0.011 n=10+10)
KObjSlice/30/conditional-36                                                 2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.730 n=10+9)
KObjSlice/40/simple-36                                                       275ns ± 3%     274ns ± 5%     ~     (p=0.968 n=9+10)
KObjSlice/40/conditional-36                                                 2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.388 n=10+8)
KObjSlice/50/simple-36                                                       275ns ± 3%     276ns ± 6%     ~     (p=0.684 n=10+10)
KObjSlice/50/conditional-36                                                 2.60ns ± 0%    2.61ns ± 0%     ~     (p=0.394 n=8+10)
KObjSlice/60/simple-36                                                       274ns ± 4%     277ns ± 2%     ~     (p=0.469 n=10+10)
KObjSlice/60/conditional-36                                                 2.61ns ± 0%    2.61ns ± 0%     ~     (p=0.322 n=10+10)
KObjSlice/70/simple-36                                                       270ns ± 3%     278ns ± 4%   +3.08%  (p=0.001 n=9+10)
KObjSlice/70/conditional-36                                                 2.61ns ± 0%    2.60ns ± 0%     ~     (p=0.472 n=10+8)
KObjSlice/80/simple-36                                                       272ns ± 2%     274ns ± 2%     ~     (p=0.412 n=10+9)
KObjSlice/80/conditional-36                                                 2.61ns ± 0%    2.60ns ± 0%     ~     (p=0.538 n=10+10)
KObjSlice/90/simple-36                                                       273ns ± 2%     270ns ± 4%     ~     (p=0.218 n=10+10)
KObjSlice/90/conditional-36                                                 2.61ns ± 0%    2.60ns ± 1%     ~     (p=0.879 n=9+9)
KObjSlice/100/simple-36                                                      276ns ± 3%     274ns ± 3%     ~     (p=0.363 n=10+10)
KObjSlice/100/conditional-36                                                2.61ns ± 0%    2.60ns ± 0%   -0.23%  (p=0.005 n=10+9)
Scalars/simple-36                                                            115ns ± 1%     116ns ± 1%   +0.69%  (p=0.034 n=10+10)
Scalars/conditional-36                                                      2.61ns ± 0%    2.61ns ± 0%   +0.17%  (p=0.032 n=9+9)
ScalarsWithLogger/simple-36                                                  122ns ± 1%     123ns ± 2%     ~     (p=0.254 n=10+10)
ScalarsWithLogger/conditional-36                                            3.56ns ± 0%    3.95ns ± 0%  +10.94%  (p=0.000 n=10+10)
KObjSliceWithLogger/simple-36                                                280ns ± 3%     282ns ± 2%     ~     (p=0.353 n=10+10)
KObjSliceWithLogger/conditional-36                                          3.56ns ± 0%    3.65ns ± 0%   +2.57%  (p=0.000 n=9+10)
Logs-36                                                                     7.23µs ± 9%    7.53µs ± 8%     ~     (p=0.105 n=10+10)
WithoutDeferUnLock-36                                                       11.9ns ± 2%    11.9ns ± 1%     ~     (p=0.981 n=9+10)
WithDeferUnLock-36                                                          13.3ns ± 0%    13.3ns ± 0%   -0.23%  (p=0.024 n=9+9)
KlogOutput/handle_odd-numbers_of_KVs_in_both_log_values_and_Info_args-36    6.19µs ± 5%    6.17µs ± 4%     ~     (p=0.720 n=10+9)
KlogOutput/log_with_name_and_values-36                                      3.68µs ± 6%    3.65µs ± 8%     ~     (p=0.796 n=10+10)
KlogOutput/print_duplicate_keys_in_arguments-36                             3.98µs ± 7%    3.91µs ± 9%     ~     (p=0.436 n=10+10)
KlogOutput/KObjSlice_int_arg-36                                             4.89µs ±10%    3.59µs ± 5%  -26.54%  (p=0.000 n=10+10)
KlogOutput/Error()_for_nil-36                                               7.80µs ± 7%    7.77µs ± 9%     ~     (p=0.796 n=10+10)
KlogOutput/log_with_values-36                                               3.56µs ± 7%    3.51µs ± 7%     ~     (p=0.739 n=10+10)
KlogOutput/call_depth-36                                                    4.26µs ± 5%    3.71µs ± 8%  -12.96%  (p=0.000 n=10+10)
KlogOutput/log_with_multiple_names_and_values-36                            4.07µs ± 4%    4.03µs ± 6%     ~     (p=0.481 n=10+10)
KlogOutput/html_characters-36                                               3.44µs ± 3%    3.55µs ± 7%     ~     (p=0.176 n=9+10)
KlogOutput/KObj-36                                                          4.02µs ± 4%    3.35µs ± 8%  -16.63%  (p=0.000 n=9+10)
KlogOutput/regular_error_types_as_value-36                                  3.52µs ± 6%    3.52µs ±10%     ~     (p=0.971 n=10+10)
KlogOutput/ignore_MarshalJSON-36                                            3.51µs ± 6%    3.54µs ± 5%     ~     (p=0.592 n=10+10)
KlogOutput/verbosity_enabled-36                                             3.21µs ± 5%    3.17µs ± 5%     ~     (p=0.497 n=9+10)
KlogOutput/quotation-36                                                     3.74µs ± 9%    3.75µs ± 7%     ~     (p=0.896 n=10+10)
KlogOutput/KObjSlice_nil_entry-36                                           5.25µs ± 2%    3.55µs ± 6%  -32.38%  (p=0.000 n=7+10)
KlogOutput/regular_error_types_when_using_logr.Error-36                     3.46µs ± 3%    3.53µs ± 7%     ~     (p=0.243 n=9+10)
KlogOutput/String()_for_nil-36                                              8.05µs ± 5%    8.01µs ± 6%     ~     (p=0.529 n=10+10)
KlogOutput/handle_integer_keys-36                                           6.00µs ± 5%    6.00µs ± 7%     ~     (p=0.853 n=10+10)
KlogOutput/override_single_value-36                                         3.52µs ± 4%    3.46µs ± 7%     ~     (p=0.243 n=9+10)
KlogOutput/odd_WithValues-36                                                12.8µs ±10%    13.4µs ± 8%     ~     (p=0.105 n=10+10)
KlogOutput/MarshalLog()_that_panics-36                                      4.67µs ±10%    4.70µs ± 6%     ~     (p=0.971 n=10+10)
KlogOutput/map_keys-36                                                      4.66µs ± 8%    4.69µs ± 6%     ~     (p=0.529 n=10+10)
KlogOutput/verbosity_disabled-36                                            14.7ns ± 0%    14.9ns ± 0%   +0.85%  (p=0.000 n=10+9)
KlogOutput/preserve_order_of_key/value_pairs-36                             6.97µs ± 7%    7.16µs ± 3%     ~     (p=0.095 n=10+9)
KlogOutput/handle_odd-numbers_of_KVs-36                                     3.88µs ± 8%    4.09µs ± 3%   +5.40%  (p=0.012 n=10+8)
KlogOutput/KObjs-36                                                         5.19µs ± 7%    4.77µs ± 6%   -8.12%  (p=0.001 n=10+9)
KlogOutput/KObjSlice_nil_arg-36                                             3.62µs ± 5%    3.32µs ± 8%   -8.16%  (p=0.000 n=8+10)
KlogOutput/empty_WithValues-36                                              3.11µs ± 7%    3.06µs ± 6%     ~     (p=0.182 n=9+10)
KlogOutput/KObjSlice_okay-36                                                6.28µs ± 6%    3.51µs ± 3%  -44.14%  (p=0.000 n=9+10)
KlogOutput/KObjSlice_ints-36                                                5.94µs ± 6%    3.77µs ± 4%  -36.48%  (p=0.000 n=10+10)
KlogOutput/String()_that_panics-36                                          4.51µs ± 5%    4.54µs ± 8%     ~     (p=0.739 n=10+10)
KlogOutput/struct_keys-36                                                   5.58µs ± 8%    5.53µs ± 8%     ~     (p=0.644 n=10+10)
KlogOutput/multiple_WithValues-36                                           17.0µs ± 7%    16.3µs ± 4%   -4.00%  (p=0.013 n=10+9)
KlogOutput/other_vmodule-36                                                  837ns ± 0%     844ns ± 0%   +0.94%  (p=0.000 n=9+9)
KlogOutput/override_WithValues-36                                           4.47µs ±11%    4.49µs ± 5%     ~     (p=0.684 n=10+10)
KlogOutput/MarshalLog()_for_nil-36                                          7.49µs ± 5%    4.94µs ± 8%  -34.07%  (p=0.000 n=10+10)
KlogOutput/Error()_that_panics-36                                           4.33µs ± 4%    4.46µs ± 7%   +3.12%  (p=0.016 n=9+10)
KlogOutput/MarshalLog()_that_returns_itself-36                              3.80µs ± 4%    3.69µs ± 9%     ~     (p=0.247 n=10+10)
KlogOutput/vmodule-36                                                       4.94µs ± 9%    4.80µs ± 2%     ~     (p=0.113 n=10+9)

name                                                                      old alloc/op   new alloc/op   delta
Header-36                                                                     216B ± 0%      216B ± 0%     ~     (all equal)
HeaderWithDir-36                                                              216B ± 0%      216B ± 0%     ~     (all equal)
V-36                                                                         0.00B          0.00B          ~     (all equal)
KRef-36                                                                      0.00B          0.00B          ~     (all equal)
KObj-36                                                                      0.00B          0.00B          ~     (all equal)
KObjs/0/simple-36                                                            80.0B ± 0%     80.0B ± 0%     ~     (all equal)
KObjs/0/conditional-36                                                       0.00B          0.00B          ~     (all equal)
KObjs/10/simple-36                                                            400B ± 0%      400B ± 0%     ~     (all equal)
KObjs/10/conditional-36                                                      0.00B          0.00B          ~     (all equal)
KObjs/20/simple-36                                                            720B ± 0%      720B ± 0%     ~     (all equal)
KObjs/20/conditional-36                                                      0.00B          0.00B          ~     (all equal)
KObjs/30/simple-36                                                          1.10kB ± 0%    1.10kB ± 0%     ~     (all equal)
KObjs/30/conditional-36                                                      0.00B          0.00B          ~     (all equal)
KObjs/40/simple-36                                                          1.36kB ± 0%    1.36kB ± 0%     ~     (all equal)
KObjs/40/conditional-36                                                      0.00B          0.00B          ~     (all equal)
KObjs/50/simple-36                                                          1.87kB ± 0%    1.87kB ± 0%     ~     (all equal)
KObjs/50/conditional-36                                                      0.00B          0.00B          ~     (all equal)
KObjs/60/simple-36                                                          2.13kB ± 0%    2.13kB ± 0%     ~     (all equal)
KObjs/60/conditional-36                                                      0.00B          0.00B          ~     (all equal)
KObjs/70/simple-36                                                          2.38kB ± 0%    2.38kB ± 0%     ~     (all equal)
KObjs/70/conditional-36                                                      0.00B          0.00B          ~     (all equal)
KObjs/80/simple-36                                                          2.77kB ± 0%    2.77kB ± 0%     ~     (all equal)
KObjs/80/conditional-36                                                      0.00B          0.00B          ~     (all equal)
KObjs/90/simple-36                                                          3.15kB ± 0%    3.15kB ± 0%     ~     (all equal)
KObjs/90/conditional-36                                                      0.00B          0.00B          ~     (all equal)
KObjs/100/simple-36                                                         3.28kB ± 0%    3.28kB ± 0%     ~     (all equal)
KObjs/100/conditional-36                                                     0.00B          0.00B          ~     (all equal)
KObjSlice/0/simple-36                                                        72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/0/conditional-36                                                   0.00B          0.00B          ~     (all equal)
KObjSlice/10/simple-36                                                       72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/10/conditional-36                                                  0.00B          0.00B          ~     (all equal)
KObjSlice/20/simple-36                                                       72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/20/conditional-36                                                  0.00B          0.00B          ~     (all equal)
KObjSlice/30/simple-36                                                       72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/30/conditional-36                                                  0.00B          0.00B          ~     (all equal)
KObjSlice/40/simple-36                                                       72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/40/conditional-36                                                  0.00B          0.00B          ~     (all equal)
KObjSlice/50/simple-36                                                       72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/50/conditional-36                                                  0.00B          0.00B          ~     (all equal)
KObjSlice/60/simple-36                                                       72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/60/conditional-36                                                  0.00B          0.00B          ~     (all equal)
KObjSlice/70/simple-36                                                       72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/70/conditional-36                                                  0.00B          0.00B          ~     (all equal)
KObjSlice/80/simple-36                                                       72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/80/conditional-36                                                  0.00B          0.00B          ~     (all equal)
KObjSlice/90/simple-36                                                       72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/90/conditional-36                                                  0.00B          0.00B          ~     (all equal)
KObjSlice/100/simple-36                                                      72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSlice/100/conditional-36                                                 0.00B          0.00B          ~     (all equal)
Scalars/simple-36                                                            64.0B ± 0%     64.0B ± 0%     ~     (all equal)
Scalars/conditional-36                                                       0.00B          0.00B          ~     (all equal)
ScalarsWithLogger/simple-36                                                  64.0B ± 0%     64.0B ± 0%     ~     (all equal)
ScalarsWithLogger/conditional-36                                             0.00B          0.00B          ~     (all equal)
KObjSliceWithLogger/simple-36                                                72.0B ± 0%     72.0B ± 0%     ~     (all equal)
KObjSliceWithLogger/conditional-36                                           0.00B          0.00B          ~     (all equal)
Logs-36                                                                       698B ± 0%      699B ± 0%   +0.14%  (p=0.000 n=10+8)
WithoutDeferUnLock-36                                                        0.00B          0.00B          ~     (all equal)
WithDeferUnLock-36                                                           0.00B          0.00B          ~     (all equal)
KlogOutput/handle_odd-numbers_of_KVs_in_both_log_values_and_Info_args-36      793B ± 0%      794B ± 0%   +0.13%  (p=0.000 n=10+10)
KlogOutput/log_with_name_and_values-36                                        328B ± 0%      328B ± 0%     ~     (p=0.211 n=10+10)
KlogOutput/print_duplicate_keys_in_arguments-36                               384B ± 0%      385B ± 0%   +0.26%  (p=0.000 n=10+10)
KlogOutput/KObjSlice_int_arg-36                                               560B ± 0%      337B ± 0%  -39.82%  (p=0.000 n=10+10)
KlogOutput/Error()_for_nil-36                                                 761B ± 0%      762B ± 0%   +0.13%  (p=0.000 n=10+10)
KlogOutput/log_with_values-36                                                 312B ± 0%      312B ± 0%     ~     (all equal)
KlogOutput/call_depth-36                                                      320B ± 0%      320B ± 0%     ~     (all equal)
KlogOutput/log_with_multiple_names_and_values-36                              400B ± 0%      401B ± 0%   +0.25%  (p=0.000 n=10+10)
KlogOutput/html_characters-36                                                 312B ± 0%      312B ± 0%     ~     (all equal)
KlogOutput/KObj-36                                                            392B ± 0%      304B ± 0%  -22.45%  (p=0.000 n=10+10)
KlogOutput/regular_error_types_as_value-36                                    312B ± 0%      312B ± 0%     ~     (all equal)
KlogOutput/ignore_MarshalJSON-36                                              312B ± 0%      312B ± 0%     ~     (all equal)
KlogOutput/verbosity_enabled-36                                               264B ± 0%      264B ± 0%     ~     (all equal)
KlogOutput/quotation-36                                                       352B ± 0%      353B ± 0%   +0.28%  (p=0.000 n=10+10)
KlogOutput/KObjSlice_nil_entry-36                                             544B ± 0%      320B ± 0%  -41.18%  (p=0.000 n=10+10)
KlogOutput/regular_error_types_when_using_logr.Error-36                       280B ± 0%      280B ± 0%     ~     (all equal)
KlogOutput/String()_for_nil-36                                                817B ± 0%      818B ± 0%   +0.12%  (p=0.000 n=10+10)
KlogOutput/handle_integer_keys-36                                             729B ± 0%      730B ± 0%   +0.14%  (p=0.000 n=10+10)
KlogOutput/override_single_value-36                                           312B ± 0%      312B ± 0%     ~     (all equal)
KlogOutput/odd_WithValues-36                                                1.38kB ± 0%    1.38kB ± 0%   +0.15%  (p=0.000 n=10+10)
KlogOutput/MarshalLog()_that_panics-36                                        448B ± 0%      449B ± 0%   +0.22%  (p=0.000 n=10+10)
KlogOutput/map_keys-36                                                        472B ± 0%      473B ± 0%   +0.21%  (p=0.000 n=10+10)
KlogOutput/verbosity_disabled-36                                             0.00B          0.00B          ~     (all equal)
KlogOutput/preserve_order_of_key/value_pairs-36                               929B ± 0%      930B ± 0%   +0.11%  (p=0.000 n=10+10)
KlogOutput/handle_odd-numbers_of_KVs-36                                       384B ± 0%      385B ± 0%   +0.26%  (p=0.000 n=10+10)
KlogOutput/KObjs-36                                                           608B ± 0%      545B ± 0%  -10.36%  (p=0.000 n=10+10)
KlogOutput/KObjSlice_nil_arg-36                                               304B ± 0%      288B ± 0%   -5.26%  (p=0.000 n=10+10)
KlogOutput/empty_WithValues-36                                                248B ± 0%      248B ± 0%     ~     (all equal)
KlogOutput/KObjSlice_okay-36                                                  777B ± 0%      337B ± 0%  -56.63%  (p=0.000 n=10+9)
KlogOutput/KObjSlice_ints-36                                                  793B ± 0%      377B ± 0%  -52.46%  (p=0.000 n=10+10)
KlogOutput/String()_that_panics-36                                            432B ± 0%      433B ± 0%   +0.23%  (p=0.000 n=10+10)
KlogOutput/struct_keys-36                                                     648B ± 0%      649B ± 0%   +0.15%  (p=0.000 n=10+10)
KlogOutput/multiple_WithValues-36                                           1.68kB ± 0%    1.69kB ± 0%   +0.18%  (p=0.000 n=10+10)
KlogOutput/other_vmodule-36                                                  0.00B          0.00B          ~     (all equal)
KlogOutput/override_WithValues-36                                             480B ± 0%      481B ± 0%   +0.21%  (p=0.000 n=10+10)
KlogOutput/MarshalLog()_for_nil-36                                            929B ± 0%      529B ± 0%  -43.06%  (p=0.000 n=10+10)
KlogOutput/Error()_that_panics-36                                             376B ± 0%      377B ± 0%   +0.27%  (p=0.000 n=10+10)
KlogOutput/MarshalLog()_that_returns_itself-36                                336B ± 0%      337B ± 0%   +0.21%  (p=0.003 n=10+10)
KlogOutput/vmodule-36                                                         408B ± 0%      409B ± 0%   +0.25%  (p=0.000 n=10+10)

name                                                                      old allocs/op  new allocs/op  delta
Header-36                                                                     2.00 ± 0%      2.00 ± 0%     ~     (all equal)
HeaderWithDir-36                                                              2.00 ± 0%      2.00 ± 0%     ~     (all equal)
V-36                                                                          0.00           0.00          ~     (all equal)
KRef-36                                                                       0.00           0.00          ~     (all equal)
KObj-36                                                                       0.00           0.00          ~     (all equal)
KObjs/0/simple-36                                                             3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjs/0/conditional-36                                                        0.00           0.00          ~     (all equal)
KObjs/10/simple-36                                                            4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/10/conditional-36                                                       0.00           0.00          ~     (all equal)
KObjs/20/simple-36                                                            4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/20/conditional-36                                                       0.00           0.00          ~     (all equal)
KObjs/30/simple-36                                                            4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/30/conditional-36                                                       0.00           0.00          ~     (all equal)
KObjs/40/simple-36                                                            4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/40/conditional-36                                                       0.00           0.00          ~     (all equal)
KObjs/50/simple-36                                                            4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/50/conditional-36                                                       0.00           0.00          ~     (all equal)
KObjs/60/simple-36                                                            4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/60/conditional-36                                                       0.00           0.00          ~     (all equal)
KObjs/70/simple-36                                                            4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/70/conditional-36                                                       0.00           0.00          ~     (all equal)
KObjs/80/simple-36                                                            4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/80/conditional-36                                                       0.00           0.00          ~     (all equal)
KObjs/90/simple-36                                                            4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/90/conditional-36                                                       0.00           0.00          ~     (all equal)
KObjs/100/simple-36                                                           4.00 ± 0%      4.00 ± 0%     ~     (all equal)
KObjs/100/conditional-36                                                      0.00           0.00          ~     (all equal)
KObjSlice/0/simple-36                                                         3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/0/conditional-36                                                    0.00           0.00          ~     (all equal)
KObjSlice/10/simple-36                                                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/10/conditional-36                                                   0.00           0.00          ~     (all equal)
KObjSlice/20/simple-36                                                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/20/conditional-36                                                   0.00           0.00          ~     (all equal)
KObjSlice/30/simple-36                                                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/30/conditional-36                                                   0.00           0.00          ~     (all equal)
KObjSlice/40/simple-36                                                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/40/conditional-36                                                   0.00           0.00          ~     (all equal)
KObjSlice/50/simple-36                                                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/50/conditional-36                                                   0.00           0.00          ~     (all equal)
KObjSlice/60/simple-36                                                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/60/conditional-36                                                   0.00           0.00          ~     (all equal)
KObjSlice/70/simple-36                                                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/70/conditional-36                                                   0.00           0.00          ~     (all equal)
KObjSlice/80/simple-36                                                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/80/conditional-36                                                   0.00           0.00          ~     (all equal)
KObjSlice/90/simple-36                                                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/90/conditional-36                                                   0.00           0.00          ~     (all equal)
KObjSlice/100/simple-36                                                       3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSlice/100/conditional-36                                                  0.00           0.00          ~     (all equal)
Scalars/simple-36                                                             1.00 ± 0%      1.00 ± 0%     ~     (all equal)
Scalars/conditional-36                                                        0.00           0.00          ~     (all equal)
ScalarsWithLogger/simple-36                                                   1.00 ± 0%      1.00 ± 0%     ~     (all equal)
ScalarsWithLogger/conditional-36                                              0.00           0.00          ~     (all equal)
KObjSliceWithLogger/simple-36                                                 3.00 ± 0%      3.00 ± 0%     ~     (all equal)
KObjSliceWithLogger/conditional-36                                            0.00           0.00          ~     (all equal)
Logs-36                                                                       9.00 ± 0%      9.00 ± 0%     ~     (all equal)
WithoutDeferUnLock-36                                                         0.00           0.00          ~     (all equal)
WithDeferUnLock-36                                                            0.00           0.00          ~     (all equal)
KlogOutput/handle_odd-numbers_of_KVs_in_both_log_values_and_Info_args-36      14.0 ± 0%      14.0 ± 0%     ~     (all equal)
KlogOutput/log_with_name_and_values-36                                        8.00 ± 0%      8.00 ± 0%     ~     (all equal)
KlogOutput/print_duplicate_keys_in_arguments-36                               8.00 ± 0%      8.00 ± 0%     ~     (all equal)
KlogOutput/KObjSlice_int_arg-36                                               11.0 ± 0%       6.0 ± 0%  -45.45%  (p=0.000 n=10+10)
KlogOutput/Error()_for_nil-36                                                 10.0 ± 0%      10.0 ± 0%     ~     (all equal)
KlogOutput/log_with_values-36                                                 7.00 ± 0%      7.00 ± 0%     ~     (all equal)
KlogOutput/call_depth-36                                                      7.00 ± 0%      7.00 ± 0%     ~     (all equal)
KlogOutput/log_with_multiple_names_and_values-36                              9.00 ± 0%      9.00 ± 0%     ~     (all equal)
KlogOutput/html_characters-36                                                 8.00 ± 0%      8.00 ± 0%     ~     (all equal)
KlogOutput/KObj-36                                                            10.0 ± 0%       6.0 ± 0%  -40.00%  (p=0.000 n=10+10)
KlogOutput/regular_error_types_as_value-36                                    7.00 ± 0%      7.00 ± 0%     ~     (all equal)
KlogOutput/ignore_MarshalJSON-36                                              7.00 ± 0%      7.00 ± 0%     ~     (all equal)
KlogOutput/verbosity_enabled-36                                               5.00 ± 0%      5.00 ± 0%     ~     (all equal)
KlogOutput/quotation-36                                                       7.00 ± 0%      7.00 ± 0%     ~     (all equal)
KlogOutput/KObjSlice_nil_entry-36                                             14.0 ± 0%       6.0 ± 0%  -57.14%  (p=0.000 n=10+10)
KlogOutput/regular_error_types_when_using_logr.Error-36                       6.00 ± 0%      6.00 ± 0%     ~     (all equal)
KlogOutput/String()_for_nil-36                                                11.0 ± 0%      11.0 ± 0%     ~     (all equal)
KlogOutput/handle_integer_keys-36                                             15.0 ± 0%      15.0 ± 0%     ~     (all equal)
KlogOutput/override_single_value-36                                           7.00 ± 0%      7.00 ± 0%     ~     (all equal)
KlogOutput/odd_WithValues-36                                                  27.0 ± 0%      27.0 ± 0%     ~     (all equal)
KlogOutput/MarshalLog()_that_panics-36                                        9.00 ± 0%      9.00 ± 0%     ~     (all equal)
KlogOutput/map_keys-36                                                        13.0 ± 0%      13.0 ± 0%     ~     (all equal)
KlogOutput/verbosity_disabled-36                                              0.00           0.00          ~     (all equal)
KlogOutput/preserve_order_of_key/value_pairs-36                               15.0 ± 0%      15.0 ± 0%     ~     (all equal)
KlogOutput/handle_odd-numbers_of_KVs-36                                       8.00 ± 0%      8.00 ± 0%     ~     (all equal)
KlogOutput/KObjs-36                                                           16.0 ± 0%      12.0 ± 0%  -25.00%  (p=0.000 n=10+10)
KlogOutput/KObjSlice_nil_arg-36                                               9.00 ± 0%      6.00 ± 0%  -33.33%  (p=0.000 n=10+10)
KlogOutput/empty_WithValues-36                                                5.00 ± 0%      5.00 ± 0%     ~     (all equal)
KlogOutput/KObjSlice_okay-36                                                  20.0 ± 0%       6.0 ± 0%  -70.00%  (p=0.000 n=10+10)
KlogOutput/KObjSlice_ints-36                                                  13.0 ± 0%       7.0 ± 0%  -46.15%  (p=0.000 n=10+10)
KlogOutput/String()_that_panics-36                                            8.00 ± 0%      8.00 ± 0%     ~     (all equal)
KlogOutput/struct_keys-36                                                     14.0 ± 0%      14.0 ± 0%     ~     (all equal)
KlogOutput/multiple_WithValues-36                                             30.0 ± 0%      30.0 ± 0%     ~     (all equal)
KlogOutput/other_vmodule-36                                                   0.00           0.00          ~     (all equal)
KlogOutput/override_WithValues-36                                             14.0 ± 0%      14.0 ± 0%     ~     (all equal)
KlogOutput/MarshalLog()_for_nil-36                                            12.0 ± 0%       8.0 ± 0%  -33.33%  (p=0.000 n=10+10)
KlogOutput/Error()_that_panics-36                                             7.00 ± 0%      7.00 ± 0%     ~     (all equal)
KlogOutput/MarshalLog()_that_returns_itself-36                                7.00 ± 0%      7.00 ± 0%     ~     (all equal)
KlogOutput/vmodule-36                                                         6.00 ± 0%      6.00 ± 0%     ~     (all equal)

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 18, 2023
When Logger.Info called Enabled, the wrong number of stack frames were skipped.

A unit test for this will follow.
Previously it was necessary to enter the "examples" module to run output tests
for code in the main module. Now "go test ./..." at the root or in individual
directories also runs these tests.
So far, the output tests were only used for correctness checking. But they
cover a variety of scenarios for which there were no benchmarks, therefore it
makes sense to also use them for that.
Text logger and the two klogr implementations both got this wrong.
This simplifies the code. Instead of different instances, the package now
maintains a global pool. This makes the text logger struct a bit smaller and
thus cheaper to copy in the With* functions.

Performance is about the same as before:

name              old time/op    new time/op    delta
Header-36           1.68µs ± 7%    1.62µs ± 6%   ~     (p=0.246 n=5+5)
HeaderWithDir-36    1.63µs ± 6%    1.59µs ± 6%   ~     (p=0.690 n=5+5)

name              old alloc/op   new alloc/op   delta
Header-36             216B ± 0%      216B ± 0%   ~     (all equal)
HeaderWithDir-36      216B ± 0%      216B ± 0%   ~     (all equal)

name              old allocs/op  new allocs/op  delta
Header-36             2.00 ± 0%      2.00 ± 0%   ~     (all equal)
HeaderWithDir-36      2.00 ± 0%      2.00 ± 0%   ~     (all equal)

The text logger didn't actually return the buffer. Now it does.
This avoids one memory allocation (for the intermediate slice), copying and
loops.
Using a strings.Builder reduces the number of allocations:

name                               old time/op    new time/op    delta
KlogOutput/KObjSlice_okay-36         15.2µs ± 5%    14.8µs ± 4%    ~     (p=0.151 n=5+5)
KlogOutput/KObjSlice_nil_entry-36    14.4µs ± 5%    13.6µs ± 3%  -5.25%  (p=0.032 n=5+5)
KlogOutput/KObj-36                   13.5µs ± 8%    13.5µs ± 6%    ~     (p=0.841 n=5+5)
KlogOutput/KObjSlice_ints-36         15.3µs ± 5%    15.2µs ± 4%    ~     (p=0.841 n=5+5)
KlogOutput/KObjSlice_nil_arg-36      12.8µs ± 2%    12.8µs ± 6%    ~     (p=0.841 n=5+5)
KlogOutput/KObjSlice_int_arg-36      14.1µs ± 4%    13.8µs ± 3%    ~     (p=0.310 n=5+5)
KlogOutput/KObjs-36                  14.1µs ± 8%    13.6µs ± 8%    ~     (p=0.690 n=5+5)

name                               old alloc/op   new alloc/op   delta
KlogOutput/KObjSlice_okay-36         2.89kB ± 0%    2.82kB ± 0%  -2.23%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_nil_entry-36    2.65kB ± 0%    2.62kB ± 0%    ~     (p=0.079 n=4+5)
KlogOutput/KObj-36                   2.50kB ± 0%    2.47kB ± 0%  -1.30%  (p=0.000 n=4+5)
KlogOutput/KObjSlice_ints-36         2.90kB ± 0%    2.90kB ± 0%    ~     (p=1.000 n=5+5)
KlogOutput/KObjSlice_nil_arg-36      2.41kB ± 0%    2.41kB ± 0%    ~     (all equal)
KlogOutput/KObjSlice_int_arg-36      2.67kB ± 0%    2.67kB ± 0%    ~     (all equal)
KlogOutput/KObjs-36                  2.72kB ± 0%    2.65kB ± 0%  -2.38%  (p=0.008 n=5+5)

name                               old allocs/op  new allocs/op  delta
KlogOutput/KObjSlice_okay-36           46.0 ± 0%      42.0 ± 0%  -8.70%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_nil_entry-36      40.0 ± 0%      38.0 ± 0%  -5.00%  (p=0.008 n=5+5)
KlogOutput/KObj-36                     36.0 ± 0%      34.0 ± 0%  -5.56%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_ints-36           39.0 ± 0%      39.0 ± 0%    ~     (all equal)
KlogOutput/KObjSlice_nil_arg-36        35.0 ± 0%      35.0 ± 0%    ~     (all equal)
KlogOutput/KObjSlice_int_arg-36        37.0 ± 0%      37.0 ± 0%    ~     (all equal)
KlogOutput/KObjs-36                    42.0 ± 0%      38.0 ± 0%  -9.52%  (p=0.008 n=5+5)
The klog text format avoids some string allocation by calling WriteText instead
of String when encountering such values.

A positive side effect is that KObjSlice now gets logged like KObjs, i.e.

   pods=[namespace1/name1 namespace2/name2]

Previously, it was written as a quoted string.

To achieve the best performance, WriteText is passed a bytes.Buffer pointer
instead of a io.Writer. This avoids an interface allocation for the parameter
and provides access to the underlying methods.

Benchmarks involving these types benefit while other are the same as before:

name                               old time/op    new time/op    delta
KlogOutput/KObj-36                   12.7µs ±10%    13.1µs ± 1%     ~     (p=0.151 n=5+5)
KlogOutput/KObjs-36                  13.4µs ± 7%    14.0µs ± 5%     ~     (p=0.310 n=5+5)
KlogOutput/KObjSlice_okay-36         14.8µs ± 4%    13.0µs ± 3%  -12.33%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_int_arg-36      14.0µs ± 6%    12.3µs ±10%  -12.60%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_ints-36         15.5µs ± 4%    12.8µs ± 6%  -17.85%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_nil_entry-36    14.2µs ±13%    12.6µs ± 3%  -11.39%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_nil_arg-36      12.6µs ± 6%    12.9µs ± 3%     ~     (p=0.690 n=5+5)

name                               old alloc/op   new alloc/op   delta
KlogOutput/KObj-36                   2.47kB ± 0%    2.41kB ± 0%   -2.29%  (p=0.008 n=5+5)
KlogOutput/KObjs-36                  2.65kB ± 0%    2.65kB ± 0%     ~     (all equal)
KlogOutput/KObjSlice_okay-36         2.82kB ± 0%    2.45kB ± 0%  -13.37%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_int_arg-36      2.67kB ± 0%    2.45kB ± 0%   -8.42%  (p=0.029 n=4+4)
KlogOutput/KObjSlice_ints-36         2.90kB ± 0%    2.49kB ± 0%  -14.37%  (p=0.000 n=4+5)
KlogOutput/KObjSlice_nil_entry-36    2.62kB ± 0%    2.43kB ± 0%   -7.34%  (p=0.000 n=4+5)
KlogOutput/KObjSlice_nil_arg-36      2.41kB ± 0%    2.40kB ± 0%   -0.66%  (p=0.016 n=5+4)

name                               old allocs/op  new allocs/op  delta
KlogOutput/KObj-36                     34.0 ± 0%      32.0 ± 0%   -5.88%  (p=0.008 n=5+5)
KlogOutput/KObjs-36                    38.0 ± 0%      38.0 ± 0%     ~     (all equal)
KlogOutput/KObjSlice_okay-36           42.0 ± 0%      32.0 ± 0%  -23.81%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_int_arg-36        37.0 ± 0%      32.0 ± 0%  -13.51%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_ints-36           39.0 ± 0%      33.0 ± 0%  -15.38%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_nil_entry-36      38.0 ± 0%      32.0 ± 0%  -15.79%  (p=0.008 n=5+5)
KlogOutput/KObjSlice_nil_arg-36        35.0 ± 0%      32.0 ± 0%   -8.57%  (p=0.008 n=5+5)
It looks like golangci-lint comes with a fixed version of Go, one which is too
old for the code:

level=error msg="Running error: gofmt: analysis skipped: errors in package: [/go/src/k8s.io/klog/test/output.go:846:22: Discard not declared by package io /go/src/k8s.io/klog/test/output.go:864:40: Discard not declared by package io /go/src/k8s.io/klog/test/output.go:876:35: Discard not declared by package io]"

io.Discard was introduced in Go 1.16, using it should be fine and is reflected
in our Go version test matrix (>= 1.17).
@pohly
Copy link
Author

pohly commented Jan 19, 2023

Looks like I lost the textlogger vmodule fix while rebasing - fixed.

@serathius
Copy link

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 19, 2023
@pohly
Copy link
Author

pohly commented Jan 19, 2023

@dims: do you agree with my rationale above that the API diff can be ignored?

If so, then please approve (and force merge?).

@pohly
Copy link
Author

pohly commented Jan 19, 2023

/assign @dims

@dims
Copy link
Member

dims commented Jan 19, 2023

/approve
/lgtm

Let's make sure the next version number reflects this as well.

@k8s-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dims, pohly, serathius

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@dims dims merged commit 1025055 into kubernetes:main Jan 19, 2023
TylerHelmuth added a commit to open-telemetry/opentelemetry-collector-contrib that referenced this pull request Dec 19, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/klog](https://togithub.com/kubernetes/klog) | require | major
| `v1.0.0` -> `v2.110.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/klog (k8s.io/klog)</summary>

###
[`v2.110.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.110.1):
Prepare klog release for Kubernetes v1.29 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.100.1...v2.110.1)

#### What's Changed

- fix: SetLogger via klog.SetLogger will output an unexpected newline by
[@&#8203;aimuz](https://togithub.com/aimuz) in
[kubernetes/klog#378
- resolve comments warning by
[@&#8203;lowang-bh](https://togithub.com/lowang-bh) in
[kubernetes/klog#379
- stderrthreshold: fix flag comment by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#376
- enable "go vet" checks for parameters by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#390
- promote experimental code to stable by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#392
- golangci-lint action by [@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#380
- output: handle WithName like zapr does by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#391
- slog support + logr 1.3.0 update by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#384

#### New Contributors

- [@&#8203;aimuz](https://togithub.com/aimuz) made their first
contribution in
[kubernetes/klog#378
- [@&#8203;lowang-bh](https://togithub.com/lowang-bh) made their first
contribution in
[kubernetes/klog#379

**Full Changelog**:
kubernetes/klog@v2.100.1...v2.110.1

###
[`v2.100.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.100.1):
Prepare klog release for Kubernetes v1.28 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.1...v2.100.1)

#### What's Changed

- expose logBridge via NewStandardLog() by
[@&#8203;mikedanese](https://togithub.com/mikedanese) in
[kubernetes/klog#369
- add Format wrapper by [@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#374
- JSON as fallback encoding by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#375

#### New Contributors

- [@&#8203;mikedanese](https://togithub.com/mikedanese) made their first
contribution in
[kubernetes/klog#369

**Full Changelog**:
kubernetes/klog@v2.90.1...v2.100.1

###
[`v2.90.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.1):
Prepare klog release for Kubernetes v1.27 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.0...v2.90.1)

#### What's Changed

- buffer: restore dropping of too large buffers by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#366
- ktesting improvements by [@&#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#365
- ktesting + textlogger config api by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#368
- textlogger write through by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#363

**Full Changelog**:
kubernetes/klog@v2.90.0...v2.90.1

###
[`v2.90.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.0):
Prepare klog release for Kubernetes v1.27 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.1...v2.90.0)

#### What's Changed

- klog: benchmark the overhead when logging is off by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#355
- improve textlogger by [@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#362

**Full Changelog**:
kubernetes/klog@v2.80.1...v2.90.0

##### There are some API differences from previous version

    k8s.io/klog/v2/klogr contains incompatible changes:
     - klogger.Enabled: removed
     - klogger.Error: removed
     - klogger.Info: removed

    k8s.io/klog/v2/test contains incompatible changes:
     - InitKlog: changed from func() to func(testing.TB) *flag.FlagSet

###
[`v2.80.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.1):
Prepare klog release for Kubernetes v1.26 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.0...v2.80.1)

#### What's Changed

- InitFlags concurrency fix by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#349

**Full Changelog**:
kubernetes/klog@v2.80.0...v2.80.1

###
[`v2.80.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.0):
Prepare klog release for Kubernetes v1.26 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.1...v2.80.0)

#### What's Changed

- OWNERS: add harshanarayana by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#342
- kvlistformat: fix the issue with display marshalled value for non
string type by
[@&#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#344
- Bump version of golang to 1.19 and drop older versions by
[@&#8203;dims](https://togithub.com/dims) in
[kubernetes/klog#345

**Full Changelog**:
kubernetes/klog@v2.70.1...v2.80.0

###
[`v2.70.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.1):
Prepare klog release for Kubernetes v1.25 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.0...v2.70.1)

#### What's Changed

- ktesting: handle test completion by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#337
- contextual logging: enable by default again by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#341

**Full Changelog**:
kubernetes/klog@v2.70.0...v2.70.1

###
[`v2.70.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.0):
Prepare klog release for Kubernetes v1.25 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.1...v2.70.0)

#### What's Changed

- logcheck: contextual logging + enhanced checks by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#297
- hack/tools: drop dependency on golangci-lint by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#313
- StopFlushDaemon: document flushing on shutdown by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#314
- logcheck: fix detection of invalid \* regexp in filter by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#315
- README.md: clarify -logtostderr by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#319
- Trim duplicates by [@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#324
- replace KObjs with KObjSlice by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#322
- support logr.Marshaler by [@&#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#325
- internal: remove unused TrimDuplicates by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#326
- save and restore state by [@&#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#320
- GitHub: use apidiff with more recent Go by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#329
- remove hack/tools by [@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#330
- GIT-331: fix shadowing key from the kv pair by
[@&#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#332
- klog.Fatal backtrace revert by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#328
- ktesting: capture log data in memory by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#327
- GIT-275: add tests for int and struct keys by
[@&#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#333

#### New Contributors

- [@&#8203;harshanarayana](https://togithub.com/harshanarayana) made
their first contribution in
[kubernetes/klog#332

**Full Changelog**:
kubernetes/klog@v2.60.1...v2.70.0

###
[`v2.60.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.1):
Prepare klog release for Kubernetes v1.24 (Take 6)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.0...v2.60.1)

#### What's Changed

- Cleanup OWNERS file by
[@&#8203;serathius](https://togithub.com/serathius) in
[kubernetes/klog#309
- dependencies: avoid k8s.io/utils, fork clock code instead by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#310
- promote contextual logging APIs to stable by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#311

**Full Changelog**:
kubernetes/klog@v2.60.0...v2.60.1

###
[`v2.60.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.0):
Prepare klog release for Kubernetes v1.24 (Take 5)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.2...v2.60.0)

#### What's Changed

- SetContextualLogger: remove unintentionally merged API call by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#308

**Full Changelog**:
kubernetes/klog@v2.50.2...v2.60.0

###
[`v2.50.2`](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

###
[`v2.50.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.1):
Prepare klog release for Kubernetes v1.24 (Take 4)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.0...v2.50.1)

#### What's Changed

- SetLoggerWithOptions: support flushing by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#306

**Full Changelog**:
kubernetes/klog@v2.50.0...v2.50.1

###
[`v2.50.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.0):
Prepare klog release for Kubernetes v1.24 (Take 3)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.1...v2.50.0)

#### What's Changed

- Panic on empty info with custom logr by
[@&#8203;jklaw90](https://togithub.com/jklaw90) in
[kubernetes/klog#283
- Add missing Depth logging functions. by
[@&#8203;s3rj1k](https://togithub.com/s3rj1k) in
[kubernetes/klog#280
- fix typo in klog.go by
[@&#8203;cocaccola](https://togithub.com/cocaccola) in
[kubernetes/klog#270
- Update README.md by
[@&#8203;noaabarki](https://togithub.com/noaabarki) in
[kubernetes/klog#281
- log filter: ignored by V, used during log call by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#290
- SetLogger/ClearLogger/SetLogFilter cleanup by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#289
- fixes for PR
[#&#8203;280](https://togithub.com/kubernetes/klog/issues/280),
refactoring, textlogger, unit test by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#287
- klogr verbosity by [@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#295
- test: fix Go version matrix by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#298
- handle panics in MarshalLog, Error, String by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#299
- Fix goroutine leak: make flushDaemon stoppable by
[@&#8203;katexochen](https://togithub.com/katexochen) in
[kubernetes/klog#293
- structured logging: replacing Fatal/Exit/etc. without loss of flushing
by [@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#303
- contextual logging by [@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#296
- remove side effects of tests by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#305
- tests: stop testing with Go 1.14 by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#304

#### New Contributors

- [@&#8203;jklaw90](https://togithub.com/jklaw90) made their first
contribution in
[kubernetes/klog#283
- [@&#8203;s3rj1k](https://togithub.com/s3rj1k) made their first
contribution in
[kubernetes/klog#280
- [@&#8203;cocaccola](https://togithub.com/cocaccola) made their first
contribution in
[kubernetes/klog#270
- [@&#8203;noaabarki](https://togithub.com/noaabarki) made their first
contribution in
[kubernetes/klog#281
- [@&#8203;katexochen](https://togithub.com/katexochen) made their first
contribution in
[kubernetes/klog#293

**Full Changelog**:
kubernetes/klog@v2.40.1...v2.50.0

###
[`v2.40.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.1):
Prepare klog release for Kubernetes v1.24 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.0...v2.40.1)

#### What's Changed

- Using OS targeted go files to separate out the username logic. by
[@&#8203;phillipsj](https://togithub.com/phillipsj) in
[kubernetes/klog#271
- Recover from nil pointers when logging by
[@&#8203;dims](https://togithub.com/dims) in
[kubernetes/klog#279

#### New Contributors

- [@&#8203;phillipsj](https://togithub.com/phillipsj) made their first
contribution in
[kubernetes/klog#271

**Full Changelog**:
kubernetes/klog@v2.40.0...v2.40.1

###
[`v2.40.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.0):
Prepare klog release for Kubernetes v1.24

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.30.0...v2.40.0)

#### What's Changed

- structured logging: support values with line breaks by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#273
- Fix klog lock release on panic error by
[@&#8203;astraw99](https://togithub.com/astraw99) in
[kubernetes/klog#272
- add format test for KObjs by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#276
- add Verbose.InfoSDepth by [@&#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#277

#### Known Issues

-
[kubernetes/klog#278

#### New Contributors

- [@&#8203;astraw99](https://togithub.com/astraw99) made their first
contribution in
[kubernetes/klog#272

**Full Changelog**:
kubernetes/klog@v2.30.0...v2.40.0

###
[`v2.30.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.30.0):
Prepare klog release for Kubernetes v1.23 (take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.20.0...v2.30.0)

#### What's Changed

- Fix logcheck exit function by
[@&#8203;luyou86](https://togithub.com/luyou86) in
[kubernetes/klog#265
- custom marshaler for ObjectRef by
[@&#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#266

#### New Contributors

- [@&#8203;luyou86](https://togithub.com/luyou86) made their first
contribution in
[kubernetes/klog#265

**Full Changelog**:
kubernetes/klog@v2.20.0...v2.30.0

###
[`v2.20.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.20.0):
Prepare klog release for Kubernetes v1.23

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.10.0...v2.20.0)

Changes are here :
kubernetes/klog@v2.10.0...v2.20.0

since we moved to logr v1.0.0, there are incompatible changes:

    - klogger.Enabled: changed from func() bool to func(int) bool
- klogger.Info: changed from func(string, ...interface{}) to func(int,
string, ...interface{})
    - klogger.V: removed
- klogger.WithCallDepth: changed from func(int)
github.com/go-logr/logr.Logger to func(int)
github.com/go-logr/logr.LogSink
- klogger.WithName: changed from func(string)
github.com/go-logr/logr.Logger to func(string)
github.com/go-logr/logr.LogSink
- klogger.WithValues: changed from func(...interface{})
github.com/go-logr/logr.Logger to func(...interface{})
github.com/go-logr/logr.LogSink

[`83653a6`](https://togithub.com/kubernetes/klog/commit/83653a6deebf)
Update to newest versions of golang 1.17.x
[`d648c2e`](https://togithub.com/kubernetes/klog/commit/d648c2e42d30)
fix file-based filtering symbolization
[`8ee3d65`](https://togithub.com/kubernetes/klog/commit/8ee3d652c96b)
export ClearLogger
[`4171f3c`](https://togithub.com/kubernetes/klog/commit/4171f3c1be1b)
Switching to logr tag v1.0.0
[`9ab3c2b`](https://togithub.com/kubernetes/klog/commit/9ab3c2b56cb2)
add serathius as approvers of klog

###
[`v2.10.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.10.0):
One more change to support 1.22 release

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.9.0...v2.10.0)

Changes are here :
kubernetes/klog@v2.9.0...v2.10.0

new function added:

    func KObjs(arg interface{}) []ObjectRef

###
[`v2.9.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.9.0):
Prepare release for Kubernetes v1.22

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.8.0...v2.9.0)

Changes are here :
kubernetes/klog@v2.8.0...v2.9.0

[`6a9ef3f`](https://togithub.com/kubernetes/klog/commit/6a9ef3fa9a15)
fix typo
[`59f7cb5`](https://togithub.com/kubernetes/klog/commit/59f7cb505f58)
fix byte array display in InfoS and ErrorS
[`cf22f1e`](https://togithub.com/kubernetes/klog/commit/cf22f1e79721)
Call logr with call depth
[`e95c7e3`](https://togithub.com/kubernetes/klog/commit/e95c7e303755)
make SetLogger thread-safe
[`2728fe1`](https://togithub.com/kubernetes/klog/commit/2728fe192acc)
check usage of format specifier in structured log func
[`a18bc97`](https://togithub.com/kubernetes/klog/commit/a18bc976a212)
Fix by pr suggestions
[`4e4135c`](https://togithub.com/kubernetes/klog/commit/4e4135c3dd8a)
Add check for InfoS & ErrorS parameters

###
[`v2.8.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.8.0):
Bug fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.7.0...v2.8.0)

###
[`v2.7.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.7.0):
Miscellaneous fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.6.0...v2.7.0)

Changes are here :
kubernetes/klog@v2.6.0...v2.7.0

###
[`v2.6.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.6.0):
Adding a linter for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.5.0...v2.6.0)

Changes are here :
kubernetes/klog@v2.5.0...v2.6.0

please see
https://github.com/kubernetes/klog/tree/master/hack/tools/logcheck

###
[`v2.5.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.5.0):
Prepare release for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.4.0...v2.5.0)

Changes are here :
kubernetes/klog@v2.4.0...v2.5.0

klog.go has new API:

+func ErrorSDepth(depth int, err error, msg string, keysAndValues
...interface{}) {
+func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {

klogr/klogr.go has new API:

    func (l klogger) WithCallDepth(depth int) logr.Logger {
    func NewWithOptions(options ...Option) logr.Logger {
    func WithFormat(format Format) Option {

###
[`v2.4.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.4.0):
Prepare release for Kubernetes v1.20

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.3.0...v2.4.0)

Changes are here :
kubernetes/klog@v2.3.0...v2.4.0

###
[`v2.3.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.3.0):
Fix Typo-ed Method Error -&gt; ErrorS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.2.0...v2.3.0)

Changes are here :
kubernetes/klog@v2.2.0...v2.3.0

###
[`v2.2.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.2.0):
Dependency update and bugfix for InfoS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/2.1.0...v2.2.0)

- [`2e691eb`](https://togithub.com/kubernetes/klog/commit/2e691eb3eeb3)
Fix missing fields in verbose InfoS
- [`966c986`](https://togithub.com/kubernetes/klog/commit/966c98681ca0)
feat use go-logr v0.2.0

Changes are here :
kubernetes/klog@v2.1.0...v2.2.0

###
[`v2.1.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.1.0):
Better support for Structured Logging

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.0.0...2.1.0)

We are now enforcing API compatibility, added Windows based tests, and
have tweaked the structured logging methods after some real world
experience updating kubernetes main repo.

- [`bbd9ca1`](https://togithub.com/kubernetes/klog/commit/bbd9ca1) Add
tests for error in InfoS
- [`1ccc0e1`](https://togithub.com/kubernetes/klog/commit/1ccc0e1) fix
imported bug time encode format form kvlistFormat
- [`dd4d1a6`](https://togithub.com/kubernetes/klog/commit/dd4d1a6) fix
typo in README.md
- [`49123d4`](https://togithub.com/kubernetes/klog/commit/49123d4)
ErrorS(nil, ...) should call loggr.Error(nil, ...)
- [`5b199cd`](https://togithub.com/kubernetes/klog/commit/5b199cd) Fix
documentation for V(level)
- [`d1eb30f`](https://togithub.com/kubernetes/klog/commit/d1eb30f) Add
apidiff script to check go signature changes
- [`dc505bf`](https://togithub.com/kubernetes/klog/commit/dc505bf)
Switch slack channel to #klog
- [`a47ebb9`](https://togithub.com/kubernetes/klog/commit/a47ebb9) Add
example for co-existence of klog v1 and v2
- [`134f148`](https://togithub.com/kubernetes/klog/commit/134f148)
logName(): lazily lookup userName instead of on init()
- [`db06a1b`](https://togithub.com/kubernetes/klog/commit/db06a1b) fix
serialization of special html chars
- [`5727d2a`](https://togithub.com/kubernetes/klog/commit/5727d2a) Fix
Windows integration tests
- [`edbc1d3`](https://togithub.com/kubernetes/klog/commit/edbc1d3)
test(\*): TestRollover failed randomly on Windows
- [`6f99060`](https://togithub.com/kubernetes/klog/commit/6f99060) Add
LogToStderr, a programatic way to log exclusively to stderr or not

###
[`v2.0.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.0.0):
Release to support Kubernetes v1.19

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v1.0.0...v2.0.0)

Beware of type change: `Verbose`

New Methods:

-   `SetLogger` (override logger to set a custom implementation)
-   `InfoS` (structured logging)
-   `ErrorS` (structured logging)

Changes are here :
kubernetes/klog@v2.0.0-rc.1...v2.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
nslaughter pushed a commit to nslaughter/opentelemetry-collector-contrib that referenced this pull request Dec 27, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/klog](https://togithub.com/kubernetes/klog) | require | major
| `v1.0.0` -> `v2.110.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/klog (k8s.io/klog)</summary>

###
[`v2.110.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.110.1):
Prepare klog release for Kubernetes v1.29 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.100.1...v2.110.1)

#### What's Changed

- fix: SetLogger via klog.SetLogger will output an unexpected newline by
[@&open-telemetry#8203;aimuz](https://togithub.com/aimuz) in
[kubernetes/klog#378
- resolve comments warning by
[@&open-telemetry#8203;lowang-bh](https://togithub.com/lowang-bh) in
[kubernetes/klog#379
- stderrthreshold: fix flag comment by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#376
- enable "go vet" checks for parameters by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#390
- promote experimental code to stable by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#392
- golangci-lint action by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#380
- output: handle WithName like zapr does by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#391
- slog support + logr 1.3.0 update by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#384

#### New Contributors

- [@&open-telemetry#8203;aimuz](https://togithub.com/aimuz) made their first
contribution in
[kubernetes/klog#378
- [@&open-telemetry#8203;lowang-bh](https://togithub.com/lowang-bh) made their first
contribution in
[kubernetes/klog#379

**Full Changelog**:
kubernetes/klog@v2.100.1...v2.110.1

###
[`v2.100.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.100.1):
Prepare klog release for Kubernetes v1.28 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.1...v2.100.1)

#### What's Changed

- expose logBridge via NewStandardLog() by
[@&open-telemetry#8203;mikedanese](https://togithub.com/mikedanese) in
[kubernetes/klog#369
- add Format wrapper by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#374
- JSON as fallback encoding by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#375

#### New Contributors

- [@&open-telemetry#8203;mikedanese](https://togithub.com/mikedanese) made their first
contribution in
[kubernetes/klog#369

**Full Changelog**:
kubernetes/klog@v2.90.1...v2.100.1

###
[`v2.90.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.1):
Prepare klog release for Kubernetes v1.27 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.0...v2.90.1)

#### What's Changed

- buffer: restore dropping of too large buffers by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#366
- ktesting improvements by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#365
- ktesting + textlogger config api by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#368
- textlogger write through by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#363

**Full Changelog**:
kubernetes/klog@v2.90.0...v2.90.1

###
[`v2.90.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.0):
Prepare klog release for Kubernetes v1.27 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.1...v2.90.0)

#### What's Changed

- klog: benchmark the overhead when logging is off by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#355
- improve textlogger by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#362

**Full Changelog**:
kubernetes/klog@v2.80.1...v2.90.0

##### There are some API differences from previous version

    k8s.io/klog/v2/klogr contains incompatible changes:
     - klogger.Enabled: removed
     - klogger.Error: removed
     - klogger.Info: removed

    k8s.io/klog/v2/test contains incompatible changes:
     - InitKlog: changed from func() to func(testing.TB) *flag.FlagSet

###
[`v2.80.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.1):
Prepare klog release for Kubernetes v1.26 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.0...v2.80.1)

#### What's Changed

- InitFlags concurrency fix by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#349

**Full Changelog**:
kubernetes/klog@v2.80.0...v2.80.1

###
[`v2.80.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.0):
Prepare klog release for Kubernetes v1.26 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.1...v2.80.0)

#### What's Changed

- OWNERS: add harshanarayana by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#342
- kvlistformat: fix the issue with display marshalled value for non
string type by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#344
- Bump version of golang to 1.19 and drop older versions by
[@&open-telemetry#8203;dims](https://togithub.com/dims) in
[kubernetes/klog#345

**Full Changelog**:
kubernetes/klog@v2.70.1...v2.80.0

###
[`v2.70.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.1):
Prepare klog release for Kubernetes v1.25 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.0...v2.70.1)

#### What's Changed

- ktesting: handle test completion by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#337
- contextual logging: enable by default again by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#341

**Full Changelog**:
kubernetes/klog@v2.70.0...v2.70.1

###
[`v2.70.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.0):
Prepare klog release for Kubernetes v1.25 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.1...v2.70.0)

#### What's Changed

- logcheck: contextual logging + enhanced checks by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#297
- hack/tools: drop dependency on golangci-lint by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#313
- StopFlushDaemon: document flushing on shutdown by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#314
- logcheck: fix detection of invalid \* regexp in filter by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#315
- README.md: clarify -logtostderr by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#319
- Trim duplicates by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#324
- replace KObjs with KObjSlice by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#322
- support logr.Marshaler by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#325
- internal: remove unused TrimDuplicates by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#326
- save and restore state by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#320
- GitHub: use apidiff with more recent Go by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#329
- remove hack/tools by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#330
- GIT-331: fix shadowing key from the kv pair by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#332
- klog.Fatal backtrace revert by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#328
- ktesting: capture log data in memory by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#327
- GIT-275: add tests for int and struct keys by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#333

#### New Contributors

- [@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) made
their first contribution in
[kubernetes/klog#332

**Full Changelog**:
kubernetes/klog@v2.60.1...v2.70.0

###
[`v2.60.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.1):
Prepare klog release for Kubernetes v1.24 (Take 6)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.0...v2.60.1)

#### What's Changed

- Cleanup OWNERS file by
[@&open-telemetry#8203;serathius](https://togithub.com/serathius) in
[kubernetes/klog#309
- dependencies: avoid k8s.io/utils, fork clock code instead by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#310
- promote contextual logging APIs to stable by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#311

**Full Changelog**:
kubernetes/klog@v2.60.0...v2.60.1

###
[`v2.60.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.0):
Prepare klog release for Kubernetes v1.24 (Take 5)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.2...v2.60.0)

#### What's Changed

- SetContextualLogger: remove unintentionally merged API call by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#308

**Full Changelog**:
kubernetes/klog@v2.50.2...v2.60.0

###
[`v2.50.2`](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

###
[`v2.50.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.1):
Prepare klog release for Kubernetes v1.24 (Take 4)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.0...v2.50.1)

#### What's Changed

- SetLoggerWithOptions: support flushing by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#306

**Full Changelog**:
kubernetes/klog@v2.50.0...v2.50.1

###
[`v2.50.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.0):
Prepare klog release for Kubernetes v1.24 (Take 3)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.1...v2.50.0)

#### What's Changed

- Panic on empty info with custom logr by
[@&open-telemetry#8203;jklaw90](https://togithub.com/jklaw90) in
[kubernetes/klog#283
- Add missing Depth logging functions. by
[@&open-telemetry#8203;s3rj1k](https://togithub.com/s3rj1k) in
[kubernetes/klog#280
- fix typo in klog.go by
[@&open-telemetry#8203;cocaccola](https://togithub.com/cocaccola) in
[kubernetes/klog#270
- Update README.md by
[@&open-telemetry#8203;noaabarki](https://togithub.com/noaabarki) in
[kubernetes/klog#281
- log filter: ignored by V, used during log call by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#290
- SetLogger/ClearLogger/SetLogFilter cleanup by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#289
- fixes for PR
[#&open-telemetry#8203;280](https://togithub.com/kubernetes/klog/issues/280),
refactoring, textlogger, unit test by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#287
- klogr verbosity by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#295
- test: fix Go version matrix by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#298
- handle panics in MarshalLog, Error, String by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#299
- Fix goroutine leak: make flushDaemon stoppable by
[@&open-telemetry#8203;katexochen](https://togithub.com/katexochen) in
[kubernetes/klog#293
- structured logging: replacing Fatal/Exit/etc. without loss of flushing
by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#303
- contextual logging by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#296
- remove side effects of tests by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#305
- tests: stop testing with Go 1.14 by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#304

#### New Contributors

- [@&open-telemetry#8203;jklaw90](https://togithub.com/jklaw90) made their first
contribution in
[kubernetes/klog#283
- [@&open-telemetry#8203;s3rj1k](https://togithub.com/s3rj1k) made their first
contribution in
[kubernetes/klog#280
- [@&open-telemetry#8203;cocaccola](https://togithub.com/cocaccola) made their first
contribution in
[kubernetes/klog#270
- [@&open-telemetry#8203;noaabarki](https://togithub.com/noaabarki) made their first
contribution in
[kubernetes/klog#281
- [@&open-telemetry#8203;katexochen](https://togithub.com/katexochen) made their first
contribution in
[kubernetes/klog#293

**Full Changelog**:
kubernetes/klog@v2.40.1...v2.50.0

###
[`v2.40.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.1):
Prepare klog release for Kubernetes v1.24 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.0...v2.40.1)

#### What's Changed

- Using OS targeted go files to separate out the username logic. by
[@&open-telemetry#8203;phillipsj](https://togithub.com/phillipsj) in
[kubernetes/klog#271
- Recover from nil pointers when logging by
[@&open-telemetry#8203;dims](https://togithub.com/dims) in
[kubernetes/klog#279

#### New Contributors

- [@&open-telemetry#8203;phillipsj](https://togithub.com/phillipsj) made their first
contribution in
[kubernetes/klog#271

**Full Changelog**:
kubernetes/klog@v2.40.0...v2.40.1

###
[`v2.40.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.0):
Prepare klog release for Kubernetes v1.24

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.30.0...v2.40.0)

#### What's Changed

- structured logging: support values with line breaks by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#273
- Fix klog lock release on panic error by
[@&open-telemetry#8203;astraw99](https://togithub.com/astraw99) in
[kubernetes/klog#272
- add format test for KObjs by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#276
- add Verbose.InfoSDepth by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#277

#### Known Issues

-
[kubernetes/klog#278

#### New Contributors

- [@&open-telemetry#8203;astraw99](https://togithub.com/astraw99) made their first
contribution in
[kubernetes/klog#272

**Full Changelog**:
kubernetes/klog@v2.30.0...v2.40.0

###
[`v2.30.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.30.0):
Prepare klog release for Kubernetes v1.23 (take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.20.0...v2.30.0)

#### What's Changed

- Fix logcheck exit function by
[@&open-telemetry#8203;luyou86](https://togithub.com/luyou86) in
[kubernetes/klog#265
- custom marshaler for ObjectRef by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#266

#### New Contributors

- [@&open-telemetry#8203;luyou86](https://togithub.com/luyou86) made their first
contribution in
[kubernetes/klog#265

**Full Changelog**:
kubernetes/klog@v2.20.0...v2.30.0

###
[`v2.20.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.20.0):
Prepare klog release for Kubernetes v1.23

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.10.0...v2.20.0)

Changes are here :
kubernetes/klog@v2.10.0...v2.20.0

since we moved to logr v1.0.0, there are incompatible changes:

    - klogger.Enabled: changed from func() bool to func(int) bool
- klogger.Info: changed from func(string, ...interface{}) to func(int,
string, ...interface{})
    - klogger.V: removed
- klogger.WithCallDepth: changed from func(int)
github.com/go-logr/logr.Logger to func(int)
github.com/go-logr/logr.LogSink
- klogger.WithName: changed from func(string)
github.com/go-logr/logr.Logger to func(string)
github.com/go-logr/logr.LogSink
- klogger.WithValues: changed from func(...interface{})
github.com/go-logr/logr.Logger to func(...interface{})
github.com/go-logr/logr.LogSink

[`83653a6`](https://togithub.com/kubernetes/klog/commit/83653a6deebf)
Update to newest versions of golang 1.17.x
[`d648c2e`](https://togithub.com/kubernetes/klog/commit/d648c2e42d30)
fix file-based filtering symbolization
[`8ee3d65`](https://togithub.com/kubernetes/klog/commit/8ee3d652c96b)
export ClearLogger
[`4171f3c`](https://togithub.com/kubernetes/klog/commit/4171f3c1be1b)
Switching to logr tag v1.0.0
[`9ab3c2b`](https://togithub.com/kubernetes/klog/commit/9ab3c2b56cb2)
add serathius as approvers of klog

###
[`v2.10.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.10.0):
One more change to support 1.22 release

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.9.0...v2.10.0)

Changes are here :
kubernetes/klog@v2.9.0...v2.10.0

new function added:

    func KObjs(arg interface{}) []ObjectRef

###
[`v2.9.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.9.0):
Prepare release for Kubernetes v1.22

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.8.0...v2.9.0)

Changes are here :
kubernetes/klog@v2.8.0...v2.9.0

[`6a9ef3f`](https://togithub.com/kubernetes/klog/commit/6a9ef3fa9a15)
fix typo
[`59f7cb5`](https://togithub.com/kubernetes/klog/commit/59f7cb505f58)
fix byte array display in InfoS and ErrorS
[`cf22f1e`](https://togithub.com/kubernetes/klog/commit/cf22f1e79721)
Call logr with call depth
[`e95c7e3`](https://togithub.com/kubernetes/klog/commit/e95c7e303755)
make SetLogger thread-safe
[`2728fe1`](https://togithub.com/kubernetes/klog/commit/2728fe192acc)
check usage of format specifier in structured log func
[`a18bc97`](https://togithub.com/kubernetes/klog/commit/a18bc976a212)
Fix by pr suggestions
[`4e4135c`](https://togithub.com/kubernetes/klog/commit/4e4135c3dd8a)
Add check for InfoS & ErrorS parameters

###
[`v2.8.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.8.0):
Bug fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.7.0...v2.8.0)

###
[`v2.7.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.7.0):
Miscellaneous fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.6.0...v2.7.0)

Changes are here :
kubernetes/klog@v2.6.0...v2.7.0

###
[`v2.6.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.6.0):
Adding a linter for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.5.0...v2.6.0)

Changes are here :
kubernetes/klog@v2.5.0...v2.6.0

please see
https://github.com/kubernetes/klog/tree/master/hack/tools/logcheck

###
[`v2.5.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.5.0):
Prepare release for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.4.0...v2.5.0)

Changes are here :
kubernetes/klog@v2.4.0...v2.5.0

klog.go has new API:

+func ErrorSDepth(depth int, err error, msg string, keysAndValues
...interface{}) {
+func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {

klogr/klogr.go has new API:

    func (l klogger) WithCallDepth(depth int) logr.Logger {
    func NewWithOptions(options ...Option) logr.Logger {
    func WithFormat(format Format) Option {

###
[`v2.4.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.4.0):
Prepare release for Kubernetes v1.20

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.3.0...v2.4.0)

Changes are here :
kubernetes/klog@v2.3.0...v2.4.0

###
[`v2.3.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.3.0):
Fix Typo-ed Method Error -&gt; ErrorS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.2.0...v2.3.0)

Changes are here :
kubernetes/klog@v2.2.0...v2.3.0

###
[`v2.2.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.2.0):
Dependency update and bugfix for InfoS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/2.1.0...v2.2.0)

- [`2e691eb`](https://togithub.com/kubernetes/klog/commit/2e691eb3eeb3)
Fix missing fields in verbose InfoS
- [`966c986`](https://togithub.com/kubernetes/klog/commit/966c98681ca0)
feat use go-logr v0.2.0

Changes are here :
kubernetes/klog@v2.1.0...v2.2.0

###
[`v2.1.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.1.0):
Better support for Structured Logging

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.0.0...2.1.0)

We are now enforcing API compatibility, added Windows based tests, and
have tweaked the structured logging methods after some real world
experience updating kubernetes main repo.

- [`bbd9ca1`](https://togithub.com/kubernetes/klog/commit/bbd9ca1) Add
tests for error in InfoS
- [`1ccc0e1`](https://togithub.com/kubernetes/klog/commit/1ccc0e1) fix
imported bug time encode format form kvlistFormat
- [`dd4d1a6`](https://togithub.com/kubernetes/klog/commit/dd4d1a6) fix
typo in README.md
- [`49123d4`](https://togithub.com/kubernetes/klog/commit/49123d4)
ErrorS(nil, ...) should call loggr.Error(nil, ...)
- [`5b199cd`](https://togithub.com/kubernetes/klog/commit/5b199cd) Fix
documentation for V(level)
- [`d1eb30f`](https://togithub.com/kubernetes/klog/commit/d1eb30f) Add
apidiff script to check go signature changes
- [`dc505bf`](https://togithub.com/kubernetes/klog/commit/dc505bf)
Switch slack channel to #klog
- [`a47ebb9`](https://togithub.com/kubernetes/klog/commit/a47ebb9) Add
example for co-existence of klog v1 and v2
- [`134f148`](https://togithub.com/kubernetes/klog/commit/134f148)
logName(): lazily lookup userName instead of on init()
- [`db06a1b`](https://togithub.com/kubernetes/klog/commit/db06a1b) fix
serialization of special html chars
- [`5727d2a`](https://togithub.com/kubernetes/klog/commit/5727d2a) Fix
Windows integration tests
- [`edbc1d3`](https://togithub.com/kubernetes/klog/commit/edbc1d3)
test(\*): TestRollover failed randomly on Windows
- [`6f99060`](https://togithub.com/kubernetes/klog/commit/6f99060) Add
LogToStderr, a programatic way to log exclusively to stderr or not

###
[`v2.0.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.0.0):
Release to support Kubernetes v1.19

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v1.0.0...v2.0.0)

Beware of type change: `Verbose`

New Methods:

-   `SetLogger` (override logger to set a custom implementation)
-   `InfoS` (structured logging)
-   `ErrorS` (structured logging)

Changes are here :
kubernetes/klog@v2.0.0-rc.1...v2.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
nslaughter pushed a commit to nslaughter/opentelemetry-collector-contrib that referenced this pull request Dec 27, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/klog](https://togithub.com/kubernetes/klog) | require | major
| `v1.0.0` -> `v2.110.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/klog (k8s.io/klog)</summary>

###
[`v2.110.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.110.1):
Prepare klog release for Kubernetes v1.29 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.100.1...v2.110.1)

#### What's Changed

- fix: SetLogger via klog.SetLogger will output an unexpected newline by
[@&open-telemetry#8203;aimuz](https://togithub.com/aimuz) in
[kubernetes/klog#378
- resolve comments warning by
[@&open-telemetry#8203;lowang-bh](https://togithub.com/lowang-bh) in
[kubernetes/klog#379
- stderrthreshold: fix flag comment by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#376
- enable "go vet" checks for parameters by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#390
- promote experimental code to stable by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#392
- golangci-lint action by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#380
- output: handle WithName like zapr does by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#391
- slog support + logr 1.3.0 update by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#384

#### New Contributors

- [@&open-telemetry#8203;aimuz](https://togithub.com/aimuz) made their first
contribution in
[kubernetes/klog#378
- [@&open-telemetry#8203;lowang-bh](https://togithub.com/lowang-bh) made their first
contribution in
[kubernetes/klog#379

**Full Changelog**:
kubernetes/klog@v2.100.1...v2.110.1

###
[`v2.100.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.100.1):
Prepare klog release for Kubernetes v1.28 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.1...v2.100.1)

#### What's Changed

- expose logBridge via NewStandardLog() by
[@&open-telemetry#8203;mikedanese](https://togithub.com/mikedanese) in
[kubernetes/klog#369
- add Format wrapper by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#374
- JSON as fallback encoding by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#375

#### New Contributors

- [@&open-telemetry#8203;mikedanese](https://togithub.com/mikedanese) made their first
contribution in
[kubernetes/klog#369

**Full Changelog**:
kubernetes/klog@v2.90.1...v2.100.1

###
[`v2.90.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.1):
Prepare klog release for Kubernetes v1.27 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.0...v2.90.1)

#### What's Changed

- buffer: restore dropping of too large buffers by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#366
- ktesting improvements by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#365
- ktesting + textlogger config api by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#368
- textlogger write through by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#363

**Full Changelog**:
kubernetes/klog@v2.90.0...v2.90.1

###
[`v2.90.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.0):
Prepare klog release for Kubernetes v1.27 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.1...v2.90.0)

#### What's Changed

- klog: benchmark the overhead when logging is off by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#355
- improve textlogger by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#362

**Full Changelog**:
kubernetes/klog@v2.80.1...v2.90.0

##### There are some API differences from previous version

    k8s.io/klog/v2/klogr contains incompatible changes:
     - klogger.Enabled: removed
     - klogger.Error: removed
     - klogger.Info: removed

    k8s.io/klog/v2/test contains incompatible changes:
     - InitKlog: changed from func() to func(testing.TB) *flag.FlagSet

###
[`v2.80.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.1):
Prepare klog release for Kubernetes v1.26 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.0...v2.80.1)

#### What's Changed

- InitFlags concurrency fix by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#349

**Full Changelog**:
kubernetes/klog@v2.80.0...v2.80.1

###
[`v2.80.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.0):
Prepare klog release for Kubernetes v1.26 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.1...v2.80.0)

#### What's Changed

- OWNERS: add harshanarayana by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#342
- kvlistformat: fix the issue with display marshalled value for non
string type by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#344
- Bump version of golang to 1.19 and drop older versions by
[@&open-telemetry#8203;dims](https://togithub.com/dims) in
[kubernetes/klog#345

**Full Changelog**:
kubernetes/klog@v2.70.1...v2.80.0

###
[`v2.70.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.1):
Prepare klog release for Kubernetes v1.25 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.0...v2.70.1)

#### What's Changed

- ktesting: handle test completion by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#337
- contextual logging: enable by default again by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#341

**Full Changelog**:
kubernetes/klog@v2.70.0...v2.70.1

###
[`v2.70.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.0):
Prepare klog release for Kubernetes v1.25 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.1...v2.70.0)

#### What's Changed

- logcheck: contextual logging + enhanced checks by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#297
- hack/tools: drop dependency on golangci-lint by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#313
- StopFlushDaemon: document flushing on shutdown by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#314
- logcheck: fix detection of invalid \* regexp in filter by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#315
- README.md: clarify -logtostderr by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#319
- Trim duplicates by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#324
- replace KObjs with KObjSlice by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#322
- support logr.Marshaler by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#325
- internal: remove unused TrimDuplicates by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#326
- save and restore state by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#320
- GitHub: use apidiff with more recent Go by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#329
- remove hack/tools by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#330
- GIT-331: fix shadowing key from the kv pair by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#332
- klog.Fatal backtrace revert by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#328
- ktesting: capture log data in memory by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#327
- GIT-275: add tests for int and struct keys by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#333

#### New Contributors

- [@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) made
their first contribution in
[kubernetes/klog#332

**Full Changelog**:
kubernetes/klog@v2.60.1...v2.70.0

###
[`v2.60.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.1):
Prepare klog release for Kubernetes v1.24 (Take 6)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.0...v2.60.1)

#### What's Changed

- Cleanup OWNERS file by
[@&open-telemetry#8203;serathius](https://togithub.com/serathius) in
[kubernetes/klog#309
- dependencies: avoid k8s.io/utils, fork clock code instead by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#310
- promote contextual logging APIs to stable by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#311

**Full Changelog**:
kubernetes/klog@v2.60.0...v2.60.1

###
[`v2.60.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.0):
Prepare klog release for Kubernetes v1.24 (Take 5)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.2...v2.60.0)

#### What's Changed

- SetContextualLogger: remove unintentionally merged API call by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#308

**Full Changelog**:
kubernetes/klog@v2.50.2...v2.60.0

###
[`v2.50.2`](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

###
[`v2.50.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.1):
Prepare klog release for Kubernetes v1.24 (Take 4)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.0...v2.50.1)

#### What's Changed

- SetLoggerWithOptions: support flushing by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#306

**Full Changelog**:
kubernetes/klog@v2.50.0...v2.50.1

###
[`v2.50.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.0):
Prepare klog release for Kubernetes v1.24 (Take 3)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.1...v2.50.0)

#### What's Changed

- Panic on empty info with custom logr by
[@&open-telemetry#8203;jklaw90](https://togithub.com/jklaw90) in
[kubernetes/klog#283
- Add missing Depth logging functions. by
[@&open-telemetry#8203;s3rj1k](https://togithub.com/s3rj1k) in
[kubernetes/klog#280
- fix typo in klog.go by
[@&open-telemetry#8203;cocaccola](https://togithub.com/cocaccola) in
[kubernetes/klog#270
- Update README.md by
[@&open-telemetry#8203;noaabarki](https://togithub.com/noaabarki) in
[kubernetes/klog#281
- log filter: ignored by V, used during log call by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#290
- SetLogger/ClearLogger/SetLogFilter cleanup by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#289
- fixes for PR
[#&open-telemetry#8203;280](https://togithub.com/kubernetes/klog/issues/280),
refactoring, textlogger, unit test by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#287
- klogr verbosity by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#295
- test: fix Go version matrix by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#298
- handle panics in MarshalLog, Error, String by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#299
- Fix goroutine leak: make flushDaemon stoppable by
[@&open-telemetry#8203;katexochen](https://togithub.com/katexochen) in
[kubernetes/klog#293
- structured logging: replacing Fatal/Exit/etc. without loss of flushing
by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#303
- contextual logging by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#296
- remove side effects of tests by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#305
- tests: stop testing with Go 1.14 by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#304

#### New Contributors

- [@&open-telemetry#8203;jklaw90](https://togithub.com/jklaw90) made their first
contribution in
[kubernetes/klog#283
- [@&open-telemetry#8203;s3rj1k](https://togithub.com/s3rj1k) made their first
contribution in
[kubernetes/klog#280
- [@&open-telemetry#8203;cocaccola](https://togithub.com/cocaccola) made their first
contribution in
[kubernetes/klog#270
- [@&open-telemetry#8203;noaabarki](https://togithub.com/noaabarki) made their first
contribution in
[kubernetes/klog#281
- [@&open-telemetry#8203;katexochen](https://togithub.com/katexochen) made their first
contribution in
[kubernetes/klog#293

**Full Changelog**:
kubernetes/klog@v2.40.1...v2.50.0

###
[`v2.40.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.1):
Prepare klog release for Kubernetes v1.24 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.0...v2.40.1)

#### What's Changed

- Using OS targeted go files to separate out the username logic. by
[@&open-telemetry#8203;phillipsj](https://togithub.com/phillipsj) in
[kubernetes/klog#271
- Recover from nil pointers when logging by
[@&open-telemetry#8203;dims](https://togithub.com/dims) in
[kubernetes/klog#279

#### New Contributors

- [@&open-telemetry#8203;phillipsj](https://togithub.com/phillipsj) made their first
contribution in
[kubernetes/klog#271

**Full Changelog**:
kubernetes/klog@v2.40.0...v2.40.1

###
[`v2.40.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.0):
Prepare klog release for Kubernetes v1.24

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.30.0...v2.40.0)

#### What's Changed

- structured logging: support values with line breaks by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#273
- Fix klog lock release on panic error by
[@&open-telemetry#8203;astraw99](https://togithub.com/astraw99) in
[kubernetes/klog#272
- add format test for KObjs by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#276
- add Verbose.InfoSDepth by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#277

#### Known Issues

-
[kubernetes/klog#278

#### New Contributors

- [@&open-telemetry#8203;astraw99](https://togithub.com/astraw99) made their first
contribution in
[kubernetes/klog#272

**Full Changelog**:
kubernetes/klog@v2.30.0...v2.40.0

###
[`v2.30.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.30.0):
Prepare klog release for Kubernetes v1.23 (take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.20.0...v2.30.0)

#### What's Changed

- Fix logcheck exit function by
[@&open-telemetry#8203;luyou86](https://togithub.com/luyou86) in
[kubernetes/klog#265
- custom marshaler for ObjectRef by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#266

#### New Contributors

- [@&open-telemetry#8203;luyou86](https://togithub.com/luyou86) made their first
contribution in
[kubernetes/klog#265

**Full Changelog**:
kubernetes/klog@v2.20.0...v2.30.0

###
[`v2.20.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.20.0):
Prepare klog release for Kubernetes v1.23

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.10.0...v2.20.0)

Changes are here :
kubernetes/klog@v2.10.0...v2.20.0

since we moved to logr v1.0.0, there are incompatible changes:

    - klogger.Enabled: changed from func() bool to func(int) bool
- klogger.Info: changed from func(string, ...interface{}) to func(int,
string, ...interface{})
    - klogger.V: removed
- klogger.WithCallDepth: changed from func(int)
github.com/go-logr/logr.Logger to func(int)
github.com/go-logr/logr.LogSink
- klogger.WithName: changed from func(string)
github.com/go-logr/logr.Logger to func(string)
github.com/go-logr/logr.LogSink
- klogger.WithValues: changed from func(...interface{})
github.com/go-logr/logr.Logger to func(...interface{})
github.com/go-logr/logr.LogSink

[`83653a6`](https://togithub.com/kubernetes/klog/commit/83653a6deebf)
Update to newest versions of golang 1.17.x
[`d648c2e`](https://togithub.com/kubernetes/klog/commit/d648c2e42d30)
fix file-based filtering symbolization
[`8ee3d65`](https://togithub.com/kubernetes/klog/commit/8ee3d652c96b)
export ClearLogger
[`4171f3c`](https://togithub.com/kubernetes/klog/commit/4171f3c1be1b)
Switching to logr tag v1.0.0
[`9ab3c2b`](https://togithub.com/kubernetes/klog/commit/9ab3c2b56cb2)
add serathius as approvers of klog

###
[`v2.10.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.10.0):
One more change to support 1.22 release

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.9.0...v2.10.0)

Changes are here :
kubernetes/klog@v2.9.0...v2.10.0

new function added:

    func KObjs(arg interface{}) []ObjectRef

###
[`v2.9.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.9.0):
Prepare release for Kubernetes v1.22

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.8.0...v2.9.0)

Changes are here :
kubernetes/klog@v2.8.0...v2.9.0

[`6a9ef3f`](https://togithub.com/kubernetes/klog/commit/6a9ef3fa9a15)
fix typo
[`59f7cb5`](https://togithub.com/kubernetes/klog/commit/59f7cb505f58)
fix byte array display in InfoS and ErrorS
[`cf22f1e`](https://togithub.com/kubernetes/klog/commit/cf22f1e79721)
Call logr with call depth
[`e95c7e3`](https://togithub.com/kubernetes/klog/commit/e95c7e303755)
make SetLogger thread-safe
[`2728fe1`](https://togithub.com/kubernetes/klog/commit/2728fe192acc)
check usage of format specifier in structured log func
[`a18bc97`](https://togithub.com/kubernetes/klog/commit/a18bc976a212)
Fix by pr suggestions
[`4e4135c`](https://togithub.com/kubernetes/klog/commit/4e4135c3dd8a)
Add check for InfoS & ErrorS parameters

###
[`v2.8.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.8.0):
Bug fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.7.0...v2.8.0)

###
[`v2.7.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.7.0):
Miscellaneous fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.6.0...v2.7.0)

Changes are here :
kubernetes/klog@v2.6.0...v2.7.0

###
[`v2.6.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.6.0):
Adding a linter for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.5.0...v2.6.0)

Changes are here :
kubernetes/klog@v2.5.0...v2.6.0

please see
https://github.com/kubernetes/klog/tree/master/hack/tools/logcheck

###
[`v2.5.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.5.0):
Prepare release for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.4.0...v2.5.0)

Changes are here :
kubernetes/klog@v2.4.0...v2.5.0

klog.go has new API:

+func ErrorSDepth(depth int, err error, msg string, keysAndValues
...interface{}) {
+func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {

klogr/klogr.go has new API:

    func (l klogger) WithCallDepth(depth int) logr.Logger {
    func NewWithOptions(options ...Option) logr.Logger {
    func WithFormat(format Format) Option {

###
[`v2.4.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.4.0):
Prepare release for Kubernetes v1.20

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.3.0...v2.4.0)

Changes are here :
kubernetes/klog@v2.3.0...v2.4.0

###
[`v2.3.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.3.0):
Fix Typo-ed Method Error -&gt; ErrorS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.2.0...v2.3.0)

Changes are here :
kubernetes/klog@v2.2.0...v2.3.0

###
[`v2.2.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.2.0):
Dependency update and bugfix for InfoS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/2.1.0...v2.2.0)

- [`2e691eb`](https://togithub.com/kubernetes/klog/commit/2e691eb3eeb3)
Fix missing fields in verbose InfoS
- [`966c986`](https://togithub.com/kubernetes/klog/commit/966c98681ca0)
feat use go-logr v0.2.0

Changes are here :
kubernetes/klog@v2.1.0...v2.2.0

###
[`v2.1.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.1.0):
Better support for Structured Logging

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.0.0...2.1.0)

We are now enforcing API compatibility, added Windows based tests, and
have tweaked the structured logging methods after some real world
experience updating kubernetes main repo.

- [`bbd9ca1`](https://togithub.com/kubernetes/klog/commit/bbd9ca1) Add
tests for error in InfoS
- [`1ccc0e1`](https://togithub.com/kubernetes/klog/commit/1ccc0e1) fix
imported bug time encode format form kvlistFormat
- [`dd4d1a6`](https://togithub.com/kubernetes/klog/commit/dd4d1a6) fix
typo in README.md
- [`49123d4`](https://togithub.com/kubernetes/klog/commit/49123d4)
ErrorS(nil, ...) should call loggr.Error(nil, ...)
- [`5b199cd`](https://togithub.com/kubernetes/klog/commit/5b199cd) Fix
documentation for V(level)
- [`d1eb30f`](https://togithub.com/kubernetes/klog/commit/d1eb30f) Add
apidiff script to check go signature changes
- [`dc505bf`](https://togithub.com/kubernetes/klog/commit/dc505bf)
Switch slack channel to #klog
- [`a47ebb9`](https://togithub.com/kubernetes/klog/commit/a47ebb9) Add
example for co-existence of klog v1 and v2
- [`134f148`](https://togithub.com/kubernetes/klog/commit/134f148)
logName(): lazily lookup userName instead of on init()
- [`db06a1b`](https://togithub.com/kubernetes/klog/commit/db06a1b) fix
serialization of special html chars
- [`5727d2a`](https://togithub.com/kubernetes/klog/commit/5727d2a) Fix
Windows integration tests
- [`edbc1d3`](https://togithub.com/kubernetes/klog/commit/edbc1d3)
test(\*): TestRollover failed randomly on Windows
- [`6f99060`](https://togithub.com/kubernetes/klog/commit/6f99060) Add
LogToStderr, a programatic way to log exclusively to stderr or not

###
[`v2.0.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.0.0):
Release to support Kubernetes v1.19

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v1.0.0...v2.0.0)

Beware of type change: `Verbose`

New Methods:

-   `SetLogger` (override logger to set a custom implementation)
-   `InfoS` (structured logging)
-   `ErrorS` (structured logging)

Changes are here :
kubernetes/klog@v2.0.0-rc.1...v2.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
cparkins pushed a commit to AmadeusITGroup/opentelemetry-collector-contrib that referenced this pull request Jan 10, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/klog](https://togithub.com/kubernetes/klog) | require | major
| `v1.0.0` -> `v2.110.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/klog (k8s.io/klog)</summary>

###
[`v2.110.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.110.1):
Prepare klog release for Kubernetes v1.29 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.100.1...v2.110.1)

#### What's Changed

- fix: SetLogger via klog.SetLogger will output an unexpected newline by
[@&open-telemetry#8203;aimuz](https://togithub.com/aimuz) in
[kubernetes/klog#378
- resolve comments warning by
[@&open-telemetry#8203;lowang-bh](https://togithub.com/lowang-bh) in
[kubernetes/klog#379
- stderrthreshold: fix flag comment by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#376
- enable "go vet" checks for parameters by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#390
- promote experimental code to stable by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#392
- golangci-lint action by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#380
- output: handle WithName like zapr does by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#391
- slog support + logr 1.3.0 update by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#384

#### New Contributors

- [@&open-telemetry#8203;aimuz](https://togithub.com/aimuz) made their first
contribution in
[kubernetes/klog#378
- [@&open-telemetry#8203;lowang-bh](https://togithub.com/lowang-bh) made their first
contribution in
[kubernetes/klog#379

**Full Changelog**:
kubernetes/klog@v2.100.1...v2.110.1

###
[`v2.100.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.100.1):
Prepare klog release for Kubernetes v1.28 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.1...v2.100.1)

#### What's Changed

- expose logBridge via NewStandardLog() by
[@&open-telemetry#8203;mikedanese](https://togithub.com/mikedanese) in
[kubernetes/klog#369
- add Format wrapper by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#374
- JSON as fallback encoding by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#375

#### New Contributors

- [@&open-telemetry#8203;mikedanese](https://togithub.com/mikedanese) made their first
contribution in
[kubernetes/klog#369

**Full Changelog**:
kubernetes/klog@v2.90.1...v2.100.1

###
[`v2.90.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.1):
Prepare klog release for Kubernetes v1.27 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.0...v2.90.1)

#### What's Changed

- buffer: restore dropping of too large buffers by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#366
- ktesting improvements by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#365
- ktesting + textlogger config api by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#368
- textlogger write through by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#363

**Full Changelog**:
kubernetes/klog@v2.90.0...v2.90.1

###
[`v2.90.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.0):
Prepare klog release for Kubernetes v1.27 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.1...v2.90.0)

#### What's Changed

- klog: benchmark the overhead when logging is off by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#355
- improve textlogger by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#362

**Full Changelog**:
kubernetes/klog@v2.80.1...v2.90.0

##### There are some API differences from previous version

    k8s.io/klog/v2/klogr contains incompatible changes:
     - klogger.Enabled: removed
     - klogger.Error: removed
     - klogger.Info: removed

    k8s.io/klog/v2/test contains incompatible changes:
     - InitKlog: changed from func() to func(testing.TB) *flag.FlagSet

###
[`v2.80.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.1):
Prepare klog release for Kubernetes v1.26 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.0...v2.80.1)

#### What's Changed

- InitFlags concurrency fix by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#349

**Full Changelog**:
kubernetes/klog@v2.80.0...v2.80.1

###
[`v2.80.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.0):
Prepare klog release for Kubernetes v1.26 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.1...v2.80.0)

#### What's Changed

- OWNERS: add harshanarayana by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#342
- kvlistformat: fix the issue with display marshalled value for non
string type by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#344
- Bump version of golang to 1.19 and drop older versions by
[@&open-telemetry#8203;dims](https://togithub.com/dims) in
[kubernetes/klog#345

**Full Changelog**:
kubernetes/klog@v2.70.1...v2.80.0

###
[`v2.70.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.1):
Prepare klog release for Kubernetes v1.25 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.0...v2.70.1)

#### What's Changed

- ktesting: handle test completion by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#337
- contextual logging: enable by default again by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#341

**Full Changelog**:
kubernetes/klog@v2.70.0...v2.70.1

###
[`v2.70.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.0):
Prepare klog release for Kubernetes v1.25 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.1...v2.70.0)

#### What's Changed

- logcheck: contextual logging + enhanced checks by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#297
- hack/tools: drop dependency on golangci-lint by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#313
- StopFlushDaemon: document flushing on shutdown by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#314
- logcheck: fix detection of invalid \* regexp in filter by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#315
- README.md: clarify -logtostderr by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#319
- Trim duplicates by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#324
- replace KObjs with KObjSlice by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#322
- support logr.Marshaler by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#325
- internal: remove unused TrimDuplicates by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#326
- save and restore state by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#320
- GitHub: use apidiff with more recent Go by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#329
- remove hack/tools by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#330
- GIT-331: fix shadowing key from the kv pair by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#332
- klog.Fatal backtrace revert by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#328
- ktesting: capture log data in memory by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#327
- GIT-275: add tests for int and struct keys by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[kubernetes/klog#333

#### New Contributors

- [@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) made
their first contribution in
[kubernetes/klog#332

**Full Changelog**:
kubernetes/klog@v2.60.1...v2.70.0

###
[`v2.60.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.1):
Prepare klog release for Kubernetes v1.24 (Take 6)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.0...v2.60.1)

#### What's Changed

- Cleanup OWNERS file by
[@&open-telemetry#8203;serathius](https://togithub.com/serathius) in
[kubernetes/klog#309
- dependencies: avoid k8s.io/utils, fork clock code instead by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#310
- promote contextual logging APIs to stable by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#311

**Full Changelog**:
kubernetes/klog@v2.60.0...v2.60.1

###
[`v2.60.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.0):
Prepare klog release for Kubernetes v1.24 (Take 5)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.2...v2.60.0)

#### What's Changed

- SetContextualLogger: remove unintentionally merged API call by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#308

**Full Changelog**:
kubernetes/klog@v2.50.2...v2.60.0

###
[`v2.50.2`](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

###
[`v2.50.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.1):
Prepare klog release for Kubernetes v1.24 (Take 4)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.0...v2.50.1)

#### What's Changed

- SetLoggerWithOptions: support flushing by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#306

**Full Changelog**:
kubernetes/klog@v2.50.0...v2.50.1

###
[`v2.50.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.0):
Prepare klog release for Kubernetes v1.24 (Take 3)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.1...v2.50.0)

#### What's Changed

- Panic on empty info with custom logr by
[@&open-telemetry#8203;jklaw90](https://togithub.com/jklaw90) in
[kubernetes/klog#283
- Add missing Depth logging functions. by
[@&open-telemetry#8203;s3rj1k](https://togithub.com/s3rj1k) in
[kubernetes/klog#280
- fix typo in klog.go by
[@&open-telemetry#8203;cocaccola](https://togithub.com/cocaccola) in
[kubernetes/klog#270
- Update README.md by
[@&open-telemetry#8203;noaabarki](https://togithub.com/noaabarki) in
[kubernetes/klog#281
- log filter: ignored by V, used during log call by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#290
- SetLogger/ClearLogger/SetLogFilter cleanup by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#289
- fixes for PR
[#&open-telemetry#8203;280](https://togithub.com/kubernetes/klog/issues/280),
refactoring, textlogger, unit test by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#287
- klogr verbosity by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#295
- test: fix Go version matrix by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#298
- handle panics in MarshalLog, Error, String by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#299
- Fix goroutine leak: make flushDaemon stoppable by
[@&open-telemetry#8203;katexochen](https://togithub.com/katexochen) in
[kubernetes/klog#293
- structured logging: replacing Fatal/Exit/etc. without loss of flushing
by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#303
- contextual logging by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#296
- remove side effects of tests by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#305
- tests: stop testing with Go 1.14 by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#304

#### New Contributors

- [@&open-telemetry#8203;jklaw90](https://togithub.com/jklaw90) made their first
contribution in
[kubernetes/klog#283
- [@&open-telemetry#8203;s3rj1k](https://togithub.com/s3rj1k) made their first
contribution in
[kubernetes/klog#280
- [@&open-telemetry#8203;cocaccola](https://togithub.com/cocaccola) made their first
contribution in
[kubernetes/klog#270
- [@&open-telemetry#8203;noaabarki](https://togithub.com/noaabarki) made their first
contribution in
[kubernetes/klog#281
- [@&open-telemetry#8203;katexochen](https://togithub.com/katexochen) made their first
contribution in
[kubernetes/klog#293

**Full Changelog**:
kubernetes/klog@v2.40.1...v2.50.0

###
[`v2.40.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.1):
Prepare klog release for Kubernetes v1.24 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.0...v2.40.1)

#### What's Changed

- Using OS targeted go files to separate out the username logic. by
[@&open-telemetry#8203;phillipsj](https://togithub.com/phillipsj) in
[kubernetes/klog#271
- Recover from nil pointers when logging by
[@&open-telemetry#8203;dims](https://togithub.com/dims) in
[kubernetes/klog#279

#### New Contributors

- [@&open-telemetry#8203;phillipsj](https://togithub.com/phillipsj) made their first
contribution in
[kubernetes/klog#271

**Full Changelog**:
kubernetes/klog@v2.40.0...v2.40.1

###
[`v2.40.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.0):
Prepare klog release for Kubernetes v1.24

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.30.0...v2.40.0)

#### What's Changed

- structured logging: support values with line breaks by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#273
- Fix klog lock release on panic error by
[@&open-telemetry#8203;astraw99](https://togithub.com/astraw99) in
[kubernetes/klog#272
- add format test for KObjs by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#276
- add Verbose.InfoSDepth by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[kubernetes/klog#277

#### Known Issues

-
[kubernetes/klog#278

#### New Contributors

- [@&open-telemetry#8203;astraw99](https://togithub.com/astraw99) made their first
contribution in
[kubernetes/klog#272

**Full Changelog**:
kubernetes/klog@v2.30.0...v2.40.0

###
[`v2.30.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.30.0):
Prepare klog release for Kubernetes v1.23 (take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.20.0...v2.30.0)

#### What's Changed

- Fix logcheck exit function by
[@&open-telemetry#8203;luyou86](https://togithub.com/luyou86) in
[kubernetes/klog#265
- custom marshaler for ObjectRef by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[kubernetes/klog#266

#### New Contributors

- [@&open-telemetry#8203;luyou86](https://togithub.com/luyou86) made their first
contribution in
[kubernetes/klog#265

**Full Changelog**:
kubernetes/klog@v2.20.0...v2.30.0

###
[`v2.20.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.20.0):
Prepare klog release for Kubernetes v1.23

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.10.0...v2.20.0)

Changes are here :
kubernetes/klog@v2.10.0...v2.20.0

since we moved to logr v1.0.0, there are incompatible changes:

    - klogger.Enabled: changed from func() bool to func(int) bool
- klogger.Info: changed from func(string, ...interface{}) to func(int,
string, ...interface{})
    - klogger.V: removed
- klogger.WithCallDepth: changed from func(int)
github.com/go-logr/logr.Logger to func(int)
github.com/go-logr/logr.LogSink
- klogger.WithName: changed from func(string)
github.com/go-logr/logr.Logger to func(string)
github.com/go-logr/logr.LogSink
- klogger.WithValues: changed from func(...interface{})
github.com/go-logr/logr.Logger to func(...interface{})
github.com/go-logr/logr.LogSink

[`83653a6`](https://togithub.com/kubernetes/klog/commit/83653a6deebf)
Update to newest versions of golang 1.17.x
[`d648c2e`](https://togithub.com/kubernetes/klog/commit/d648c2e42d30)
fix file-based filtering symbolization
[`8ee3d65`](https://togithub.com/kubernetes/klog/commit/8ee3d652c96b)
export ClearLogger
[`4171f3c`](https://togithub.com/kubernetes/klog/commit/4171f3c1be1b)
Switching to logr tag v1.0.0
[`9ab3c2b`](https://togithub.com/kubernetes/klog/commit/9ab3c2b56cb2)
add serathius as approvers of klog

###
[`v2.10.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.10.0):
One more change to support 1.22 release

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.9.0...v2.10.0)

Changes are here :
kubernetes/klog@v2.9.0...v2.10.0

new function added:

    func KObjs(arg interface{}) []ObjectRef

###
[`v2.9.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.9.0):
Prepare release for Kubernetes v1.22

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.8.0...v2.9.0)

Changes are here :
kubernetes/klog@v2.8.0...v2.9.0

[`6a9ef3f`](https://togithub.com/kubernetes/klog/commit/6a9ef3fa9a15)
fix typo
[`59f7cb5`](https://togithub.com/kubernetes/klog/commit/59f7cb505f58)
fix byte array display in InfoS and ErrorS
[`cf22f1e`](https://togithub.com/kubernetes/klog/commit/cf22f1e79721)
Call logr with call depth
[`e95c7e3`](https://togithub.com/kubernetes/klog/commit/e95c7e303755)
make SetLogger thread-safe
[`2728fe1`](https://togithub.com/kubernetes/klog/commit/2728fe192acc)
check usage of format specifier in structured log func
[`a18bc97`](https://togithub.com/kubernetes/klog/commit/a18bc976a212)
Fix by pr suggestions
[`4e4135c`](https://togithub.com/kubernetes/klog/commit/4e4135c3dd8a)
Add check for InfoS & ErrorS parameters

###
[`v2.8.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.8.0):
Bug fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.7.0...v2.8.0)

###
[`v2.7.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.7.0):
Miscellaneous fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.6.0...v2.7.0)

Changes are here :
kubernetes/klog@v2.6.0...v2.7.0

###
[`v2.6.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.6.0):
Adding a linter for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.5.0...v2.6.0)

Changes are here :
kubernetes/klog@v2.5.0...v2.6.0

please see
https://github.com/kubernetes/klog/tree/master/hack/tools/logcheck

###
[`v2.5.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.5.0):
Prepare release for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.4.0...v2.5.0)

Changes are here :
kubernetes/klog@v2.4.0...v2.5.0

klog.go has new API:

+func ErrorSDepth(depth int, err error, msg string, keysAndValues
...interface{}) {
+func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {

klogr/klogr.go has new API:

    func (l klogger) WithCallDepth(depth int) logr.Logger {
    func NewWithOptions(options ...Option) logr.Logger {
    func WithFormat(format Format) Option {

###
[`v2.4.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.4.0):
Prepare release for Kubernetes v1.20

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.3.0...v2.4.0)

Changes are here :
kubernetes/klog@v2.3.0...v2.4.0

###
[`v2.3.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.3.0):
Fix Typo-ed Method Error -&gt; ErrorS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.2.0...v2.3.0)

Changes are here :
kubernetes/klog@v2.2.0...v2.3.0

###
[`v2.2.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.2.0):
Dependency update and bugfix for InfoS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/2.1.0...v2.2.0)

- [`2e691eb`](https://togithub.com/kubernetes/klog/commit/2e691eb3eeb3)
Fix missing fields in verbose InfoS
- [`966c986`](https://togithub.com/kubernetes/klog/commit/966c98681ca0)
feat use go-logr v0.2.0

Changes are here :
kubernetes/klog@v2.1.0...v2.2.0

###
[`v2.1.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.1.0):
Better support for Structured Logging

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.0.0...2.1.0)

We are now enforcing API compatibility, added Windows based tests, and
have tweaked the structured logging methods after some real world
experience updating kubernetes main repo.

- [`bbd9ca1`](https://togithub.com/kubernetes/klog/commit/bbd9ca1) Add
tests for error in InfoS
- [`1ccc0e1`](https://togithub.com/kubernetes/klog/commit/1ccc0e1) fix
imported bug time encode format form kvlistFormat
- [`dd4d1a6`](https://togithub.com/kubernetes/klog/commit/dd4d1a6) fix
typo in README.md
- [`49123d4`](https://togithub.com/kubernetes/klog/commit/49123d4)
ErrorS(nil, ...) should call loggr.Error(nil, ...)
- [`5b199cd`](https://togithub.com/kubernetes/klog/commit/5b199cd) Fix
documentation for V(level)
- [`d1eb30f`](https://togithub.com/kubernetes/klog/commit/d1eb30f) Add
apidiff script to check go signature changes
- [`dc505bf`](https://togithub.com/kubernetes/klog/commit/dc505bf)
Switch slack channel to #klog
- [`a47ebb9`](https://togithub.com/kubernetes/klog/commit/a47ebb9) Add
example for co-existence of klog v1 and v2
- [`134f148`](https://togithub.com/kubernetes/klog/commit/134f148)
logName(): lazily lookup userName instead of on init()
- [`db06a1b`](https://togithub.com/kubernetes/klog/commit/db06a1b) fix
serialization of special html chars
- [`5727d2a`](https://togithub.com/kubernetes/klog/commit/5727d2a) Fix
Windows integration tests
- [`edbc1d3`](https://togithub.com/kubernetes/klog/commit/edbc1d3)
test(\*): TestRollover failed randomly on Windows
- [`6f99060`](https://togithub.com/kubernetes/klog/commit/6f99060) Add
LogToStderr, a programatic way to log exclusively to stderr or not

###
[`v2.0.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.0.0):
Release to support Kubernetes v1.19

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v1.0.0...v2.0.0)

Beware of type change: `Verbose`

New Methods:

-   `SetLogger` (override logger to set a custom implementation)
-   `InfoS` (structured logging)
-   `ErrorS` (structured logging)

Changes are here :
kubernetes/klog@v2.0.0-rc.1...v2.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

simplified, self-contained Logger Performance Improvement of klog
7 participants