This convention is the TC-1..TC-14 checklist used to grade NetScript package and plugin telemetry. It is the contract for the beta.5 telemetry revamp; follow-on parity issues raise each package to this checklist without redefining the rules.
NetScript instrumentation sets and documents the OpenTelemetry opt-in value:
OTEL_SEMCONV_STABILITY_OPT_IN=messaging,rpc,gen_ai_latest_experimental
Use OpenTelemetry semantic-convention attribute keys verbatim when a domain exists. NetScript-owned
attributes use the single proprietary root netscript.*. The beta.5 migration emits duplicate
deprecated aliases for one beta under the dup window, then the bare aliases are removed.
Messaging spans use the current OpenTelemetry messaging registry for upstream concepts:
messaging.system, messaging.destination.name, messaging.operation.name,
messaging.operation.type, messaging.message.id, messaging.message.conversation_id,
messaging.message.body.size, and messaging.message.envelope.size. NetScript queue concepts that
do not exist in the upstream registry live under netscript.messaging.*, including
netscript.messaging.destination.kind, netscript.messaging.message.delivery_count,
netscript.messaging.message.priority, netscript.messaging.message.delay_ms,
netscript.messaging.destination.dlq, and netscript.messaging.requeue.
The cross-domain correlation floor is netscript.correlation.id. Builders that receive a
correlation input emit that key, and messaging builders also map the same value to the upstream
conversation key messaging.message.conversation_id.
<domain>.<operation> from the central SpanNames map. RPC and GenAI
keep their upstream semantic-convention span-name shapes.end().started, completed, failed,
state.before, and state.after.messaging.*, rpc.*, gen_ai.*, db.*, http.*, server.*, and error.type.netscript.*.netscript.correlation.id, outcome/status, and
retry/attempt fields when the operation is retriable.traceparent and tracestate are extracted on ingress and injected on egress.TRACEPARENT, TRACESTATE, and
CORRELATION_ID.OTEL_DENO; disabled telemetry returns no-op tracers at
the facade, not call-site branches.@netscript/telemetry/instrumentation instead of private tracer
facades.Use @netscript/telemetry/attributes builders instead of hand-typed keys:
createJobAttributescreateMessagingAttributescreateSagaAttributescreateTriggerAttributescreateExecutionAttributescreateGenAiAttributesDuring beta.5, builders emit canonical netscript.* keys plus deprecated bare aliases where the old
surface already shipped. New code should read and assert the canonical key.