Core Concepts
Understanding Telegen’s architecture and terminology.
Deployment Modes
Telegen operates in two distinct modes:
Agent Mode
Agent mode is for local host/container observability. Deploy directly on each node you want to monitor.
graph LR
A[Host/Container] --> B[Telegen Agent]
B --> C[eBPF Instrumentation]
B --> D[Process Discovery]
B --> E[Log Collection]
C --> F[OTLP Export]
D --> F
E --> F
F --> G[OTel Collector]
Capabilities:
- eBPF-based kernel instrumentation
- Process discovery and runtime detection
- Continuous profiling (CPU, memory, mutex)
- GPU/CUDA monitoring
- Local log collection
- Container and Kubernetes enrichment
Deployment: DaemonSet (Kubernetes), systemd service (bare metal)
Collector Mode
Collector mode is for remote device monitoring. Deploy on a separate node to collect telemetry from remote systems.
graph LR
A[Network Devices] -->|SNMP| B[Telegen Collector]
C[Storage Arrays] -->|REST API| B
D[Cloud APIs] -->|HTTPS| B
B --> E[OTLP Export]
E --> F[OTel Collector]
Capabilities:
- SNMP polling and trap receiver (v1/v2c/v3)
- Storage array metrics (Dell, HPE, Pure, NetApp)
- Cloud/infrastructure API polling
- Database metrics receivers
Deployment: Deployment/StatefulSet (Kubernetes), systemd service (bare metal)
Signal Types
Telegen produces four signal types, all in OpenTelemetry format:
| Signal | Description | Use Case |
|---|---|---|
| Metrics | Time-series numerical data | Dashboards, alerting |
| Traces | Distributed request flows | Latency analysis, debugging |
| Logs | Structured event records | Debugging, auditing |
| Profiles | CPU/memory stack samples | Performance optimization |
Signal Correlation
All signals are automatically correlated:
- Logs include
trace_idandspan_id - Metrics include exemplars linking to trace samples
- Profiles are correlated with active spans
Auto-Discovery
Telegen automatically detects and enriches telemetry with:
Cloud Detection
| Provider | Detection Method |
|---|---|
| AWS | IMDSv2 (169.254.169.254) |
| GCP | Metadata server |
| Azure | IMDS |
| Alibaba | Metadata service |
| Oracle | IMDS |
| DigitalOcean | Metadata service |
| OpenStack | Keystone + env vars |
| VMware | Hypervisor detection |
Runtime Detection
| Runtime | Detection Method |
|---|---|
| Go | Binary symbols, runtime headers |
| Java | JVM process, JFR |
| Python | Interpreter process |
| Node.js | V8 engine detection |
| .NET | CoreCLR detection |
Database Detection
| Database | Detection Method |
|---|---|
| PostgreSQL | Port 5432, protocol detection |
| MySQL | Port 3306, protocol detection |
| Redis | Port 6379, RESP protocol |
| MongoDB | Port 27017, wire protocol |
| Kafka | Port 9092, broker detection |
eBPF Programs
Telegen uses eBPF (Extended Berkeley Packet Filter) for kernel-level instrumentation:
graph TB
subgraph Kernel
A[eBPF Programs]
B[kprobes/uprobes]
C[Tracepoints]
D[XDP]
end
subgraph "User Space"
E[Telegen Agent]
F[Ring Buffer]
end
A --> B
A --> C
A --> D
B --> F
C --> F
D --> F
F --> E
eBPF Program Types Used
| Type | Purpose |
|---|---|
| kprobe | Kernel function tracing |
| uprobe | User-space function tracing |
| tracepoint | Kernel tracepoint hooks |
| perf_event | CPU profiling |
| XDP | High-performance packet processing |
| tc | Traffic control for egress |
Resource Attributes
Telegen follows OpenTelemetry semantic conventions for resource attributes:
# Automatically added to all signals
resource:
service.name: "my-service"
service.namespace: "production"
host.name: "node-1"
host.arch: "amd64"
os.type: "linux"
cloud.provider: "aws"
cloud.region: "us-east-1"
k8s.namespace.name: "default"
k8s.pod.name: "my-pod-abc123"
k8s.node.name: "node-1"
Next Steps
- Architecture - Deep dive into architecture
- Configuration - Configuration options