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_idMetrics 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 Overview - Deep dive into architecture
Configuration - Configuration options