<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Configuration on ZAPP</title><link>/datacenter/zapp/tags/configuration/</link><description>Recent content in Configuration on ZAPP</description><generator>Hugo</generator><language>en-US</language><atom:link href="/datacenter/zapp/tags/configuration/index.xml" rel="self" type="application/rss+xml"/><item><title>DSX plugin</title><link>/datacenter/zapp/docs/plugins/dsx-plugin/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/plugins/dsx-plugin/</guid><description>&lt;p&gt;The DSX plugin adds pipeline components for collecting GPU and platform power metrics from Redfish-capable DSX hosts. Use it when a ZAPP Listener needs to manage a DSX host inventory, poll Redfish metric reports, and optionally emit selected Redfish metrics as ZAPP time-series telemetry.&lt;/p&gt;
&lt;p&gt;The current ZAPP Listener binary registers the DSX component types. If you build a custom listener image, confirm that the image includes the DSX component registrations before you use these component types in a pipeline.&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 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>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>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>Configure Redfish Secrets</title><link>/datacenter/zapp/docs/examples/redfish-listener/configure-secrets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/examples/redfish-listener/configure-secrets/</guid><description>&lt;p&gt;Redfish endpoints and credentials should come from Kubernetes Secrets. The listener reads secret files and expands &lt;code&gt;${secrets.&amp;lt;name&amp;gt;}&lt;/code&gt; references before it parses the pipeline YAML.&lt;/p&gt;
&lt;h2 id="secret-keys"&gt;Secret keys&lt;/h2&gt;
&lt;p&gt;The default Redfish listener values use these keys:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;redfish_endpoint
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;redfish_username
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;redfish_password
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The pipeline references them like this:&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;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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="use-an-existing-secret"&gt;Use an existing Secret&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;existingSecret&lt;/code&gt; when another system manages the Secret.&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;zapp&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;listeners&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;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;redfish&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;secrets&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;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;redfish-credentials&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;existingSecret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;redfish-credentials&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;mountPath&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&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;The Secret must contain a key named &lt;code&gt;redfish-credentials&lt;/code&gt;. The value should be dotenv-style content:&lt;/p&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>Monitor the Redfish listener</title><link>/datacenter/zapp/docs/examples/redfish-listener/monitor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/examples/redfish-listener/monitor/</guid><description>&lt;p&gt;The listener and ZAPP Aggregator expose HTTP monitoring endpoints when &lt;code&gt;metricsPort&lt;/code&gt; is greater than &lt;code&gt;0&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="http-endpoints"&gt;HTTP endpoints&lt;/h2&gt;
&lt;p&gt;Use these endpoints for health and telemetry inspection:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Endpoint&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/metrics&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Prometheus metrics&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/manifest&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Sensor manifest web page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/manifest.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Sensor manifest JSON&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;On the ZAPP Aggregator, the manifest page also shows connected listeners and sensor counts.&lt;/p&gt;
&lt;h2 id="port-forward-the-zapp-aggregator-manifest"&gt;Port-forward the ZAPP Aggregator manifest&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;kubectl --namespace &amp;lt;namespace&amp;gt; port-forward svc/zapp-aggregator-metrics 8888:8888
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Open the manifest page:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;http://localhost:8888/manifest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Request manifest JSON:&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>Deployment</title><link>/datacenter/zapp/docs/deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/deployment/</guid><description>&lt;p&gt;Use these pages to deploy the ZAPP Aggregator and Redfish listener chart in your own infrastructure with Helm.&lt;/p&gt;
&lt;p&gt;Deploy the ZAPP Aggregator first. Then adapt the ZAPP Listener chart for the telemetry sources in your environment and point ZAPP Listeners at the ZAPP Aggregator listener gRPC service.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/deployment/zapp-aggregator/"&gt;Deploy the ZAPP Aggregator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/deployment/zapp/"&gt;Deploy ZAPP Listeners&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&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><item><title>Examples</title><link>/datacenter/zapp/docs/examples/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/datacenter/zapp/docs/examples/</guid><description>&lt;p&gt;Use these examples as concrete deployment paths for specific ZAPP Listener configurations.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/examples/redfish-listener/"&gt;Redfish listener example&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/datacenter/zapp/docs/examples/dsx-plugin/"&gt;DSX plugin example&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>