Skip to content

Commit

Permalink
[chore] Move Feature Flag attributes to the registry (#842)
Browse files Browse the repository at this point in the history
  • Loading branch information
joaopgrassi authored Mar 27, 2024
1 parent ae4005e commit 6bbc74d
Show file tree
Hide file tree
Showing 10 changed files with 67 additions and 34 deletions.
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.

0 comments on commit 6bbc74d

Please sign in to comment.