newrelic.newrelic_java_agent

Aviso de Archivo

❗Aviso: Este proyecto ha sido archivado tal como está y ya no se mantiene activamente.

El Rol de Ansible de New Relic Java ha sido archivado debido a su bajo uso. Aún se puede utilizar en su estado actual.

Rol de Ansible: Agente Java de New Relic

Prueba de Molécula

Este rol instala y configura el Agente Java de New Relic. Debe funcionar con configuración mínima para aplicaciones que se ejecutan bajo Tomcat, Jetty o Wildfly. Nuestro objetivo es soportar los servidores web Java más populares con el tiempo.

Requisitos

El comando unzip debe estar disponible en los hosts de destino.

Instalación

La forma recomendada para instalar el rol es usar Ansible Galaxy:

$ ansible-galaxy install newrelic.new_relic_java_agent

Si deseas contribuir al rol, puedes clonar este repositorio y hacer cambios, luego instalarlo localmente ejecutando:

sh examples/install_role.sh

Dependiendo de cómo esté instalado Ansible en tu sistema, es posible que debas anteponer el comando anterior con sudo.

Configuración

Este rol utiliza variables para dos propósitos: configuración del rol y configuración del agente.

Las variables de configuración del rol describen cómo están configurados tus hosts para que el rol pueda instalar los archivos del agente en la ubicación correcta y configurar tu entorno Java para ejecutar el agente.

Las variables de configuración del agente se pueden establecer globalmente en tu libro de jugadas o por host o grupo en tu archivo de inventario. Se utilizan para crear el archivo newrelic.yml que el agente Java utiliza para determinar su configuración.

Variables de configuración del rol

server_type

Requerido Servidor web utilizado por tu aplicación. Los valores posibles son: tomcat, jetty, y wildfly (solo en modo independiente).

server_root

Requerido Ubicación del servidor web en el host. El JAR del agente, los archivos de configuración y los registros estarán en un subdirectorio de este directorio.

jvm_conf_file

Requerido Ruta del archivo de configuración del servidor web para hacer referencia al agente Java de New Relic. Por ejemplo, para Tomcat, es setenv.sh. Si no existe, se creará el archivo.

server_user / server_group

Requerido Usuario y grupo bajo los cuales se ejecuta el servidor web. Se utilizan para establecer la propiedad de los archivos newrelic.jar y newrelic.yml.

restart_web_server

Opcional - Predeterminado: true Si se establece en falso, el rol no reinicia el servidor web después de instalar el agente.

Ten en cuenta que el agente no se activa hasta que el servidor web se reinicia.

service_name

Requerido (a menos que restart_web_server esté establecido en false) Nombre del servicio bajo el cual se ejecuta el servidor web. Utilizado por Ansible para reiniciar el servidor web después de que se instala el agente.

custom_instrumentation_files

Opcional Lista de archivos XML para habilitar la instrumentación personalizada por el agente Java. Consulta la sección de Instrumentación personalizada para más detalles.

Variables de configuración del agente

La configuración del agente se coloca en el diccionario nr_java_agent_config y se agrega al archivo de configuración del agente Java - newrelic.yml. Los ajustes más comunes se pueden especificar a través de este rol. Los ejemplos se pueden encontrar en examples/agent_install.yml.

Para especificar ajustes para hosts específicos en tu inventario, utiliza el diccionario nr_java_agent_host_config. Para ejemplos, consulta examples/inventory.yml. Los valores de host sobrescriben los del nr_java_agent_config.

Si necesitas configurar ajustes que no se enumeran a continuación, debes proporcionar tu propio archivo newrelic.yml preconfigurado (ver Usando tu propio archivo de configuración de agente).

license_key

Requerido Tu clave de licencia de New Relic.

app_name

Requerido Nombre de la aplicación que se está instrumentando. Para más detalles, consulta la documentación de New Relic sobre nombrar aplicaciones.

proxy_host / proxy_port / proxy_user / proxy_password, / proxy_scheme

Opcional Si te conectas al colector de New Relic a través de un proxy, puedes configurar tus ajustes de proxy con estos valores. Para más detalles, consulta la documentación de New Relic sobre la configuración del agente Java.

labels

Opcional Etiquetas personalizables por el usuario para el agente. Las etiquetas son pares nombre-valor. Los nombres y valores están limitados a 255 caracteres y no pueden contener dos puntos (:) ni puntos y comas (;). El valor debe ser una lista de pares clave-valor separados por punto y coma. Por ejemplo:

nr_java_agent_config:
  ...
  labels: Servidor:Uno;Centro de Datos:Primario

collector_host

Opcional Si necesitas especificar un host colector, puedes usar la variable collector_host. Consulta la documentación de New Relic sobre los puntos finales del colector para más detalles.

Otra configuración específica del agente

Además de las mencionadas anteriormente, puedes configurar los siguientes ajustes a través de este rol de Ansible:

  • agent_enabled
  • high_security
  • enable_auto_app_naming
  • log_level
  • audit_mode
  • log_file_count
  • log_limit_in_kbytes
  • log_daily
  • log_file_name
  • log_file_path
  • max_stack_trace_lines
  • attributes: enabled, include, exclude
  • transaction_tracer: enabled, transaction_threshold, record_sql, log_sql, stack_trace_threshold, explain_enabled, explain_threshold, top_n
  • error_collector: enabled, ignore_errors, ignore_status_codes
  • transaction_events: enabled, max_samples_stored
  • distributed_tracing: enabled
  • cross_application_tracer: enabled
  • thread_profiler: enabled
  • browser_monitoring: auto_instrument
  • labels

Consulta la documentación de configuración del agente Java para más detalles sobre estas configuraciones y otras. Si necesitas configurar ajustes que no están en la lista, deberás proporcionar un newrelic.yml completamente especificado. Para detalles, consulta la sección Usando tu propio archivo de configuración de agente.

Usando tu propio archivo de configuración de agente

Si necesitas especificar configuraciones de agente que vayan más allá de las listadas anteriormente, deberás proporcionar tu propio archivo newrelic.yml. Cualquier configuración en el diccionario nr_java_agent_config será ignorada. Establece la variable nr_java_agent_config_file en la ruta de tu archivo, por ejemplo:

nr_java_agent_config_file: /ruta/a/tu/newrelic.yml

Si este archivo está en los hosts de destino en lugar de en el sistema que ejecuta Ansible, establece nr_java_agent_config_file_is_remote en verdadero:

nr_java_agent_config_file_is_remote: true

Ejemplo de uso

Los archivos examples/agent_install.yml y examples/inventory.yml proporcionan un ejemplo de cómo utilizar el rol.

Después de configurar tus variables en examples/agent_install.yml y tu inventario en examples/inventory.yml, puedes probar el rol ejecutando Ansible:

ansible-playbook -i examples/inventory.yml examples/agent_install.yml

Instrumentación personalizada

Si deseas habilitar instrumentación personalizada con XML, puedes proporcionar una lista de archivos XML en la variable custom_instrumentation_files. Estos archivos se copiarán a cada host donde se esté instalando el agente Java, si especificas la variable en tu libro de jugadas. También puedes instalar diferentes archivos en diferentes hosts especificando la variable a nivel de host en tu inventario, o diferentes archivos para diferentes grupos de hosts especificando la variable a nivel de grupo, ya sea a través de tu inventario o a través de archivos en el directorio group_vars.

Consulta la documentación de Ansible sobre inventario y variables para más detalles sobre cómo gestionar variables de host y grupo. Puedes ver algunos ejemplos en este repositorio sobre cómo especificar instrumentación personalizada en los archivos custom_instrumentation_playbook.yml y custom_instrumentation_inventory.yml.

Desarrollo

Pruebas

Este rol utiliza molecule para pruebas. Necesitarás Docker y Python 3.6 o posterior. Instala molecule con el módulo de docker, si aún no lo has hecho:

$ pip install molecule[docker]

Esto también instalará ansible, si es necesario. Para ejecutar las pruebas, llama a molecule test desde el directorio principal.

$ git clone https://github.com/newrelic/newrelic-java-agent-ansible-role
$ cd newrelic-java-agent-ansible-role
$ molecule test
--> Matriz de prueba

└── default
    ├── dependencia
    ├── lint
    ├── limpieza
...

Comunidad

New Relic alberga y modera un foro en línea donde los clientes pueden interactuar con empleados de New Relic y otros clientes para obtener ayuda y compartir mejores prácticas. Como todos los proyectos de código abierto oficiales de New Relic, hay un tema relacionado en el Hub de Exploradores de New Relic. Puedes encontrar el tema/hilos del proyecto aquí:

https://discuss.newrelic.com/t/ansible-role-for-new-relic-java-agent/99654

Problemas / Solicitudes de Mejora

Los problemas y solicitudes de mejora pueden ser enviados en la pestaña de Problemas de este repositorio. Por favor, busca y revisa los problemas abiertos existentes antes de enviar un nuevo problema.

Licencia

El proyecto se publica bajo la versión 2.0 de la licencia Apache.

Acerca del proyecto

Role to install New Relic APM Java agent

Instalar
ansible-galaxy install newrelic.newrelic_java_agent
Licencia
apache-2.0
Descargas
12k
Propietario