Qyl.Telemetry.SemanticConventions
4.4.0
See the version list below for details.
dotnet add package Qyl.Telemetry.SemanticConventions --version 4.4.0
NuGet\Install-Package Qyl.Telemetry.SemanticConventions -Version 4.4.0
<PackageReference Include="Qyl.Telemetry.SemanticConventions" Version="4.4.0" />
<PackageVersion Include="Qyl.Telemetry.SemanticConventions" Version="4.4.0" />
<PackageReference Include="Qyl.Telemetry.SemanticConventions" />
paket add Qyl.Telemetry.SemanticConventions --version 4.4.0
#r "nuget: Qyl.Telemetry.SemanticConventions, 4.4.0"
#:package Qyl.Telemetry.SemanticConventions@4.4.0
#addin nuget:?package=Qyl.Telemetry.SemanticConventions&version=4.4.0
#tool nuget:?package=Qyl.Telemetry.SemanticConventions&version=4.4.0
Qyl.Telemetry.SemanticConventions
.NET packages generated from pinned OpenTelemetry semantic-convention registries.
The current registry projection combines the pinned core registry with the separately
pinned development GenAI registry. Version.props is the single
source of truth for those upstream pins.
This is the one artifact both halves of qyl share: what an application emits and what the collector recognizes are generated from the same resolved registry, so qyl cannot emit an attribute name its own collector does not know.
Packages
| Package | Contents |
|---|---|
Qyl.Telemetry.SemanticConventions |
Stable and deprecated attribute-key constants |
.Incubating |
Development and unstable constants, the complete resolved registry, and upstream GenAI payload schemas |
.SourceGeneration |
Roslyn generators for typed telemetry declarations |
.Analyzers |
Preview diagnostics and code fixes; built and documented, but excluded from stable releases |
dotnet add package Qyl.Telemetry.SemanticConventions
The three supported packages are published on
nuget.org; the package version is defined in
Directory.Build.props. .Analyzers is preview-only and is
not among them. Incubating APIs intentionally track unstable upstream conventions and
may change between minor releases.
Coming from Qyl.OpenTelemetry.SemanticConventions? These are new package IDs, not
new versions of the old ones. The Qyl.OpenTelemetry.SemanticConventions* IDs stop at
4.0.0 and receive no further releases; change to the Qyl.Telemetry.* family. The new
family began at 1.0.0 and now follows its own monotonic release line.
Choosing between the compiled packages and the source generator
The registry ships in two consumption modes; pick by what you are building.
Libraries reference the compiled packages (Qyl.Telemetry.SemanticConventions,
.Incubating). A library needs one pinned registry version across its whole package
family and a stable public constant surface to alias against
(Qyl.Telemetry.AutoInstrumentation does this through its internal
QylSemanticAttributes facade). Because the constants are const string, the
compiler inlines them at every use site — the reference costs effectively nothing
at runtime.
Applications use .SourceGeneration. Declaring
[SemanticConventionAttributes("http")] internal static partial class HttpAttributes;
emits only the requested groups directly into the consuming assembly — internal
visibility, no package in the dependency chain, tree-shaken by construction
(qyl's Qyl.Run.Workload consumes it this way).
Do not switch a library from the compiled packages to the generator: that moves the registry pin from per-package-release to per-consumer-compilation and floods the library's own generator snapshots with foreign generated files.
Generation pipeline
pinned OpenTelemetry registries
|
v
generate.sh -> resolved-registry.json
|
+----> emit_attributes.py ----> stable/incubating C# constants
+----> emit_registry_resources.py -> public registry + GenAI JSON Schemas
+----> emit_analyzer_registry.py --> registry-derived analyzer facts
+----> Roslyn generators -----> consumer telemetry helpers
+----> emit_typespec_keys.py -> qyl-api-schema key projection
+----> DocsGenerator ---------> analyzer documentation
The checked-in C# constants are emitted deterministically from the Weaver-resolved registry; they are not handwritten and are not emitted directly by Weaver. Generated files carry their owning input/generator and are guarded by build hashes or generated documentation checks.
The incubating package exposes the complete source-attributed resolved model through
SemanticConventionRegistry.OpenResolvedRegistry(). The eight structured GenAI
type: any attributes expose their exact upstream JSON Schemas through
TryOpenPayloadSchema. These raw schemas are the payload contract; the package does
not invent parallel DTOs or a partial JSON Schema implementation.
The TypeSpec projection contains semantic-convention key names only. Qyl's
client-visible product requests, responses, stream events, and errors remain owned by
qyl-api-schema.
Analyzer documentation
The analyzer project exposes a generated rule catalog. Qyl does not consume it, so it
remains preview-only and is not included in stable package builds.
PackPreviewAnalyzers=true enables an explicit prerelease pack; the build rejects a
stable analyzer version.
The generated analyzer reference includes the
index,
migration catalog, and
per-rule pages. Consumer severity can be configured through
OtelSemConvAnalysisMode:
<PropertyGroup>
<OtelSemConvAnalysisMode>AllAsErrors</OtelSemConvAnalysisMode>
</PropertyGroup>
Supported values are Default, AllAsErrors, and Disabled. If the property is
unset, the consumer's editorconfig remains authoritative.
Build and test
dotnet build Qyl.Telemetry.SemanticConventions.slnx -c Release
dotnet run --project tests/Qyl.Telemetry.SemanticConventions.Pipeline.Tests -c Release
dotnet run --project tests/Qyl.Telemetry.SemanticConventions.SourceGeneration.Tests -c Release
./build.sh VerifyAttributesHash
python3 src/Qyl.Telemetry.SemanticConventions.SourceGeneration/scripts/verify_deprecated_catalog.py
python3 src/Qyl.Telemetry.SemanticConventions.SourceGeneration/scripts/emit_analyzer_registry.py --check
python3 src/Qyl.Telemetry.SemanticConventions.SourceGeneration/scripts/emit_registry_resources.py --check
Publishing uses GitHub Actions OIDC trusted publishing. No long-lived NuGet API key is stored in the repository.
License
Apache-2.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
net10.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Qyl.Telemetry.SemanticConventions:
| Package | Downloads |
|---|---|
|
Qyl.Telemetry.SemanticConventions.Incubating
OpenTelemetry semantic-conventions incubating surface, generated by Weaver from the qyl registry (registry/manifest.yaml) and shipped pre-built: every stability tier of the attribute keys, the typed Activity setter extensions, the first-class metric/span/event/entity definitions, the qyl-owned instrument names, and the collector's attribute mapping table. These keys are subject to breaking changes between minor versions — opt in deliberately. |
|
|
Qyl.Telemetry.AutoInstrumentation
Managed .NET 10 and NativeAOT instrumentation using Roslyn interceptors, Activity/Meter primitives, and public runtime hooks. No CLR profiler or runtime IL rewriting. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 9.4.0 | 297 | 9/11/2026 |
| 9.3.1 | 49 | 9/11/2026 |
| 9.3.0 | 1,894 | 9/7/2026 |
| 9.2.0 | 636 | 9/7/2026 |
| 9.1.0 | 414 | 9/7/2026 |
| 9.0.0 | 251 | 9/7/2026 |
| 8.1.0 | 433 | 9/4/2026 |
| 8.0.1 | 430 | 9/4/2026 |
| 8.0.0 | 447 | 9/3/2026 |
| 7.1.1 | 409 | 9/2/2026 |
| 7.1.0 | 103 | 9/2/2026 |
| 7.0.0 | 437 | 9/2/2026 |
| 6.0.0 | 286 | 8/28/2026 |
| 5.2.0 | 110 | 8/22/2026 |
| 5.1.0 | 97 | 8/22/2026 |
| 5.0.0 | 94 | 8/21/2026 |
| 4.5.0 | 97 | 8/21/2026 |
| 4.4.0 | 1,098 | 8/21/2026 |
| 4.3.0 | 379 | 8/20/2026 |
| 4.2.0 | 269 | 8/14/2026 |