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

[chore] Move Feature Flag attributes to the registry #842

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ body:
- area:error
- area:exception
- area:faas
- area:feature-flag
- area:host
- area:http
- area:k8s
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/change_proposal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ body:
- area:error
- area:exception
- area:faas
- area:feature-flag
- area:host
- area:http
- area:k8s
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/new-conventions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ body:
- area:error
- area:exception
- area:faas
- area:feature-flag
- area:host
- area:http
- area:k8s
Expand Down
1 change: 1 addition & 0 deletions docs/attributes-registry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ Currently, the following namespaces exist:
* [Error](error.md)
* [Exception](exception.md)
* [FaaS](faas.md)
* [Feature Flag](feature-flag.md)
* [Host](host.md)
* [HTTP](http.md)
* [K8s](k8s.md)
Expand Down
19 changes: 19 additions & 0 deletions docs/attributes-registry/feature-flag.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Feature Flag

## Feature Flag Attributes
<!-- semconv registry.feature_flag(omit_requirement_level) -->
| Attribute | Type | Description | Examples |
|---|---|---|---|
| `feature_flag.key` | string | The unique identifier of the feature flag. | `logo-color` |
| `feature_flag.provider_name` | string | The name of the service provider that performs the flag evaluation. | `Flag Manager` |
| `feature_flag.variant` | string | SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of the value can be used. [1] | `red`; `true`; `on` |

**[1]:** A semantic identifier, commonly referred to as a variant, provides a means
for referring to a value without including the value itself. This can
provide additional context for understanding the meaning behind a value.
For example, the variant `red` maybe be used for the value `#c05543`.

A stringified version of the value can be used in situations where a
semantic identifier is unavailable. String representation of the value
should be determined by the implementer.
<!-- endsemconv -->
6 changes: 3 additions & 3 deletions docs/feature-flags/feature-flags-logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ The event name MUST be `feature_flag`.

| Attribute | Type | Description | Examples | Requirement Level |
|---|---|---|---|---|
| [`feature_flag.key`](feature-flags-spans.md) | string | The unique identifier of the feature flag. | `logo-color` | Required |
| [`feature_flag.provider_name`](feature-flags-spans.md) | string | The name of the service provider that performs the flag evaluation. | `Flag Manager` | Recommended |
| [`feature_flag.variant`](feature-flags-spans.md) | string | SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of the value can be used. [1] | `red`; `true`; `on` | Recommended |
| [`feature_flag.key`](../attributes-registry/feature-flag.md) | string | The unique identifier of the feature flag. | `logo-color` | Recommended |
| [`feature_flag.provider_name`](../attributes-registry/feature-flag.md) | string | The name of the service provider that performs the flag evaluation. | `Flag Manager` | Recommended |
| [`feature_flag.variant`](../attributes-registry/feature-flag.md) | string | SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of the value can be used. [1] | `red`; `true`; `on` | Recommended |

**[1]:** A semantic identifier, commonly referred to as a variant, provides a means
for referring to a value without including the value itself. This can
Expand Down
6 changes: 3 additions & 3 deletions docs/feature-flags/feature-flags-spans.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ The event name MUST be `feature_flag`.

| Attribute | Type | Description | Examples | Requirement Level |
|---|---|---|---|---|
| `feature_flag.key` | string | The unique identifier of the feature flag. | `logo-color` | Required |
| `feature_flag.provider_name` | string | The name of the service provider that performs the flag evaluation. | `Flag Manager` | Recommended |
| `feature_flag.variant` | string | SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of the value can be used. [1] | `red`; `true`; `on` | Recommended |
| [`feature_flag.key`](../attributes-registry/feature-flag.md) | string | The unique identifier of the feature flag. | `logo-color` | Required |
| [`feature_flag.provider_name`](../attributes-registry/feature-flag.md) | string | The name of the service provider that performs the flag evaluation. | `Flag Manager` | Recommended |
| [`feature_flag.variant`](../attributes-registry/feature-flag.md) | string | SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of the value can be used. [1] | `red`; `true`; `on` | Recommended |

**[1]:** A semantic identifier, commonly referred to as a variant, provides a means
for referring to a value without including the value itself. This can
Expand Down
2 changes: 1 addition & 1 deletion model/logs/log-feature_flag.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
groups:
- id: log-feature_flag
type: event
prefix: feature_flag
name: feature_flag
brief: >
This document defines attributes for feature flag evaluations
represented using Log Records.
Expand Down
33 changes: 33 additions & 0 deletions model/registry/feature-flag.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
groups:
- id: registry.feature_flag
prefix: feature_flag
type: attribute_group
brief: >
This document defines attributes for Feature Flags.
attributes:
- id: key
type: string
stability: experimental
brief: The unique identifier of the feature flag.
examples: ["logo-color"]
- id: provider_name
type: string
stability: experimental
brief: The name of the service provider that performs the flag evaluation.
examples: ["Flag Manager"]
- id: variant
type: string
stability: experimental
examples: ["red", "true", "on"]
brief: >
SHOULD be a semantic identifier for a value. If one is unavailable, a
stringified version of the value can be used.
note: |-
A semantic identifier, commonly referred to as a variant, provides a means
for referring to a value without including the value itself. This can
provide additional context for understanding the meaning behind a value.
For example, the variant `red` maybe be used for the value `#c05543`.

A stringified version of the value can be used in situations where a
semantic identifier is unavailable. String representation of the value
should be determined by the implementer.
31 changes: 4 additions & 27 deletions model/trace/feature-flag.yaml
Original file line number Diff line number Diff line change
@@ -1,37 +1,14 @@
groups:
- id: feature_flag
prefix: feature_flag
type: event
name: feature_flag
brief: >
This semantic convention defines the attributes used to represent a
feature flag evaluation as an event.
attributes:
- id: key
type: string
stability: experimental
- ref: feature_flag.key
requirement_level: required
brief: The unique identifier of the feature flag.
examples: ["logo-color"]
- id: provider_name
type: string
stability: experimental
- ref: feature_flag.provider_name
requirement_level: recommended
brief: The name of the service provider that performs the flag evaluation.
examples: ["Flag Manager"]
- id: variant
type: string
stability: experimental
- ref: feature_flag.variant
requirement_level: recommended
examples: ["red", "true", "on"]
brief: >
SHOULD be a semantic identifier for a value. If one is unavailable, a
stringified version of the value can be used.
note: |-
A semantic identifier, commonly referred to as a variant, provides a means
for referring to a value without including the value itself. This can
provide additional context for understanding the meaning behind a value.
For example, the variant `red` maybe be used for the value `#c05543`.

A stringified version of the value can be used in situations where a
semantic identifier is unavailable. String representation of the value
should be determined by the implementer.
Loading