Specialized Agents

Configure Compactor agents, Rollup agents, and Target Allocator for Prometheus integration.

This page covers Helm values for specialized Edge Delta agent types and integrations.

Compactor Agents Configuration

Enabling Compactor Agents

Variable: compactorProps.enabled

Description: Enables the Compactor Agents within the Edge Delta deployment.

Example:

--set compactorProps.enabled=true

Compactor pullPolicy

Variable: compactorProps.image.pullPolicy

Description: The image.pullPolicy defines the conditions under which the Compactor Agent container image should be pulled from a registry. Values can be:

  • Always: The image will be pulled every time the pod starts. This ensures that you always use the latest version of the image even if it’s already present on the node.
  • IfNotPresent: The image will be pulled only if it is not already present on the node. This can reduce network bandwidth and speed up deployments for images that don’t change frequently.
  • Never: The image will never be pulled, and you rely on the image being pre-installed on the node.

The default value is IfNotPresent.

Example:

 --set compactorProps.image.pullPolicy=Always

You can describe the pod to confirm the value was applied:

kubectl describe pod <pod-name>

Port Configuration

Variable: compactorProps.port

Description: Specifies the port on which the Compactor Agents listen.

Example:

--set compactorProps.port=9199

Persistent Volume Configuration

Variable: compactorProps.usePVC

Description: Enabling compactorProps.usePVC (true) configures the Edge Delta Compactor Agent to use a Persistent Volume Claim (PVC) for persisting Compactor data before it is flushed downstream. This ensures that the compactor can reliably store data. If not set (default is false), the compactor will not use a PVC for data storage.

Example:

--set compactorProps.usePVC=true

To check for the existence of the Persistent Volume Claim in the namespace:

kubectl get pods -n edgedelta
kubectl describe pod <compactor-pod-name> -n edgedelta
kubectl get pvc -n edgedelta

Autoscaling Enabled Configuration

Variable: compactorProps.autoscaling.enabled

Description: Enables Horizontal Pod Autoscaling (HPA) for Compactor Agents.

Example:

--set compactorProps.autoscaling.enabled=false

Memory Limit Configuration

Variable: compactorProps.goMemLimit

Description: Specifies the memory limit for the Compactor Agents.

Example:

--set compactorProps.goMemLimit=""

Resource Requests and Limits

Variable: compactorProps.resources

Description: Specifies the resource requests and limits for the Compactor Agents.

Example:

--set compactorProps.resources.limits.cpu=2000m \
--set compactorProps.resources.limits.memory=2Gi \
--set compactorProps.resources.requests.cpu=200m \
--set compactorProps.resources.requests.memory=300Mi

Rollup Agents Configuration

Enabling Rollup Agents

Variable: rollUpProps.enabled

Description: Enables the Rollup Agents within the Edge Delta deployment. Rollup agents are responsible for aggregating and rolling up telemetry data and are crucial for efficient data handling and analytics. Rollup agents are enabled by default.

Example:

--set rollUpProps.enabled=true

Rollup pullPolicy

Variable: rollUpProps.image.pullPolicy

Description: The image.pullPolicy defines the conditions under which the rollup container image should be pulled from a registry. Values can be:

  • Always: The image will be pulled every time the pod starts. This ensures that you always use the latest version of the image even if it’s already present on the node.
  • IfNotPresent: The image will be pulled only if it is not already present on the node. This can reduce network bandwidth and speed up deployments for images that don’t change frequently.
  • Never: The image will never be pulled, and you rely on the image being pre-installed on the node.

The default value is IfNotPresent.

Example:

 --set rollUpProps.image.pullPolicy=Always

You can describe the pod to confirm the value was applied:

kubectl describe pod <pod-name>

Port Configuration

Variable: rollUpProps.port

Description: Specifies the port on which the Rollup Agents listen.

Example:

--set rollUpProps.port=9200

Replica Configuration

Variable: rollUpProps.replicas

Description: Specifies the number of Rollup Agents to deploy. This parameter is mutually exclusive with autoscaling.

Example:

--set rollUpProps.replicas=2

Autoscaling Enabled Configuration

Variable: rollUpProps.autoscaling.enabled

Description: Enables Horizontal Pod Autoscaling (HPA) for Rollup Agents, allowing the number of pods to adjust based on resource usage.

Example:

--set rollUpProps.autoscaling.enabled=false

Memory Limit Configuration

Variable: rollUpProps.goMemLimit

Description: Specifies the memory limit for the Rollup Agents.

Example:

--set rollUpProps.goMemLimit=900MiB

Resource Requests and Limits

Variable: rollUpProps.resources

Description: Specifies the resource requests and limits for the Rollup Agents.

Example:

--set rollUpProps.resources.limits.cpu=1000m \
--set rollUpProps.resources.limits.memory=1Gi \
--set rollUpProps.resources.requests.cpu=200m \
--set rollUpProps.resources.requests.memory=256Mi

Target Allocator (Prometheus / OTEL)

VariableDefaultDescription
targetAllocator.enabledfalseDeploys the OpenTelemetry Target Allocator so Prometheus or kube-prom-stack can scrape Edge Delta agent metrics.
targetAllocator.replicas1Static replica count (mutually exclusive with autoscaling).
targetAllocator.configuration.*Embedded OTEL configuration block—scrape-configs, filter strategy, etc. See the chart’s values.yaml for full schema.

Example – enable two replicas and add a custom scrape-config

helm upgrade edgedelta edgedelta/edgedelta -i \
  --set secretApiKey.value=XXXX \
  --set targetAllocator.enabled=true \
  --set targetAllocator.replicas=2 \
  --set targetAllocator.configuration.config.scrape_configs[0].job_name=ed-agent \
  --set targetAllocator.configuration.filter_strategy=relabel-config \
  -n edgedelta --create-namespace