Event Exporter Configuration
Overview
The Event Exporter module exports health events from NVSentinel to external systems using CloudEvents format over HTTP. This document covers all Helm configuration options for system administrators.
Configuration Reference
Module Enable/Disable
Controls whether the event-exporter module is deployed in the cluster.
Note: This module depends on the datastore being enabled. Therefore, ensure the datastore is also enabled.
Resources
Defines CPU and memory resource requests and limits for the event-exporter pod.
OIDC Secret
Name of the Kubernetes secret containing OIDC client secret for authentication.
The secret must contain a key named oidc-client-secret with the client secret value. Create the secret before deploying:
Metadata Configuration
Custom metadata fields included in all exported CloudEvents.
Metadata fields are included in the CloudEvent data.metadata object. The cluster field is required and used to generate the CloudEvent source field.
Custom Metadata Fields
Add any additional metadata fields:
All fields are included in exported events and can be used for filtering, routing, or categorization in downstream systems.
Sink Configuration
Defines the destination endpoint for exported events.
Parameters
endpoint
HTTP/HTTPS URL where CloudEvents will be POSTed.
timeout
Request timeout for HTTP calls to the sink endpoint.
insecureSkipVerify
Skip TLS certificate verification. Set to true only for testing with self-signed certificates.
OIDC Authentication
Configuration for OAuth 2.0 Client Credentials flow authentication.
Parameters
tokenUrl
OAuth 2.0 token endpoint URL for obtaining access tokens.
clientId
OAuth 2.0 client identifier.
scope
OAuth 2.0 scope requested for access token.
insecureSkipVerify
Skip TLS certificate verification for token endpoint. Set to true only for testing.
Authentication Flow
The event exporter uses OAuth 2.0 Client Credentials grant:
- Requests access token from
tokenUrlusingclientIdand client secret - Caches the token until expiration
- Includes token in
Authorization: Bearer <token>header for event POSTs - Automatically refreshes expired tokens
Backfill Configuration
Controls whether historical events are exported when the exporter starts.
Parameters
enabled
Enable backfilling of historical events from the datastore.
maxAge
Maximum age of events to backfill (e.g., “720h” = 30 days).
maxEvents
Maximum number of historical events to process during backfill.
batchSize
Number of events to process in each batch during backfill.
rateLimit
Maximum events per second to export during backfill to avoid overwhelming the sink.
Backfill Examples
Conservative Backfill
Aggressive Backfill
Disabled Backfill
Workers
Number of concurrent goroutines that process and publish events to the sink in parallel.
Each worker independently picks events from the dispatch queue, processes them (unmarshal, transform, publish), and reports the result. A sequence tracker ensures resume tokens advance in strict order regardless of which worker finishes first, so increasing workers scales throughput while preserving at-least-once delivery guarantees. Note that concurrent publishing means events may arrive at the sink out of order.
The default of 10 handles clusters up to ~3,300 nodes at typical event rates.
Scale-Up Guide
Event production rate: ~10 events/sec per 1,000 nodes (~36,000 events/hour) Per-worker throughput: ~3.3 events/sec (at 300ms publish latency)
If your publish latency is lower (e.g., 100ms for a co-located endpoint), each worker handles proportionally more events — divide the latency ratio to estimate your actual throughput.
Failure Handling
Configures retry behavior for failed export attempts.
Parameters
maxRetries
Maximum number of retry attempts for failed exports before giving up.
initialBackoff
Initial delay before first retry attempt.
maxBackoff
Maximum delay between retry attempts (caps exponential backoff).
backoffMultiplier
Multiplier for exponential backoff calculation.
Retry Examples
Fast Retries
Conservative Retries
Sink Endpoint Requirements
The external event sink must:
- Accept
POSTrequests at the configured endpoint - Accept
Content-Type: application/cloudevents+jsonheader - Validate
Authorization: Bearer <token>header - Return HTTP 2xx status codes for successful ingestion
- Return HTTP 4xx/5xx status codes for failures
- Handle CloudEvents 1.0 JSON format
Example Sink Implementation
A minimal sink endpoint should: