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 →