This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
devopscritical PriorityID: opentelemetry-ebpf-continuous-context-propagation-standard

OpenTelemetry eBPF Kernel-Space Continuous Context Propagation Invariants

Enforces deterministic W3C trace context propagation and network topology discovery via eBPF kernel probes without runtime SDK overhead. Guards against context severance at user-space TLS encryption boundaries, thread scheduler asynchronous hops, and duplicate traceparent injection collisions.

Prohibited Anti-Pattern: Fragmented Distributed Traces and Context Severance Caused by Uncoordinated TLS Socket Probing and Manual Header Mutation

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: OpenTelemetry eBPF Kernel-Space Continuous Context Propagation Invariants - Enforces deterministic W3C trace context propagation and network topology discovery via eBPF kernel probes without runtime SDK overhead. Guards against context severance at user-space TLS encryption boundaries, thread scheduler asynchronous hops, and duplicate traceparent injection collisions.
globs: k8s/**/*.yaml, deploy/**/*.{yaml,yml}, src/**/*.{ts,js,go,rs,py}, monitoring/**/*.{yaml,yml}
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/opentelemetry-ebpf-continuous-context-propagation-standard"
---

# OpenTelemetry eBPF Kernel-Space Continuous Context Propagation Invariants

> **Severity**: CRITICAL | **Category**: devops
> **Anti-Pattern Warning**: Fragmented Distributed Traces and Context Severance Caused by Uncoordinated TLS Socket Probing and Manual Header Mutation

## System Constraints
You are a Principal Architect enforcing OpenTelemetry zero-overhead observability via eBPF continuous context propagation. You must ensure that kernel-space probes (kprobes/tracepoints on tcp_sendmsg/sock_recvmsg) coordinate seamlessly with user-space probes (uprobes on libssl, BoringSSL, Go crypto/tls) and application network clients to preserve W3C Trace Context (traceparent/tracestate) across polyglot microservice topologies.

## Strict Guidelines
- Engineers MUST configure eBPF agents to hook uprobes into user-space TLS libraries (e.g., OpenSSL, BoringSSL, Go runtime tls) prior to encryption, preventing uninstrumented encrypted payloads at raw socket kprobes.
- Engineers MUST NOT manually mutate, discard, or generate pseudo-random W3C traceparent headers in application code when eBPF kernel-space auto-instrumentation is active.
- Services MUST ensure asynchronous task boundaries and background worker threads propagate the active parent span context down to egress network call dispatchers to prevent eBPF uprobes from spawning orphaned root spans.
- Deployments MUST mount cgroupv2 hierarchies and host PID namespaces with CAP_BPF, CAP_PERFMON, and CAP_NET_ADMIN capabilities to ensure deterministic socket-to-pod metadata correlation.
- Components NEVER drop context headers on downstream HTTP/gRPC requests, guaranteeing that incoming W3C traceparent headers are passed unmodified through reverse proxies and service meshes.

## Bad vs Good Implementations
### TypeScript HTTP Dispatcher: Manual Context Tampering vs. eBPF Transparent Propagation

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Overwriting the traceparent with an ad-hoc generated ID severs the continuous trace chain established by eBPF kprobes on socket handshakes. It creates duplicate, disconnected trace roots and strips existing tracestate metadata.
```typescript
import http from 'node:http';
import crypto from 'node:crypto';

export function dispatchOrderEvent(payload: Record<string, unknown>, host: string) {
  const data = JSON.stringify(payload);
  
  // ANTI-PATTERN: Generating fragmented synthetic trace context in user-space
  // overrides and corrupts continuous eBPF kernel-space W3C socket context propagation.
  const syntheticTraceId = crypto.randomBytes(16).toString('hex');
  const syntheticSpanId = crypto.randomBytes(8).toString('hex');
  const brokenTraceparent = `00-${syntheticTraceId}-${syntheticSpanId}-01`;

  const req = http.request({
    hostname: host,
    port: 443,
    path: '/api/v1/orders',
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Content-Length': Buffer.byteLength(data),
      'traceparent': brokenTraceparent // Breaks kernel-level uprobe/kprobe correlation
    }
  });

  req.write(data);
  req.end();
}
```

#### Production Standard (Correct)
> **Standard**: Transparently forwards active W3C traceparent and tracestate headers across async hops, enabling eBPF user-space uprobes and kernel socket hooks to continuously stitch request spans without generating broken or orphaned traces.
```typescript
import http from 'node:http';
import { AsyncLocalStorage } from 'node:async_hooks';

interface TracingContext {
  traceparent?: string;
  tracestate?: string;
}

export const tracingStorage = new AsyncLocalStorage<TracingContext>();

export function dispatchOrderEvent(payload: Record<string, unknown>, host: string) {
  const data = JSON.stringify(payload);
  const currentContext = tracingStorage.getStore();

  const headers: Record<string, string | number> = {
    'Content-Type': 'application/json',
    'Content-Length': Buffer.byteLength(data)
  };

  // INVARIANT: Preserve existing inbound W3C context across async boundaries
  // allowing eBPF uprobes (TLS) and kprobes (TCP) to continuously trace transparently.
  if (currentContext?.traceparent) {
    headers['traceparent'] = currentContext.traceparent;
  }
  if (currentContext?.tracestate) {
    headers['tracestate'] = currentContext.tracestate;
  }

  const req = http.request({
    hostname: host,
    port: 443,
    path: '/api/v1/orders',
    method: 'POST',
    headers
  });

  req.write(data);
  req.end();
}
```

Architectural Specification & Invariant Rationale

Architectural Invariant Design: OpenTelemetry eBPF Kernel-Space Continuous Context Propagation Invariants

OpenTelemetry eBPF Kernel-Space Continuous Context Propagation Invariants defines an industrial-grade behavioral standard for devops engineering. Enforces deterministic W3C trace context propagation and network topology discovery via eBPF kernel probes without runtime SDK overhead. Guards against context severance at user-space TLS encryption boundaries, thread scheduler asynchronous hops, and duplicate traceparent injection collisions. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Fragmented Distributed Traces and Context Severance Caused by Uncoordinated TLS Socket Probing and Manual Header Mutation Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftFragmented Distributed Traces and Context Severance Caused by Uncoordinated TLS Socket Probing and Manual Header MutationCritical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST configure eBPF agents to hook uprobes into user-space TLS libraries (e.g., OpenSSL, BoringSSL, Go runtime tls) prior to encryption, preventing uninstrumented encrypted payloads at raw socket kprobes.

Engineers MUST configure eBPF agents to hook uprobes into user-space TLS libraries (e.g., OpenSSL, BoringSSL, Go runtime tls) prior to encryption, preventing uninstrumented encrypted payloads at raw socket kprobes.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NOT manually mutate, discard, or generate pseudo-random W3C traceparent headers in application code when eBPF kernel-space auto-instrumentation is active.

Engineers MUST NOT manually mutate, discard, or generate pseudo-random W3C traceparent headers in application code when eBPF kernel-space auto-instrumentation is active.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

Services MUST ensure asynchronous task boundaries and background worker threads propagate the active parent span context down to egress network call dispatchers to prevent eBPF uprobes from spawning orphaned root spans.

Services MUST ensure asynchronous task boundaries and background worker threads propagate the active parent span context down to egress network call dispatchers to prevent eBPF uprobes from spawning orphaned root spans.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Deployments MUST mount cgroupv2 hierarchies and host PID namespaces with CAP_BPF, CAP_PERFMON, and CAP_NET_ADMIN capabilities to ensure deterministic socket-to-pod metadata correlation.

Deployments MUST mount cgroupv2 hierarchies and host PID namespaces with CAP_BPF, CAP_PERFMON, and CAP_NET_ADMIN capabilities to ensure deterministic socket-to-pod metadata correlation.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

Components NEVER drop context headers on downstream HTTP/gRPC requests, guaranteeing that incoming W3C traceparent headers are passed unmodified through reverse proxies and service meshes.

Components NEVER drop context headers on downstream HTTP/gRPC requests, guaranteeing that incoming W3C traceparent headers are passed unmodified through reverse proxies and service meshes.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is OpenTelemetry eBPF Kernel-Space Continuous Context Propagation Invariants critical for AI coding assistants?

Enforces deterministic W3C trace context propagation and network topology discovery via eBPF kernel probes without runtime SDK overhead. Guards against context severance at user-space TLS encryption boundaries, thread scheduler asynchronous hops, and duplicate traceparent injection collisions. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Fragmented Distributed Traces and Context Severance Caused by Uncoordinated TLS Socket Probing and Manual Header Mutation) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

OpenTelemetry