Ejecutar tests Synthetic desde localizaciones privadas

Información general

Las localizaciones privadas permiten monitorizar aplicaciones internas o cualquier endpoint privado que no resultan accesibles a través de la red pública de Internet. También pueden utilizarse para:

  • Crear localizaciones de Synthetic en áreas consideradas críticas para el desarrollo de tu negocio.
  • Verificar el rendimiento de la aplicación en tu entorno interno de integración continua antes de lanzar nuevas funciones a la fase de producción con tests continuos y (CI/CD).
  • Comparar el rendimiento de la aplicación desde dentro y fuera de tu red interna.
Diagrama de arquitectura que muestra cómo funciona una localización privada durante la monitorización Synthetic

Las localizaciones privadas vienen como contenedores Docker o servicios Windows que puedes instalar en tu red privada. Después de crear e instalar una localización privada, puedes asignarle tests Synthetic, como a cualquier localización gestionada.

El worker de tu localización privada extrae tus configuraciones de test de los servidores de Datadog utilizando HTTPS, ejecuta el test de forma programada o bajo demanda y devuelve los resultados a los servidores de Datadog. A continuación, puedes ver los resultados de tus tests de localizaciones privadas exactamente de la misma forma que verías los tests que se ejecutan desde localizaciones gestionadas:

Asignar un test Synthetic a una localización privada

Requisitos previos

Para utilizar localizaciones privadas para tests continuos, necesitas v1.27.0 o posterior.

Las localizaciones privadas son contenedores Docker que puedes instalar en cualquier lugar de tu red privada. Puedes acceder a la imagen del worker de la localización privada en el hub Docker. Puede ejecutarse en un sistema operativo basado en Linux o un sistema operativo Windows, si el motor Docker está disponible en tu host y puede ejecutarse en modo de contenedor Linux.*

* El uso y el funcionamiento de este software se rigen por el Acuerdo de licencia del usuario final, disponible aquí.

Las localizaciones privadas son despliegues de Kubernetes que puedes instalar en tu clúster Kubernetes utilizando Helm. El Helm Chart puede ejecutarse en Kubernetes basado en Linux.

Nota: El uso y el funcionamiento de este software se rigen por el [Acuerdo de licencia del usuario final103.

Las localizaciones privadas son servicios de Windows que puedes instalar en cualquier lugar de tu red privada utilizando un archivo MSI. Ejecuta este archivo desde la máquina virtual o física en la que quieres instalar la localización privada.*

* El uso y el funcionamiento de este software se rigen por el Acuerdo de licencia del usuario final, disponible aquí.

Los requisitos de esta máquina se enumeran en la tabla siguiente. Los scripts de PowerShell deben estar habilitados en el equipo en el que instalas el worker de localización privada.

SistemaRequisitos
Sistema operativoWindows Server 2016, Windows Server 2019 o Windows 10.
RAM4GB mínimo. 8GB recomendado.
CPUProcesador Intel o AMD compatible con 64 bits. Procesador de 2,8 GHz o superior recomendado.

Nota: Para que las localizaciones privadas de Windows ejecuten tests de navegador, los navegadores (por ejemplo, Chrome, Edge o Firefox) deben estar instalados en el ordenador Windows.

Antes de utilizar el instalador MSI, debes instalar .NET versión 4.7.2 o posterior en tu ordenador.

El cumplimiento de FIPS no es compatible con las localizaciones privadas que informan a ddog-gov.com. Para deshabilitar este comportamiento, utiliza la opción --disableFipsCompliance.

Endpoints de localizaciones privadas de Datadog

Para extraer configuraciones de test y enviar resultados de test, el worker de la localización privada necesita acceso a los siguientes endpoints de API de Datadog.

PuertoEndpointDescripción
443intake.synthetics.datadoghq.comUtilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.
443intake-v2.synthetics.datadoghq.com para las versiones 0.2.0 o posteriores y 1.4.0 o anterioresUtilizado por la localización privada para extraer artefactos de test de navegador, como capturas de pantalla, errores y recursos.

PuertoEndpointDescripción
443intake.synthetics.datadoghq.euUtilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.

Nota: Estos dominios apuntan a un conjunto de direcciones IP estáticas. Estas direcciones se pueden encontrar en https://ip-ranges.datadoghq.eu.

PuertoEndpointDescripción
443intake.synthetics.us3.datadoghq.comUtilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.

PuertoEndpointDescripción
443intake.synthetics.ap1.datadoghq.comUtilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.

PuertoEndpointDescripción
443intake.synthetics.us5.datadoghq.comUtilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.

PuertoEndpointDescripción
443intake.synthetics.ddog-gov.comUtilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4. Para la versión 1.32.0 y posteriores, estas solicitudes son compatibles con el Estándar federal de procesamiento de información (FIPS).

Configuración de tu localización privada

Sólo los usuarios con el rol Synthetics Private Locations Write pueden crear localizaciones privadas. Para obtener más información, consulta Permisos.

Creación de tu localización privada

Ve a Monitorización Synthetic > Parámetros > Localizaciones privadas y haz clic en Add Private Location (Añadir localización privada).

Crear una localización privada

Rellena la información de tu localización privada:

  1. Especifica el nombre y la descripción de tu localización privada.
  2. Añade cualquier Etiqueta que quieras asociar a tu localización privada.
  3. Selecciona una de tus claves de API actuales. Al seleccionar una clave de API, se posibilita la comunicación entre tu localización privada y Datadog. Si aún no tienes una clave de API, haz clic en Generate API key (Generar clave de API) para crear una en la página correspondiente. Sólo son obligatorios los campos Name y API key.
  4. Configura el acceso para tu localización privada y haz clic en Save Location and Generate Configuration File (Guardar localización y generar archivo de configuración). Datadog creará tu localización privada y generará el archivo de configuración asociado.
Añadir información a la localización privada

Configuración de tu localización privada

Configura tu localización privada personalizando el archivo de configuración generado. Cuando añadas parámetros de configuración inicial como proxies e IP reservadas bloqueadas en el Paso 3, el archivo de configuración generado se actualizará automáticamente en el Paso 4.

Puedes acceder a opciones avanzadas para ajustar la configuración en función de tu configuración de red interna. Para obtener más información sobre el comando help, consulta Configuración.

Configuración del proxy

Si el tráfico entre tu localización privada y Datadog debe ir a través de un proxy, especifica la URL del proxy como http://<YOUR_USER>:<YOUR_PWD>@<YOUR_IP>:<YOUR_PORT> para añadir el parámetro proxyDatadog asociado al archivo de configuración generado.

Add a proxy to your private location configuration file

Bloqueo de direcciones IP reservadas

De forma predeterminada, los usuarios de Synthetic pueden crear tests Synthetic en endpoints utilizando cualquier dirección IP. Si quieres impedir que los usuarios creen tests en direcciones IP internas confidenciales de tu red, activa el botón Block reserved IPs (Bloquear IP reservadas) para bloquear un conjunto predeterminado de intervalos de direcciones IP reservadas (registro de direcciones IPv4 y registro de direcciones IPv6) y configura el parámetro enableDefaultBlockedIpRanges asociado como true en el archivo de configuración generado.

Si algunos de los endpoints a los que quieres hacer un test se encuentran dentro de uno o varios intervalos de direcciones IP reservadas bloqueadas, puedes añadir sus IP o CIDR a las listas de permisos para añadir los parámetros allowedIPRanges asociados al archivo de configuración generado.

Configurar direcciones IP reservadas

Visualizar tu archivo de configuración

Luego de añadir las opciones correspondientes al archivo de configuración de tu localización privada, puedes copiar y pegar este archivo en tu directorio de trabajo. El archivo de configuración contiene secretos para la autenticación de localizaciones privadas, el descifrado de configuraciones de tests y el cifrado de resultados de tests.

Configurar direcciones IP reservadas

Como Datadog no almacena tus secretos, debes almacenarlos localmente antes de hacer clic en View Installation Instructions (Ver instrucciones de instalación).

Nota: Debes poder volver a hacer referencia a estos secretos, si decides añadir más workers o instalar workers en otro host.

Instalación de tu localización privada

Puedes utilizar las variables de entorno DATADOG_API_KEY, DATADOG_ACCESS_KEY, DATADOG_SECRET_ACCESS_KEY, DATADOG_PUBLIC_KEY_PEM y DATADOG_PRIVATE_KEY en tu definición de tarea.

Inicia tu localización privada en:

Ejecuta este comando para iniciar el worker de la localización privada montando tu archivo de configuración en el contenedor. Asegúrate de que tu archivo <MY_WORKER_CONFIG_FILE_NAME>.json está en /etc/docker y no la carpeta de inicio raíz:

docker run -d --restart unless-stopped -v $PWD/<MY_WORKER_CONFIG_FILE_NAME>.json:/etc/datadog/synthetics-check-runner.json datadog/synthetics-private-location-worker:latest

Nota: Si tienes direcciones IP bloqueadas reservadas, añade [funcionalidades de Linux] NET_ADMIN1 a tu contenedor de localización privada.

Este comando inicia un contenedor Docker y prepara tu localización privada para realizar tests. Datadog recomienda ejecutar el contenedor en modo independiente con la política de reinicio adecuada.

Certificados raíz

Puedes cargar certificados raíz personalizados en tus localizaciones privadas para que tus tests de API y de navegador realicen el enlace SSL utilizando tus propios archivos .pem.

Cuando pongas en marcha tus contenedores de localizaciones privadas, monta los archivos de certificado .pem relevantes en /etc/datadog/certs/<filename>.pem del mismo modo que montarías un archivo de configuración de localización privada. Estos certificados se consideran CA de confianza y se utilizan en tiempo de ejecución de tests. Nota: Si combinas todos tus archivos .pem en un único archivo, el orden en el que se colocan los certificados es importante. Es necesario que el certificado intermedio preceda al certificado raíz para establecer correctamente una cadena de confianza.

Para obtener más información sobre parámetros de localizaciones privadas para administradores, consulta Configuración.

  1. Crea un archivo con docker-compose.yml:

    version: "3"
    services:
        synthetics-private-location-worker:
            image: datadog/synthetics-private-location-worker:latest
            volumes:
                - PATH_TO_PRIVATE_LOCATION_CONFIG_FILE:/etc/datadog/synthetics-check-runner.json
    

    Nota: Si tienes IPs reservadas bloqueadas, añade las funcionalidades de Linux NET_ADMIN a tu contenedor de localización privada.

  2. Empieza tu contenedor con:

    docker-compose -f docker-compose.yml up
    

Certificados raíz

Puedes cargar certificados raíz personalizados en tus localizaciones privadas para que tus tests de API y de navegador realicen el enlace SSL utilizando tus propios archivos .pem.

Cuando pongas en marcha tus contenedores de localizaciones privadas, monta los archivos de certificado .pem relevantes en /etc/datadog/certs del mismo modo que montarías un archivo de configuración de localización privada. Estos certificados se consideran CA de confianza y se utilizan en tiempo de ejecución de tests. Nota: Si combinas todos tus archivos .pem en un único archivo, el orden en el que se colocan los certificados es importante. Es necesario que el certificado intermedio preceda al certificado raíz para establecer correctamente una cadena de confianza.

Para obtener más información sobre parámetros de localizaciones privadas para administradores, consulta Configuración.

La configuración de Podman es muy similar a la de Docker, aunque necesitas definir NET_RAW como funcionalidad adicional para tener compatibilidad con los tests ICMP.

  1. Ejecuta sysctl -w "net.ipv4.ping_group_range = 0 2147483647" desde el host donde se ejecuta el contenedor.

  2. Ejecuta este comando para iniciar el worker de la localización privada montando tu archivo de configuración en el contenedor. Asegúrate de que tu archivo <MY_WORKER_CONFIG_FILE_NAME>.json esté accesible para montarlo en el contendor:

    podman run --cap-add=NET_RAW --rm -it -v $PWD/<MY_WORKER_CONFIG_FILE_NAME>.json:/etc/datadog/synthetics-check-runner.json gcr.io/datadoghq/synthetics-private-location-worker:latest
    

    Si tienes direcciones IP reservadas bloqueadas configuradas, añade las funcionalidades de Linux NET_ADMIN a tu contenedor de localización privada.

Este comando inicia un contenedor Podman y prepara tu localización privada para realizar tests. Datadog recomienda ejecutar el contenedor en modo independiente con la política de reinicio adecuada.

Para desplegar el worker de localizaciones privadas de forma segura, configura y monta un recurso de secreto de Kubernetes en el contenedor en /etc/datadog/synthetics-check-runner.json.

  1. Crea un secreto de Kubernetes con el archivo JSON creado anteriormente, ejecutando lo siguiente:

    kubectl create secret generic private-location-worker-config --from-file=<MY_WORKER_CONFIG_FILE_NAME>.json
    
  2. Utiliza despliegues para describir el estado deseado asociado a tus localizaciones privadas. Crea el siguiente archivo private-location-worker-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: datadog-private-location-worker
      namespace: default
    spec:
      selector:
        matchLabels:
          app: private-location
      template:
        metadata:
          name: datadog-private-location-worker
          labels:
            app: private-location
        spec:
          containers:
          - name: datadog-private-location-worker
            image: datadog/synthetics-private-location-worker
            volumeMounts:
            - mountPath: /etc/datadog/synthetics-check-runner.json
              name: worker-config
              subPath: <MY_WORKER_CONFIG_FILE_NAME>
          volumes:
          - name: worker-config
            secret:
              secretName: private-location-worker-config
    

    Nota: Si tienes IPs reservadas bloqueadas, añade las funcionalidades de Linux NET_ADMIN a tu contenedor de localización privada.

  3. Aplica la configuración:

    kubectl apply -f private-location-worker-deployment.yaml
    

Para OpenShift, ejecuta la localización privada con el SCC anyuid. Esto es necesario para que se ejecute tu test de navegador.

Puedes configurar variables de entorno en tus parámetros de configuración que apunten a secretos ya configurados. Para crear variables de entorno con secretos, consulta la documentación de Kubernetes.

También puedes hacer lo siguiente:

  1. Añade la localización privada Synthetics de Datadog a tus repositorios Helm:

    helm repo add datadog https://helm.datadoghq.com
    helm repo update
    
  2. Instala el chart con el nombre de la versión <RELEASE_NAME> utilizando el archivo JSON creado anteriormente:

    helm install <RELEASE_NAME> datadog/synthetics-private-location --set-file configFile=<MY_WORKER_CONFIG_FILE_NAME>.json
    

Nota: Si tienes direcciones IP bloqueadas reservadas, añade [funcionalidades de Linux] NET_ADMIN2 a tu contenedor de localización privada.

Crea una nueva definición de tarea de EC2 que coincida con lo siguiente. Sustituye cada parámetro con el valor correspondiente de tu archivo de configuración de localización privada generado anteriormente:

{
    ...
    "containerDefinitions": [
        {
            "command": [
                "--site='...'",
                "--locationID='...'",
                "--accessKey='...'",
                "--datadogApiKey='...'",
                "--secretAccessKey='...'",
                "--privateKey='-----BEGIN RSA PRIVATE KEY-----XXXXXXXX-----END RSA PRIVATE KEY-----'",
                "--publicKey.pem='-----BEGIN PUBLIC KEY-----XXXXXXXX-----END PUBLIC KEY-----'",
                "--publicKey.fingerprint='...'"
            ],
            ...
            "image": "datadog/synthetics-private-location-worker:latest",
            ...
        }
    ],
    ...
    "compatibilities": [
        "EC2"
    ],
    ...
}

Notas:

  • Si tienes direcciones IP reservadas bloqueadas, configura un parámetro de Linux para conceder funcionalidades NET_ADMIN a tus contenedores de localización privada.
  • Si utilizas las variables de entorno DATADOG_API_KEY, DATADOG_ACCESS_KEY, DATADOG_SECRET_ACCESS_KEY, DATADOG_PUBLIC_KEY_PEM y DATADOG_PRIVATE_KEY, no es necesario incluirlas en la sección "command": [ ].

Crea una nueva definición de tarea de Fargate que coincida con lo siguiente. Sustituye cada parámetro con el valor correspondiente de tu archivo de configuración de localización privada generado anteriormente:

{
    ...
    "containerDefinitions": [
        {
            "command": [
                "--site='...'",
                "--locationID='...'",
                "--accessKey='...'",
                "--datadogApiKey='...'",
                "--secretAccessKey='...'",
                "--privateKey='-----BEGIN RSA PRIVATE KEY-----XXXXXXXX-----END RSA PRIVATE KEY-----'",
                "--publicKey.pem='-----BEGIN PUBLIC KEY-----XXXXXXXX-----END PUBLIC KEY-----'",
                "--publicKey.fingerprint='...'"
            ],
            ...
            "image": "datadog/synthetics-private-location-worker:latest",
            ...
        }
    ],
    ...
    "compatibilities": [
        "EC2",
        "FARGATE"
    ],
    ...
}

Nota: Como la opción de firewall de localización privada no es compatible con AWS Fargate, no es posible configurar el parámetro enableDefaultBlockedIpRanges como true.

Como Datadog ya se integra con Kubernetes y AWS, está preparado para monitorizar EKS.

  1. Crea un secreto de Kubernetes con el archivo JSON creado anteriormente, ejecutando lo siguiente:

    kubectl create secret generic private-location-worker-config --from-file=<MY_WORKER_CONFIG_FILE_NAME>.json
    
  2. Utiliza despliegues para describir el estado deseado asociado a tus localizaciones privadas. Crea el siguiente archivo private-location-worker-deployment.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: datadog-private-location-worker
      namespace: default
    spec:
      selector:
        matchLabels:
          app: private-location
      template:
        metadata:
          name: datadog-private-location-worker
          labels:
            app: private-location
        spec:
          containers:
          - name: datadog-private-location-worker
            image: datadog/synthetics-private-location-worker
            volumeMounts:
            - mountPath: /etc/datadog/synthetics-check-runner.json
              name: worker-config
              subPath: <MY_WORKER_CONFIG_FILE_NAME>
          volumes:
          - name: worker-config
            configMap:
              name: private-location-worker-config
    

    Nota: Si tienes direcciones IP reservadas bloqueadas, configura un contexto de seguridad para conceder funcionalidades de Linux NET_ADMIN a tus contenedores de localización privada.

  3. Aplica la configuración:

    kubectl apply -f private-location-worker-deployment.yaml
    
  1. Descarga el archivo datadog-synthetics-worker-1.49.0.amd64.msi y ejecútalo desde la máquina en la que quieres instalar la localización privada.

  2. Haz clic en Next (Siguiente) en la página de bienvenida, lee el EULA y acepta los términos y condiciones. Luego, haz clic en Next (Siguiente).

  3. Modifica dónde se instalará la aplicación o deja la configuración predeterminada. Haz clic en Next (Siguiente).

  4. Para configurar tu localización Windows privada, puedes:

    • Pegar e introducir una configuración JSON para tu worker de localización privada Synthetics de Datadog. Este archivo es generado por Datadog cuando creas una localización privada.

    • Busca o escribe una ruta de acceso a un archivo que contenga una configuración JSON para tu worker de localización privada Synthetics de Datadog.

    • Una vez finalizada la instalación, puedes dejarla en blanco y ejecutar C:\\Program Files\Datadog-Synthetics\Synthetics\synthetics-pl-worker.exe --config=<PathToYourConfiguration> en la línea de comandos Windows.

      Asistente del worker de localización privada Synthetics, instalador MSI. La opción 'Pegar en una configuración JSON' está seleccionada. Se muestra un campo de texto para esta configuración JSON.
  5. Puedes aplicar las siguientes opciones de configuración:

    Asistente del worker de localización privada Synthetics, instalador MSI. Se muestran los parámetros de firewalls y logs.
    Aplica las reglas de firewall que necesita este programa a Windows Firewall
    Permite que el instalador aplique reglas de firewall durante la instalación y las elimine durante la desinstalación.
    Aplica reglas para bloquear direcciones IP reservadas en Windows Firewall
    Configura reglas de bloqueo para Chrome, Firefox y Edge (si están instalados) y añade reglas para bloquear rangos de direcciones IP reservadas salientes en Windows Firewall.
    Habilita el registro de archivos
    Permite que el worker de localización privada Synthetics registre archivos en el directorio de instalación.
    Días de rotación de logs
    Especifica cuántos días conservar logs antes de eliminarlos del sistema local.
    Verbosidad del registro
    Especifica la verbosidad de la consola y el registro de archivos para el el worker de localización privada Synthetics.
  6. Haz clic en Next (Siguiente) y en Install (Instalar) para iniciar el proceso de instalación.

Una vez completado el proceso, haz clic en Finish (Finalizar) en la página de finalización de la instalación.

Si introdujiste tu configuración JSON, el servicio de Windows comienza a ejecutarse utilizando esa configuración. Si no introdujiste tu configuración JSON, ejecuta C:\\Program Files\Datadog-Synthetics\Synthetics\synthetics-pl-worker.exe --config=< PathToYourConfiguration > desde un símbolo del sistema o utilice el acceso directo del menú de inicio para iniciar el worker de localización privada Synthetics.
  1. Descarga el archivo datadog-synthetics-worker-1.49.0.amd64.msi y ejecútalo desde la máquina en la que quieres instalar la localización privada.

  2. Ejecuta uno de los siguientes comandos dentro del directorio en el que descargaste el instalador.

    • En un terminal PowerShell:

      Start-Process msiexec "/i datadog-synthetics-worker-1.49.0.amd64.msi /quiet /qn WORKERCONFIG_FILEPATH=C:\ProgramData\Datadog-Synthetics\worker-config.json";
      
    • O en un terminal de comandos:

      msiexec /i datadog-synthetics-worker-1.49.0.amd64.msi /quiet /qn WORKERCONFIG_FILEPATH=C:\ProgramData\Datadog-Synthetics\worker-config.json
      

Se pueden añadir parámetros adicionales:

Parámetro opcionalDefiniciónValorValor por defectoTipo
APPLYDEFAULTFIREWALLRULESAplica las reglas de firewall necesarias para el programa.1N/A0: Deshabilitado
1: Habilitado
APPLYFIREWALLDEFAULTBLOCKRULESBloquea las direcciones IP reservadas para cada navegador que tengas instalado (Chrome, Edge y Firefox). El bloqueo de conexiones loopback no es posible en Windows Firewall.0N/A0: Deshabilitado
1: Habilitado
LOGGING_ENABLEDCuando se habilita, se configura el registro de archivos. Estos logs se almacenan en el directorio de instalación en la carpeta de logs.0--enableFileLogging0: Deshabilitado
1: Habilitado
LOGGING_VERBOSITYConfigura la verbosidad del registro para el programa. Esto afecta a la consola y a los logs de archivo.Esto afecta a la consola y a los logs de archivo.-vvv-v: Error
-vvv: Advertencia-vvvv: Informaciónvvvv: Depurar
LOGGING_MAXDAYSNúmero de días para conservar logs de archivo en el sistema antes de eliminarlos. Puede ser cualquier número cuando se ejecuta una instalación desatendida.7--logFileMaxDaysEntero
WORKERCONFIG_FILEPATHDebe cambiarse por la ruta a tu archivo de configuración JSON del worker de localización privada Synthetics. Escriba esta ruta entre comillas, si la ruta contiene espacios.--configCadena

Configurar sondeos de ejecución y preparación

Añade un sondeo de ejecución o preparación para que tu orquestador pueda garantizar el correcto funcionamiento de los workers.

Para los sondeos de preparación, debes habilitar sondeos de estado de localización privada en el puerto 8080 en tu implementación de localización privada. Para obtener más información, consulta Configuración de localizaciones privadas.

healthcheck:
  retries: 3
  test: [
    "CMD", "wget", "-O", "/dev/null", "-q", "http://localhost:8080/liveness"
  ]
  timeout: 2s
  interval: 10s
  start_period: 30s
livenessProbe:
  httpGet:
    path: /liveness
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
readinessProbe:
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  httpGet:
    path: /readiness
    port: 8080
livenessProbe:
  httpGet:
    path: /liveness
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
readinessProbe:
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  httpGet:
    path: /readiness
    port: 8080
"healthCheck": {
  "retries": 3,
  "command": [
    "CMD-SHELL", "/usr/bin/wget", "-O", "/dev/null", "-q", "http://localhost:8080/liveness"
  ],
  "timeout": 2,
  "interval": 10,
  "startPeriod": 30
}
"healthCheck": {
  "retries": 3,
  "command": [
    "CMD-SHELL", "wget -O /dev/null -q http://localhost:8080/liveness || exit 1"
  ],
  "timeout": 2,
  "interval": 10,
  "startPeriod": 30
}
livenessProbe:
  httpGet:
    path: /liveness
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
readinessProbe:
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  httpGet:
    path: /readiness
    port: 8080

Configuraciones de checks de estado adicionales

Este método de añadir checks de estado de localizaciones privadas ya no es compatible. Datadog recomienda utilizar sondeos de ejecución y preparación.

El archivo /tmp/liveness.date de contenedores de localización privada se actualiza después de cada análisis que se realiza correctamente desde Datadog (por defecto, 2s). Se considera que el estado del contenedor no es adecuado si ha pasado tiempo sin realizar ningún análisis, por ejemplo: sin recuperación en el último minuto.

Utiliza la siguiente configuración para configurar checks de estado en tus contenedores con el livenessProbe:

healthcheck:
  retries: 3
  test: [
    "CMD", "/bin/sh", "-c", "'[ $$(expr $$(cat /tmp/liveness.date) + 300000) -gt $$(date +%s%3N) ]'"
  ]
  timeout: 2s
  interval: 10s
  start_period: 30s
livenessProbe:
  exec:
    command:
      - /bin/sh
      - -c
      - '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  failureThreshold: 3
livenessProbe:
  exec:
    command:
      - /bin/sh
      - -c
      - '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  failureThreshold: 3
"healthCheck": {
  "retries": 3,
  "command": [
    "CMD-SHELL", "/bin/sh -c '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'"
  ],
  "timeout": 2,
  "interval": 10,
  "startPeriod": 30
}
"healthCheck": {
  "retries": 3,
  "command": [
    "CMD-SHELL", "/bin/sh -c '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'"
  ],
  "timeout": 2,
  "interval": 10,
  "startPeriod": 30
}
livenessProbe:
  exec:
    command:
      - /bin/sh
      - -c
      - '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  failureThreshold: 3

Actualizar una imagen de localización privada

Para actualizar una localización privada existente, haga clic en el icono del engranaje del panel lateral de la localización privada y haz clic en Installation instructions (Instrucciones de instalación).

Acceder al flujo (flow) de trabajo de una localización privada

Luego, ejecuta el comando de configuración basado en tu entorno para obtener la última versión de la imagen de la localización privada.

Nota: Si estás utilizando docker run para iniciar la imagen de tu localización privada y ya has instalado la imagen de la localización privada utilizando la etiqueta (tag) latest, asegúrate de añadir --pull=always al comando docker run para asegurarte de que se extraiga la última versión, en lugar de depender de la versión en caché de la imagen que pueda existir localmente con la misma etiqueta latest.

Realizar un test de tu endpoint interno

Una vez que al menos un worker de localización privada comienza a informar a Datadog, el estado de la localización privada aparece en verde.

Localización privada informando

Puedes ver el estado de REPORTING y el estado de un monitor asociado mostrados en la lista de localizaciones privadas lista en la página Parámetros.

Estado de la localización privada y estado del monitor

Empieza realizando un test de tu primer endpoint interno ejecutando un test rápido en uno de tus endpoints internos para ver si obtienes la respuesta esperada:

Nota: Datadog sólo transmite tráfico saliente desde tu localización privada, pero no transmite tráfico entrante.

Iniciar tests Synthetic desde tu localización privada

Crea un test de API, de API de varios pasos o de navegador y selecciona tus Localizaciones privadas elegidas.

Asignar un test Synthetic a una localización privada

Utiliza localizaciones privadas de la misma forma que utilizas tus localizaciones gestionadas de Datadog: asigna tests Synthetic a localizaciones privadas, visualiza resultados de test, obtén métricas de Synthetic, etc.

Escalar tu localización privada

Dado que puedes ejecutar varios workers para una única localización privada con un único archivo de configuración, puedes escalar horizontalmente tus localizaciones privadas añadiéndoles o quitándoles workers. Al hacerlo, asegúrate de configurar un parámetro concurrency y asignar recursos de worker que correspondan a los tipos y número de tests que quieres que ejecute tu localización privada.

También puedes escalar verticalmente tus localizaciones privadas aumentando la carga que tus workers de localización privada pueden manejar. Del mismo modo, debes utilizar el parámetro concurrency para ajustar el número máximo de tests que tus workers pueden ejecutar y actualizar los recursos asignados a tus workers.

Para obtener más información, consulta Dimensionar tus localizaciones privadas.

Para utilizar localizaciones privadas para tests continuos, define un valor en el parámetro concurrency para controlar tu paralelización. Para obtener más información, consulta Tests continuos.

Monitorizar tu localización privada

Mientras añades inicialmente recursos que se ajustan al número y tipo de tests que se van a ejecutar desde tu localización privada, la forma más sencilla de saber si vas a tener que reducir o ampliar la escala de tu localización privada es monitorizarlos con detalle. En Monitorización de localizaciones privadas encontrarás información sobre el rendimiento y estado de tu localización privada, además de métricas y monitores predefinidos.

Para obtener más información, consulta Monitorización de localizaciones privadas.

Permisos

De forma predeterminada, sólo los usuarios que tienen el rol de administrador de Datadog pueden crear localizaciones privadas, eliminarlas y acceder a directrices para instalarlas.

Los usuarios que tienen el rol de administrador de Datadog y el rol estándar de Datadog pueden visualizar localizaciones privadas, buscarlas y asignarles tests Synthetic. Para conceder acceso a la página Localizaciones privadas, actualiza tu usuario a uno de estos dos roles predeterminados.

Si utilizas la función de rol personalizado, añade tu usuario a un rol personalizado que incluya los permisos synthetics_private_location_read y synthetics_private_location_write.

Referencias adicionales