Environment Variables

Complete reference for Telegen environment variables.

Overview

Environment variables provide the highest-priority configuration method. They override all config file settings and are ideal for:

  • Container deployments
  • Secrets management
  • CI/CD pipelines
  • Per-environment overrides

Naming Convention

Environment variables follow this pattern:

TELEGEN_<SECTION>_<SUBSECTION>_<KEY>

Examples:

  • TELEGEN_OTLP_ENDPOINTotlp.endpoint
  • TELEGEN_AGENT_PROFILING_ENABLEDagent.profiling.enabled

Core Variables

Variable Default Description
TELEGEN_MODE agent Operating mode: agent or collector
TELEGEN_SERVICE_NAME telegen Service name for telemetry
TELEGEN_INSTANCE_ID hostname Unique instance identifier
TELEGEN_LOG_LEVEL info Log level: debug, info, warn, error
TELEGEN_LOG_FORMAT json Log format: json or text
TELEGEN_CONFIG_FILE /etc/telegen/config.yaml Config file path

OTLP Export Variables

Variable Default Description
TELEGEN_OTLP_ENDPOINT - Required. OTLP endpoint (e.g., otel-collector:4317)
TELEGEN_OTLP_PROTOCOL grpc Protocol: grpc or http
TELEGEN_OTLP_COMPRESSION gzip Compression: gzip or none
TELEGEN_OTLP_TIMEOUT 10s Connection timeout
TELEGEN_OTLP_INSECURE false Skip TLS verification
TELEGEN_OTLP_HEADERS - Headers as key=value,key2=value2

TLS Variables

Variable Default Description
TELEGEN_OTLP_TLS_ENABLED false Enable TLS
TELEGEN_OTLP_TLS_CA_FILE - CA certificate path
TELEGEN_OTLP_TLS_CERT_FILE - Client certificate path
TELEGEN_OTLP_TLS_KEY_FILE - Client key path
TELEGEN_OTLP_TLS_INSECURE_SKIP_VERIFY false Skip certificate verification

Per-Signal Variables

Variable Default Description
TELEGEN_OTLP_TRACES_ENABLED true Enable trace export
TELEGEN_OTLP_TRACES_ENDPOINT - Override traces endpoint
TELEGEN_OTLP_TRACES_SAMPLE_RATE 1.0 Trace sampling rate (0.0-1.0)
TELEGEN_OTLP_METRICS_ENABLED true Enable metrics export
TELEGEN_OTLP_METRICS_ENDPOINT - Override metrics endpoint
TELEGEN_OTLP_LOGS_ENABLED true Enable logs export
TELEGEN_OTLP_LOGS_ENDPOINT - Override logs endpoint
TELEGEN_OTLP_PROFILES_ENABLED true Enable profiles export
TELEGEN_OTLP_PROFILES_ENDPOINT - Override profiles endpoint

Agent Variables

eBPF Configuration

Variable Default Description
TELEGEN_AGENT_EBPF_ENABLED true Enable eBPF
TELEGEN_AGENT_EBPF_RINGBUF_SIZE 16777216 Ring buffer size (bytes)
TELEGEN_AGENT_EBPF_PERF_BUFFER_SIZE 8192 Per-CPU perf buffer size

Network Tracing

Variable Default Description
TELEGEN_AGENT_EBPF_NETWORK_ENABLED true Enable network tracing
TELEGEN_AGENT_EBPF_NETWORK_HTTP true Trace HTTP
TELEGEN_AGENT_EBPF_NETWORK_GRPC true Trace gRPC
TELEGEN_AGENT_EBPF_NETWORK_DNS true Trace DNS
TELEGEN_AGENT_EBPF_NETWORK_TCP_METRICS true Collect TCP metrics

Discovery

Variable Default Description
OTEL_EBPF_DISCOVERY_POLL_INTERVAL 5s Process discovery poll interval
OTEL_EBPF_EXCLUDE_OTEL_INSTRUMENTED_SERVICES true Skip OTel-instrumented services
OTEL_EBPF_MIN_PROCESS_AGE 5s Min process age before discovery
OTEL_EBPF_SKIP_GO_SPECIFIC_TRACERS false Use generic tracers only
OTEL_EBPF_BPF_PID_FILTER_OFF false Disable BPF PID filtering (debug)
OTEL_EBPF_DEFAULT_OTLP_GRPC_PORT 4317 Port for OTel-instrumented detection

Port-Based Discovery Variables

Variable Default Description
OTEL_EBPF_INSTRUMENT_PORTS - Ports to instrument (e.g., 8080,8000-8999)
OTEL_EBPF_INSTRUMENT_COMMAND - Glob pattern for executable path

Examples:

# Instrument only ports 8080-8089
export OTEL_EBPF_INSTRUMENT_PORTS="8080-8089"

# Instrument Java processes on port 8080
export OTEL_EBPF_INSTRUMENT_PORTS="8080"
export OTEL_EBPF_INSTRUMENT_COMMAND="*java*"

# Instrument common web ports
export OTEL_EBPF_INSTRUMENT_PORTS="80,443,3000,5000,8080-8089"

Metadata Discovery Variables

Variable Default Description
TELEGEN_AGENT_DISCOVERY_ENABLED true Enable metadata discovery
TELEGEN_AGENT_DISCOVERY_INTERVAL 30s Discovery interval
TELEGEN_AGENT_DISCOVERY_DETECT_CLOUD true Detect cloud provider
TELEGEN_AGENT_DISCOVERY_DETECT_KUBERNETES true Detect Kubernetes
TELEGEN_AGENT_DISCOVERY_DETECT_RUNTIMES true Detect application runtimes

Profiling

Variable Default Description
TELEGEN_AGENT_PROFILING_ENABLED false Enable profiling
TELEGEN_AGENT_PROFILING_SAMPLE_RATE 99 Sample rate (Hz)
TELEGEN_AGENT_PROFILING_CPU true CPU profiling
TELEGEN_AGENT_PROFILING_OFF_CPU true Off-CPU profiling
TELEGEN_AGENT_PROFILING_MEMORY true Memory profiling
TELEGEN_AGENT_PROFILING_DURATION 10s Profile duration
TELEGEN_AGENT_PROFILING_UPLOAD_INTERVAL 60s Upload interval

Security

Variable Default Description
TELEGEN_AGENT_SECURITY_ENABLED false Enable security monitoring
TELEGEN_AGENT_SECURITY_SYSCALL_AUDIT_ENABLED true Syscall auditing
TELEGEN_AGENT_SECURITY_FILE_INTEGRITY_ENABLED true File integrity monitoring
TELEGEN_AGENT_SECURITY_CONTAINER_ESCAPE_ENABLED true Container escape detection

GPU

Variable Default Description
TELEGEN_AGENT_GPU_ENABLED true Enable GPU monitoring
TELEGEN_AGENT_GPU_NVIDIA true NVIDIA GPU support
TELEGEN_AGENT_GPU_POLL_INTERVAL 10s GPU polling interval

Collector Variables

SNMP

Variable Default Description
TELEGEN_COLLECTOR_SNMP_ENABLED false Enable SNMP collection
TELEGEN_COLLECTOR_SNMP_POLL_INTERVAL 60s Polling interval
TELEGEN_COLLECTOR_SNMP_TIMEOUT 10s SNMP timeout
TELEGEN_COLLECTOR_SNMP_RETRIES 3 Retry count

SNMP Trap Receiver

Variable Default Description
TELEGEN_COLLECTOR_SNMP_TRAP_RECEIVER_ENABLED false Enable trap receiver
TELEGEN_COLLECTOR_SNMP_TRAP_RECEIVER_LISTEN :162 Listen address

Cloud Variables

AWS

Variable Default Description
TELEGEN_CLOUD_AWS_ENABLED true Enable AWS detection
TELEGEN_CLOUD_AWS_TIMEOUT 200ms Metadata timeout
TELEGEN_CLOUD_AWS_REFRESH_INTERVAL 15m Refresh interval
TELEGEN_CLOUD_AWS_COLLECT_TAGS false Collect EC2 tags

GCP

Variable Default Description
TELEGEN_CLOUD_GCP_ENABLED true Enable GCP detection
TELEGEN_CLOUD_GCP_TIMEOUT 200ms Metadata timeout
TELEGEN_CLOUD_GCP_REFRESH_INTERVAL 15m Refresh interval

Azure

Variable Default Description
TELEGEN_CLOUD_AZURE_ENABLED true Enable Azure detection
TELEGEN_CLOUD_AZURE_TIMEOUT 200ms Metadata timeout
TELEGEN_CLOUD_AZURE_REFRESH_INTERVAL 15m Refresh interval

Self-Telemetry Variables

The self-telemetry endpoint serves health probes (/healthz, /readyz) and Prometheus metrics (/metrics).

Variable Default Description
TELEGEN_SELF_TELEMETRY_LISTEN :19090 HTTP listen address for health probes and metrics
TELEGEN_SELF_TELEMETRY_PROMETHEUS_NAMESPACE telegen Prometheus metrics namespace prefix

Queue Variables

Variable Default Description
TELEGEN_QUEUES_TRACES_MEM_LIMIT 256Mi Trace queue memory limit
TELEGEN_QUEUES_TRACES_MAX_AGE 6h Max trace age
TELEGEN_QUEUES_TRACES_BATCH_SIZE 512 Trace batch size
TELEGEN_QUEUES_METRICS_MEM_LIMIT 128Mi Metrics queue memory limit
TELEGEN_QUEUES_METRICS_MAX_AGE 5m Max metrics age
TELEGEN_QUEUES_METRICS_BATCH_SIZE 1000 Metrics batch size
TELEGEN_QUEUES_LOGS_MEM_LIMIT 256Mi Logs queue memory limit
TELEGEN_QUEUES_LOGS_MAX_AGE 24h Max logs age
TELEGEN_QUEUES_LOGS_BATCH_SIZE 1000 Logs batch size

Backoff Variables

Variable Default Description
TELEGEN_BACKOFF_INITIAL 500ms Initial backoff
TELEGEN_BACKOFF_MAX 30s Maximum backoff
TELEGEN_BACKOFF_MULTIPLIER 2.0 Backoff multiplier
TELEGEN_BACKOFF_JITTER 0.2 Jitter factor
TELEGEN_BACKOFF_MAX_RETRIES 5 Max retry attempts

Usage Examples

Docker

docker run -d --name telegen \
  --privileged --pid=host --network=host \
  -v /sys:/sys:ro \
  -v /proc:/host/proc:ro \
  -v /sys/kernel/debug:/sys/kernel/debug \
  -v /sys/fs/bpf:/sys/fs/bpf \
  -e TELEGEN_OTLP_ENDPOINT=otel-collector:4317 \
  -e TELEGEN_AGENT_PROFILING_ENABLED=true \
  -e TELEGEN_AGENT_SECURITY_ENABLED=true \
  ghcr.io/mirastacklabs-ai/telegen:latest

Kubernetes ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: telegen-config
data:
  TELEGEN_OTLP_ENDPOINT: "otel-collector.monitoring:4317"
  TELEGEN_AGENT_PROFILING_ENABLED: "true"
  TELEGEN_AGENT_SECURITY_ENABLED: "true"
  TELEGEN_LOG_LEVEL: "info"

Kubernetes Secret

apiVersion: v1
kind: Secret
metadata:
  name: telegen-secrets
type: Opaque
stringData:
  TELEGEN_OTLP_HEADERS: "Authorization=Bearer your-token"

Shell Script

#!/bin/bash
export TELEGEN_OTLP_ENDPOINT="otel-collector:4317"
export TELEGEN_AGENT_PROFILING_ENABLED=true
export TELEGEN_AGENT_SECURITY_ENABLED=true
export TELEGEN_LOG_LEVEL=debug

telegen

Precedence

Configuration values are resolved in this order (highest to lowest):

  1. Environment variables - Always win
  2. Config file - Merged with defaults
  3. Built-in defaults - Fallback values

Example:

# config.yaml
otlp:
  endpoint: "from-config:4317"
# Environment
export TELEGEN_OTLP_ENDPOINT="from-env:4317"

Result: otlp.endpoint = from-env:4317


Secret Substitution

Config files support environment variable substitution using ${VAR} syntax:

otlp:
  endpoint: "${OTEL_ENDPOINT}"
  headers:
    Authorization: "Bearer ${OTEL_TOKEN}"

collector:
  snmp:
    targets:
      - address: "10.0.1.1:161"
        security:
          auth_password: "${SNMP_AUTH_PASSWORD}"
          priv_password: "${SNMP_PRIV_PASSWORD}"

Next Steps