Commit Graph

20 Commits

Author SHA1 Message Date
Simon Schrottner 59c2ff1f72
build: decouple integration tests from the rest of the codebase (#1792)
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2025-09-04 14:28:00 +02:00
renovate[bot] 037e30b2f8
fix(security): update module github.com/go-viper/mapstructure/v2 to v2.4.0 [security] (#1784)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/go-viper/mapstructure/v2](https://redirect.github.com/go-viper/mapstructure)
| `v2.3.0` -> `v2.4.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgo-viper%2fmapstructure%2fv2/v2.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgo-viper%2fmapstructure%2fv2/v2.3.0/v2.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

### GitHub Vulnerability Alerts

####
[GHSA-2464-8j7c-4cjm](https://redirect.github.com/go-viper/mapstructure/security/advisories/GHSA-2464-8j7c-4cjm)

### Summary

Use of this library in a security-critical context may result in leaking
sensitive information, if used to process sensitive fields.

### Details

OpenBao (and presumably HashiCorp Vault) have surfaced error messages
from `mapstructure` as follows:


98c3a59c04/sdk/framework/field_data.go (L43-L50)

```go
			_, _, err := d.getPrimitive(field, schema)
			if err != nil {
				return fmt.Errorf("error converting input for field %q: %w", field, err)
			}
```

where this calls `mapstructure.WeakDecode(...)`:
98c3a59c04/sdk/framework/field_data.go (L181-L193)

```go

func (d *FieldData) getPrimitive(k string, schema *FieldSchema) (interface{}, bool, error) {
	raw, ok := d.Raw[k]
	if !ok {
		return nil, false, nil
	}

	switch t := schema.Type; t {
	case TypeBool:
		var result bool
		if err := mapstructure.WeakDecode(raw, &result); err != nil {
			return nil, false, err
		}
		return result, true, nil
```

Notably, `WeakDecode(...)` eventually calls one of the decode helpers,
which surfaces the original value via `strconv` helpers:


8c61ec1924/mapstructure.go (L720-L727)


8c61ec1924/mapstructure.go (L791-L798)


8c61ec1924/decode_hooks.go (L180)

& more. These are different code paths than are fixed in the previous
iteration at
https://github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h.

### PoC

To reproduce with OpenBao:

```
$ podman run --pull=always -p 8300:8300 openbao/openbao:latest server -dev -dev-root-token-id=root -dev-listen-address=0.0.0.0:8300
```

and in a new tab:

```
$ BAO_TOKEN=root BAO_ADDR=http://localhost:8300 bao auth enable userpass
Success! Enabled userpass auth method at: userpass/
$ curl -X PUT -H "X-Vault-Request: true" -H "X-Vault-Token: root" -d '{"ttl":"asdf"}' "http://localhost:8200/v1/auth/userpass/users/asdf"

--> server logs:

2025-06-25T21:32:25.101-0500 [ERROR] core: failed to run existence check: error="error converting input for field \"ttl\": time: invalid duration \"asdf\""
```

### Impact

This is an information disclosure bug with little mitigation. See
https://discuss.hashicorp.com/t/hcsec-2025-09-vault-may-expose-sensitive-information-in-error-logs-when-processing-malformed-data-with-the-kv-v2-plugin/74717
for a previous version. That version was fixed, but this is in the
second part of that error message (starting at `'' expected a map, got
'string'` -- when the field type is `string` and a `map` is provided, we
see the above information leak -- the previous example had a `map` type
field with a `string` value provided).

This was rated 4.5 Medium by HashiCorp in the past iteration.

---

### Release Notes

<details>
<summary>go-viper/mapstructure
(github.com/go-viper/mapstructure/v2)</summary>

###
[`v2.4.0`](https://redirect.github.com/go-viper/mapstructure/releases/tag/v2.4.0)

[Compare
Source](https://redirect.github.com/go-viper/mapstructure/compare/v2.3.0...v2.4.0)

#### What's Changed

- refactor: replace interface{} with any by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/go-viper/mapstructure/pull/115](https://redirect.github.com/go-viper/mapstructure/pull/115)
- build(deps): bump github/codeql-action from 3.29.0 to 3.29.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot]
in[https://github.com/go-viper/mapstructure/pull/114](https://redirect.github.com/go-viper/mapstructure/pull/114)4
- Generic tests by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/go-viper/mapstructure/pull/118](https://redirect.github.com/go-viper/mapstructure/pull/118)
- Fix godoc reference link in README.md by
[@&#8203;peczenyj](https://redirect.github.com/peczenyj) in
[https://github.com/go-viper/mapstructure/pull/107](https://redirect.github.com/go-viper/mapstructure/pull/107)
- feat: add StringToTimeLocationHookFunc to convert strings to
\*time.Location by
[@&#8203;ErfanMomeniii](https://redirect.github.com/ErfanMomeniii) in
[https://github.com/go-viper/mapstructure/pull/117](https://redirect.github.com/go-viper/mapstructure/pull/117)
- feat: add back previous StringToSlice as a weak function by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/go-viper/mapstructure/pull/119](https://redirect.github.com/go-viper/mapstructure/pull/119)

#### New Contributors

- [@&#8203;ErfanMomeniii](https://redirect.github.com/ErfanMomeniii)
made their first contribution in
[https://github.com/go-viper/mapstructure/pull/117](https://redirect.github.com/go-viper/mapstructure/pull/117)

**Full Changelog**:
https://github.com/go-viper/mapstructure/compare/v2.3.0...v2.4.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

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

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-08-29 15:14:05 -04:00
Todd Baert 5c5c1cfe84
chore(refactor): use memdb for flag storage (#1697)
This PR contains no behavioral changes, and no breaking changes.

It lays the groundwork for some of the upcoming improvements we want in
flagd, as specified in recent ADRs. It does this by re-implementing our
storage layer to use [go-memdb](https://github.com/hashicorp/go-memdb),
an open source in-memory database developed by Hashicorp and used in
[Consul](https://developer.hashicorp.com/consul) (as well as MANY other
projects).

### Why?

This will allow us to easily support:

- duplicate flag keys (namespaced by flagSetId), as mentioned in [this
ADR](https://github.com/open-feature/flagd/blob/main/docs/architecture-decisions/duplicate-flag-keys.md)
- robust flag selectors, as mentioned in [this
ADR](https://github.com/open-feature/flagd/pull/1644), by supporting
"watchers" which allow us to "listen" to change in flags returned by a
given query 🕺
- robust (and possibly, in the future, even customizable) indexing on
arbitrary attributes (to easily support fetching "all boolean flags", or
"flags with metadata = xyz", etc)
- cross-"table" transactions

I have already PoC'd that these are all practical.

### Changes in implementation

- the `store` package's `State` is no longer just a struct; it's a
object with methods wrapping the internal db
- the `store` package's `State` was renamed to `Store` and the file was
renamed from `flags.go` to `store.go`, since it's ceased to be a simple
stateful object, and for consistency
- a non-serialized (used only internally) `Key` field was added to the
flag type (for indexing)
- a new constructor for the `Store` was added which takes a logger and
returns an error, the old was deprecated to avoid breaking changes in
consumers (the Go flagd provider, mostly)

Note that the go-memdb dependency is MPL2, which is not allowed by the
CNCF, however, go-memdb is already used in CNCF projects and has a
[special
exception](347a55dc0a/license-exceptions/cncf-exceptions-2023-08-31.json (L7-L11)).

### Perfromance

There was no significant change in performance, see benchmark diff vs
main below:

<details>
  <summary>Benchmark diff vs main</summary>

```diff
-BenchmarkFractionalEvaluation/test_c@faas.com-16         	  559051	     13832 ns/op	    7229 B/op	     135 allocs/op
-BenchmarkFractionalEvaluation/test_d@faas.com-16         	  611665	     13106 ns/op	    7229 B/op	     135 allocs/op
-BenchmarkFractionalEvaluation/test_a@faas.com-16         	  383074	     13433 ns/op	    7229 B/op	     135 allocs/op
-BenchmarkFractionalEvaluation/test_b@faas.com-16         	  529185	     12190 ns/op	    7229 B/op	     135 allocs/op
-BenchmarkResolveBooleanValue/test_staticBoolFlag-16      	 3929409	      1712 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveBooleanValue/test_targetingBoolFlag-16   	  812671	     10276 ns/op	    6065 B/op	      87 allocs/op
-BenchmarkResolveBooleanValue/test_staticObjectFlag-16    	 4398327	      1700 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveBooleanValue/test_missingFlag-16         	 4541409	      1494 ns/op	     784 B/op	      12 allocs/op
-BenchmarkResolveBooleanValue/test_disabledFlag-16        	 2998599	      1815 ns/op	    1072 B/op	      13 allocs/op
-BenchmarkResolveStringValue/test_staticStringFlag-16     	 4378830	      1698 ns/op	    1040 B/op	      13 allocs/op
-BenchmarkResolveStringValue/test_targetingStringFlag-16  	  849668	      9165 ns/op	    6097 B/op	      89 allocs/op
-BenchmarkResolveStringValue/test_staticObjectFlag-16     	 4560192	      1363 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveStringValue/test_missingFlag-16          	 5283511	      1196 ns/op	     784 B/op	      12 allocs/op
-BenchmarkResolveStringValue/test_disabledFlag-16         	 4393116	      1446 ns/op	    1072 B/op	      13 allocs/op
-BenchmarkResolveFloatValue/test:_staticFloatFlag-16      	 4264772	      1501 ns/op	    1024 B/op	      13 allocs/op
-BenchmarkResolveFloatValue/test:_targetingFloatFlag-16   	  776436	      8191 ns/op	    6081 B/op	      89 allocs/op
-BenchmarkResolveFloatValue/test:_staticObjectFlag-16     	 4685841	      1285 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveFloatValue/test:_missingFlag-16          	 5001636	      1376 ns/op	     784 B/op	      12 allocs/op
-BenchmarkResolveFloatValue/test:_disabledFlag-16         	 3707120	      1897 ns/op	    1072 B/op	      13 allocs/op
-BenchmarkResolveIntValue/test_staticIntFlag-16           	 3770362	      1677 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveIntValue/test_targetingNumberFlag-16     	  739861	     11142 ns/op	    6065 B/op	      87 allocs/op
-BenchmarkResolveIntValue/test_staticObjectFlag-16        	 4221418	      1913 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveIntValue/test_missingFlag-16             	 4289516	      1488 ns/op	     768 B/op	      12 allocs/op
-BenchmarkResolveIntValue/test_disabledFlag-16            	 4027533	      1829 ns/op	    1072 B/op	      13 allocs/op
-BenchmarkResolveObjectValue/test_staticObjectFlag-16     	 1588855	      3880 ns/op	    2243 B/op	      37 allocs/op
-BenchmarkResolveObjectValue/test_targetingObjectFlag-16  	  562364	     11580 ns/op	    7283 B/op	     109 allocs/op
-BenchmarkResolveObjectValue/test_staticBoolFlag-16       	 5026976	      1791 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveObjectValue/test_missingFlag-16          	 4254043	      1553 ns/op	     784 B/op	      12 allocs/op
-BenchmarkResolveObjectValue/test_disabledFlag-16         	 3051976	      2250 ns/op	    1072 B/op	      13 allocs/op
+BenchmarkFractionalEvaluation/test_a@faas.com-16         	  478593	     14527 ns/op	    7467 B/op	     143 allocs/op
+BenchmarkFractionalEvaluation/test_b@faas.com-16         	  429560	     14728 ns/op	    7467 B/op	     143 allocs/op
+BenchmarkFractionalEvaluation/test_c@faas.com-16         	  574078	     14230 ns/op	    7467 B/op	     143 allocs/op
+BenchmarkFractionalEvaluation/test_d@faas.com-16         	  411690	     15296 ns/op	    7467 B/op	     143 allocs/op
+BenchmarkResolveBooleanValue/test_staticBoolFlag-16      	 4133443	      1973 ns/op	     960 B/op	      18 allocs/op
+BenchmarkResolveBooleanValue/test_targetingBoolFlag-16   	  822934	     10981 ns/op	    6033 B/op	      94 allocs/op
+BenchmarkResolveBooleanValue/test_staticObjectFlag-16    	 3955728	      1964 ns/op	     976 B/op	      18 allocs/op
+BenchmarkResolveBooleanValue/test_missingFlag-16         	 3068791	      2294 ns/op	    1064 B/op	      21 allocs/op
+BenchmarkResolveBooleanValue/test_disabledFlag-16        	 3500334	      2225 ns/op	    1024 B/op	      20 allocs/op
+BenchmarkResolveStringValue/test_staticStringFlag-16     	 3935048	      1781 ns/op	    1008 B/op	      20 allocs/op
+BenchmarkResolveStringValue/test_targetingStringFlag-16  	  770565	     10765 ns/op	    6065 B/op	      96 allocs/op
+BenchmarkResolveStringValue/test_staticObjectFlag-16     	 3896060	      2084 ns/op	     976 B/op	      18 allocs/op
+BenchmarkResolveStringValue/test_missingFlag-16          	 3103950	      2141 ns/op	    1064 B/op	      21 allocs/op
+BenchmarkResolveStringValue/test_disabledFlag-16         	 3717013	      2092 ns/op	    1024 B/op	      20 allocs/op
+BenchmarkResolveFloatValue/test:_staticFloatFlag-16      	 3971438	      2003 ns/op	     976 B/op	      20 allocs/op
+BenchmarkResolveFloatValue/test:_targetingFloatFlag-16   	  782996	     10153 ns/op	    6049 B/op	      96 allocs/op
+BenchmarkResolveFloatValue/test:_staticObjectFlag-16     	 3469644	      2115 ns/op	     976 B/op	      18 allocs/op
+BenchmarkResolveFloatValue/test:_missingFlag-16          	 3376167	      2157 ns/op	    1064 B/op	      21 allocs/op
+BenchmarkResolveFloatValue/test:_disabledFlag-16         	 3610095	      2032 ns/op	    1024 B/op	      20 allocs/op
+BenchmarkResolveIntValue/test_staticIntFlag-16           	 3883299	      1941 ns/op	     960 B/op	      18 allocs/op
+BenchmarkResolveIntValue/test_targetingNumberFlag-16     	  823038	     10725 ns/op	    6033 B/op	      94 allocs/op
+BenchmarkResolveIntValue/test_staticObjectFlag-16        	 3697454	      2028 ns/op	     976 B/op	      18 allocs/op
+BenchmarkResolveIntValue/test_missingFlag-16             	 3326895	      1986 ns/op	    1048 B/op	      21 allocs/op
+BenchmarkResolveIntValue/test_disabledFlag-16            	 3327046	      2142 ns/op	    1024 B/op	      20 allocs/op
+BenchmarkResolveObjectValue/test_staticObjectFlag-16     	 1534627	      4885 ns/op	    2211 B/op	      44 allocs/op
+BenchmarkResolveObjectValue/test_targetingObjectFlag-16  	  509614	     14640 ns/op	    7251 B/op	     116 allocs/op
+BenchmarkResolveObjectValue/test_staticBoolFlag-16       	 3871867	      1978 ns/op	     960 B/op	      18 allocs/op
+BenchmarkResolveObjectValue/test_missingFlag-16          	 3484065	      2080 ns/op	    1064 B/op	      21 allocs/op
+BenchmarkResolveObjectValue/test_disabledFlag-16         	 4013230	      2158 ns/op	    1024 B/op	      20 allocs/op
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/evaluator	233.286s
+ok  	github.com/open-feature/flagd/core/pkg/evaluator	261.212s
 ?   	github.com/open-feature/flagd/core/pkg/evaluator/mock	[no test files]
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/logger	0.003s
+ok  	github.com/open-feature/flagd/core/pkg/logger	0.002s
 ?   	github.com/open-feature/flagd/core/pkg/model	[no test files]
 ?   	github.com/open-feature/flagd/core/pkg/service	[no test files]
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/service/ofrep	0.003s
+ok  	github.com/open-feature/flagd/core/pkg/service/ofrep	0.002s
 PASS
 ok  	github.com/open-feature/flagd/core/pkg/store	0.002s
 ?   	github.com/open-feature/flagd/core/pkg/sync	[no test files]
@@ -51,9 +51,9 @@ PASS
 ok  	github.com/open-feature/flagd/core/pkg/sync/builder	0.020s
 ?   	github.com/open-feature/flagd/core/pkg/sync/builder/mock	[no test files]
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/sync/file	1.007s
+ok  	github.com/open-feature/flagd/core/pkg/sync/file	1.006s
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/sync/grpc	8.014s
+ok  	github.com/open-feature/flagd/core/pkg/sync/grpc	8.013s
 PASS
 ok  	github.com/open-feature/flagd/core/pkg/sync/grpc/credentials	0.004s
 ?   	github.com/open-feature/flagd/core/pkg/sync/grpc/credentials/mock	[no test files]
@@ -61,10 +61,10 @@ ok  	github.com/open-feature/flagd/core/pkg/sync/grpc/credentials	0.004s
 PASS
 ok  	github.com/open-feature/flagd/core/pkg/sync/grpc/nameresolvers	0.002s
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/sync/http	4.008s
+ok  	github.com/open-feature/flagd/core/pkg/sync/http	4.007s
 ?   	github.com/open-feature/flagd/core/pkg/sync/http/mock	[no test files]
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/sync/kubernetes	0.015s
+ok  	github.com/open-feature/flagd/core/pkg/sync/kubernetes	0.016s
 ?   	github.com/open-feature/flagd/core/pkg/sync/testing	[no test files]
 PASS
 ok  	github.com/open-feature/flagd/core/pkg/telemetry	0.016s
```

</details>

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-30 09:08:47 -04:00
renovate[bot] cd4604471b
chore(deps): update dependency go to v1.24.1 (#1559)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | toolchain | minor |
`1.22.9` -> `1.24.1` |

---

### Release Notes

<details>
<summary>golang/go (go)</summary>

###
[`v1.24.1`](https://redirect.github.com/golang/go/compare/go1.24.0...go1.24.1)

###
[`v1.24.0`](https://redirect.github.com/golang/go/compare/go1.23.6...go1.24.0)

###
[`v1.23.7`](https://redirect.github.com/golang/go/compare/go1.23.6...go1.23.7)

###
[`v1.23.6`](https://redirect.github.com/golang/go/compare/go1.23.5...go1.23.6)

###
[`v1.23.5`](https://redirect.github.com/golang/go/compare/go1.23.4...go1.23.5)

###
[`v1.23.4`](https://redirect.github.com/golang/go/compare/go1.23.3...go1.23.4)

###
[`v1.23.3`](https://redirect.github.com/golang/go/compare/go1.23.2...go1.23.3)

###
[`v1.23.2`](https://redirect.github.com/golang/go/compare/go1.23.1...go1.23.2)

###
[`v1.23.1`](https://redirect.github.com/golang/go/compare/go1.23.0...go1.23.1)

###
[`v1.23.0`](https://redirect.github.com/golang/go/compare/go1.22.12...go1.23.0)

###
[`v1.22.12`](https://redirect.github.com/golang/go/compare/go1.22.11...go1.22.12)

###
[`v1.22.11`](https://redirect.github.com/golang/go/compare/go1.22.10...go1.22.11)

###
[`v1.22.10`](https://redirect.github.com/golang/go/compare/go1.22.9...go1.22.10)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

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

---------

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-03-25 14:55:03 -04:00
Pradeep Mishra 65bf635e33
test: update e2e tests (#1452)
Signed-off-by: Pradeep <pradeepbbl@gmail.com>
2024-11-19 16:22:39 -05:00
renovate[bot] 954d972382
fix(deps): update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20240906125204-0a6a901b42e8.1 (#1400)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/grpc/go |
`v1.5.1-20240215170432-1e611e2999cc.1` ->
`v1.5.1-20240906125204-0a6a901b42e8.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240215170432-1e611e2999cc.1/v1.5.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240215170432-1e611e2999cc.1/v1.5.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

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

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-09-23 10:39:19 -04:00
renovate[bot] 94860d6cea
fix(deps): update kubernetes package and controller runtime, fix proto lint (#1290)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[k8s.io/apimachinery](https://redirect.github.com/kubernetes/apimachinery)
| `v0.29.3` -> `v0.31.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fapimachinery/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fapimachinery/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fapimachinery/v0.29.3/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fapimachinery/v0.29.3/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [k8s.io/client-go](https://redirect.github.com/kubernetes/client-go) |
`v0.29.3` -> `v0.31.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fclient-go/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fclient-go/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fclient-go/v0.29.3/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fclient-go/v0.29.3/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.31.1`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.0...v0.31.1)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.0...v0.31.1)

###
[`v0.31.0`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.3...v0.31.0)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.5...v0.31.0)

###
[`v0.30.5`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.4...v0.30.5)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.4...v0.30.5)

###
[`v0.30.4`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.3...v0.30.4)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.3...v0.30.4)

###
[`v0.30.3`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.2...v0.30.3)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.2...v0.30.3)

###
[`v0.30.2`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.1...v0.30.2)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.1...v0.30.2)

###
[`v0.30.1`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.0...v0.30.1)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.0...v0.30.1)

###
[`v0.30.0`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.4...v0.30.0)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.9...v0.30.0)

###
[`v0.29.9`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.8...v0.29.9)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.8...v0.29.9)

###
[`v0.29.8`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.7...v0.29.8)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.7...v0.29.8)

###
[`v0.29.7`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.6...v0.29.7)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.6...v0.29.7)

###
[`v0.29.6`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.5...v0.29.6)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.5...v0.29.6)

###
[`v0.29.5`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.4...v0.29.5)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.4...v0.29.5)

###
[`v0.29.4`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.3...v0.29.4)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.3...v0.29.4)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.31.1`](https://redirect.github.com/kubernetes/client-go/compare/v0.31.0...v0.31.1)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.31.0...v0.31.1)

###
[`v0.31.0`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.4...v0.31.0)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.5...v0.31.0)

###
[`v0.30.5`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.4...v0.30.5)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.4...v0.30.5)

###
[`v0.30.4`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.3...v0.30.4)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.3...v0.30.4)

###
[`v0.30.3`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.2...v0.30.3)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.2...v0.30.3)

###
[`v0.30.2`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.1...v0.30.2)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.1...v0.30.2)

###
[`v0.30.1`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.0...v0.30.1)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.0...v0.30.1)

###
[`v0.30.0`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.4...v0.30.0)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.9...v0.30.0)

###
[`v0.29.9`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.8...v0.29.9)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.8...v0.29.9)

###
[`v0.29.8`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.7...v0.29.8)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.7...v0.29.8)

###
[`v0.29.7`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.6...v0.29.7)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.6...v0.29.7)

###
[`v0.29.6`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.5...v0.29.6)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.5...v0.29.6)

###
[`v0.29.5`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.4...v0.29.5)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.4...v0.29.5)

###
[`v0.29.4`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.3...v0.29.4)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.3...v0.29.4)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

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

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

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

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-09-23 09:54:46 -04:00
renovate[bot] e9f1a7a048
fix(deps): update opentelemetry-go monorepo (#1314)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| `v0.48.0` -> `v0.49.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.48.0/v0.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.48.0/v0.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.27.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.27.0):
/v0.49.0/v0.3.0

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.26.0...v1.27.0)

This release includes the first beta release of the OpenTelemetry Logs
Bridge API and SDK for Go.

##### Overview

##### Added

- Add example for `go.opentelemetry.io/otel/exporters/stdout/stdoutlog`.
([#&#8203;5242](https://togithub.com/open-telemetry/opentelemetry-go/issues/5242))
- Add `RecordFactory` in `go.opentelemetry.io/otel/sdk/log/logtest` to
facilitate testing exporter and processor implementations.
([#&#8203;5258](https://togithub.com/open-telemetry/opentelemetry-go/issues/5258))
- Add `RecordFactory` in `go.opentelemetry.io/otel/log/logtest` to
facilitate testing bridge implementations.
([#&#8203;5263](https://togithub.com/open-telemetry/opentelemetry-go/issues/5263))
- The count of dropped records from the `BatchProcessor` in
`go.opentelemetry.io/otel/sdk/log` is logged.
([#&#8203;5276](https://togithub.com/open-telemetry/opentelemetry-go/issues/5276))
- Add metrics in the `otel-collector` example.
([#&#8203;5283](https://togithub.com/open-telemetry/opentelemetry-go/issues/5283))
- Add the synchronous gauge instrument to
`go.opentelemetry.io/otel/metric`.
([#&#8203;5304](https://togithub.com/open-telemetry/opentelemetry-go/issues/5304))
- An `int64` or `float64` synchronous gauge instrument can now be
created from a `Meter`.
- All implementations of the API
(`go.opentelemetry.io/otel/metric/noop`,
`go.opentelemetry.io/otel/sdk/metric`) are updated to support this
instrument.
- Add logs to `go.opentelemetry.io/otel/example/dice`.
([#&#8203;5349](https://togithub.com/open-telemetry/opentelemetry-go/issues/5349))

##### Changed

- The `Shutdown` method of `Exporter` in
`go.opentelemetry.io/otel/exporters/stdout/stdouttrace` ignores the
context cancellation and always returns `nil`.
([#&#8203;5189](https://togithub.com/open-telemetry/opentelemetry-go/issues/5189))
- The `ForceFlush` and `Shutdown` methods of the exporter returned by
`New` in `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` ignore
the context cancellation and always return `nil`.
([#&#8203;5189](https://togithub.com/open-telemetry/opentelemetry-go/issues/5189))
- Apply the value length limits to `Record` attributes in
`go.opentelemetry.io/otel/sdk/log`.
([#&#8203;5230](https://togithub.com/open-telemetry/opentelemetry-go/issues/5230))
- De-duplicate map attributes added to a `Record` in
`go.opentelemetry.io/otel/sdk/log`.
([#&#8203;5230](https://togithub.com/open-telemetry/opentelemetry-go/issues/5230))
- `go.opentelemetry.io/otel/exporters/stdout/stdoutlog` won't print
timestamps when `WithoutTimestamps` option is set.
([#&#8203;5241](https://togithub.com/open-telemetry/opentelemetry-go/issues/5241))
- The `go.opentelemetry.io/otel/exporters/stdout/stdoutlog` exporter
won't print `AttributeValueLengthLimit` and `AttributeCountLimit` fields
now, instead it prints the `DroppedAttributes` field.
([#&#8203;5272](https://togithub.com/open-telemetry/opentelemetry-go/issues/5272))
- Improved performance in the `Stringer` implementation of
`go.opentelemetry.io/otel/baggage.Member` by reducing the number of
allocations.
([#&#8203;5286](https://togithub.com/open-telemetry/opentelemetry-go/issues/5286))
- Set the start time for last-value aggregates in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;5305](https://togithub.com/open-telemetry/opentelemetry-go/issues/5305))
- The `Span` in `go.opentelemetry.io/otel/sdk/trace` will record links
without span context if either non-empty `TraceState` or attributes are
provided.
([#&#8203;5315](https://togithub.com/open-telemetry/opentelemetry-go/issues/5315))
- Upgrade all dependencies of `go.opentelemetry.io/otel/semconv/v1.24.0`
to `go.opentelemetry.io/otel/semconv/v1.25.0`.
([#&#8203;5374](https://togithub.com/open-telemetry/opentelemetry-go/issues/5374))

##### Fixed

- Comparison of unordered maps for
`go.opentelemetry.io/otel/log.KeyValue` and
`go.opentelemetry.io/otel/log.Value`.
([#&#8203;5306](https://togithub.com/open-telemetry/opentelemetry-go/issues/5306))
- Fix the empty output of `go.opentelemetry.io/otel/log.Value` in
`go.opentelemetry.io/otel/exporters/stdout/stdoutlog`.
([#&#8203;5311](https://togithub.com/open-telemetry/opentelemetry-go/issues/5311))
- Split the behavior of `Recorder` in
`go.opentelemetry.io/otel/log/logtest` so it behaves as a
`LoggerProvider` only.
([#&#8203;5365](https://togithub.com/open-telemetry/opentelemetry-go/issues/5365))
- Fix wrong package name of the error message when parsing endpoint URL
in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`.
([#&#8203;5371](https://togithub.com/open-telemetry/opentelemetry-go/issues/5371))
- Identify the `Logger` returned from the global `LoggerProvider` in
`go.opentelemetry.io/otel/log/global` with its schema URL.
([#&#8203;5375](https://togithub.com/open-telemetry/opentelemetry-go/issues/5375))

##### What's Changed

- sdk/log/logtest: Add RecordFactory by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5258](https://togithub.com/open-telemetry/opentelemetry-go/pull/5258)
- log/logtest: add Record Factory by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5263](https://togithub.com/open-telemetry/opentelemetry-go/pull/5263)
- stdoutlog: Do not print timestamps when WithoutTimestamps is set by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5241](https://togithub.com/open-telemetry/opentelemetry-go/pull/5241)
- Add example for stdoutlog by [@&#8203;XSAM](https://togithub.com/XSAM)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/5242](https://togithub.com/open-telemetry/opentelemetry-go/pull/5242)
- Remove context check on stdout exporters by
[@&#8203;prasad-shirodkar](https://togithub.com/prasad-shirodkar) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5189](https://togithub.com/open-telemetry/opentelemetry-go/pull/5189)
- Fix flaky test TestBufferExporter/Shutdown/ContextCancelled by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5261](https://togithub.com/open-telemetry/opentelemetry-go/pull/5261)
- Add `otlploggrpc` exporter skeleton by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5246](https://togithub.com/open-telemetry/opentelemetry-go/pull/5246)
- build(deps): bump lycheeverse/lychee-action from 1.9.3 to 1.10.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5266](https://togithub.com/open-telemetry/opentelemetry-go/pull/5266)
- chore: fix function names in comment by
[@&#8203;dockercui](https://togithub.com/dockercui) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5262](https://togithub.com/open-telemetry/opentelemetry-go/pull/5262)
- build(deps): bump
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from
0.50.0 to 0.51.0 in /example/dice by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5265](https://togithub.com/open-telemetry/opentelemetry-go/pull/5265)
- docs: update variable name in documentation by
[@&#8203;codeboten](https://togithub.com/codeboten) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5270](https://togithub.com/open-telemetry/opentelemetry-go/pull/5270)
- Use empty resource when `RecordFactory.Resource` is `nil` by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5264](https://togithub.com/open-telemetry/opentelemetry-go/pull/5264)
- Truncate and de-duplicate log attribute values by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5230](https://togithub.com/open-telemetry/opentelemetry-go/pull/5230)
- Add changelog entry for
[#&#8203;5230](https://togithub.com/open-telemetry/opentelemetry-go/issues/5230)
by [@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5277](https://togithub.com/open-telemetry/opentelemetry-go/pull/5277)
- docs: Add otlploghttp package in exporters README.md by
[@&#8203;arukiidou](https://togithub.com/arukiidou) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5274](https://togithub.com/open-telemetry/opentelemetry-go/pull/5274)
- The stdoutlog exporter prints `DroppedAttributes` field instead of
`Limit`s fields by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5272](https://togithub.com/open-telemetry/opentelemetry-go/pull/5272)
- Test scope and resource transforms in `otlploghttp` by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5278](https://togithub.com/open-telemetry/opentelemetry-go/pull/5278)
- Add README template to semconvkit by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5279](https://togithub.com/open-telemetry/opentelemetry-go/pull/5279)
- Use docker compose in otel collector example by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5244](https://togithub.com/open-telemetry/opentelemetry-go/pull/5244)
- \[chore] dependabot updates Sun May 5 15:58:12 UTC 2024 by
[@&#8203;opentelemetrybot](https://togithub.com/opentelemetrybot) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5300](https://togithub.com/open-telemetry/opentelemetry-go/pull/5300)
- build(deps): bump codecov/codecov-action from 4.3.0 to 4.3.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5296](https://togithub.com/open-telemetry/opentelemetry-go/pull/5296)
- docs: Update Go logs status to alpha in README.md by
[@&#8203;arukiidou](https://togithub.com/arukiidou) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5299](https://togithub.com/open-telemetry/opentelemetry-go/pull/5299)
- docs: Add logs exporters in README.md by
[@&#8203;arukiidou](https://togithub.com/arukiidou) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5298](https://togithub.com/open-telemetry/opentelemetry-go/pull/5298)
- Use reflect to construct a Record in `logtest` by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5275](https://togithub.com/open-telemetry/opentelemetry-go/pull/5275)
- Fix type error in float64 instrument documentation by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5302](https://togithub.com/open-telemetry/opentelemetry-go/pull/5302)
- Fix HistogramConfig documentation by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5301](https://togithub.com/open-telemetry/opentelemetry-go/pull/5301)
- feat: opt for concatenation instead of using fmt.Sprintf by
[@&#8203;moisesvega](https://togithub.com/moisesvega) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5286](https://togithub.com/open-telemetry/opentelemetry-go/pull/5286)
- Emit attributes slices as their json representation by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5159](https://togithub.com/open-telemetry/opentelemetry-go/pull/5159)
- Refactor exemplars to not use generic argument by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5285](https://togithub.com/open-telemetry/opentelemetry-go/pull/5285)
- Upgrade default go verison to 1.22.3 by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5314](https://togithub.com/open-telemetry/opentelemetry-go/pull/5314)
- Log records dropped by the BatchProcessor by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5276](https://togithub.com/open-telemetry/opentelemetry-go/pull/5276)
- Rename synchronous instrument names in global test by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5303](https://togithub.com/open-telemetry/opentelemetry-go/pull/5303)
- chore: Configure Renovate by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5309](https://togithub.com/open-telemetry/opentelemetry-go/pull/5309)
- chore(deps): update module github.com/golang/groupcache to
v0.0.0-20210331224755-41bb18bfe9da by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5320](https://togithub.com/open-telemetry/opentelemetry-go/pull/5320)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240506185236-b8a5c65736ae by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5321](https://togithub.com/open-telemetry/opentelemetry-go/pull/5321)
- chore(deps): update module gopkg.in/check.v1 to
v1.0.0-20201130134442-10cb98267c6c by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5326](https://togithub.com/open-telemetry/opentelemetry-go/pull/5326)
- chore(deps): update module google.golang.org/genproto/googleapis/rpc
to v0.0.0-20240506185236-b8a5c65736ae by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5325](https://togithub.com/open-telemetry/opentelemetry-go/pull/5325)
- fix(deps): update module golang.org/x/exp to
v0.0.0-20240506185415-9bf2ced13842 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5327](https://togithub.com/open-telemetry/opentelemetry-go/pull/5327)
- chore(deps): update module github.com/prometheus/common to v0.53.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5332](https://togithub.com/open-telemetry/opentelemetry-go/pull/5332)
- chore(deps): update module golang.org/x/net to v0.25.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5335](https://togithub.com/open-telemetry/opentelemetry-go/pull/5335)
- fix(deps): update module google.golang.org/protobuf to v1.34.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5328](https://togithub.com/open-telemetry/opentelemetry-go/pull/5328)
- chore(deps): update module github.com/prometheus/procfs to v0.14.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5333](https://togithub.com/open-telemetry/opentelemetry-go/pull/5333)
- chore(deps): update module github.com/cespare/xxhash/v2 to v2.3.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5330](https://togithub.com/open-telemetry/opentelemetry-go/pull/5330)
- chore(deps): update module github.com/rogpeppe/go-internal to v1.12.0
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5334](https://togithub.com/open-telemetry/opentelemetry-go/pull/5334)
- fix(deps): update module github.com/golangci/golangci-lint to v1.58.1
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5340](https://togithub.com/open-telemetry/opentelemetry-go/pull/5340)
- Merge Span.AddLink tests by
[@&#8203;perhapsmaple](https://togithub.com/perhapsmaple) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5115](https://togithub.com/open-telemetry/opentelemetry-go/pull/5115)
- exporters/otlp/otlptrace: fix incorrect documentation by
[@&#8203;kevinburkesegment](https://togithub.com/kevinburkesegment) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5098](https://togithub.com/open-telemetry/opentelemetry-go/pull/5098)
- Generate `internal/retry` in `otlploggrpc` by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5313](https://togithub.com/open-telemetry/opentelemetry-go/pull/5313)
- fix(deps): update module github.com/prometheus/client_golang to
v1.19.1 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5341](https://togithub.com/open-telemetry/opentelemetry-go/pull/5341)
- chore(deps): update jaegertracing/all-in-one docker tag to v1.57 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5329](https://togithub.com/open-telemetry/opentelemetry-go/pull/5329)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.100.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5337](https://togithub.com/open-telemetry/opentelemetry-go/pull/5337)
- chore(deps): update prom/prometheus docker tag to v2.52.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5338](https://togithub.com/open-telemetry/opentelemetry-go/pull/5338)
- Move Aneurysm9 to emeritus status by
[@&#8203;Aneurysm9](https://togithub.com/Aneurysm9) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5319](https://togithub.com/open-telemetry/opentelemetry-go/pull/5319)
- Test metric aggregate times by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5323](https://togithub.com/open-telemetry/opentelemetry-go/pull/5323)
- Fix empty log body printed by stdoutlog exporter by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5311](https://togithub.com/open-telemetry/opentelemetry-go/pull/5311)
- Record links with empty span context by
[@&#8203;amanakin](https://togithub.com/amanakin) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5315](https://togithub.com/open-telemetry/opentelemetry-go/pull/5315)
- Update `RELEASING.md` to obtain steps to verify the changes for
contrib by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5284](https://togithub.com/open-telemetry/opentelemetry-go/pull/5284)
- chore(deps): update module google.golang.org/genproto/googleapis/rpc
to v0.0.0-20240509183442-62759503f434 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5345](https://togithub.com/open-telemetry/opentelemetry-go/pull/5345)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240509183442-62759503f434 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5344](https://togithub.com/open-telemetry/opentelemetry-go/pull/5344)
- Support Delta & Cumulative temporality for LastValue aggregates by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5305](https://togithub.com/open-telemetry/opentelemetry-go/pull/5305)
- sdk/log: Document how Processor and Exporter interfaces can be
extended by [@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5347](https://togithub.com/open-telemetry/opentelemetry-go/pull/5347)
- Remove dependabot version updates by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5346](https://togithub.com/open-telemetry/opentelemetry-go/pull/5346)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240513163218-0867130af1f8 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5350](https://togithub.com/open-telemetry/opentelemetry-go/pull/5350)
- chore(deps): update module google.golang.org/genproto/googleapis/rpc
to v0.0.0-20240513163218-0867130af1f8 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5351](https://togithub.com/open-telemetry/opentelemetry-go/pull/5351)
- chore(deps): update module github.com/prometheus/procfs to v0.15.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5352](https://togithub.com/open-telemetry/opentelemetry-go/pull/5352)
- chore(deps): update codecov/codecov-action action to v4.4.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5353](https://togithub.com/open-telemetry/opentelemetry-go/pull/5353)
- Add logs to dice example by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5349](https://togithub.com/open-telemetry/opentelemetry-go/pull/5349)
- log: Fix comparison of unordered map values by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5306](https://togithub.com/open-telemetry/opentelemetry-go/pull/5306)
- fix(deps): update module google.golang.org/grpc to v1.64.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5354](https://togithub.com/open-telemetry/opentelemetry-go/pull/5354)
- Fix logger provider var name in dice example by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5358](https://togithub.com/open-telemetry/opentelemetry-go/pull/5358)
- chore(deps): update module google.golang.org/genproto/googleapis/rpc
to v0.0.0-20240515191416-fc5f0ca64291 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5362](https://togithub.com/open-telemetry/opentelemetry-go/pull/5362)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240515191416-fc5f0ca64291 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5361](https://togithub.com/open-telemetry/opentelemetry-go/pull/5361)
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2
to v2.20.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5363](https://togithub.com/open-telemetry/opentelemetry-go/pull/5363)
- \[chore] Fix 2 places in log design doc by
[@&#8203;yijiem](https://togithub.com/yijiem) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5364](https://togithub.com/open-telemetry/opentelemetry-go/pull/5364)
- \[chore] Fix wrong type in DESIGN.md by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5368](https://togithub.com/open-telemetry/opentelemetry-go/pull/5368)
- Add the synchronous gauge to the metric API and SDK by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5304](https://togithub.com/open-telemetry/opentelemetry-go/pull/5304)
- Collector example: add metrics by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5283](https://togithub.com/open-telemetry/opentelemetry-go/pull/5283)
- Fix package prefix of error in otlploghttp by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5371](https://togithub.com/open-telemetry/opentelemetry-go/pull/5371)
- Split log/logtest into a recorder and a logger by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5365](https://togithub.com/open-telemetry/opentelemetry-go/pull/5365)
- Identify logger with schemaURL in global logger provider by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5375](https://togithub.com/open-telemetry/opentelemetry-go/pull/5375)
- Update all semconv use to v1.25.0 by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5374](https://togithub.com/open-telemetry/opentelemetry-go/pull/5374)
- fix(deps): update module github.com/golangci/golangci-lint to v1.58.2
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5382](https://togithub.com/open-telemetry/opentelemetry-go/pull/5382)
- chore(deps): update codecov/codecov-action action to v4.4.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5387](https://togithub.com/open-telemetry/opentelemetry-go/pull/5387)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240520151616-dc85e6b867a5 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5388](https://togithub.com/open-telemetry/opentelemetry-go/pull/5388)
- chore(deps): update benchmark-action/github-action-benchmark action to
v1.20.3 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5381](https://togithub.com/open-telemetry/opentelemetry-go/pull/5381)
- Fix exported instrument kind const value change by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5385](https://togithub.com/open-telemetry/opentelemetry-go/pull/5385)
- Release v1.27.0/v0.49.0/v0.3.0 by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5392](https://togithub.com/open-telemetry/opentelemetry-go/pull/5392)

##### New Contributors

- [@&#8203;prasad-shirodkar](https://togithub.com/prasad-shirodkar) made
their first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5189](https://togithub.com/open-telemetry/opentelemetry-go/pull/5189)
- [@&#8203;dockercui](https://togithub.com/dockercui) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5262](https://togithub.com/open-telemetry/opentelemetry-go/pull/5262)
- [@&#8203;arukiidou](https://togithub.com/arukiidou) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5274](https://togithub.com/open-telemetry/opentelemetry-go/pull/5274)
- [@&#8203;moisesvega](https://togithub.com/moisesvega) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5286](https://togithub.com/open-telemetry/opentelemetry-go/pull/5286)
- [@&#8203;renovate](https://togithub.com/renovate) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5309](https://togithub.com/open-telemetry/opentelemetry-go/pull/5309)
- [@&#8203;perhapsmaple](https://togithub.com/perhapsmaple) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5115](https://togithub.com/open-telemetry/opentelemetry-go/pull/5115)
- [@&#8203;amanakin](https://togithub.com/amanakin) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5315](https://togithub.com/open-telemetry/opentelemetry-go/pull/5315)
- [@&#8203;yijiem](https://togithub.com/yijiem) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5364](https://togithub.com/open-telemetry/opentelemetry-go/pull/5364)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.26.0...v1.27.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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-feature/flagd).

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

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-06-27 12:11:00 -07:00
Kavindu Dodanduwa 004ad083dc
chore: bump go deps to latest (#1307)
## This PR

Bumps go dependencies to latest in all components

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-05-09 10:43:46 -07:00
Kavindu Dodanduwa 219789fca8
chore: update go deps (#1279)
Update Go dependencies to their latests.

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-04-09 12:57:25 -04:00
Cole Bailey f62bc721e8
feat!: allow custom seed when using targetingKey override for fractional op (#1266)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- no longer injects flagKey as seed for fractional op when user has
provided custom targeting
- updates schema to allow `cat` and other operations so that custom
targeting can be properly seeded

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

https://github.com/open-feature/flagd/issues/1264

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

```bash
# unit tests
make test

# gherkin tests
./bin/flagd start -f file:test-harness/flags/testing-flags.json -f file:test-harness/flags/custom-ops.json -f file:test-harness/flags/evaluator-refs.json -f file:test-harness/flags/zero-flags.json
make flagd-integration-test
```

---------

Signed-off-by: Cole Bailey <cole.bailey@deliveryhero.com>
Signed-off-by: Cole Bailey <cole.bailey.one@gmail.com>
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-04-09 08:41:41 -07:00
Kavindu Dodanduwa 9d12fc2070
feat: OFREP support for flagd (#1247)
## This PR

Fixes #1245 and introduce OFREP support for flagd

OFREP service runs on 8016 by default and can simply use curl for flag
evaluations,

```shell
curl -X POST 'http://localhost:8016/ofrep/v1/evaluate/flags/myBoolFlag'
```

NOTE - This PR touch several files as I had to migrate from
`github.com/golang/mock/gomock` to `go.uber.org/mock/gomock`. This is
because https://github.com/golang/mock is no longer maintained.

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
Co-authored-by: Florian Bacher <florian.bacher@dynatrace.com>
2024-03-27 10:03:01 -07:00
Kavindu Dodanduwa b58fab3df0
chore: move packaging & isolate service implementations (#1234)
## This PR

**Background**

This is an attempt to move services and wiring logic to their end usage.

For example, having `runtime` package in the core module did not provide
any advantage. This package was only used by `flagd` and contained the
logic that binds configurations to service implementations.

Similarly, `flagd-proxy` exposed `sync` service, and having that inside
the core module seemed out of place.

**What's changed**

I have moved `runtime` package to `flagd` & specific service
implementations (flag evaluation and sync service) to their end usage.

**Why ?**

I considered this to be a pre-requisite for
https://github.com/open-feature/flagd/issues/1230. If I attempted to add
another `sync` implementation to the current core module, it would have
made the whole packaging confusing (ex:- we have two sync proto
implementations, which do not serve the same purpose. One for
flagd-proxy and the other for flagd).

After this refactoring, I could add the flagd's sync service, where it
serve buf connect and I can locate that within flagd.

Besides, we still have a core module with all the sharables. 

Consider the current packaging in the below diagram,


![image](https://github.com/open-feature/flagd/assets/8186721/ce8b2358-c136-492c-a646-178fe42d9841)


* nore - core sync is for flag data sync listeners such as files, K8s
...

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-03-05 09:52:06 -08:00
RealAnna 544234ebd9
feat!: new proto (flagd.sync.v1) for sync sources (#1214)
## This PR
- update mockgen
- update proto in core
- update to go 1.21

---------

Signed-off-by: RealAnna <anna.reale@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: RealAnna <89971034+RealAnna@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-02-20 10:20:03 -05:00
Kavindu Dodanduwa 32703464d5
chore: update test dependencies, fix for otel api change and update renovate configuration (#1188)
## This PR

Update test dependencies and add specific paths to renovate
configurations so that renovate can take care of test module updates.

Also, update to match connect API change -
https://github.com/connectrpc/otelconnect-go/releases/tag/v0.7.0

Note - `test/**` was ignored as this comes from default preset [^1] [^2]

[^1]: https://docs.renovatebot.com/presets-default/
[^2]:
https://docs.renovatebot.com/presets-default/#ignoremodulesandtests

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-05 10:39:57 -05:00
Florian Bacher e9728aae83
feat: support new flagd.evaluation and flagd.sync schemas (#1083)
Closes #1029 

This PR introduces support for the newly introduced evaluation and sync
schemas.

Supporting both the old and new schemas involves some duplication, but I
tried to keep it as minimal as possible. I'm of course open for
suggestions for any ideas on how to make this simpler :)

See reasoning for new naming
[here](https://github.com/open-feature/flagd/issues/948).

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-21 10:20:01 -05:00
Kavindu Dodanduwa 3ec8cf6704
chore: update to go-sdk 1.9.0 (#1080)
## This PR

Update test dependencies to go-sdk 1.9.0

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-12-12 11:51:06 -08:00
Kavindu Dodanduwa a94b6399e5
chore: move e2e tests to test (#1005)
## This PR

Attempts to fix https://github.com/open-feature/flagd/issues/1004

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-15 09:27:40 -05:00
odubajDT ed5e6e5f3e
feat(flagd-proxy): introduce zero-downtime (#752)
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Florian Bacher <florian.bacher@dynatrace.com>
2023-07-26 08:41:30 +02:00
odubajDT 7df8d3994b
feat(flagD): support zero downtime during upgrades (#731)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- implements graceful shutdown of flagD, which leads to zero-downtime ->
this means disabling the readiness probes and sending a shutdown event
to all connected SDKs
- create example manifests for deploying flagD as a standalone
Deployment
- create Makefile entry to deploy flagD to cluster
- create ZD test with README description how to run
- create Makefile entry to run ZD test

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #728 

### Follow-up Tasks
- running ZD test as part of CI
https://github.com/open-feature/flagd/issues/732

---------

Signed-off-by: odubajDT <ondrej.dubaj@dynatrace.com>
2023-07-13 10:09:18 -04:00