---
title: "July 2026"
slug: "release-notes-month"
updated: 2026-08-10T13:44:21Z
published: 2026-08-10T13:44:21Z
canonical: "kb.kentik.com/release-notes-month"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://kb.kentik.com/llms.txt
> Use this file to discover all available pages before exploring further.

# July 2026

The following updates were released to the Kentik platform during MONTH 2026.

## AI / Insights

### Features

- **PeeringDB sub-agent**: AI Advisor can now query PeeringDB for Internet Exchanges, facilities, and ASN networks — checking records, finding common IXes/facilities, listing by geography, retrieving ASN profiles, and looking up IP addresses.
- **AI Advisor can manage Sites**: A new Sites tool creates and updates Kentik Sites (name, address, geo coordinates, IP ranges, site type) from your instructions. Every write requires human approval first and respects your RBAC permissions.
- **Data Explorer tool results include timestamps and units**: Time series returned to AI Advisor now carry ISO timestamps and units on each line, plus a table/legend header, improving the accuracy of AI answers about specific points in time.
- **95th percentile metrics available to AI Advisor**: The Data Explorer tool now supports p95th bits/sec, packets/sec, and flows/sec.
- **AI context on Capacity Planning pages**: The Capacity Planning overview and detail pages now feed AI Advisor full plan context (interface capacity, utilization, runout dates, severity, thresholds) with suggested prompts that adapt to plan health.
- **AI context on Connectivity Costs pages**: AI Advisor can analyze historical backbone and edge cost data, provider costs and cost-per-Mbps, currency-aware provider management, and cost groups.
- **AI context on Traffic Costs pages**: Traffic Costs overview and detail pages gain AI context and intelligent suggested prompts for questions about cost data, trends, and patterns.
- **OTT Inventory tool**: AI Advisor can list, search, and filter Kentik's OTT detection catalog by category and provider, return summary statistics, and export results to CSV.
- **Device tool label filtering**: AI Advisor can now filter the device inventory by label name.
- **Faster, more accurate AI queries**: Fuzzy matching for measurement names, automatic correction of dimension typos, and roughly 26% lower token usage on typical queries.
- **Clearer sub-agent transcripts**: Sub-agent reasoning and tool calls now render inline in a compact top-to-bottom flow (reasoning to call to result to next step).
- **"Still working" indicator**: Rejoining an active AI Advisor session (after a reload or session-start notification) now shows a thinking indicator so it is clear the agent is still running. Thinking indicators were also added to chat session lists in AI Advisor and Copilot.
- **Custom Network Context change history**: CNC changes are now recorded in the Audit Log with dedicated filtering and full version history.
- **Kentik AI settings pages added to the sitemap**: All AI configuration pages (overview, models, context, command access, runbooks, auto-investigation, privacy, usage) are now discoverable in the sitemap.
- **Runbooks from Kentik presets available to auto-investigations**: Companies can attach Kentik-provided preset runbooks to auto-investigations without owning them.
- **New and larger models available**: Claude Opus 5, Gemini 3.6 Flash and 3.5 Flash-Lite added to the model registry; maximum output raised from 64,000 to 128,000 tokens for the latest Claude Sonnet and Opus models.

#### UDE Features

Universal Data Explorer (UDE) is in open early access and is available to interested customers by feature flag. The following features are available to users with access to UDE:

- **Universal Data Explorer: "Source or Destination" filtering**: A single filter can now capture traffic in either direction for a given dimension.
- **Universal Data Explorer: deeper tables and total row**: Table depth extends from 5-40 to 50-350 rows, and the legend table gains a sticky footer with aggregated totals that stays visible while scrolling.
- **Universal Data Explorer tool is now opt-in**: The UDE tool requires explicit feature-flag activation before it replaces the Data Explorer and NMS tools in AI Advisor.
- **Ask questions of live network data in plain English**: New AI Advisor tools translate natural-language questions into live queries across NetFlow/IPFIX traffic, NMS metrics, and synthetic test results, and can build complete multi-panel dashboards from a conversation.
- **Universal Data Explorer: "Source or Destination" filtering**: A single filter can now capture traffic in either direction for a given dimension.
- **Universal Data Explorer: deeper tables and total row**: Table depth extends from 5-40 to 50-350 rows, and the legend table gains a sticky footer with aggregated totals that stays visible while scrolling.
- **Universal Data Explorer tool is now opt-in**: The UDE tool requires explicit feature-flag activation before it replaces the Data Explorer and NMS tools in AI Advisor.

### Bug Fixes

- **AI Advisor no longer fails a whole turn on one slow tool**: Tool calls now time out after five minutes and cancel their underlying queries instead of erroring the entire agent turn.
- **Auto Investigations auto-refresh**: Refresh now preserves your selection, respects cache intervals, and avoids unnecessary collection reloads.
- **Faster AI responses through prompt caching**: Non-deterministic ordering in the Data Explorer, Connectivity Test, and A2A tool system prompts was fixed so prompt caching works, reducing latency.
- **Empty measurements hidden**: Measurements whose metrics and dimensions are all hidden (due to old or missing LastSeen timestamps) no longer appear.
- **Column-to-column comparisons restored for `kt_` dimensions**: Comparison filtering works again in Data Explorer and Universal Data Explorer.

## Alerting

### Features

- **Jira and Jira Service Management notification channels**: Alerts can now create and update tickets in Jira Cloud and JSM. Configure token-based authentication, a project key, and an issue type; custom headers are now entered as structured key-value pairs instead of hand-formatted strings.
- **Suppressions table rebuilt**: The Suppressions and Silences table now includes a search bar, contained scrolling, multi-row selection for bulk deletion, and an Active/Expired status filter.
- **Jump straight to a new suppression**: After creating a suppression, the success toast includes a "View Suppression" link that opens the Suppressions and Silences page filtered to the new entry.
- **Floating bulk actions**: The Alerting, Policies, and Mitigations tables now show a floating action bar when rows are selected, with built-in Remove and Labels actions, matching the Devices page.
- **Suppressions can filter on alert context**: Suppression rules can now be further limited by materialized context attributes such as device, site, and interface.
- **Richer structured context in alert triggers**: Triggers now carry structured context (device, site, interface, and geographic details) alongside the legacy context blob, and Synthetics triggers include detailed observation metrics such as latency, jitter, packet loss, HTTP status, DNS codes, throughput, certificates, timeouts, and errors.
- **Default top keys evaluated reduced to 1,000**: kEvent policies now evaluate 1,000 top keys by default (previously 10,000), improving evaluation performance. Existing policies are migrated automatically.
- **Alerting table pagination standardized**: The Alerting table now uses the shared paginator component, with disabled next/previous buttons at list boundaries, result counts shown while loading, and configurable per-page counts.

### Bug Fixes

- **Baseline configuration fields restored**: Baseline settings, including minimal length, are visible and editable again on the Baseline tab of alert policies.
- **Baseline policy updates for kmetrics**: Additional QueryColumn field names are now permitted in the kmetrics SQL generator, so baseline alerting policies can be created and updated again.
- **kmetrics filter field names in policies**: Dimension and metric mapping now handles both Column and QueryColumn properties, preventing invalid filter field names when configuring kmetrics policies.
- **Bulk editing of policy labels**: A missing RBAC permission mapping caused permission-denied errors during bulk label edits; this is fixed.
- **Mitigations page double-fetch**: The Mitigations table no longer fetches its data twice on a fresh page load.
- **MKP alert history charts**: The missing history endpoint was added, so MKP alert detail pages display their historical chart data.

## Cloud

### Features

- **Oracle Cloud Infrastructure is now a first-class cloud provider**: OCI joins AWS, GCP, and Azure across quick views and navigation, with OCI-specific tabs for region, instance, availability domain, VCN, and subnet. A new aggregate "Clouds" view gives a unified summary across every provider.
- **OCI subnet labeling in the Cloud Flow Log Provider dimension**: OCI flow devices are recognized and labeled in the `kt_cloud_provider` custom dimension, so OCI traffic carries proper provider attribution.
- **Faster, smoother cloud maps**: SVG link rendering on the AWS, Azure, GCP, and OCI maps was optimized with node geometry caching, keyed update joins, a hardened arrow animation lifecycle, and debounced hover, plus corrected anchor drift during resize and layout changes.
- **CloudPak plan card improvements**: The Licenses page CloudPak card now matches the FlowPak card styling and adds plan description text, a "(P95)" label on FPS stat lines, darker chart colors for dark mode, and an informative message instead of a blank chart when there is no data.
- **Cloud device status includes stored FPS**: Cloud device status responses are enriched with stored licensing flow metrics in a `downsampled_fps` field, giving a more complete picture of device telemetry.
- **Much faster cloud topology path queries**: Indexing on VPC ID and batched VPC forwarding probes cut a 193,265-path subnet-to-subnet computation from roughly one second to about 150 milliseconds.
- **Fewer redundant cloud API calls**: Device metadata updates for AWS, Azure, and OCI now use centralized batch updates rather than per-device calls, measurably reducing periodic device GET volume.
- **GCP topology refresh honors proxy settings**: GCP refresh jobs now respect HTTP_PROXY/HTTPS_PROXY and route API calls through configured proxies.
- **Lower memory usage for GCP flow processing**: GCP standard and Cloud Run log processing moved to a unified single-process model, with visible memory improvements in production.

### Bug Fixes

- **AWS Cloud WAN paths show every segment**: The Pathfinder page now displays all core network segments and supports cross-segment routing, with deduplicated nodes, account summaries rebuilt from fresh metadata rather than stale cache, and on-demand topology summary refresh.
- **AWS Pathfinder rendering error**: A missing null check caused the page to fail when pathfinder data was incomplete.
- **AWS map loads faster**: Non-existent AWS regions were removed from the scraping dictionary, eliminating DNS errors and retry delays.
- **Malformed AWS ARNs no longer fail silently**: Parsing errors now propagate correctly so cloud export workflows complete and report the error instead of returning empty results.
- **OCI maps stop re-scraping unnecessarily**: Empty OCI topologies are now cached, and empty `map.json` files can be uploaded to the storage bucket, preventing repeated scrapes on map load.
- **Cloud Metadata API Status shows all error rows**: Duplicate rows were being collapsed, hiding most errors; all rows are now displayed.
- **Azure configuration no longer shows an obsolete warning**: The deprecated "api_access" validation warning was removed from the Azure cloud export configuration screen.
- **Cloud topology refresh reliability**: Refresh job configuration was restored to its original defaults to resolve database timeouts and missing topology metadata, GCP exports are now identified with the correct provider value, and job timeouts were tuned.
- **OTT capacity treemap restored**: A missing chart module broke the treemap on the OTT Service Details Capacity tab.

## NMS

### Features

#### New and expanded device support

- **New device vendors and models**: Support was added for Vitesse switches , Adva FSP 3000R7 optical platforms, ADVA Access Link Monitor with fiber loss and OTDR reporting, Ciena/Nortel OME6500, Opengear OM12xx/OM22xx console servers, Riello UPS, Nokia SR Linux, Lenovo RackSwitch across 15 models, Cisco Nexus 93180YC-FX3H, and expanded Mellanox/NVIDIA coverage.
- **38+ new Ciena optical models in discovery**: FSP3000-R7, OTS1000, and FSP150 series variants can now be discovered and managed automatically.
- **Network Interface Device (NID) class**: NIDs now have their own icon and device class, so they can be identified and filtered in the infrastructure view.
- **New trap templates**: SNMP trap support was generated for Vitesse, Juniper MPLS and PING, ADVA FSP3000ALM, Ciena 6500, Nortel OME6500/OME40G, Opengear, Riello UPS, Aruba ArubaOS-CX, and Ixia/Keysight IBP100 — over 200 new and updated templates.
- **New Check Point measurements**: Voltage sensors under `/components/sensor`, a work-mode dimension on the HA measurement, and a new firewall statistics measurement at `/devices/checkpoint/firewall`.
- **Interface names on ISIS adjacency reports**: ISIS adjacency reports now carry ifName and ifDesc dimensions.
- **BGP neighbors for VyOS**: The VyOS profile gains `/protocols/bgp/neighbors` via BGP4V2-MIB.
- **F5 BIG-IP configuration backup**: Device configuration fetching now supports the F5 TMOS platform.

#### Configuration and reporting

- **SNMP walk permissions via RBAC**: Users with sudo, role-based admin, or the new RBAC SNMP walk filter permissions can run SNMP walks, with label-based scoping.
- **Better keyboard navigation on the SNMP walk page**: Press Enter in the OID field to start a walk, and navigate the Common OIDs list with arrow keys. Validation errors no longer shift the input fields.
- **On-demand SNMP polling**: A new API allows immediate polling of an SNMP source without waiting for the next scheduled cycle, returning a task ID for asynchronous result retrieval.
- **sysObjectID pre-filled from the vendor OID**: Entering a vendor-prefixed table OID now pre-populates the sysObjectID matcher with that prefix plus a wildcard.
- **Refresh interface metadata from the UI**: Interface metadata can be refreshed directly from the Interfaces tab on the Device Details page without a full page reload.
- **SNMP polling health always reported**: Two SNMP polling health reports are now included in every device monitoring configuration at a 15-minute interval, regardless of template filtering.
- **SNMP port validation**: The SNMP port field now rejects values outside 1-65535, with a warning for out-of-range entries. Leaving it empty still defaults to 161.
- **More searchable device fields**: Device search now covers agent name, model, OS version, plan name, serial number, site market name, and vendor.
- **Consolidated agent filter**: The separate Agent Name and Agent ID filters on the Devices table are merged into one filter matching either value.
- **Legacy KProxy upgrade prompts**: Devices running KProxy builds more than a year old now show a warning indicator and an upgrade call-to-action pointing to FlowProxy.
- **Automatic interface classification maintenance**: Scheduled jobs now clean up stale classification data when a company, device, or interface is gone, and refresh rules from PeeringDB.
- **Force IPv4 or IPv6 for agent connections**: New `K_GRPC_DIAL_NETWORK`, `KENTIK_HTTP_DIAL_NETWORK`, and `KENTIK_DIAL_NETWORK` settings let you pin agent gRPC and HTTP connections to a single address family, working around broken IPv6 paths.
- **Standby agent upgrades in clusters**: Fleet upgrades now handle clustered and standby agents correctly, including device-profile capability state during standby.

### Bug Fixes

- **CPU sparklines no longer spike to 100%**: Device Details CPU sparklines now show smooth, accurate values instead of artificial spikes caused by averaging across individual CPUs.
- **Long discoveries can be cancelled**: Cancelled discoveries are marked inactive and removed from the active list instead of appearing stuck.
- **ICMP device CSV import**: Header validation and value sanitizing (trimming whitespace, removing BOM, stripping quotes) fix failures when importing ICMP devices from CSV.
- **Stable device detail URLs**: A new ID-based route resolves navigation issues caused by case-sensitive device name collisions and keeps links working after a device is renamed.
- **Custom report display fixes**: Byte array values now decode to readable text (for example "Cisco" instead of a numeric array), OIDs sort numerically rather than alphabetically, and group scalar OIDs are automatically padded with `.0` so collection succeeds.
- **SNMP date and non-printable character decoding**: 8-byte and 11-byte date/time values with UTC offsets decode correctly, and non-printable sequences are no longer misinterpreted, improving SNMP Walk display accuracy.
- **Missing data in Metrics Explorer and UDE restored**: The kmetrics dimension mask was filtering out valid data on measurements with many dimensions; it is now disabled (UDE is in open early access and is available to interested customers by feature flag).
- **Metrics Explorer refresh and load**: Dashboard panels now honor the dashboard refresh interval, and page load issues two fewer queries.
- **Missing FPS values and traffic sort on the Devices table**: A Redis response parsing issue prevented FPS values from showing and traffic from being sortable.
- **Devices missing on first load**: Traffic-collecting devices now appear reliably on the first load of the agent device list.
- **Kentik agents load in the device configuration modal**: Agents are now fetched automatically when they have not already been loaded.
- **UA install commands restored**: The NMS setup task screen fetches install commands dynamically again.
- **BGP route selection options available immediately**: The device form initializes all BGP lookup strategy options up front, so validation works without first visiting the BGP tab.
- **BGP session states preset**: An invalid dimension was replaced with the correct one, and unknown dimensions are now rejected early with a clear error message.
- **Interface classification (IC) corrections**: Null match attributes are evaluated as literal null (matching prior behavior), null no longer equals an empty string, company IC settings are respected to avoid stale results, manual classifications are not overwritten by automatic rules, and regex capture handling was fixed.
- **Interface classification counts unified**: Counts across the application now come from a single source of truth, eliminating discrepancies between sections.
- **Cisco Nexus configuration downloads complete**: A pagination prompt was causing config fetch timeouts on NX-OS devices.
- **Hung device connections no longer wedge fetches**: Cancellable contexts and explicit timeouts prevent a stuck SSH session from blocking future configuration fetches, and failed session setup instructions are now logged instead of silently swallowed.
- **gNMI counter and speed fixes on Juniper**: Interface error and discard counters are no longer dropped on per-PFE devices, and interface speed falls back to `state/high-speed` for aggregates and non-enum ports, restoring utilization metrics.
- **Cisco IOS fan status**: Fan operational status now falls back to the environment monitor table when needed.
- **Ubiquiti CPU summary**: `/system/cpus/summary` now divides by CPU count to match `/system/cpus`.
- **Chatsworth PDU sensors report units**: Temperature and humidity now report as `temperature-value` in Celsius and `humidity-value` as a percentage.
- **Cumulus vendor and model parsing**: Vendor, model, and product name are parsed correctly from the physical entity table, and the OS name is standardized to "Cumulus Linux".
- **Interface speed sanity check**: Reported speeds of one bit per second or less are zeroed out rather than recorded.
- **Nokia SR Linux memory utilization tag** and **Check Point CPU metric tag** were corrected.
- **Agent bootstrap command**: The generated curl command now quotes URLs containing query parameters.
- **Agent diagnostics for unauthenticated agents**: The `kagent diagnostic` command generated malformed domain names; it now resolves valid hosts based on server configuration.
- **Duplicate agent detection**: Detection now uses run ID rather than hostname or IP, avoiding false positives behind NAT gateways while still catching cloned VMs.
- **Universal Agent NMS health metric gaps**: Hourly gaps in CPU and memory metrics were resolved by keeping deviceless metrics visible throughout the query window.
- **Legacy KProxy indicator layout**: Text line breaks and spacing between indicators on the Device Telemetry page were corrected.

## Platform

### Features

- **Interface Classification v3**: New read APIs deliver device-level match counts and rule statistics far more efficiently, rule matches can be refreshed completely within a database transaction, classification data refreshes automatically when rules change, and the unclassified interfaces tab now uses the faster v3 system. The UI also explains when a manually classified rule is overriding an automatic one, and a preview flag lets you test rule changes before applying them.
- **IP obfuscation permission**: A new `allowIpObfuscation` permission gates the FlowProxy mask-file option so administrators can enable or disable it per company.
- **Bulk device deletes appear in the Audit Log**: Bulk delete operations are now mapped and tracked.
- **Better admin table pagination**: Built-in pagination for paged collections, with disabled next and previous buttons at list boundaries, result counts shown while loading, a hidden paginator when there are no results, and customizable per-page counts.
- **hsflowd configuration template**: A new Host sFlow daemon configuration snippet is available as Kentik deprecates the Kprobe agent, including sampling rate guidance by link speed and collector configuration for both FlowProxy/UA and SaaS deployments.
- **NetFlow v9 template timeout guidance**: The Cisco IOS-XE NetFlow template now documents a 60-second template data timeout, with 5 seconds recommended for HA failover scenarios.
- **139 new ASN override labels**: Provider identification accuracy improved, primarily for ISPs and telecom carriers in South America and other regions.

### Bug Fixes

- **Two-factor authentication can be disabled again**: A backend bug prevented users from turning 2FA off.
- **Enter key works on SSO lookup and password reset**: Both pages now support keyboard submission when the email field has focus, matching the standard login form.
- **Global search finds devices containing "as"**: The search term was having "as" stripped for ASN matching and then applied to device search, hiding devices like BASRT2001.
- **Shift+click row selection in Firefox**: Multi-row selection in admin tables now works in Firefox as it does in Chrome and Safari.
- **Devices page PDF export**: A store initialization issue caused an undefined collection error during export.
- **Capacity plan CSV export includes Site**: The Site column was missing from the export.
- **User Agent filter options on the Devices sidebar**: Options now populate directly from the UA collection instead of looping through devices, fixing missing agents and improving performance for customers with many devices.
- **Collection method shown correctly after migration**: Devices migrated from kProxy to Kentik Agent collection no longer display both methods.
- **Sample rate preserved on device creation**: The Device V6 API no longer overwrites an explicitly supplied sample rate with the default of 1.
- **Device API port value**: The port field could inadvertently be set to 0 in API responses.
- **Device writes use the right endpoint**: Create, update, and delete now use the per-device endpoint rather than the table endpoint.
- **Dashboards no longer flagged as unsaved**: A regression marked dashboards dirty when filters lacked a saved `disabled` field.
- **Network metadata warning spacing**: The "no classified interfaces" warning in Settings uses a tag instead of a callout, fixing inconsistent spacing.
- **Plan card states aligned**: CloudPak, DevicePak, and FlowPak cards now share consistent error and empty-state messaging, show a device popover for Traffic plans, display zero-value utilization charts when devices exist without flow data, hide BGP entitlement text for Universal Cloud plans, and link to device onboarding when there are no devices.
- **Query time filters are exact**: Time filters are now encoded as half-open intervals, so logically equivalent queries return the same rows, 60-second queries are possible (previously only 59 or 61), and 5-minute time series return a full 5 minutes. Exact 3-hour and 24-hour windows keep their expected resolution.
- **Empty time ranges return no rows instead of an error**: Queries spanning an empty timespan now return a zero-row result rather than a parse error.
- **Client disconnects during planning are no longer errors**: Cancellations during the query planning phase now return a proper cancelled status instead of a 500. Genuine timeouts still fail.
- **Aggregate overflow no longer silently truncates**: Values exceeding their declared column type now raise an out-of-range error rather than returning an incorrect result.
- **Case-sensitive tag matching**: The planner tag cache no longer normalizes tags to uppercase, so case-sensitive tag values resolve correctly.
- **Flow rate metrics no longer spike on restart**: Process-level FPS out-rate metrics showed false spikes when a process restarted.
- **Stale VRF routes after BGP withdrawal**: Withdrawals without a Route Target attribute left stale routes in VRF lookup tables, causing incorrect ASN enrichment in flow data.

## Synthetics

### Features

- **Save returns you where you started**: Saving in the synthetic test wizard now returns you to the page you came from — test results, a dashboard, or elsewhere — instead of always redirecting to the tests list.
- **Synthetic credit calculator**: A new tool estimates monthly synthetic test credit usage across 16 test types, with numeric quantity inputs, formatted totals, a calculation details view, and print-to-PDF export. Test intervals were aligned with the portal's supported options, including 2-minute and 10-minute intervals, transaction tests restricted to 5-90 minutes, and clarified one-minute minimum billing for private-agent ping, DNS, flow, and matrix tests.

### Bug Fixes

- **Bulk delete of synthetic tests**: Deleting multiple tests at once now works, with clear success and failure counts.
- **Disabled filter groups are ignored**: Disabled synthetics filter groups were still being compiled into queries, silently returning zero rows.
- **Path view on shared URLs**: Trace and tracee views now load through shared links instead of returning a 403.
- **Health timeline across mixed test frequencies**: The synthetic tests page now aggregates results in a frequency-aware way, giving consistent data density across test periods. Default pagination changed from 100 to 25 results per page.
- **Distinct colors for adjacent BGP bands**: Reachability stacked bands now use an adjacency-aware, deterministic color scheme, kept consistent between the Reachability and Route Viewer views, so neighboring bands never share a color.
- **Web test uploads in UA mode**: Waterfall and screenshot data now upload correctly, after region codes for the current production clusters were mapped to the right portal domains.
- **"New" label expiry consistent across time zones**: The New badge on the Synthetics Tests menu link previously expired at different times depending on whether a user was in UTC or local time.
- **Removing a test no longer leaves orphaned records**: Deleted tests previously left records behind that could raise false alerts after a restart.

## Traffic

### Features

- **New OTT services detected**: Traffic classification now recognizes itvX, Zapi, Altibox, Fetch TV, Sky News Australia, and CursorAI, with updates to existing patterns for Fox Sports, Amazon Prime Video, Spotify, TikTok, Office 365, Roblox, and Apple location services. SBS Video was renamed to SBS On-demand.
- **Expanded coverage for World Cup 2026 streaming**: Additional CDN hostname patterns were added for Peacock TV, Fox Sports, Amazon Prime Video, and Swann Security so that streaming traffic is classified accurately during the tournament.
- **Faster flow ingest receive path**: Chunked message handling was optimized to eliminate redundant copies, the read buffer was increased from 4 KiB to 128 KiB, and metric batching reduces contention — addressing drops observed at very high flow rates. Queue depth monitoring was also added.
- **v2 streaming enabled by default**: The traffic agent and HTTP chunk transport now default to the v2 streaming path, which uses a shared backpressure fan-out dispatcher instead of one stream per capture goroutine.
- **Automatic recovery when flow stops**: FlowProxy now restarts itself when it detects no traffic for a configured period, recovering from parsing problems or processing deadlocks without intervention.
- **Faster BGP convergence after session flaps**: End-of-RIB markers are now processed directly from BMP updates, so the system no longer waits for an MRT RIB dump after a BGP session flap.
- **Flow enrichment with Kentik NMS metrics**: ktranslate can map Kentik metric definitions from a CSV file to enrich flows with custom metrics and dimensions, supporting masks, types, units, and dimension mappings.

### Bug Fixes

- **OTT sparklines reflect all sub-categories**: OTT Service sparklines were showing only the top sub-category; they now merge all sub-category data and match the Data Explorer view.
- **OTT Service Tracking subscriber tab**: Bar chart column widths for 1-day lookbacks, chart axis break calculation, and label text spacing were all corrected.
- **Data Explorer results with empty lookups**: An empty lookup value caused a rendering error; the fallback value (for example, the VPC ID) is now shown instead.
- **Exports complete when a query errors**: A query error no longer blocks the export process from finishing.
- **OpenTelemetry metrics no longer dropped on invalid UTF-8**: SNMP strings such as ifAlias and sysName that contain non-UTF-8 bytes are now hex-encoded rather than causing whole export batches to be dropped, so devices like Commvault export metrics successfully.
- **Devices receiving the wrong interfaces**: A device ID matching check now prevents interfaces from being assigned to the wrong device through the API.
- **OTT capacity treemap restored**: A missing chart module broke the treemap on the OTT Service Details Capacity tab.
