Skip to main content

Gateway Mode Architecture

Overview​

In Gateway Mode, one or more centralised OTel Collector instances receive from all application pods and forward to xScaler. No OpAMP supervision is used — configuration is managed via Kubernetes ConfigMaps or Helm.

Gateway Config (Production Helm Template)​

Based on ``:

receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318

prometheus:
config:
scrape_configs:
- job_name: mimir-distributor
dns_sd_configs:
- names:
- "AAAA+mimir-distributor.xscaler-edge.svc.cluster.local"
type: AAAA
port: 8080
metric_relabel_configs:
- source_labels: [__name__]
action: keep
regex: "xscalor_ext_authz_.*|xscalor_proxy_auth_.*"

processors:
memory_limiter:
check_interval: 1s
limit_mib: 512
spike_limit_mib: 128
batch:
timeout: 5s
send_batch_size: 2048
attributes/cluster:
actions:
- key: xscaler_cluster
value: "{{ .Release.Namespace }}"
action: upsert

exporters:
prometheusremotewrite:
endpoint: "{{ .Values.otelCollector.remoteWrite.endpoint }}"
headers:
X-Scope-OrgID: <your-tenant-id>

service:
pipelines:
metrics:
receivers: [otlp, prometheus]
processors: [memory_limiter, batch, attributes/cluster]
exporters: [prometheusremotewrite]

Comparison: Agent Mode vs Gateway Mode​

FeatureAgent ModeGateway Mode
DeploymentDaemonSet (one per node)Deployment (N replicas)
Config mgmtOpAMP push from portalConfigMap + Helm
Host metrics✅ Native (hostmetrics receiver)❌ Requires separate DaemonSet
Log files✅ Native (filelog receiver)❌
Kubernetes scrape✅ Per-node k8s SD✅ Cluster-wide
Central aggregation❌✅
Config rollbackPortal revision historyGit revert + kubectl
Secret managementKMS via agent-apiKubernetes Secrets

← Previous: Agent Mode
Next: Lab 01 — Tenant Creation →