Qyl.OpenTelemetry.SemanticConventions 4.0.0

dotnet add package Qyl.OpenTelemetry.SemanticConventions --version 4.0.0
                    
NuGet\Install-Package Qyl.OpenTelemetry.SemanticConventions -Version 4.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Qyl.OpenTelemetry.SemanticConventions" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Qyl.OpenTelemetry.SemanticConventions" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Qyl.OpenTelemetry.SemanticConventions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Qyl.OpenTelemetry.SemanticConventions --version 4.0.0
                    
#r "nuget: Qyl.OpenTelemetry.SemanticConventions, 4.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Qyl.OpenTelemetry.SemanticConventions@4.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Qyl.OpenTelemetry.SemanticConventions&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Qyl.OpenTelemetry.SemanticConventions&version=4.0.0
                    
Install as a Cake Tool

Qyl.OpenTelemetry.SemanticConventions

.NET packages generated from pinned OpenTelemetry semantic-convention registries. The current registry projection targets core semantic conventions 1.43.0 plus the separately pinned development GenAI registry.

Packages

Package Contents
Qyl.OpenTelemetry.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

The supported package set is published on nuget.org. Incubating APIs intentionally track unstable upstream conventions and may change between minor releases.

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.OpenTelemetry.SemanticConventions, .Incubating). A library needs one pinned registry version across its whole package family and a stable public constant surface to alias against (Qyl.OpenTelemetry.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 defines 48 rules. Qyl does not consume it, and seven rules have executable behavior tests. It therefore 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.OpenTelemetry.SemanticConventions.slnx -c Release
dotnet run --project tests/Qyl.OpenTelemetry.SemanticConventions.Pipeline.Tests -c Release
dotnet run --project tests/Qyl.OpenTelemetry.SemanticConventions.SourceGeneration.Tests -c Release
./build.sh VerifyAttributesHash
python3 src/Qyl.OpenTelemetry.SemanticConventions.SourceGeneration/scripts/verify_deprecated_catalog.py
python3 src/Qyl.OpenTelemetry.SemanticConventions.SourceGeneration/scripts/emit_analyzer_registry.py --check
python3 src/Qyl.OpenTelemetry.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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • net10.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Qyl.OpenTelemetry.SemanticConventions:

Package Downloads
Qyl.OpenTelemetry.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
4.0.0 100 7/25/2026
3.5.1 3,215 7/14/2026
3.5.0 216 7/13/2026
3.4.1 84 7/14/2026
3.4.0 1,010 7/11/2026
3.3.0 135 7/8/2026
3.2.0 249 7/7/2026
3.1.0 489 6/26/2026
3.0.2 2,029 6/24/2026
3.0.1 2,137 6/4/2026
3.0.0 617 5/25/2026
2.0.1 110 5/25/2026
2.0.0 264 5/23/2026
1.11.0 290 4/24/2026