Importante
A partir del 26 de agosto de 2024, ya no podrás crear un nuevo monitor usando tiempos de ejecución legacy en ubicaciones públicas o privadas.
El 22 de octubre de 2024, dejaremos de funcionar el minion privado en contenedor (llamadas por minuto) y las versiones legacy de tiempo de ejecución sintética que admite. Revise nuestros pasos de migración recomendados para evitar la degradación de su monitor de ubicación privada.
Este documento lo guía a través de la configuración de su minion privado en contenedores (CPM).
Puedes hacer lo siguiente para personalizar tus llamadas por minuto:
- Emplee variables de entorno para configurar su minion privado en contenedores.
- Configure módulos personalizados para API con script o monitor browser con script .
- Conserve los datos de lanzamiento con almacenamiento de datos permanente.
No puede modificar ningún archivo de llamadas por minuto y New Relic no es responsable de las modificaciones que realice.
configuración usando variables de entorno
Las variables ambientales le permiten ajustar la configuración de llamadas por minuto para satisfacer sus necesidades ambientales y funcionales específicas.
Directrices para montar volúmenes
A todos los directorios y archivos must se les asignará propiedad de grupo como 3729
con licencias de lectura/escritura. Esto garantiza que el Runner, que emplea uid: 1000
y gid: 3729
, tenga acceso a todos los volúmenes montados. Sin embargo, el minion puede ejecutar como root (uid: 0
) o con cualquier uid
entre el rango de [2000, 4000]
, inclusive. Para obtener más información, consulte Ejecutar como no root en Kubernetes o Docker.
Docker
- Los directorios se montan en un contenedor como volúmenes especificando un argumento
-v
dentrodocker run
- Por ejemplo,
docker run ... -v /path/to/src:/path/to/dest:rw
Kubernetes
- Es posible agregar un directorio a un volumen persistente (PV) usando
kubectl cp
. Sin embargo, se admiten enfoques alternativos siempre que los permisos de archivo estén configurados adecuadamente. - Por ejemplo,
kubectl cp /path/to/src <POD_NAME>:/path/to/dest
agregará un directorio a cada PV en el pod especificado - Cada PV debe tener una copia separada de los directorios. Por ejemplo, un clúster con n réplicas minion debe tener n PV, cada uno con su propia copia de directorios.
- Los directorios y archivos deben agregar antes del inicio del minion ; de lo contrario, se debe resetear el minion para detectar las actualizaciones.
Módulos de nodo personalizados
Los módulos de nodos personalizados son exclusivos de las llamadas por minuto. Le permiten proporcionar un conjunto arbitrario de módulos de nodo y ponerlos a disposición para el monitor con script en el monitoreo sintético.
Para configurar los módulos:
Cree un directorio que contenga un
package.json
, siguiendo las pautas oficiales de npm, en la raíz del directorio. Todo lo contenido en el campodependencies
será instalado por las CPM al inicio y estará disponible cuando se ejecute el monitor en ese minion privado.Opcionalmente, puede anular el nivel raíz
package.json
con un directorio específico de la versión de Node.js. Esto permite actualizar un script por tiempo de ejecución del monitor si una versión Node.js de un tiempo de ejecución ya no es compatible con su dependencia. Vea un ejemplo de esto a continuación.Una vez que cree el directorio de módulos personalizados y el
package.json
, podrá aplicarlo a sus llamadas por minuto para Docker y Kubernetes.Mire el registro de llamadas por minuto de
"... Initialization of Custom Modules ..."
para ver si los módulos se instalaron correctamente o si hubo algún error. Se mostrará el registro de instalación de npm.
Ahora puede agregar "require('async');"
al script del monitor que envía a esta ubicación privada.
Cambiar package.json
También puede emplear módulos de Node.js junto con módulos locales y alojados. Para cambiar los módulos personalizados empleados por tus CPM, modifica package.json
y resetear las CPM. Detectará el cambio en la configuración durante el resetear y luego lo limpiará y lo reinstalará.
Advertencia
Módulos locales: si bien su package.json
puede incluir cualquier módulo local, estos módulos deben residir dentro del árbol bajo su directorio de módulos personalizados. Si se almacena fuera del árbol, el proceso de inicialización fallará y verá un mensaje de error en el registro de Docker después de iniciar llamadas por minuto.
Almacenamiento permanente de datos
llamadas por minuto es una aplicación sin estado y no conserva información de solicitudes o sesiones anteriores de forma predeterminada. Sin embargo, puede conservar los datos entre lanzamientos habilitando el almacenamiento permanente de datos. Por ejemplo, puede establecer permanentemente cómo se identifica el minion (por ejemplo, Minion_ID
) y usarlo para asociar esos datos con el minion exacto que lo produjo.
Para configurar el almacenamiento permanente de datos en Docker:
Crea un directorio.
lanza las llamadas por minuto, montando el directorio en
/var/lib/newrelic/synthetics
.Ejemplo:
docker run ... -v /example-permanent-dir:/var/lib/newrelic/synthetics:rw ...
Para configurar el almacenamiento de datos permanente en Kubernetes:
lanza las llamadas por minuto, estableciendo un valor para el valor de configuración
persistence.permanentData
ya sea en la línea de comando o en un archivo YAML durante la instalación. El valor debe especificar la subruta en el volumen persistente de su minion donde desea que se guarden los datos.Ejemplo:
helm install ... --set persistence.permanentData=<permanent-data-subpath> ...
Variables de entorno definidas por el usuario para monitor con script
Minion privado en contenedores le permite configurar variables de entorno para usar en un monitor con script. Estas variables están alojadas localmente en llamadas por minuto y se puede acceder a ellas a través de $env.USER_DEFINED_VARIABLES
. Hay dos formas de configurar variables definidas por el usuario: montando un archivo JSON o proporcionando una variable de entorno a las llamadas por minuto en el lanzamiento. Si se proporcionan ambos, las llamadas por minuto utilizarán únicamente los valores proporcionados por el entorno.
Acceder a variables de entorno definidas por el usuario desde un script
Para hacer referencia a una variable de entorno configurada definida por el usuario, utilice el $env.USER_DEFINED_VARIABLES
reservado seguido del nombre de una variable determinada con notación de puntos.
Por ejemplo, $env.USER_DEFINED_VARIABLES.MY_VARIABLE
Advertencia
Las variables de entorno definidas por el usuario no se desinfectan del registro. Para información confidencial, considere utilizar la característica de credenciales seguras .