Preview
We're still working on this feature, but we'd love for you to try it out!
This feature is currently provided as part of a preview pursuant to our pre-release policies.
Learn how to verify ATP is working correctly and troubleshoot common configuration issues across host and Kubernetes environments.
Verify ATP is working
After installing ATP, verify that New Relic is receiving process data by running these queries in the query builder:
To view recent process metrics:
FROM Metric SELECT *WHERE metricName LIKE 'process.%'LIMIT 100To count unique process metric types:
FROM Metric SELECT uniqueCount(metricName)WHERE metricName LIKE 'process.%'
To view recent process metrics for your cluster:
FROM Metric SELECT *WHERE k8s.cluster.name='your-cluster-name'AND metricName LIKE 'process.%'LIMIT 100To count unique process metric types for your cluster:
FROM Metric SELECT uniqueCount(metricName)WHERE k8s.cluster.name='your-cluster-name'AND metricName LIKE 'process.%'
Troubleshoot ATP issues
Problem: All process metrics are being sent, not filtered.
- Verify ATP is in the pipeline processors list.
- Check whether
metric_thresholdsare configured. - Ensure process metrics are being collected.
- Review collector logs for ATP initialization errors.
Verify ATP is enabled:
bash$kubectl get configmap -n newrelic nr-k8s-otel-collector-daemonset-config -o yaml | grep adaptivetelemetryCheck ATP is in the pipeline: Look for
adaptivetelemetryin themetrics/nrpipelineVerify you're using the correct collector image:
bash$kubectl get daemonset -n newrelic nr-k8s-otel-collector-daemonset -o yaml | grep "image:"Expected:
newrelic/nrdot-collector:11.0(or later)
NOT:newrelic/nrdot-collector-k8s:1.11.0Verify
enable_atpis set totruein yourvalues.yamlor ConfigMap
Problem: Collector memory increases over time
Solution: Adjust retention settings:
processors: adaptivetelemetry: retention_minutes: 15 # Reduce from default 30Problem: Expected processes are missing from telemetry
Solution: Must use full path to add processes to include list. Entries without path separators won't match any process. For example:
processors: adaptivetelemetry: include_process_list: - "/usr/bin/myapp" # Always captured regardless of thresholdsProblem: Earlier, ATP data was shown but now it is not. This could be due to hitting cardinality limits. ATP filters out many processes to reduce telemetry volume, but if you have a very high number of unique processes, you could still hit limits. You can monitor your cardinality usage to track this.
Solution:
To troubleshoot, check whether you've hit cardinality limits by going to the cardinality management page in New Relic. If you've breached limits, you can increase your cardinality limit.
ヒント
If this is a recurring issue, you can also increase ATP's metric_thresholds to filter out more processes and reduce the volume of incoming metrics. This will help prevent hitting cardinality limits in the future. For example, you could increase the CPU and memory utilization thresholds to only capture more resource-intensive processes:
processors: adaptivetelemetry: metric_thresholds: process.cpu.utilization: 0.10 # Increase from 0.05 to 0.10 (10% CPU) process.memory.utilization: 0.10 # Filter out more processesProblem: ATP logs show storage-related errors or warnings about being unable to create storage directories.
Solution:
ATP automatically selects and creates storage directories based on your installation method. If storage fails, verify the following:
For systemd installations: Ensure the service is running as the
nrdot-collectoruser and the systemd service file includes theStateDirectorydirective:bash$sudo systemctl cat nrdot-collector.service | grep StateDirectoryExpected output:
StateDirectory=nrdot-collectorFor manual binary installations: Verify your user has write permissions to
~/.local/state/:bash$mkdir -p ~/.local/state/nrdot-collector$touch ~/.local/state/nrdot-collector/test && rm ~/.local/state/nrdot-collector/testCheck collector logs for storage-related messages:
bash$sudo journalctl -u nrdot-collector | grep -i storage
重要
If ATP cannot create or access storage, it automatically disables persistence and continues operating with in-memory state only. ATP's retention feature continues to work normally during the collector's runtime, but the tracking state will be lost on collector restarts since it's not saved to disk.
Configuration requirements
ATP automatically manages storage paths based on your installation method:
For systemd service installations (DEB/RPM packages):
- Storage is automatically configured at
/var/lib/nrdot-collector/ - The systemd service uses
StateDirectoryto create and manage the directory - No manual configuration required
For manual binary installations:
- Storage uses
~/.local/state/nrdot-collector/for regular users - No root privileges required for storage
- Directory is automatically created if writable
ヒント
If storage cannot be created (for example, due to permission issues), ATP automatically disables persistence and continues operating with in-memory state only. The retention feature works normally during runtime, but tracking state is lost on collector restarts. Check collector logs if you need to verify storage status.
To enable disk.io data collection by the OpenTelemetry hostmetrics receiver, you need escalated privileges because the io data stored at /proc/[PID]/io requires root user access. This is not an ATP requirement, ATP only processes data that's already been collected by OpenTelemetry.
Add the following security context to your Helm chart:
securityContext: allowPrivilegeEscalation: true privileged: true readOnlyRootFilesystem: false runAsNonRoot: false runAsUser: 0