Skip to content
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
12 changes: 12 additions & 0 deletions .config/mise/tasks/semconv/check
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh
#MISE description="Validate the semantic convention registry and generated contract"

set -eu

root=$(CDPATH='' cd -- "$(dirname -- "$0")/../../../.." && pwd)
expected="$root/trogon-eventstore/src/observability"
generated=$(mktemp -d)
trap 'rm -rf "$generated"' EXIT HUP INT TERM

"$root/.config/mise/tasks/semconv/generate" "$generated"
diff -u "$expected/generated.rs" "$generated/generated.rs"
28 changes: 28 additions & 0 deletions .config/mise/tasks/semconv/generate
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh
#MISE description="Generate the OpenTelemetry semantic convention contract"

set -eu

root=$(CDPATH='' cd -- "$(dirname -- "$0")/../../../.." && pwd)
output=${1:-"$root/trogon-eventstore/src/observability"}
registry_version=$(sed -n '1p' "$root/otel/semconv/registry-version")
registry="$root/otel/semconv/registry"
official_registry="https://github.com/open-telemetry/semantic-conventions@${registry_version}[model]"
staging=$(mktemp -d)
trap 'rm -rf "$staging"' EXIT HUP INT TERM

grep -Fqx " registry_path: $official_registry" "$registry/manifest.yaml"

weaver registry check \
--future \
--registry "$registry"

weaver registry generate rust "$staging" \
--future \
--registry "$registry" \
--templates "$root/otel/semconv/templates"

test -f "$staging/observability.rs"
rustfmt --edition 2024 "$staging/observability.rs"
mkdir -p "$output"
mv "$staging/observability.rs" "$output/generated.rs"
8 changes: 8 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,14 @@ jobs:
rustup update stable
rustup default stable
rustup component add clippy rustfmt
- name: Install repository tools
uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: 2026.8.2
install_args: github:open-telemetry/weaver
cache: false
- name: Verify semantic conventions
run: mise run --skip-tools semconv:check
- name: Check formatting
run: cargo fmt --all -- --check
- name: Run Clippy
Expand Down
32 changes: 32 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[tools]
"github:open-telemetry/weaver" = "0.24.2"
1 change: 1 addition & 0 deletions otel/semconv/registry-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v1.43.0
6 changes: 6 additions & 0 deletions otel/semconv/registry/manifest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: trogon_eventstore_client
description: Semantic conventions for TrogonEventStore client telemetry.
schema_url: https://trogondb.com/schemas/0.1.0
dependencies:
- schema_url: https://opentelemetry.io/schemas/1.43.0
registry_path: https://github.com/open-telemetry/semantic-conventions@v1.43.0[model]
Loading
Loading