|
59 | 59 | ## [Documentation] |
60 | 60 |
|
61 | 61 | N/A |
| 62 | + |
| 63 | +## Semantic conventions |
| 64 | + |
| 65 | +### Header files "semantic_conventions.h" |
| 66 | + |
| 67 | +#### Announcement (semantic_conventions.h) |
| 68 | + |
| 69 | +Deprecation is announced as part of the migration to weaver: |
| 70 | + |
| 71 | +* `Version:` release following opentelemetry-cpp 1.17.0 |
| 72 | +* `Date:` Nov 9, 2024 |
| 73 | +* `PR:` https://github.com/open-telemetry/opentelemetry-cpp/pull/3105 |
| 74 | + |
| 75 | +#### Motivation (semantic_conventions.h) |
| 76 | + |
| 77 | +The header files for semantic conventions are generated automatically. |
| 78 | +The tooling to generate these files is changing: |
| 79 | + |
| 80 | +* before, the build-tool repository was used |
| 81 | +* now, the weaver repository is used |
| 82 | + |
| 83 | +Changes in tooling allows to generate code that is better organized, |
| 84 | +with dedicated header files per group of semantic conventions, |
| 85 | +instead of a single header file for everything. |
| 86 | + |
| 87 | +#### Scope (semantic_conventions.h) |
| 88 | + |
| 89 | +The following files: |
| 90 | + |
| 91 | +* `api/include/opentelemetry/trace/semantic_conventions.h` |
| 92 | +* `sdk/include/opentelemetry/sdk/resource/semantic_conventions.h` |
| 93 | + |
| 94 | +are now deprecated. |
| 95 | + |
| 96 | +They correspond to semantic conventions v1.27.0, |
| 97 | +and will no longer be maintained up to date. |
| 98 | + |
| 99 | +These files will be removed in the future. |
| 100 | + |
| 101 | +#### Mitigation (semantic_conventions.h) |
| 102 | + |
| 103 | +Two things have changed: |
| 104 | + |
| 105 | +* the header file to use |
| 106 | +* the symbol name to use. |
| 107 | + |
| 108 | +Before, the semantic convention for `url.full` was: |
| 109 | + |
| 110 | +* declared in file `semantic_conventions.h` |
| 111 | +* declared as symbol `SemanticConventions::kUrlFull` |
| 112 | + |
| 113 | +Now, the `url.full` convention, which is part or the `url` group, is: |
| 114 | + |
| 115 | +* declared in file `semconv/url_attributes.h` |
| 116 | +* declared as symbol `semconv::url::kUrlFull` |
| 117 | + |
| 118 | +Application code that uses semantic conventions must be adjusted |
| 119 | +accordingly. |
| 120 | + |
| 121 | +In addition, semantic conventions that are not marked as stable |
| 122 | +are generated in a different header file, placed under directory |
| 123 | +`incubating`, to better separate stable and non stable code. |
| 124 | + |
| 125 | +For example, file `semconv/incubating/url_attributes.h` |
| 126 | +defines `semconv::url::kUrlDomain`, |
| 127 | +which is not marked as stable in semconv v1.27.0 |
| 128 | + |
| 129 | +#### Planned removal (semantic_conventions.h) |
| 130 | + |
| 131 | +The following files: |
| 132 | + |
| 133 | +* `api/include/opentelemetry/trace/semantic_conventions.h` |
| 134 | +* `sdk/include/opentelemetry/sdk/resource/semantic_conventions.h` |
| 135 | + |
| 136 | +will be eventually removed. |
| 137 | + |
| 138 | +No date is given now, this can happen at the earliest for release 1.19.0: |
| 139 | + |
| 140 | +* opentelemetry-cpp v1.17.0 only contain old header files |
| 141 | +* opentelemetry-cpp v1.18.0 will contain both old and new header files |
| 142 | +* opentelemetry-cpp v1.19.0 may only contain new header files (removing old) |
| 143 | + |
| 144 | +This allows a full release cycle for applications to adjust. |
| 145 | + |
0 commit comments