Continúe leyendo para aprender cómo configurar su minion privado en contenedores (llamadas por minuto).
Puedes hacer lo siguiente para personalizar tus llamadas por minuto:
- Configure módulos personalizados para API con script o monitor browser con script .
- Conserve los datos de lanzamiento con almacenamiento de datos permanente.
- Utilice variables de entorno en su configuración.
No puede modificar ningún archivo de llamadas por minuto y New Relic no es responsable de las modificaciones que realice.
Directrices para montar volúmenes
A todos los directorios y archivos must se les asignará propiedad de grupo como 3729
con permisos de lectura/escritura. Esto garantiza que el Runner, que utiliza uid: 1000
y gid: 3729
, tenga acceso a todos los volúmenes montados. Sin embargo, el minion puede ejecutarse 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 especificadoCada 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 agregarse antes del inicio del minion ; de lo contrario, se debe reiniciar 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 llamadas por minuto 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
para módulos personalizados
Junto con los módulos locales y alojados, también puede utilizar módulos de Node.js. Para cambiar los módulos personalizados utilizados por tus llamadas por minuto, modifica package.json
y reinicia las llamadas por minuto. Detectará el cambio en la configuración durante el reinicio 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 .
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.