<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pipeline on ZAPP</title><link>/datacenter/zapp/tags/pipeline/</link><description>Recent content in Pipeline on ZAPP</description><generator>Hugo</generator><language>en-US</language><atom:link href="/datacenter/zapp/tags/pipeline/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>gRPC pipeline component</title><link>/datacenter/zapp/docs/components/pipeline/grpc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/components/pipeline/grpc/</guid><description>&lt;p&gt;Use &lt;code&gt;grpcServer&lt;/code&gt; when a listener should expose telemetry directly to consumers. The component is terminal: it accepts pipeline input and serves the ZAPP gRPC service, but it does not produce downstream pipeline targets.&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;components&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;grpc&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;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;grpcServer&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;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;9998&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;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;type&lt;/code&gt; must be &lt;code&gt;grpcServer&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;address&lt;/code&gt; is the TCP listen address for the gRPC server&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Accepted input types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;*timeseries.Model&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[]*zapp.Payload&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use &lt;code&gt;grpcServer&lt;/code&gt; for direct listener-to-consumer deployments. Use the ZAPP Aggregator consumer API when you need one endpoint that combines telemetry from multiple listeners.&lt;/p&gt;</description></item><item><title>NVIDIA ZAPP documentation</title><link>/datacenter/zapp/docs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/</guid><description>&lt;div class="alert alert-primary" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Important&lt;/div&gt;
&lt;p&gt;NVIDIA ZAPP Aggregation Protocol Pipeline is currently offered as a Developer Preview. The software may have limitations, may change significantly, and includes functionality that continues to be refined through testing and feedback. It should not be used in production environments except as part of an authorized collaboration.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Use this documentation to deploy and operate ZAPP telemetry infrastructure on Kubernetes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/overview/"&gt;ZAPP overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/concepts/"&gt;Concepts&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/components/"&gt;Components&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/plugins/"&gt;Plugins&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/deployment/"&gt;Deployment&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/examples/"&gt;Examples&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These pages cover ZAPP concepts, components, pipeline configuration, plugins, deployment, and example listener configurations.&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>Redfish listener example</title><link>/datacenter/zapp/docs/examples/redfish-listener/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/examples/redfish-listener/</guid><description>&lt;p&gt;Use this example to understand, configure, monitor, and troubleshoot ZAPP telemetry collection for Redfish-enabled infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;img src="/datacenter/zapp/images/docs/redfish-listener-example.svg" alt="Redfish collection flow showing Helm values, secrets, Redfish endpoints, listener sensor discovery, telemetry collection, aggregation, and operator validation."&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/examples/redfish-listener/architecture/"&gt;Redfish listener architecture&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/examples/redfish-listener/configure-pipeline/"&gt;Configure the pipeline&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/examples/redfish-listener/configure-secrets/"&gt;Configure Redfish secrets&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/examples/redfish-listener/monitor/"&gt;Monitor the Redfish listener&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/examples/redfish-listener/troubleshoot/"&gt;Troubleshoot the Redfish listener&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Start with &lt;a href="/datacenter/zapp/docs/deployment/zapp/"&gt;Deploy ZAPP Listeners&lt;/a&gt;
 if you already know the topology and need Helm values.&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>Configure the pipeline</title><link>/datacenter/zapp/docs/examples/redfish-listener/configure-pipeline/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/examples/redfish-listener/configure-pipeline/</guid><description>&lt;p&gt;The Redfish listener pipeline is embedded in the listener Helm values under &lt;code&gt;zapp.listeners[].config.pipeline&lt;/code&gt;. The chart mounts the content at &lt;code&gt;/config/pipeline.yaml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="/datacenter/zapp/images/docs/redfish-pipeline-flow.png" alt="Redfish pipeline flow showing sensor pipeline configuration, pipeline components, and ZAPP Aggregator forwarding."&gt;
&lt;/p&gt;
&lt;p&gt;The Redfish pipeline discovers sensors before components start, then forwards telemetry to the ZAPP Aggregator.&lt;/p&gt;
&lt;h2 id="sensor-pipeline"&gt;Sensor pipeline&lt;/h2&gt;
&lt;p&gt;Configure Redfish endpoints under &lt;code&gt;envPlugins.sensorPipeline&lt;/code&gt;. This block runs before components start and populates the listener manifest.&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;envPlugins&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;sensorPipeline&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;maxRedfishConnections&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;redfishDevices&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;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;${secrets.redfish_endpoint}&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;username&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;${secrets.redfish_username}&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;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;${secrets.redfish_password}&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;version&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.11.0&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;manifest&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;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;/data/redfish-sensor-manifest.yaml&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;forceReload&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Important fields:&lt;/p&gt;</description></item><item><title>Redfish listener pipeline</title><link>/datacenter/zapp/docs/components/pipeline/redfish-listener/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/components/pipeline/redfish-listener/</guid><description>&lt;p&gt;A Redfish listener pipeline uses &lt;code&gt;envPlugins.sensorPipeline&lt;/code&gt; to discover sensor metadata and a pipeline component to emit telemetry. The direct collector pattern uses &lt;code&gt;redfishCollector&lt;/code&gt; to poll each configured baseboard management controller (BMC) and send time-series models to downstream targets.&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;envPlugins&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;sensorPipeline&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;maxRedfishConnections&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;redfishDevices&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;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;${secrets.redfish_endpoint}&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;username&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;${secrets.redfish_username}&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;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;${secrets.redfish_password}&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;tls&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;insecureSkipVerify&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;manifest&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;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;/data/redfish-sensor-manifest.yaml&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;forceReload&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;components&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;redfish&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;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;redfishCollector&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;timeout&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;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;samplePeriod&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;5s&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;targets&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;target&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;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;cap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1000&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;leaky&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Security note&lt;/div&gt;
&lt;p&gt;Do not use &lt;code&gt;tls.insecureSkipVerify: true&lt;/code&gt; in production. This setting disables certificate verification for Redfish connections. Use it only for local testing or lab environments with self-signed certificates. For production deployments, configure a trusted certificate authority for the BMC endpoints and leave &lt;code&gt;tls.insecureSkipVerify&lt;/code&gt; unset or set it to &lt;code&gt;false&lt;/code&gt;.&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><item><title>UDP listener and writer</title><link>/datacenter/zapp/docs/components/pipeline/udp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/components/pipeline/udp/</guid><description>&lt;p&gt;Use &lt;code&gt;udpListener&lt;/code&gt; to receive ZAPP UDP payload containers. Use &lt;code&gt;udpWriter&lt;/code&gt; to forward payload batches to another UDP endpoint.&lt;/p&gt;
&lt;h2 id="udp-listener"&gt;UDP listener&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;udpListener&lt;/code&gt; is a source component. It listens on a local UDP address, decodes ZAPP packets into payload batches, and sends those batches to configured targets.&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;components&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;listener&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;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;udpListener&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;network&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;udp&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;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;9091&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;allowedSources&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="m"&gt;10.0.0.0&lt;/span&gt;&lt;span class="l"&gt;/24&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;targets&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;target&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;payloadProcessor&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;cap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1000&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;leaky&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Important fields:&lt;/p&gt;</description></item><item><title>Plugins</title><link>/datacenter/zapp/docs/plugins/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/plugins/</guid><description>&lt;p&gt;Plugins extend the ZAPP pipeline with additional component types. Use them when built-in components do not cover a site-specific telemetry source, protocol, processor, or output.&lt;/p&gt;
&lt;p&gt;Plugin component packages live in the ZAPP repository and are compiled into the ZAPP Listener binary. When the listener starts, those packages register their component types with the pipeline registry.&lt;/p&gt;
&lt;p&gt;Enable a plugin component by using its registered &lt;code&gt;type&lt;/code&gt; in the listener pipeline:&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;components&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;dsx&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;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;dsxMetrics&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="c"&gt;# DSX-specific configuration omitted.&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;targets&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;target&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;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&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;aggregator&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;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;aggregatorStreamer&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;For Kubernetes deployments, use a ZAPP Listener image that includes the plugin component registrations you need.&lt;/p&gt;</description></item><item><title>Troubleshoot the Redfish listener</title><link>/datacenter/zapp/docs/examples/redfish-listener/troubleshoot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/examples/redfish-listener/troubleshoot/</guid><description>&lt;p&gt;Start with Kubernetes readiness, then check listener configuration, ZAPP Aggregator connectivity, Redfish access, and telemetry validation.&lt;/p&gt;
&lt;p&gt;&lt;img src="/datacenter/zapp/images/docs/troubleshooting-validation-path.png" alt="Troubleshooting validation path showing Kubernetes checks, manifest and metrics port-forwarding, and zest gRPC validation."&gt;
&lt;/p&gt;
&lt;p&gt;Use Kubernetes checks, HTTP monitoring endpoints, and &lt;code&gt;zest&lt;/code&gt; to isolate Redfish listener deployment problems.&lt;/p&gt;
&lt;h2 id="check-pods-and-releases"&gt;Check pods and releases&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;helm list --namespace &amp;lt;namespace&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get pods --namespace &amp;lt;namespace&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get statefulsets --namespace &amp;lt;namespace&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If a pod is not ready, describe it and inspect recent events:&lt;/p&gt;</description></item></channel></rss>