# ZAPP Aggregator

> Overview of ZAPP Aggregator configuration and APIs for listeners and consumers.

---

LLMS index: [llms.txt](/datacenter/zapp/llms.txt)

---

The ZAPP Aggregator receives telemetry from ZAPP Listeners and exposes a stable API surface for consumers. Use it when you need centralized listener fan-in, manifest visibility, and one client endpoint for telemetry subscribers.

## Helm values

Most deployments review image, replica, port, resource, and monitoring settings first.

```yaml
zappAggregator:
  enabled: true
  image:
    repository: nvcr.io/nvidia/zapp-aggregator
    tag: ""
    pullPolicy: IfNotPresent

  replicas: 1
  metricsPort: 8888
  manifestUI: true

  containerPorts:
    listenerGrpc: 9991
    udpTelemetry: 9992
    clientGrpc: 9999

  serviceMonitor:
    enabled: false
    interval: 30s
```

Important fields:

- `zappAggregator.containerPorts.listenerGrpc` accepts listener control-plane connections
- `zappAggregator.containerPorts.udpTelemetry` receives listener telemetry after listener registration
- `zappAggregator.containerPorts.clientGrpc` serves telemetry consumers
- `zappAggregator.metricsPort` serves `/metrics`, `/manifest`, and `/manifest.json`
- `zappAggregator.serviceMonitor.enabled` creates a ServiceMonitor for Prometheus Operator deployments

## Listener API

Listeners connect to the `ZappAggregator.Listener` bidirectional gRPC API. During that stream, the listener registers its listener ID, the ZAPP Aggregator returns UDP telemetry parameters, requests the listener sensor manifest, and can send active sensor selection updates.

With `fullnameOverride=zapp`, the listener gRPC service name is `zapp-aggregator` and the default service port is `9991`.

## Consumer APIs

Consumers use the `ZappService` gRPC API exposed by the ZAPP Aggregator client service.

| API | Purpose |
| --- | --- |
| `Subscribe` | Streams decoded time-series telemetry or opaque payloads to clients. |
| `SensorManifest` | Streams the current sensor manifest, optionally filtered by a sensor selector. |

With `fullnameOverride=zapp`, the client gRPC service name is `zapp-aggregator-client` and the default service port is `9999`.

## Monitoring API

The metrics service exposes operational HTTP endpoints:

- `/metrics` for Prometheus scraping
- `/manifest` for the sensor manifest web UI
- `/manifest.json` for the sensor manifest JSON view
