NG 3.2.1
Overviewβ
vuSmartMapsβ’ NG 3.2.1 is a patch release of NG 3.2.1 that strengthens the βNG 2.16 to NG 3.2.1 Traces migration workflowβ, introducing backward compatibility, rollback support, CPU capability validation, and improved trace configuration handling. This release enables seamless migration of existing traces from legacy dashboards to APM Smart Frames, where legacy dashboards continue to work as-is while Smart Frames provide access to latest APM data.
For air-gapped environments without external registry access, NG 3.2.1 introduces βenhanced local registry supportβ that eliminates the dependency on GHCR or external registries. Helm charts can now be uploaded and managed through a configured local registry, ensuring seamless upgrades in disconnected environments.
Additionally, the release includes enhancements for O11ySource configuration, OmniAgent performance, Kubernetes security hardening, and platform deployment improvements. The release also resolves multiple issues affecting ADI discovery probe handling, O11ySource configuration and deployment, APM and distributed tracing, data model permissions, OmniAgent installation on Windows, log forwarding on AIX, and upgrade and migration workflows. These comprehensive improvements enhance platform stability, security, configuration management, migration continuity, and overall operational reliability.
Traces Migrationβ
CPU Capability Validation in Upgrade Pre-Checksβ
Enhanced the pre-checks for NG 2.16 to NG 3.2.1 upgrade and migration by adding CPU capability validation before installation or upgrade begins. The pre-checks now verify the CPU instruction-set capabilities required for the x86-64-v3 compatibility level, including AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, and MOVBE. If the target server or VM does not support the required capabilities, the pre-checks clearly report the CPU compatibility issue before the upgrade or migration starts.
- CCBD-5709: Add CPU Capability Validation to Pre-checks Script
Host and Application Information in Trace Resource Attributesβ
Enhanced trace instrumentation during the NG 2.16 to NG 3.2.1 migration by adding the source host IP and application name to the OpenTelemetry resource attributes. The instrumentation now includes the source host IP and resolves configured application IDs to application names, allowing the corresponding host and application information to be associated with trace data. The configuration update also ensures that changes to the applications associated with an instrumentation source automatically trigger OmniAgent configuration regeneration and deployment.
This ensures that updated trace instrumentation configurations are correctly reflected in the deployed OmniAgent configuration during the Traces migration.
- CCBD-5747: Add
host_ipand application toOTEL_RESOURCE_ATTRIBUTESand trigger OmniAgent config regeneration whenawb_appschanges
Preserve OTEL Collector Configuration During Platform Upgradeβ
Updated the platform upgrade process to skip updating the OTEL Collector deployment template during the platform upgrade step. This ensures that Traces continues to use the existing O11ySource configuration after the platform upgrade. The OTEL Collector deployment template is updated separately as part of the Traces upgrade activity, preventing the platform upgrade from unintentionally affecting the existing Traces configuration.
- CCBD-5764: Skip OTEL Collector Deployment Template Update During Platform Upgrade
Normalize Semantic Convention Attributes for Traces Migrationβ
Fixed semantic convention attribute normalization for Traces migration by extending the mapping to support attributes emitted by C++ and NodeJS agents. The updated normalization maps pre-stable attributes to their corresponding standard attributes, ensuring required information such as network, client, server, and port attributes is available for Traces processing and related visualizations.
- CCBD-5763: Normalize semconv attributes for phased Traces migration with new entries
Traces Migration Backward Compatibility for NG 2.16β
Added a Traces migration script to support backward compatibility with the NG 2.16 Traces implementation during migration to NG 3.2.1. The migration process applies the required compatibility changes so that existing environments can continue using the old SDK while also supporting the new SDK after migration. This helps maintain existing Traces dashboards and data flow during the transition.
- Add traces_migration.py for NG 2.16 backward compatibility during Traces migration
Rollback Support for Traces Migrationβ
Enhanced the Traces migration process with rollback support, allowing migration changes to be reverted if an issue occurs during or after migration. The rollback mechanism restores the environment to its state before the migration and helps prevent partial migration or schema inconsistencies. It also supports rollback dry runs and automatic rollback control.
Minor Enhancementsβ
OmniAgent Enhancementsβ
Disable Log Collection to Improve OmniAgent Performanceβ
OmniAgent performance has been improved by disabling log collection to reduce the overhead associated with log collection.
- CCBD-5693: Disable log collection to improve performance of OmniAgent
Security Enhancementsβ
Server-Side Validation for Event Export APIsβ
Enhanced security for event export APIs by adding server-side validation for special characters that could be used in CSV or formula injection attacks. Previously, validation was performed only on the frontend and could be bypassed by sending requests directly to the backend. The backend now enforces the same validation rules and rejects requests containing disallowed special characters, preventing validation bypass through direct API requests and improving data integrity.
- CCBD-5397: Prevent CSV/Formula Injection in Event Export APIs
Kubernetes Security Hardening for RUM Collectorβ
Enhanced the RUM Collector deployment with Kubernetes security controls to provide a more restricted and secure runtime environment. The collector now runs as a non-root user with a read-only root filesystem, disabled privilege escalation, dropped Linux capabilities, and the RuntimeDefault seccomp profile. AppArmor runtime-default protection and disabled automatic service-account token mounting provide additional security by limiting unnecessary system and Kubernetes API access. These changes reduce the attack surface and strengthen the overall security of the RUM Collector deployment.
- CCBD-5099: [K8s Hardening] Add full securityContext to rum-collector deployment
Kubernetes Security Hardening for Local Registry Componentsβ
Enhanced the security of the vunet-registry, image-update-job, and cert-update-local-registry Helm charts by strengthening their Kubernetes security configurations. The workloads now use non-privileged containers with privilege escalation disabled, dropped Linux capabilities, and read-only root filesystems. Unnecessary host access to /etc/kubernetes has also been removed, and the registry deployment no longer automatically mounts a Kubernetes service-account token.
Resource configuration has also been applied to the image update job to provide better control over CPU and memory usage. These changes reduce unnecessary privileges and host access while strengthening the security of local registry components.
- CCBD-4792: Harden
vunet-registrychart family
Platform / Deployment Enhancementsβ
Local Registry Support for Air-Gapped Upgradesβ
Enhanced local registry support for air-gapped environments by defining the Helm chart upload path for upgrade scenarios that use a local registry. The upgrade workflow now supports uploading the required Helm charts to the configured local registry, eliminating the dependency on an externally configured registry for these environments. The registry pull-secret handling has also been updated to support the required https:// prefix, with cleaner registry push output during the process.
- CCBD-5514: Registry pull-secret requires
https://prefix and cleaner push output
Deployment Resource Limits Validationβ
Enhanced deployment validation to verify that resource limits configured for critical platform services match the sizing defined in the deployment specification. The validation now checks the CPU and memory limits for critical services, including ClickHouse, Kafka, Nairobi, Denver, OTEL Collector, ZooKeeper, ClickHouse Keeper, PostgreSQL, vuInterface, Renderer, and Reporter. It also verifies that configured limits do not fall below the defined minimum requirements. If a deployment does not have a sizing specification, the validation uses the defined minimum limits. The audit also flags sizing specifications that define resource limits below the required minimum values.
- CCBD-2439: CH and CH Keeper Pod Limits Validation and Minimum Limits Check
Automated Kubernetes Cluster Upgrade with vuKube
Enhanced the vuKube upgrade workflow with vukube-upgrade, an automated utility for upgrading Kubernetes clusters during migration to vuKube. The utility supports the vuKube upgrade workflow and helps simplify and automate cluster upgrade operations.
- CCBD-5371: Add vukube-upgrade β automated Kubernetes cluster upgrade tool
Bug Fixesβ
ADI Bug fixesβ
Discovery Probe Handling for Hosts Without Instrumentationβ
Enhanced ADI discovery probe handling for hosts where OmniAgent was installed before instrumentation was enabled. The discovery manager now checks the host's instrumentation status before deploying a discovery probe. Probes are deployed only when instrumentation is successfully applied. Hosts where instrumentation is not yet applied or has failed are deferred and retried automatically after the required instrumentation is enabled.
Hosts that do not support instrumentation, such as unsupported platforms, are skipped without entering repeated retry cycles. The OmniAgent installation process also ensures that newly created directories have the correct ownership, allowing the service to create the required instrumentation directory.
- CCBD-5771: Stop the discovery probe from failing on hosts installed before ADI was enabled
Exclude JVM Agent Flags from Service Fingerprintβ
Updated ADI Java service discovery to exclude JVM agent attachment flags from the service fingerprint. This ensures that JVM agent attachment flags are not considered when generating the service fingerprint.
- VUQA-7125: Exclude JVM agent attachment flags from the service fingerprint
O11ySource Bug Fixesβ
Windows Log Path Validation Fix for MySQL and MariaDBβ
Fixed an issue where valid Windows file paths for the MySQL and MariaDB Slow Log Path and Error Log Path fields were rejected by O11ySource validation. The path validation pattern has been corrected to properly recognize Windows-style paths while continuing to support Linux paths. This allows valid Windows log file paths to be accepted when configuring MySQL and MariaDB O11ySources.
- CCBD-5784: Fix Windows log path validation regex for MySQL/MariaDB
GHCR Authentication for Telegraf O11ySourcesβ
Fixed an issue where the ghcr-login-secret was missing from certain Telegraf-based O11ySource deployment templates. The affected templates now include the required image-pull secret, allowing Telegraf O11ySource pods to authenticate with GitHub Container Registry (GHCR) and successfully pull their container images.
- VUQA-7149: Add
ghcr-login-secretto missing Telegraf O11ySource templates
Telegraf O11ySource Pods Stuck in Pending Stateβ
Fixed an issue where Telegraf-based O11ySource pods could remain in the Pending state on Kubernetes clusters where nodes are configured with taints. The deployment configuration now derives the appropriate node placement tags from the deployment specification and applies them to Telegraf O11ySources. This allows Telegraf-based O11ySource pods to be scheduled on the appropriate nodes in tainted-node environments.
- CCBD-5801: Telegraf-based O11ySource pods stuck in Pending on tainted-node clusters
Tomcat O11ySource Configuration Preservation During Migrationβ
Fixed an issue where Tomcat O11ySource configuration values such as port, ssl, application_metrics, and application_logs were not preserved correctly during OmniAgent migration. The Tomcat templates and migration handling have been updated to correctly retain these configuration values from the existing Tomcat setup. This prevents the migrated Tomcat O11ySource from losing required configuration and ensures that JMX metrics and application log collection continue to work after migration.
- VUQA-7159: Fix Tomcat Jinja templates dropping
ssl,application_metrics, andapplication_logs
Clear Hidden O11ySource Fields When Dependencies Are Disabledβ
Fixed an issue where hidden dependent fields in the Add/Edit O11ySource form could retain their previous values after the controlling option was disabled. For example, when TLS is disabled for a MongoDB O11ySource, dependent fields such as TLS Mode, Skip Certificate Verification, and TLS Credential are now cleared instead of retaining their previously saved values. This ensures that the saved O11ySource configuration reflects the options currently enabled.
- VUQA-7164: O11ySources send rule-hidden fields as null instead of their stale values
Cassandra Healthbeat Module Configuration Path Fixβ
Fixed an issue in the Cassandra O11ySource where the Healthbeat modules.d path used an incorrect Windows-style path separator. The configuration now uses the correct Linux-style path separator, allowing Healthbeat to locate and load the Cassandra module configuration files successfully. This restores the expected Cassandra data ingestion and dashboard data.
- CCBD-5838: Fix Cassandra O11ySource Healthbeat
modules.dpath
Data Model / Permissions Fixesβ
Data Model Object-Level Permission Fixβ
Fixed an issue where users with access to the Data Modelling Workspace could access data models for which they had not been explicitly granted permissions. Object-level permission checks are now enforced for individual data models. Users can access only the data models for which they have the required permissions, both through the Data Modelling Workspace and VED.
- VUQA-7123: Add single-object permission check to ObjectPermissionsFilterBackend
Data Model Threshold Error in Smart Frame Studioβ
Fixed an issue where creating a Smart Frame with a data model containing a threshold resulted in a 500 Internal Server Error. Smart Frames can now be created successfully using data models with or without thresholds.
- VUQA-7148: Data Model Thresholds returning 500 Internal Server Error in SF Panels
APM / Tracing Bug Fixesβ
OTEL Collector status_code Fix for Traces Backward Compatibilityβ
Fixed an issue in the OTEL Collector where the status_code field was not populated correctly in the input-metrics Kafka topic when Traces backward compatibility was enabled in NG 3.2.1. The incorrect status_code values affected the accuracy of metrics displayed in legacy Trace dashboards, particularly for failed requests. The OTEL Collector now populates the appropriate status_code for successful and failed requests, ensuring that legacy Trace dashboards display the corresponding metrics correctly.
- VUQA-7102: Updated
vublock.jsonfor the metricsstatus_code
Distributed Trace ID Propagation Fixβ
Fixed an issue where the same transaction could generate different Trace IDs across the IBMB, FRM, and CBS services. This caused a single transaction to appear as multiple independent traces and made end-to-end transaction tracing difficult.
The Trace ID is now correctly propagated across service boundaries, allowing related operations across these services to appear as a single distributed trace while maintaining separate Span IDs for individual operations.
- VUQA-7112: Distributed Trace ID is not propagated across IBMB, FRM, and CBS
Messaging System Supporting Service Name Fixβ
Fixed an issue where the service name for messaging systems, such as Kafka, was not correctly resolved and displayed as a supporting service in APM. The service name is now correctly resolved, allowing messaging systems to be identified as supporting services and represented correctly in the APM service view.
- VUQA-7141: Supporting service name for messaging system not resolved
OmniAgent Bug Fixesβ
Windows OmniAgent Installation Fixβ
Fixed an issue where the Windows OmniAgent installation command included the --enable-instrumentation option, causing installation to fail on Windows environments where ADI instrumentation is not supported. The Windows installation command no longer includes the --enable-instrumentation option, allowing OmniAgent to install successfully without attempting to deploy unsupported instrumentation components.
- NCS-2686: Remove
--enable-instrumentationfrom Windows OmniAgent install command
Log Agent Bug Fixesβ
AIX vuLogAgent Log Forwarding Fixβ
Fixed an issue where vuLogAgent on AIX stopped forwarding logs after running for a period of time. The agent could encounter errors while processing log files and stop forwarding logs from those files, affecting continuous log collection.
The log processing and buffering behavior has been improved to prevent these failures and ensure that log events are forwarded continuously. The fix also prevents previously processed events from accumulating in the message buffer and causing Kafka message-size errors.
- NCS-2646: Fix AIX vuLogAgent forwarding issue
Upgrade / Migration Bug Fixesβ
Traces Kafka Engine Tables Dropped During Upgradeβ
Fixed an issue where Traces Kafka engine tables could be incorrectly dropped during the NG 2.16 to NG 3.2.1 upgrade. The migration cleanup process now tracks the Kafka engine tables created during the upgrade and excludes them from legacy-table cleanup. This prevents newly created Traces Kafka engine tables from being mistakenly removed during the migration.
- VUQA-7133: Prevent Traces Kafka engine tables from being dropped during upgrade
O11ySource Post-Job Failure During Upgradeβ
Fixed an issue where the O11ySource post-job failed when upgrading from NG 3.2.1.0 to NG 3.2.1. This issue could occur when the environment had been previously upgraded from NG 2.16 to NG 3.2.1.0. The post-job now completes successfully during the NG 3.2.1.0 to NG 3.2.1 upgrade, ensuring that O11ySource configurations are processed correctly.
- VUQA-7134: Fix O11ySource post-job failure during NG 3.2.1.0 to NG 3.2.1 upgrade
Migration Job Dependency Fixβ
Fixed an issue in the NG 2.16 to NG 3.2.1 migration where the create-environment-awb-records job could run before modify-hs-dictionaries completed. The migration workflow now ensures that the ClickHouse dictionary configuration is updated before create-environment-awb-records runs. This prevents the job from failing when it attempts to retrieve data through dictionaries that still contain the old database connection configuration.
- VUQA-7165: Fix dependency between
modify-hs-dictionariesandcreate-environment-awb-recordsduring migration
Other Platform Bug Fixesβ
Post-Job View Creation Failure in ClickHouseβ
Fixed an issue where post-jobs could fail to create required ClickHouse views in 2-shard, 2-replica environments. The failure caused multiple SPV views to remain uncreated due to ClickHouse JOIN and data-type configuration errors. The ClickHouse configuration has been updated to ensure the required vusmart profile settings are applied to the vusmart and vusmartmanager users. The configuration that could cause unintended nullable data types during view creation has also been removed.
Post-jobs can now successfully create the required views without encountering the reported ClickHouse errors.
- VUQA-7122: Fix View Creation Failure via Post-Jobs
Summaryβ
vuSmartMapsβ’ NG 3.2.1 delivers improvements across platform deployment, O11ySource configuration, ADI, OmniAgent, security, and Traces migration. The release introduces automated Kubernetes upgrade support, advanced O11ySource configuration, improved OmniAgent performance, and additional Kubernetes security hardening.
The release also strengthens the NG 2.16 to NG 3.2.1 Traces migration workflow with backward compatibility, rollback support, CPU capability validation, and improved trace configuration handling. In addition, multiple issues across O11ySources, APM and Tracing, data models, OmniAgent, log forwarding, and upgrade workflows have been resolved. Together, these changes improve upgrade reliability, security, configuration management, migration continuity, and overall platform stability in NG 3.2.1.
