Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Nuestro agente Python le permite cambiar el comportamiento predeterminado del agente usando opciones de configuración.
La única configuración de configuración del agente Python requerida es . La clave de licencia identifica la cuenta donde el agente reporta los datos de la aplicación. Dependiendo de cómo aloje su aplicación, la clave de licencia se puede proporcionar a través de un archivo de configuración o una variable de entorno.
El agente Python sigue este orden de precedencia para la configuración:
Con el agente Python, las opciones por solicitud anulan la configuración del lado del servidor. Si está habilitada, la configuración del lado del servidor anula los valores correspondientes a all en el archivo de configuración del agente, incluso si los valores del lado del servidor se dejan en blanco. El archivo de configuración del agente anula las variables de entorno. Las variables de entorno anulan los valores predeterminados del agente.
Aquí hay descripciones detalladas de cada método de configuración:
Normalmente configura su agente Python desde un archivo de configuración local en el sistema host del agente. Proporcione la ruta al archivo de configuración al inicio utilizando uno de estos métodos:
Cuando llame a newrelic.agent.initialize(), proporcione la ruta al archivo de configuración como primer argumento.
O
Establezca la variable de entorno NEW_RELIC_CONFIG_FILE . Si utiliza el script contenedor newrelic-admin , debe usar la variable de entorno porque el script contenedor llama al agente automáticamente.
El agente admite dos tipos de archivos de configuración: el agente v10.2.0 y anteriores deben usar la sintaxis .ini , mientras que las versiones del agente v10.3.0 y superiores que se ejecutan en las versiones de Python 3.11 y superiores también admiten archivos .toml .
El archivo de configuración emplea una estructura similar a los archivos .ini de Microsoft Windows. Para obtener más información, consulte la documentación del formato de archivo del módulo Python ConfigParser.
La estructura básica debería ver así:
[newrelic]
license_key=<license key>
app_name=Python Application
Sugerencia
A partir de Python 3.11, se agregó la sintaxis más nueva .toml para la configuración a la biblioteca estándar. La versión del agente 10.3.0 agregó soporte para usar este formato más nuevo.
Para emplear la sintaxis .toml , el nombre del archivo de configuración debe terminar con .toml para indicar el tipo de sintaxis. El estándar pyproject.toml se puede emplear junto con la configuración de otra biblioteca, o puede emplear un archivo más específico como newrelic.toml.
La estructura básica debería ver así:
[tool.newrelic]
license_key=<license key>
app_name=Python Application
Sugerencia
Se incluye un archivo de configuración de muestra con el agente Python como newrelic/newrelic.ini. También puede generar uno a partir del script newrelic-admin usando el comando generate-config o descargar una copia desde nuestro repositorio de descargas.
La configuración del lado del servidor le permite configurar ciertas configuraciones en la UI de New Relic. Esto aplica sus cambios automáticamente a todos los agentes incluso si se ejecutan en varios hosts. Cuando esté disponible, este documento incluye las etiquetas de la UI para la configuración del lado del servidor en opciones de configuración individuales como Server-side label.
Importante
Si la configuración del lado del servidor está habilitada, el agente ignora cualquier valor en el archivo de configuración que could se establezca en la UI. Incluso si el valor de la UI está vacío, el agente lo trata como una cadena vacía y no utiliza el archivo de configuración del agente.
Las variables de entorno le permiten anular los valores predeterminados para ciertas configuraciones principales. Si la configuración equivalente aparece explícitamente en el archivo de configuración del agente, la configuración del archivo de configuración tiene prioridad sobre la variable de entorno. Cuando estén disponibles, las variables de entorno se documentan a continuación en opciones de configuración individuales como Environ variable.
Para configuraciones simples, puede usar las variables de entorno junto con la configuración del lado del servidor y evitar el archivo de configuración del agente por completo. Esta es la configuración predeterminada con Heroku, donde la instalación del complemento New Relic completa automáticamente las variables de entorno necesarias.
Para ciertos servidores WSGI, puede anular el nombre de la aplicación y capturar la configuración del atributo por solicitud. Esto es posible con servidores WSGI donde puede definir pares principales de valores adicionales que se pasan al diccionario de entorno WSGI por solicitud.
Establezca estos valores con las cadenas on, off, true, false, 1 y 0. Si se establece desde un mecanismo de configuración implementado usando código Python, también se aceptarán los objetos Python que se evalúen como Verdadero o Falso.
En el servidor Apache/mod_wsgi, puede utilizar la directiva SetEnv para anular la configuración (opcionalmente dentro de un bloque Location o Directory ). Por ejemplo, podría anular el nombre de la aplicación para un host virtual completo o para un subconjunto de URL manejadas por la aplicación WSGI para ese host virtual.
Además de poder anular ciertas configuraciones de agente, puede establecer otras configuraciones por solicitud con su clave de entorno WSGI:
Si se establece en true, esta transacción web se informará como una transacción no web.
Si se establece en true, esta transacción web no se informará.
Si se establece en true, no se generará ninguna métrica de Apdex para esta transacción web.
Si se establece en true, esta transacción web no se puede registrar en una traza de la transacción.
Si se establece en true, esto deshabilita la inserción automática del encabezado/pie de página de JavaScript para el tiempo de carga de la página (a veces denominado monitoreo de usuarios reales o RUM). Solo se aplica si la inserción automática está disponible para su framework web.
Importante
El uso de un middleware WSGI para establecer estos valores no funcionará cuando se aplicó el contenedor de aplicación WSGI del propio agente Python en un ámbito externo. En estos casos deberá realizar llamadas a la API del agente para lograr el mismo resultado.
Configuración de múltiples entornos
El agente lee su configuración principal desde una sección de configuración del agente llamada [newrelic] para archivos ini , o [tool.newrelic] para archivos .toml . Puede proporcionar anulaciones para entornos de implementación específicos (por ejemplo, Desarrollo, de prueba, Producción) en secciones adicionales. Anteponga estas secciones con [newrelic:environment] para archivos .ini , o [tool.newrelic.env.environment] para archivos .toml (donde environment se reemplaza con el nombre de su entorno).
Para especificar que el agente debe utilizar una configuración basada en el entorno, utilice uno de estos métodos:
Establezca la variable de entorno NEW_RELIC_ENVIRONMENT en el nombre del entorno.
Si no se especifica ningún entorno, el agente utilizará la configuración predeterminada como se especifica en la sección de configuración del agente newrelic .
La estructura básica del archivo de configuración es:
[newrelic]
... default settings
[newrelic:development]
... override settings
[newrelic:staging]
... override settings
[newrelic:production]
... override settings
[tool.newrelic]
... default settings
[tool.newrelic.env.development]
... override settings
[tool.newrelic.env.staging]
... override settings
[tool.newrelic.env.production]
... override settings
Ajustes de configuración generales
Estas configuraciones están disponibles en el archivo de configuración del agente.
El nombre de la aplicación utilizada para agregar datos en la UI de New Relic. Para informar datos a varias aplicaciones al mismo tiempo, especifique una lista de nombres separados por un punto y coma ;. No coloque un espacio antes del punto y coma, lo que hace que el analizador de configuración de Python interprete el nombre como un comentario incrustado.
Cuando true, el agente instrumentará su aplicación web, pero no enviará ningún dato real. En este modo fuera de línea, no se le facturará por un agente activo.
Utilice el modo de desarrolladores para probar nuevas versiones del agente o pruebe el agente con paquetes de terceros en un entorno de desarrolladores. El modo fuera de línea no es una forma de ejecutar el APM localmente, porque las métricas que recopila el agente no se informan en ninguna parte.
Establece el nombre de un archivo de log, que es útil para depurar problemas con el agente. Esto no está configurado de forma predeterminada, ya que el agente no conoce el usuario principal del proceso de su aplicación web ni en qué directorios ese proceso tiene permiso para escribir. Para obtener información detallada, consulte logging del agente Python.
Independientemente de lo que establezca, asegúrese de que los permisos para el directorio que lo contiene y el archivo en sí sean correctos, y que el usuario que ejecuta su aplicación web pueda escribir en el archivo.
Sugerencia
Utilice una ruta absoluta a menos que esté seguro de cuál será el directorio de trabajo de su aplicación al inicio. Si no puede escribir un archivo de log, también puede usar stderr y enviarlo a la salida de error estándar. Esto normalmente daría como resultado que aparezca un resultado en log de su servidor web.
Establece el nivel de detalle del mensaje de log, si ha configurado la ubicación del archivo de log. Este log_level no afectará el nivel de logs del módulo de logging de Python. Los valores posibles, en orden creciente de detalle, son critical, error, warning, info y debug.
Para informar problemas con los agentes, la configuración más útil es debug. Sin embargo, debug genera mucha información muy rápidamente, por lo que no mantenga el agente en este nivel durante más tiempo del necesario para reproducir el problema.
El modo de alta seguridad impone ciertas configuraciones de seguridad y evita que se anulen, de modo que no se nos envíen datos confidenciales. Habilitar el modo de alta seguridad significa que los parámetros de solicitud no se recopilan y no se puede enviar SQL sin formato.
Para activar el modo de alta seguridad, configúrelo en true en el archivo de configuración local .iniand actívelo desde la página Account settings . Para obtener más información, consulte Alta seguridad.
De forma predeterminada, el agente Python intenta conectarse directamente a nuestros servidores. Si hay un firewall entre su host y nuestro recolector que requiere que use un proxy HTTP, configure proxy_host y proxy_port con los valores requeridos para su proxy HTTP. Si la autenticación de proxy la implementa el proxy HTTP, configure también proxy_user y proxy_pass.
La configuración proxy_scheme dicta qué esquema de protocolo se utiliza para comunicarse con el proxy HTTP. Cuando se establece en http, el agente utiliza un túnel SSL a través del proxy HTTP para el cifrado de un extremo a otro.
En lugar de configurar las configuraciones proxy_scheme, proxy_host y proxy_port , también puede configurar la configuración proxy_host en un URI válido para el proxy. Incluya el esquema, el host y el puerto; por ejemplo, http://proxy-host:8000. Esto también funciona si configura los detalles del proxy HTTP con la variable de entorno NEW_RELIC_PROXY_HOST .
Establece el nombre del archivo de log de auditoría. Si se establece, el agente registra los detalles de los mensajes que se transmiten entre el proceso del monitor y el recolector. Esto le permite evaluar la seguridad del agente Python.
Utilice una ruta absoluta a menos que esté seguro de cuál será el directorio de trabajo de su aplicación al inicio. Independientemente de lo que establezca, asegúrese de que los permisos para el directorio que lo contiene y el archivo en sí sean correctos. También asegúrese de que el usuario principal de su aplicación web pueda escribir en el archivo.
Advertencia
No utilice el logging de auditoría de forma continua, especialmente en un entorno de producción. Debido a que el agente no trunca ni rota el archivo de log, el archivo de log puede crecer muy rápidamente.
Establece el nombre de host que se mostrará en la UI de APM. Si se establece, esto anula el nombre de host predeterminado que el agente captura automáticamente.
Anulación manual de la ruta a su paquete de CA local. Este paquete de CA se utilizará para validar el certificado SSL presentado por nuestro servicio de recopilación de datos.
Sugerencia
Esta opción de configuración solo está disponible en las versiones 4.2.0 y posteriores del agente Python.
Registraremos la traza de la transacción cuando superen este umbral. El formato es una cantidad de segundos (se permiten puntos decimales).
Consulte nuestra entrada del glosario para apdex_t
Importante
Esto solo se establece en el archivo de configuración o en la variable de entorno si se establece serverless_mode , que está habilitado para AWS Lambda. De lo contrario, el valor local apdex_t se anula por el valor en la configuración de la aplicación UI que luego se usa para establecer el valor apdex_f .
Atributo
Los atributos son pares de valores principales que proporcionan información para la traza de la transacción, errores de traza, y evento de transacción. Además de configurar el atributo para los cuatro destinos con las configuraciones generales del atributo a continuación, también se pueden configurar por destino.
Si los atributos están habilitados, se nos enviarán las claves de atributos que se encuentran en esta lista. Las claves de la lista deben estar separadas por espacios como se muestra a continuación:
No se nos enviarán todas las claves de atributos que se encuentran en esta lista. Las claves de la lista deben estar separadas por espacios como se muestra a continuación:
Esta sección incluye la configuración del agente Python para configurar el monitoreo de IA.
Importante
Debe habilitar el rastreo distribuido para capturar datos de IA. Está activado de forma predeterminada en las versiones 7.0.0.166 y superiores del agente Python.
Cuando se establece en false, deshabilita la instrumentación que registra eventos de resumen y mensajes para datos extensos de modelo de lenguaje transmitidos.
Si se establece en false, el agente omitirá el contenido de entrada y salida (como cadenas de texto de símbolo y respuestas) capturado en el evento LLM. Esta es una configuración de seguridad opcional si no desea registrar datos confidenciales enviados y recibidos de sus LLM.
Configuración del rastreador de transacciones
Importante
No utilice corchetes [suffix] al final del nombre de su transacción. El agente elimina automáticamente los corchetes del nombre. En su lugar, utilice paréntesis (suffix) u otros símbolos si es necesario.
Para obtener más información sobre la traza de la transacción, consulte traza de la transacción.
Umbral en segundos para saber cuándo recoger una traza de la transacción. Cuando el tiempo de respuesta de una acción del controlador excede este umbral, el agente registra una traza de la transacción. Los valores válidos son cualquier valor flotante positivo o apdex_f (cuatro veces apdex_t).
Cuando el rastreador de transacciones está habilitado, el agente puede registrar declaraciones SQL. La grabadora tiene tres modos: off (no envía SQL), raw (envía la instrucción SQL en su forma original) y obfuscated (elimina literales numéricos y de cadena).
La mayoría de los marcos web (incluido Django) parametrizan las consultas SQL para que en realidad no contengan los valores utilizados para completar la consulta. Si utiliza el modo raw con uno de estos marcos, el agente Python solo verá el SQL antes de la inserción de valores. El SQL parametrizado se parecerá mucho al modo obfuscated .
Umbral en segundos para saber cuándo recopilar el rastreo del stack de las llamadas SQL. Cuando las sentencias SQL superan este umbral, el agente captura el rastreo actual de la pila. Esto es útil para identificar dónde se originan las llamadas SQL largas en una aplicación.
Las consultas en la traza de la transacción que superen este umbral informarán los datos de consulta lenta y cualquier plan explicativo disponible. La recopilación del plan de explicación no se realizará si transaction_tracer.explain_enabled es false.
Esta configuración se puede utilizar para activar o desactivar todos los atributos de la traza de la transacción. Si attributes.enabled en el nivel raíz es false, no se enviará ningún atributo a la traza de la transacción independientemente de cómo se establezca esta configuración (transaction_tracer.attributes.enabled).
Si los atributos están habilitados para la traza de la transacción, todas las claves de atributos que se encuentran en esta lista nos serán enviadas en la traza de la transacción. Para obtener más información, consulte las reglas de atributos del agente.
Todas las claves de atributos encontradas en esta lista no se enviarán en la traza de la transacción. Para obtener más información, consulte las reglas de atributos del agente.
Para las funciones o métodos especificados, el agente capturará instrumentación de temporización de funciones adicional. Especifique estos nombres en el formato module:function o module:class.function.
Es posible utilizar comodines (globbing) para nombres de funciones y clases utilizando patrones admitidos por el módulo fnmatch . Las rutas de los módulos no son compatibles con comodines. Especifique los patrones en el formato module:function* o module:class.*.
Por ejemplo, si desea agregar seguimiento de funciones a todas las funciones de validación en el siguiente archivo:
my-app/common/utils.py
defvalidate_credentials():
…
defvalidate_status():
…
defformat_message():
…
Agregue la siguiente línea al archivo de configuración del agente para incluir el seguimiento de funciones en todas las funciones de validación en my-app/common/utils.py mediante el uso de comodines.
Esta configuración se puede utilizar para activar o desactivar todos los atributos de los segmentos de traza de la transacción. Si attributes.enabled en el nivel raíz es false, no se enviará ningún atributo a los segmentos de la traza de la transacción independientemente de cómo se establezca esta configuración (transaction_segments.attributes.enabled).
Si los atributos están habilitados para segmentos de traza de la transacción, todas las claves de atributos que se encuentran en esta lista se enviarán en segmentos de traza de la transacción. Para obtener más información, consulte las reglas de atributos del agente.
Todas las claves de atributos que se encuentran en esta lista no se enviarán en segmentos de la traza de la transacción. Para obtener más información, consulte las reglas de atributos del agente.
Configuración del selector de errores
Estos son los ajustes del recolector de errores disponibles a través del archivo de configuración del agente.
Sugerencia
Para obtener una descripción general de la configuración de errores en APM, consulte Administrar errores en APM.
Para dejar de recopilar errores específicos, configúrelo en una lista separada por espacios de los nombres de tipos de excepción de Python que se van a ignorar. Utilice el formulario module:class para el nombre de la excepción.
Sugerencia
Antes de la versión 6.4.0 del agente, esta configuración se denominaba error_collector.ignore_errors. Si su archivo de configuración todavía usa ignore_errors, actualice su agente para usar ignore_classes.
Enumera los códigos de estado HTTP que el agente debe ignorar en lugar de registrar como errores. Enumere códigos de estado adicionales como números enteros separados por espacios y especifique rangos con un guión - como separador entre los valores inicial y final. Para agregar uno de los códigos predeterminados a su lista de 'permitidos', anteponga el código con un signo de exclamación !.
Esta configuración solo es compatible con algunos marcos web, ya que algunos marcos no utilizan excepciones para devolver respuestas HTTP.
Sugerencia
Esta opción de configuración solo se puede establecer en la configuración del lado del servidor en las versiones 6.4.0 y posteriores del agente Python.
Evita que clases de excepción específicas afecten la tasa de errores o la puntuación Apdex y al mismo tiempo informa los errores a APM. Establezca esto en una lista separada por espacios de los nombres de tipos de excepción de Python que se esperan. Utilice el formulario module:class para el nombre de la excepción.
Sugerencia
Esta opción de configuración solo está disponible en las versiones 6.4.0 y posteriores del agente Python.
Evita que códigos de estado HTTP específicos afecten la tasa de errores o la puntuación Apdex y al mismo tiempo informa los errores a APM. Enumere los códigos de estado como números enteros separados por espacios y especifique rangos con un guión - como separador entre los valores inicial y final. Para negar uno de los códigos de su lista, anteponga el código con un signo de exclamación !.
Esta configuración solo es compatible con algunos marcos web, ya que algunos marcos no utilizan excepciones para devolver respuestas HTTP.
Sugerencia
Esta opción de configuración solo está disponible en las versiones 6.4.0 y posteriores del agente Python.
Esta configuración se puede utilizar para activar o desactivar todos los atributos para errores de traza. Si attributes.enabled es false en el nivel raíz, entonces no se enviará ningún atributo a los errores de traza independientemente de cómo esté establecida esta configuración (error_collector.attributes.enabled).
Si los atributos están habilitados para errores de traza, todas las claves de atributos que se encuentran en esta lista se enviarán a errores de traza. Para obtener más información, consulte las reglas de atributos del agente.
Las claves de atributos que se encuentran en esta lista no se enviarán a errores de traza. Para obtener más información, consulte las reglas de atributos del agente.
Especifique los Content-Type HTML (s) que nuestro agente de monitoreo de navegador debe auto-instrumentado. Agregue entradas adicionales en una lista separada por espacios.
Si está generando respuestas de página HTML y utiliza el Content-Type de application/xhtml+xml, puede anular los tipos de contenido permitidos para enumerar tanto este tipo de contenido como el text/html predeterminado usando:
El fragmento de JavaScript de monitoreo del navegador evita que la página se valide como application/xhtml+xml, aunque la página debe cargarse y representarse en el navegador final del usuario.
Esta configuración se puede utilizar para activar o desactivar todos los atributos de monitoreo del navegador. Estos son los datos que se envían al evento de vista de página. Si attributes.enabled es falso en el nivel raíz, no se enviará ningún atributo en el monitoreo del navegador independientemente de cómo esté establecida la configuración (browser_monitoring.attributes.enabled).
Si los atributos están habilitados para browser_monitoring, todas las claves de atributos que se encuentran en esta lista se enviarán en las vistas de página. Para obtener más información, consulte las reglas de atributos del agente.
Todas las claves de atributos que se encuentran en esta lista no se enviarán en las visitas a la página. Para obtener más información, consulte las reglas de atributos del agente.
Configuración de eventos de transacción
Aquí están las configuraciones de eventos de transacción disponibles a través del archivo de configuración del agente.
Sugerencia
Estos ajustes de configuración solían llamarse analytic_events. Si su archivo de configuración todavía usa analytic_events, actualice su agente para usar transaction_events.
Esta configuración se puede utilizar para activar o desactivar todos los atributos del evento de transacción. Si attributes.enabled es false en el nivel raíz, no se enviará ningún atributo al evento de transacción independientemente de cómo se establezca esta configuración (transaction_events.attributes.enabled).
Si los atributos están habilitados para el evento de transacción, todas las claves de atributos que se encuentran en esta lista se enviarán en el evento de transacción. Para obtener más información, consulte las reglas de atributos del agente.
Tipo
Lista de cadenas
Por defecto
(ninguno)
Todas las claves de atributos encontradas en esta lista no se enviarán en el evento de transacción. Tenga en cuenta que excluir atributo del evento de transacción no excluye del evento span. Para obtener más información, consulte las reglas de atributos del agente.
Configuración personalizada del evento
Aquí hay configuraciones de evento personalizado disponibles a través del archivo de configuración del agente.
Cuando está habilitado, el agente recopila la instancia de almacenamiento de datos métrica (como host y puerto) para algún controlador de la base de datos. Estos también se informan sobre consulta lenta traza y traza de la transacción.
Cuando está habilitado, el agente recopila el nombre de la base de datos para algún controlador de la base de datos. El nombre de la base de datos se informa en consulta lenta traza y traza de la transacción.
Configuración del rastreo distribuido
Rastreo distribuido te permite ver el camino que sigue una solicitud a medida que viaja a través de un sistema distribuido. A partir de la versión 7.0.0.166 o superior del agente Python, rastreo distribuido está habilitado de forma predeterminada.
Span evento se recogen para rastreo distribuido. rastreo distribuido debe estar habilitado para reportar span evento. Las opciones de configuración incluyen:
Esta configuración se puede utilizar para activar o desactivar todos los atributos del evento span. Si attributes.enabled en el nivel raíz es false, no se enviará ningún atributo al evento span independientemente de cómo se establezca esta configuración (span_events.attributes.enabled). Para obtener más información, consulte las reglas de atributos del agente.
Si los atributos están habilitados para el evento span, todas las claves de atributos que se encuentran en esta lista se enviarán en el evento span. Para obtener más información, consulte las reglas de atributos del agente.
Todas las claves de atributos encontradas en esta lista no se enviarán en el evento span. Para obtener más información, consulte las reglas de atributos del agente.
Configuración de cosecha de eventos
La configuración de recolección de eventos limita la cantidad de datos de tipo evento enviados a New Relic. Cuando utilice estas configuraciones, considere estos puntos importantes:
La configuración de evento Harvest afecta los límites de una única instancia del agente, y no de toda la aplicación. Consulte el ejemplo de uso a continuación para saber cómo establecer límites en toda una aplicación.
La transmisión en tiempo real envía datos cada cinco segundos (12 veces por minuto), pero la configuración de recolección de eventos aún afecta la tasa de eventos por minute. Habilitar o deshabilitar la transmisión en tiempo real no requiere cambiar esta configuración.
Con la transmisión en tiempo real (habilitada de forma predeterminada), New Relic mostrará los límites de recolección de eventos para la entidad en intervalos de cinco segundos. Esto significa, por ejemplo, que cuando estableces un valor límite de 1200 en el archivo de configuración, lo verás como 100 en New Relic.
Ejemplo de uso
Digamos que una aplicación se implementa en 10 hosts, cada uno de los cuales ejecuta cuatro procesos por host. Para limitar el número de eventos de extensión a 10 000 eventos por minuto para toda la aplicación, divida ese número entre 10 hosts. Luego divida nuevamente entre cuatro procesos por host.
Debido a la forma en que New Relic recopila datos (12 veces por minuto), si el recuento de datos del evento es inferior a 12, aparecerá como 0 en New Relic.
Los ajustes de configuración de Event Harvest incluyen:
Limita cuántos eventos personalizados por minuto puede enviar una instancia del agente Python a New Relic.
Al configurar el agente para monitoreo de IA, establezca el valor máximo 100000 para garantizar que el agente capture la cantidad máxima de eventos LLM.
Límite de evento de duración por minuto enviado por una instancia del agente Python a New Relic.
Al configurar el agente para monitoreo de IA, establezca el valor máximo 10000 para garantizar que el agente capture la cantidad máxima de rastreo distribuido.
La visibilidad del bucle de eventos muestra información sobre transacciones que bloquean el bucle de eventos. El agente generará información sobre transacciones que han esperado una cantidad de tiempo significativa para adquirir el control del bucle de eventos. La configuración incluye:
El agente informa el recuento métrico de objetos para los tipos de objetos más comunes que recopila el recolector de basura. Para cada tipo de objeto, esta configuración le permite establecer el número máximo de métricas individuales que se muestrearán.
Configuraciones métricas a nivel de código
Las siguientes configuraciones están disponibles para la configuración de código métrico a nivel en el agente.
Una etiqueta de lanzamiento (como v0.1.209 o release-209).
Configuración Errors Inbox
Configurar una de las siguientes etiquetas le ayudará a identificar qué versiones de su software están produciendo los errores.
NEW_RELIC_METADATA_SERVICE_VERSION creará tags.service.version en los datos del evento que contienen la versión de su código que se desplegará, en muchos casos una versión semántica como 1.2.3, pero no siempre.
NEW_RELIC_METADATA_RELEASE_TAG creará tags.releaseTag en los datos del evento que contienen la etiqueta de lanzamiento (como v0.1.209 o release-209).
NEW_RELIC_METADATA_COMMIT creará tags.commit on event data containing the commit sha. Se puede utilizar el sha completo o sólo los primeros siete caracteres (por ejemplo, 734713b).
Una próxima versión de Errors Inbox rastreará automáticamente qué versiones de su software están produciendo errores. Todos los datos de la versión también se mostrarán en CodeStream.
Configuración de logging de aplicaciones
Las siguientes configuraciones están disponibles para la configuración del inicio de sesión de la aplicación en el agente.
Si es true, habilita la decoración log y la recopilación de log de eventos y logging métrico si estas configuraciones subcaracterísticas también están habilitadas. Si false, no se habilita ninguna característica de instrumentación de logging.
Si es true, el agente captura log emitidos por su aplicación y los reenvía a New Relic. application_logging.enabled también debe ser true para que esta configuración surta efecto.
Si ya está enviando el logde su aplicación a New Relic utilizando una solución de reenvío de logs existente, asegúrese de desactivarla antes de habilitar el reenvío de logs en el agente, para evitar que se le facture por datos log duplicados.
Un hash con pares de valores principales para agregar como atributo personalizado a todos log de eventos reenviados a New Relic. El valor debe tener el siguiente formato: "clave1:valor1;clave2:valor2"
Una lista que no distingue entre mayúsculas y minúsculas de nombres de etiquetas que se excluirán cuando se habilita la inclusión de etiquetas en el registro. Este atributo no admite comodines ni expresiones regulares.
Importante
Al agregar etiquetas como atributo, el agente antepone las claves con tags.. Este prefijo NO se incluye cuando se comparan con las reglas de filtrado de exclusión.
Si es true, el agente capturará los datos de contexto disponibles (extras, atributo de mensaje de diccionario, atributo proporcionado por el marco de logging) y agregará su contenido como atributo en el log reenviado a New Relic. Puede controlar este comportamiento a través de la configuración en la sección application_logging.forwarding.context_data .
Si los atributos están habilitados para context_data, todas las claves de atributos que se encuentran en esta lista nos serán enviadas en la traza de la transacción. Para obtener más información, consulte las reglas de atributos del agente.
Importante
Al agregar un atributo de contexto, el agente antepone las claves con context. para el atributo del contexto del framework de logging y message. para el atributo del contexto de mensaje del diccionario.
Estos prefijos NO se incluyen cuando se comparan con reglas de filtrado de inclusión/exclusión.
Todas las claves de atributos encontradas en esta lista no se enviarán en context_data. Para obtener más información, consulte las reglas de atributos del agente.
Importante
Al agregar un atributo de contexto, el agente antepone las claves con context. para el atributo del contexto del framework de logging y message. para el atributo del contexto de mensaje del diccionario.
Estos prefijos NO se incluyen cuando se comparan con reglas de filtrado de inclusión/exclusión.
Número de log para enviar por minuto a New Relic. Esta configuración controla el consumo general de memoria cuando se utiliza la característica de reenvío de logs.
Establezca esto en un valor más bajo para reducir la cantidad de líneas log enviadas (puede causar muestreo log ). Establezca esto en un valor más alto para enviar más líneas log .
Cada log recibe la misma prioridad que su transacción asociada. Los logs que ocurren fuera de una transacción recibirán una prioridad aleatoria. Es posible que algunos logs no se incluyan porque están limitados por max_samples_stored. Por ejemplo, si el logging max_samples_stored se establece en 10 000 y la transacción 1 tiene 10 000 entradas log , solo se registrarán las entradas log de la transacción 1. Si la transacción 1 tiene menos de 10 000 logs, recibirá todos los logs de la transacción 1. Si todavía hay espacio, recibirás todo el logde la transacción 2, y así sucesivamente.
Si después de todo se registran los logs de transacciones muestreadas y no han alcanzado el límite en max_samples_stored, entonces se envían mensajes de logde transacciones que no estaban en nuestro muestreo. Si queda alguno, se registran mensajes de logfuera de la transacción.
Si es true, el agente captura métricas relacionadas con las líneas log que envía su aplicación. application_logging.enabled también debe ser true para que esta configuración surta efecto.
Si es true, el agente decora el log con metadatos para vincularlo a entidad, hosts, traza y spans. application_logging.enabled también debe ser true para que esta configuración surta efecto.
Aquí hay una variedad de otras configuraciones disponibles a través del archivo de configuración del agente.
Tipo
Booleano
Por defecto
true
Si es true, el agente detecta automáticamente que se está ejecutando en un entorno de AWS.
Tipo
Cadena
Por defecto
None
Si se configura, el agente emplea este AWS account_id para vincular la entidad AWS cuando la instrumentación no puede determinar automáticamente una ID de cuenta. Consulta la documentación del identificador de cuenta deAWS Manage para obtener un ejemplo de un ID de cuenta AWS válido y cómo encontrarlo.
Tipo
Booleano
Por defecto
true
Si es true, el agente detecta automáticamente que se está ejecutando en un entorno de Azure.
Tipo
Booleano
Por defecto
true
Si es true, el agente detecta automáticamente que se está ejecutando en un entorno de Google Cloud Platform.
Tipo
Booleano
Por defecto
true
Si es true, el agente detecta automáticamente que se está ejecutando en un entorno de Pivotal Cloud Foundry.
Tipo
Booleano
Por defecto
true
Si es true, el agente detecta automáticamente que se está ejecutando en Docker.
Le permite programar sesiones de creación de perfiles de subprocesos. El generador de perfiles de subprocesos capturará periódicamente una instantánea de la stack de llamadas para cada subproceso activo en la aplicación para construir un árbol de llamadas estadísticamente representativo.
Si está habilitado, los mensajes de excepción se eliminarán de la traza de error antes de enviarlos al recolector, para evitar la captura inadvertida de información confidencial. Esta opción se habilita automáticamente en el modo de alta seguridad.
A las excepciones enumeradas en su lista de 'permitidos' no se les eliminarán los mensajes, incluso si strip_exception_messages.enabled es true. La lista de 'permitidos' es una cadena de tipos de excepción separados por espacios, cada uno en forma de module:exception_name. Enumere las excepciones integradas como exception_name; no es necesario anteponerles module: .
Example: Built-in exception and user-defined exception
De forma predeterminada, el agente se inicia cuando recibe la primera transacción (ya sea web o no web). Luego, el agente comienza en paralelo, asegurándose de que esta solicitud inicial no se retrase. Sin embargo, el agente no registra los detalles de esta solicitud inicial porque no puede recopilar datos hasta que se complete el registro. Esta es la configuración recomendada para la mayoría de las aplicaciones web para no retrasar las primeras dos transacciones mientras se inicia New Relic.
Para anular esto, puede establecer un tiempo de espera de inicio en segundos. Luego, el agente pausará la transacción inicial y esperará a que se complete el registro. Esto puede resultar útil cuando se instrumenta una única ejecución de programa o tarea, donde el proceso se ejecuta una vez y finaliza inmediatamente.
Importante
Dado que startup_timeout retrasa el inicio de su aplicación, recomendamos establecer un tiempo de espera de inicio únicamente para los sistemas de cola de tareas en segundo plano, no para las aplicaciones web.
Al cerrar el proceso, el agente intenta una carga final al recolector. Para evitar que el agente se ejecute indefinidamente en caso de un problema, el proceso se cierra normalmente si se alcanza el umbral shutdown_timeout . Este apagado puede provocar la pérdida de datos, pero el agente prioriza los datos métricos clave durante el proceso de carga.
Para los sistemas de cola de tareas en segundo plano, especialmente aquellos que ejecutan una pequeña cantidad de tareas por proceso, es posible que desee aumentar el tiempo de espera de apagado para garantizar que el agente pueda cargar todos los datos al cerrar el proceso.
Sugerencia
El agente tiene por defecto un tiempo de espera de 2,5 segundos porque Apache y muchos otros servidores web tienen un tiempo de espera de finalización de proceso de 3,0 segundos. El agente sale a los 2,5 segundos para permitir que se ejecute atexit código de limpieza registrado para que se ejecute el proceso.
Si se alcanza el umbral de compresión de datos en la carga útil, el agente comprime los datos utilizando la compresión gzip de forma predeterminada. La opción de configuración compression_content_encoding se puede establecer en deflate para usar compresión desinflada.
Si esta configuración está habilitada, capturará la información del paquete y la versión al iniciar el agente que se muestra en la pestaña del entorno APM.
Sugerencia
En aplicaciones que tienen una gran cantidad de paquetes, tener esta configuración habilitada puede causar un aumento de CPU, ya que captura toda la información del paquete y la versión. Se recomienda en esos casos desactivar esta configuración.
Advertencia
Deshabilitar esta configuración deshabilitará la capacidad de detectar vulnerabilidades en paquetes obsoletos.
Si esta configuración está habilitada, el agente enviará mensajes detallados de resolución de problemas desde su script de inicio directamente a su consola (STDOUT). Esto puede resultar útil para depurar fallas en el script de inicio newrelic-admin , el script de inicio alternativo bootstrap/sitecustomize.py o la secuencia de inicio de la conexión automática de APM de Kubernetes.
Advertencia
Esta configuración de variable de entorno no tiene una configuración de archivo de configuración correspondiente, ya que el código relacionado se ejecuta antes de que se lea el archivo de configuración. Para un registro de depuración completo después de que se inició el agente, establezca el nivel de log en debug.
Esta es una configuración informativa que se emplea para informar cuándo se inyecta el agente en una aplicación de contenedor de Microsoft Azure.
Advertencia
Esta configuración no habilita ni deshabilita esta función del agente.
Heroku
Tipo
Booleano
Por defecto
true
Variable ambiental
NEW_RELIC_HEROKU_USE_DYNO_NAMES
Si es true, el agente utiliza nombres de dinamómetro Heroku como nombre de host.
Tipo
Matriz
Por defecto
["scheduler", "run"]
Variable ambiental
NEW_RELIC_HEROKU_DYNO_NAME_PREFIXES_TO_SHORTEN
Normalmente, el agente informa los nombres de los dinamómetros con un punto final y un ID de proceso (por ejemplo, worker.3). Puede eliminar estos datos finales especificando los prefijos que desea informar sin datos finales (por ejemplo, worker).
Instrumentación incorporada
El agente de Python instrumentó una variedad de paquetes/módulos de Python. Esta instrumentación solo ocurre cuando una aplicación importa el paquete/módulo Python objetivo.
Para deshabilitar la instrumentación predeterminada, proporcione una sección especial import-hook correspondiente al nombre del módulo que activó la instrumentación. Luego establezca la configuración enabled en false para deshabilitar la instrumentación de ese módulo.
Agregue lo siguiente al archivo de configuración .ini :
[import-hook:MySQLdb]
enabled=false
O para los archivos de configuración .toml agregue lo siguiente: