<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Concepts-Architecture on ZAPP</title><link>/datacenter/zapp/categories/concepts-architecture/</link><description>Recent content in Concepts-Architecture on ZAPP</description><generator>Hugo</generator><language>en-US</language><atom:link href="/datacenter/zapp/categories/concepts-architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Containers</title><link>/datacenter/zapp/docs/concepts/containers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/concepts/containers/</guid><description>&lt;p&gt;ZAPP containers can embed multiple data formats in one container. Key features include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Minimal overhead: 4-byte container header and 10-byte header for each payload&lt;/li&gt;
&lt;li&gt;Variable-length multiple payloads with no inherent container size limit&lt;/li&gt;
&lt;li&gt;Extensible via IANA ID + TypeID mechanism&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="../container.png" alt="Diagram of a ZAPP container header followed by multiple payloads and their headers"&gt;
&lt;/p&gt;</description></item><item><title>Redfish listener architecture</title><link>/datacenter/zapp/docs/examples/redfish-listener/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/examples/redfish-listener/architecture/</guid><description>&lt;p&gt;The Redfish listener example combines Redfish sensor discovery, a ZAPP Listener pipeline, and ZAPP Aggregator forwarding.&lt;/p&gt;
&lt;p&gt;&lt;img src="/datacenter/zapp/images/docs/redfish-listener-architecture.png" alt="Redfish listener architecture showing baseboard management controller Redfish endpoints, sensor discovery, the listener pipeline, and the ZAPP Aggregator."&gt;
&lt;/p&gt;
&lt;p&gt;The Redfish listener discovers or collects telemetry from Redfish-enabled baseboard management controllers (BMCs) and forwards telemetry to the ZAPP Aggregator.&lt;/p&gt;
&lt;h2 id="main-components"&gt;Main components&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;BMC Redfish endpoints&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;BMC Redfish endpoints provide sensor metadata and telemetry from managed infrastructure.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Sensor pipeline&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The &lt;code&gt;envPlugins.sensorPipeline&lt;/code&gt; configuration runs before pipeline components start. It loads or discovers sensors and populates the listener sensor manifest.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Redfish listener pipeline&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The listener pipeline runs inside the &lt;code&gt;zapp&lt;/code&gt; container. For Redfish deployments, the pipeline includes Redfish configuration and forwards telemetry to an &lt;code&gt;aggregatorStreamer&lt;/code&gt; component.&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;ZAPP Aggregator&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The ZAPP Aggregator receives telemetry from the listener and exposes metrics, manifest data, and subscriber gRPC access.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="data-flow"&gt;Data flow&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;The listener reads the pipeline file and expands environment and secret references.&lt;/li&gt;
&lt;li&gt;The sensor pipeline reads &lt;code&gt;envPlugins.sensorPipeline&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;ZAPP discovers or loads Redfish sensors into the manifest.&lt;/li&gt;
&lt;li&gt;Pipeline components start.&lt;/li&gt;
&lt;li&gt;The listener forwards telemetry to the ZAPP Aggregator.&lt;/li&gt;
&lt;li&gt;Operators inspect &lt;code&gt;/metrics&lt;/code&gt;, &lt;code&gt;/manifest&lt;/code&gt;, or &lt;code&gt;/manifest.json&lt;/code&gt; to validate deployment health.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Helm chart mounts the pipeline at &lt;code&gt;/config/pipeline.yaml&lt;/code&gt;, mounts Redfish credential files as Kubernetes Secrets, and passes the ZAPP Aggregator address to the listener with &lt;code&gt;--aggregator&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Time-series telemetry</title><link>/datacenter/zapp/docs/concepts/time-series/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/concepts/time-series/</guid><description>&lt;p&gt;ZAPP represents decoded sensor telemetry as time-series models. Operators usually interact with this model indirectly through pipeline components, the ZAPP Aggregator, and gRPC subscriptions.&lt;/p&gt;
&lt;p&gt;A time-series model contains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;readings&lt;/code&gt;, which group telemetry by sensor ID&lt;/li&gt;
&lt;li&gt;Instance readings, which represent individual samples&lt;/li&gt;
&lt;li&gt;Window readings, which represent aggregated samples over a time interval&lt;/li&gt;
&lt;li&gt;&lt;code&gt;snapshots&lt;/code&gt;, which represent the latest known values for multiple sensors at one timestamp&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pipeline components use time-series models when telemetry has been decoded and associated with the sensor manifest. For example, &lt;code&gt;payloadProcessor&lt;/code&gt; converts NVIDIA time-series payloads into &lt;code&gt;*timeseries.Model&lt;/code&gt; values, and &lt;code&gt;redfishCollector&lt;/code&gt; emits &lt;code&gt;*timeseries.Model&lt;/code&gt; values from Redfish polling.&lt;/p&gt;</description></item><item><title>ZAPP Listener</title><link>/datacenter/zapp/docs/components/zapp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/components/zapp/</guid><description>&lt;p&gt;A ZAPP Listener runs a telemetry pipeline from a YAML configuration file. A listener can receive ZAPP payloads, poll Redfish endpoints, process payload batches, forward telemetry to the ZAPP Aggregator, or expose telemetry directly to consumers.&lt;/p&gt;
&lt;p&gt;&lt;img src="/datacenter/zapp/images/docs/zapp-listener-pipeline.svg" alt="ZAPP Listener pipeline showing deployment inputs, source components, processing components, target components, and telemetry outputs."&gt;
&lt;/p&gt;
&lt;p&gt;A listener pipeline can poll BMC Redfish endpoints and expose the resulting time-series telemetry directly through a &lt;code&gt;grpcServer&lt;/code&gt; component.&lt;/p&gt;</description></item><item><title>ZAPP overview</title><link>/datacenter/zapp/docs/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/overview/</guid><description>&lt;p&gt;ZAPP collects telemetry from infrastructure systems and forwards it through a configurable pipeline. Many deployments include one or more ZAPP Listeners and one ZAPP Aggregator.&lt;/p&gt;
&lt;p&gt;&lt;img src="/datacenter/zapp/images/docs/zapp-overview.svg" alt="ZAPP telemetry topology showing infrastructure sources feeding multiple listener pipelines, a central aggregator, and client and operator endpoints."&gt;
&lt;/p&gt;
&lt;p&gt;ZAPP Listeners collect or receive telemetry near the source. A ZAPP Aggregator receives telemetry from multiple listeners and exposes one client-facing endpoint.&lt;/p&gt;
&lt;h2 id="zapp-listener"&gt;ZAPP Listener&lt;/h2&gt;
&lt;p&gt;A ZAPP Listener runs a configured telemetry pipeline. Depending on the pipeline, the listener can receive telemetry packets, discover sensors, collect Redfish telemetry, process payloads, and forward telemetry to the ZAPP Aggregator or directly to downstream consumers.&lt;/p&gt;</description></item><item><title>Concepts</title><link>/datacenter/zapp/docs/concepts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/concepts/</guid><description>&lt;p&gt;Use these pages to understand the telemetry concepts that ZAPP components and plugins share.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/concepts/containers/"&gt;Containers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/concepts/time-series/"&gt;Time-series telemetry&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>ZAPP Aggregator</title><link>/datacenter/zapp/docs/components/zapp-aggregator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/components/zapp-aggregator/</guid><description>&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="helm-values"&gt;Helm values&lt;/h2&gt;
&lt;p&gt;Most deployments review image, replica, port, resource, and monitoring settings first.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;zappAggregator&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;repository&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;nvcr.io/nvidia/zapp-aggregator&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;tag&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;pullPolicy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;IfNotPresent&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;replicas&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;metricsPort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8888&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;manifestUI&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;containerPorts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;listenerGrpc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9991&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;udpTelemetry&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9992&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;clientGrpc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9999&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;serviceMonitor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;30s&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Important fields:&lt;/p&gt;</description></item><item><title>Components</title><link>/datacenter/zapp/docs/components/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/components/</guid><description>&lt;p&gt;ZAPP deployments are built from two runtime components: ZAPP Listeners and the ZAPP Aggregator. Listener pipelines run near telemetry sources. The ZAPP Aggregator provides central fan-in, listener coordination, and consumer-facing APIs.&lt;/p&gt;
&lt;p&gt;Use these pages to understand what each component runs, which configuration fields matter first, and where pipeline configuration fits into a deployment.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/components/zapp/"&gt;ZAPP Listener&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/components/zapp-aggregator/"&gt;ZAPP Aggregator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/components/pipeline/"&gt;Pipeline components&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Pipeline components</title><link>/datacenter/zapp/docs/components/pipeline/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/components/pipeline/</guid><description>&lt;p&gt;A ZAPP pipeline is a YAML map of named components. Each component declares a &lt;code&gt;type&lt;/code&gt;, component-specific fields, and optional &lt;code&gt;targets&lt;/code&gt;. Targets connect one component output to another component input.&lt;/p&gt;
&lt;p&gt;Components usually fit one of three roles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Source components receive or collect telemetry&lt;/li&gt;
&lt;li&gt;Processing components convert or route telemetry&lt;/li&gt;
&lt;li&gt;Terminal components forward telemetry to a service, network endpoint, or consumer API&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="channels"&gt;Channels&lt;/h2&gt;
&lt;p&gt;Pipeline components pass data through typed channels. Source and processing components expose outputs with &lt;code&gt;targets&lt;/code&gt;, and downstream components receive those outputs as inputs. During startup, ZAPP creates the channels, connects each &lt;code&gt;target&lt;/code&gt; to the named component, and validates that the receiving component accepts that input type.&lt;/p&gt;</description></item></channel></rss>