Avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta función se proporciona actualmente como parte de una vista previa de conformidad con nuestras políticas de prelanzamiento.
Aprenda a verificar que ATP esté funcionando correctamente y a solucionar problemas comunes de configuración en entornos de host y Kubernetes.
Verifique que ATP esté funcionando
Después de instalar ATP, verifique que New Relic esté recibiendo datos de procesos ejecutando estas consultas en el generador de consultas:
Para ver métricas de procesos recientes:
FROM Metric SELECT *WHERE metricName LIKE 'process.%'LIMIT 100Para contar tipos de métricas de procesos únicos:
FROM Metric SELECT uniqueCount(metricName)WHERE metricName LIKE 'process.%'
Para ver las métricas de procesos recientes de su clúster:
FROM Metric SELECT *WHERE k8s.cluster.name='your-cluster-name'AND metricName LIKE 'process.%'LIMIT 100Para contar los tipos de métricas de procesos únicos para su clúster:
FROM Metric SELECT uniqueCount(metricName)WHERE k8s.cluster.name='your-cluster-name'AND metricName LIKE 'process.%'
Solucionar problemas de ATP
Problema: Se envían todas las métricas de proceso, no se filtran.
- Verifique que ATP esté en la lista de procesadores del pipeline.
- Verifique si
metric_thresholdsestán configurados. - Asegúrese de que se estén recopilando las métricas del proceso.
- Revise los logs del recopilador en busca de errores de inicialización de ATP.
Verifique que ATP esté habilitado:
bash$kubectl get configmap -n newrelic nr-k8s-otel-collector-daemonset-config -o yaml | grep adaptivetelemetryVerifique que ATP esté en el pipeline: Busque
adaptivetelemetryen el pipelinemetrics/nrVerifique que está utilizando la imagen correcta del recopilador:
bash$kubectl get daemonset -n newrelic nr-k8s-otel-collector-daemonset -o yaml | grep "image:"Esperado:
newrelic/nrdot-collector:11.0(o posterior)\ NO:newrelic/nrdot-collector-k8s:1.11.0Verifique que
enable_atpesté configurado entrueen suvalues.yamlo ConfigMap
Problema: La memoria del Colector aumenta con el tiempo
Solución: Ajuste la configuración de retención:
processors: adaptivetelemetry: retention_minutes: 15 # Reduce from default 30Problema: Faltan procesos esperados en la telemetría
Solución: Debe usar la ruta completa para agregar procesos a la lista de inclusión. Las entradas sin separadores de ruta no coincidirán con ningún proceso. Por ejemplo:
processors: adaptivetelemetry: include_process_list: - "/usr/bin/myapp" # Always captured regardless of thresholdsProblema: Anteriormente, se mostraban los datos de ATP, pero ahora no. Esto podría deberse a haber alcanzado los límites de cardinalidad. ATP filtra muchos procesos para reducir el volumen de telemetría, pero si tiene un número muy alto de procesos únicos, aún podría alcanzar los límites. Puede monitorear su uso de cardinalidad para rastrear esto.
Solución:
Para solucionar problemas, verifique si ha alcanzado los límites de cardinalidad yendo a la página de gestión de cardinalidad en New Relic. Si ha excedido los límites, puede aumentar su límite de cardinalidad.
Sugerencia
Si este es un problema recurrente, también puede aumentar el metric_thresholds de ATP para filtrar más procesos y reducir el volumen de métricas entrantes. Esto ayudará a evitar alcanzar los límites de cardinalidad en el futuro. Por ejemplo, podría aumentar los umbrales de utilización de CPU y memoria para capturar solo los procesos que consumen más recursos:
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 processesProblema: los logs de ATP muestran errores o advertencias relacionados con el almacenamiento sobre la imposibilidad de crear directorios de almacenamiento.
Solución:
ATP selecciona y crea automáticamente directorios de almacenamiento según el método de instalación. Si el almacenamiento falla, verifique lo siguiente:
Para instalaciones de systemd: asegúrese de que el servicio se ejecute como el usuario
nrdot-collectory que el archivo de servicio systemd incluya la directivaStateDirectory:bash$sudo systemctl cat nrdot-collector.service | grep StateDirectoryResultado esperado:
StateDirectory=nrdot-collectorPara instalaciones manuales de binarios: verificar que su usuario tenga permisos de escritura en
~/.local/state/:bash$mkdir -p ~/.local/state/nrdot-collector$touch ~/.local/state/nrdot-collector/test && rm ~/.local/state/nrdot-collector/testVerifique los logs del recolector en busca de mensajes relacionados con el almacenamiento:
bash$sudo journalctl -u nrdot-collector | grep -i storageImportante
Si ATP no puede crear o acceder al almacenamiento, deshabilita automáticamente la persistencia y continúa operando solo con el estado en memoria. La característica de retención de ATP continúa funcionando normalmente durante el tiempo de ejecución del recolector, pero el estado de seguimiento se perderá en los reinicios del recolector, ya que no se guarda en disco.
Requisitos de configuración
ATP administra automáticamente las rutas de almacenamiento según el método de instalación:
Para instalaciones del servicio systemd (paquetes DEB/RPM):
El almacenamiento se configura automáticamente en
/var/lib/nrdot-collector/El servicio systemd usa
StateDirectorypara crear y administrar el directorioNo se requiere configuración manual
Para instalaciones manuales de binarios:
El almacenamiento usa
~/.local/state/nrdot-collector/para usuarios regularesNo se requieren privilegios de root para el almacenamiento
El directorio se crea automáticamente si se puede escribir en él.
Sugerencia
Si no se puede crear el almacenamiento (por ejemplo, debido a problemas de permisos), ATP deshabilita automáticamente la persistencia y continúa operando solo con el estado en memoria. La característica de retención funciona normalmente durante el tiempo de ejecución, pero el estado de seguimiento se pierde en los reinicios del recolector. Revise los logs del recolector si necesita verificar el estado del almacenamiento.
Para habilitar la recopilación de datos de disk.io por el receptor hostmetrics de OpenTelemetry, necesita privilegios elevados porque los datos de E/S almacenados en /proc/[PID]/io requieren acceso de usuario root. Este no es un requisito de ATP, ATP solo procesa datos que ya han sido recopilados por OpenTelemetry.
Agregue el siguiente contexto de seguridad a su chart de Helm:
securityContext: allowPrivilegeEscalation: true privileged: true readOnlyRootFilesystem: false runAsNonRoot: false runAsUser: 0