This page showcases new features, changes, and bug fixes in Dynatrace SaaS version 1.332. It contains:
Account Management | Cost Management
You can now access Billing Usage Events (BUEs) for query‑related DPS rate‑card capabilities in near real time. Previously, usage events could be delayed by up to 90 minutes before becoming available.
As part of this improvement, we also removed the historical billing offset. Under the previous model, usage from one hour was billed in the following hour. For example, queries executed between 5:00 and 6:00 were billed in the 6:00 to 7:00 window. With the new model, queries are billed in the same hour in which they occur. For example, queries from 6:00 to 7:00 are now billed in the 6:00 to 7:00 window.
During the hour when this transition takes place, you may temporarily see usage from two consecutive hours appear within a single billing window. This does not result in overcharging, as usage is consolidated, not duplicated.
This enhancement applies to the following categories:
Note that this update does not apply to Metrics - Query, which is always free and therefore has no associated BUEs.
Account Management | Identity Access Management
Account administrators who have configured SAML integration at the Account or Environment level can now instruct their users to use the Sign in with Microsoft button on the login screen, which functions the same way as it currently does for global federation.
All | Metrics Ingestion Protocol
All attributes present on the OTLP resource are now ingested as dimensions in Metrics powered by Grail.
The following settings for OTLP metrics ingest are available to tailor the behavior to your needs:
These changes continue to strengthen security and cost tracking with fine-grained access control and cost breakdowns (for example, using dt.cost.costcenter) and prepare your metrics for chargebacks and security monitoring while keeping data management efficient.
To enable this new version of the OTLP metrics ingest, in Dynatrace Classic, go to Settings > Metrics > OpenTelemetry metrics, and turn on Advanced OTLP metric dimensions.
For further details about these changes and their effect on enrichment with the dt.entity.service dimension, see OTLP Metric Dimensions Changes in the Dynatrace Community.
Application Observability
You can now control how much of your total licensed Full-Stack Monitoring trace volume—including any additionally configured extended trace volume—is allocated to Adaptive Traffic Management as usable adaptive trace volume.
This self-service capability lets you reduce adaptive usage when it's not needed, and helps prevent potential overages on your included trace volume. For example, you can manage fixed-rate spans from OpenTelemetry ingest more effectively.
For details on configuring the new setting, see the Global trace ingest control schema.
Digital Experience | Synthetic
Note:
Infrastructure Observability | Kubernetes
ActiveGate version 1.331+
Kubernetes telemetry enrichment rules now support direct tag enrichment for Kubernetes Smartscape entities, platform metrics, and platform events. You can reuse existing namespace labels and annotations to add tags in the syntax k8s.namespace.<label>/<annotation>.<key>: <value>.
For more details, see Metadata enrichment of all telemetry originating from Kubernetes.
Platform
Segments now offer support for Primary Grail tags (primary_tags.*) when defining conditions. Primary tags appear as suggestions and in auto-complete, so you can easily segment data using your existing organizational tags—such as department, team, application, or cost center—without needing to remember exact field names. This aligns segment configuration with the broader Primary Grail tagging strategy used across Dynatrace for organizing and filtering telemetry.
Platform
When querying a metric retrospectively, certain monitored entities may no longer be available and are therefore excluded from the result. This can lead to an incomplete result, especially for billing metrics. You can now use the entity selector to specify that deleted entities should be included. For details, see Entity selector - Inclusion of deleted entities.
Platform
You can now query the GiB per minute of your total licensed Full‑Stack trace volume that is allocated to Adaptive Traffic Management as usable adaptive trace volume. This is made available via the metric dt.sfm.atm.usable_adaptive_trace_volume_per_minute, which represents the configured percentage of dt.billing.traces.maximum_configured_fullstack_volume_per_minute.
Platform | Davis
In this release, each anomaly detection configuration includes a new parameter that allows you to set an execution delay ranging from 1 to 60 minutes. This parameter lets you reduce the frequency of DQL queries executed per hour in an anomaly detection configuration, helping you lower query costs and minimize system load. Increasing the delay is particularly beneficial for reporting use cases that utilize a larger data observation window.
Platform | DQL
DQL now offers more powerful ways to work with array data using the new arrayElement() and arraySlice() functions.
The arrayElement(array, index) function lets you access array elements using dynamic index expressions.
data record(a = array("ID", 2, "EmployeeId", 3))| fieldsAdd i = arrayIndexOf(a, "EmployeeId")| fields result = arrayElement(a, i+1) // => result = 3
The arraySlice(array [, from:] [, to:]) function extracts a subarray using from (inclusive) and to (exclusive) index boundaries, with support for negative indexing and clamped out‑of‑range values.
data record(a = array(0, 1, 2, 3, 4, 5, 6))| fieldsAdd result = arraySlice(a, from: 1, to: -1) // => result = [1, 2, 3, 4, 5]
The new DQL function arrayDiff(array) allows you to calculate the element-wise difference of consecutive elements in the array: for each index i > 0, result[i] = array[i] - array[i - 1]. The first element of the returned array is always null. Unlike arrayDelta(), arrayDiff() uses the immediate previous element (not the previous non-null one) and preserves negative differences. It supports the same datatypes as the - operator in DQL.
data record(a = array(now()+1h, now(), now()-3h))| fields result = arrayDiff(a) // => result = [null, -1h, -3h]
Platform | DQL
String-building in DQL is now more flexible thanks to an enhancement to the existing concat() function and the new arrayToString() function.
The existing concat(expression, … [, delimiter: ]) function now includes a delimiter parameter to insert a fixed string between concatenated values.
data record(a = "key", b = "value")| fields result = concat(a, b, delimiter: ":") // => result = "key:value"
The new arrayToString(array [, delimiter:]) function converts an array into a string. The optional delimiter parameter can be used to add a delimiter between consecutive elements.
data record(a = array("key", "value"))| fields result = arrayToString(a, delimiter: ":") // => result = "key:value"
Platform | Platform Services
Settings now features a collapsible navigation sidebar, allowing you to maximize page space and enjoy a cleaner interface.
Platform | Platform Services
Owners and editors can now share dashboards or notebooks without triggering email notifications. If you still need to add extra visibility when sharing, you can opt in to notify the recipients.
Platform | Problems
Problems now includes an impact-level filter that filters the feed of detected problems. Additionally, text-based filtering is available directly in the app's filter field to simplify segregation and search for relevant problems.
Software Delivery | Ecosystem
New integration capabilities allow you to connect your GitHub development workflow with Dynatrace. You can now automatically create and update GitHub issues to notify developers of detected errors or vulnerabilities, trigger GitHub Actions, and retrieve workflow run results. For more details, see GitHub Connector.
Application Security
security.events tableThe migration to the Grail security.events table is now complete. Built‑in application security events are now recorded exclusively in security.events and no longer appear in the events table. For more details, see Grail security table migration guide.
Digital Experience
below_threshold status now contribute to built‑in INP metricUser events with inp.status reported as below_threshold now set web_vitals.interaction_to_next_paint to 0 instead of null. As a result, these events are included in the built‑in INP metric calculation, which may slightly reduce the aggregated INP value.
Platform
As part of our ongoing commitment to delivering a streamlined and consistent user experience, Dynatrace is retiring its native mobile applications for iOS and Android. This change aligns with our strategy to provide a unified, responsive web interface and leverage modern, flexible notification channels.
The Dynatrace native mobile apps will no longer be available for download or supported after the sunset date.
We encourage you to access Dynatrace via the responsive web interface, which offers full functionality across all device types and screen sizes.
Push notifications will now be delivered through third-party integrations such as Slack, Teams, PagerDuty, email, and ntfy.
For assistance with transitioning or setting up integrations, see the documentation links above or contact our support.
event.type field. Previously, $eq() conditions in source filters were ignored. With this fix, these conditions are now applied as intended, which makes the source filter stricter. If your extraction rules relied on the previous behavior, review your source filter conditions to ensure that they match the intended event.type values using the $eq() operator. For details, see Event topology extraction and mapping. (PPX-8566)