Open Policy Agent

Supported OS Linux

Integration version0.0.1

Información general

Este check recopila métricas de Open Policy Agent.

Configuración

Sigue las instrucciones que se indican a continuación para instalar y configurar este check para un Agent que se ejecuta en un clúster de Kubernetes. Consulta también las plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de estas instrucciones.

Instalación

Para instalar el check open_policy_agent en tu clúster de Kubernetes:

  1. Instala el kit de herramientas para desarrolladores.

  2. Clona el repositorio integrations-extras:

    git clone https://github.com/DataDog/integrations-extras.git.
    
  3. Actualiza la configuración de ddev con la ruta de integrations-extras/:

    ddev config set extras ./integrations-extras
    
  4. Para compilar el paquete open_policy_agent, ejecuta:

    ddev -e release build open_policy_agent
    
  5. Descarga el manifiesto del Agent para instalar el Datadog Agent como DaemonSet.

  6. Crea dos PersistentVolumeClaim, uno para el código de checks y otro para la configuración.

  7. Añádelos como volúmenes a tu plantilla de pods del Agent y utilízalos para tus checks y configuración:

         env:
           - name: DD_CONFD_PATH
             value: "/confd"
           - name: DD_ADDITIONAL_CHECKSD
             value: "/checksd"
       [...]
         volumeMounts:
           - name: agent-code-storage
             mountPath: /checksd
           - name: agent-conf-storage
             mountPath: /confd
       [...]
       volumes:
         - name: agent-code-storage
           persistentVolumeClaim:
             claimName: agent-code-claim
         - name: agent-conf-storage
           persistentVolumeClaim:
             claimName: agent-conf-claim
    
  8. Despliega el Datadog Agent en tu clúster de Kubernetes:

    kubectl apply -f agent.yaml
    
  9. Copia el archivo .whl del artefacto de integración en tus nodos de Kubernetes o súbelo a una URL pública.

  10. Ejecuta el siguiente comando para instalar la rueda de integraciones con el Agent:

    kubectl exec ds/datadog -- agent integration install -w <PATH_OF_OPEN_POLICY_AGENT_ARTIFACT_>/<OPEN_POLICY_AGENT_ARTIFACT_NAME>.whl
    
  11. Ejecuta los siguientes comandos para copiar los checks y la configuración en los PVCs correspondientes:

    kubectl exec ds/datadog -- sh
    # cp -R /opt/datadog-agent/embedded/lib/python2.7/site-packages/datadog_checks/* /checksd
    # cp -R /etc/datadog-agent/conf.d/* /confd
    
  12. Reinicia los pods del Datadog Agent.

Métricas generadas por logs

El dashboard por defecto incluye algunos gráficos relacionados con una métrica sobre las decisiones del OPA, llamada open_policy_agent.decisions. Esta métrica se crea basándose en los “Logs de decisión” del OPA. Para generar esta métrica y poblar esta parte del dashboard, crea una nueva métrica generada por logs en Datadog.

En primer lugar, crea una faceta para el campo msg de los logs del OPA, ya que solo genera métricas para el tipo de entrada de log “Logs de decisión”. Para ello, selecciona cualquiera de las entradas de log procedentes del OPA, haz clic en el log de motor cerca del campo msg y selecciona “Create facet for @msg” (Crear faceta para @msg):

Faceta de mensaje

Crea dos facetas, una para el campo input.request.kind.kind y otra para el campo result.response.allowed, ambas disponibles en cualquiera de las entradas de log de tipo “Log de decisión”.

Faceta Tipo Faceta Permitida

Una vez creadas las facetas, genera las métrica necesarias para que el dashboard esté completo. Haz clic en el menú “Logs -> Generate Metrics” (Logs > Generar métricas). Haz clic en “Add a new metric** (Añadir una nueva métrica) y rellena el formulario con los siguientes datos:

Métrica de decisión del OPA

Configuración

  1. Edita el archivo open_policy_agent/conf.yaml, en la carpeta /confd que has añadido al pod del Agent para empezar a recopilar tus datos de rendimiento del OPA. Consulta el open_policy_agent/conf.yaml de ejemplo para todas las opciones disponibles de configuración.

  2. Reinicia el Agent.

Validación

Ejecuta el subcomando de estado del Agent y busca open_policy_agent en la sección Checks.

Datos recopilados

Métricas

open_policy_agent.request.duration.count
(count)
The count of the HTTP request latencies in seconds for the OPA service
Shown as second
open_policy_agent.request.duration.sum
(count)
The sum of the HTTP request latencies in seconds for the OPA service
Shown as second
open_policy_agent.policies
(gauge)
The number of policies enabled in the OPA server

Eventos

open_policy_agent no incluye ningún evento.

Checks de servicio

open_policy_agent.prometheus.health
Returns CRITICAL if the agent fails to connect to the Prometheus endpoint, otherwise OK.
Statuses: ok, critical

open_policy_agent.health
Returns CRITICAL if the agent fails to connect to the OPA health endpoint, OK if it returns 200, WARNING otherwise.
Statuses: ok, warning, critical

open_policy_agent.bundles_health
Returns CRITICAL if the agent fails to connect to the OPA bundles health endpoint, OK if it returns 200, WARNING otherwise.
Statuses: ok, warning, critical

open_policy_agent.plugins_health
Returns CRITICAL if the agent fails to connect to the OPA plugins health point, OK if it returns 200, WARNING otherwise.
Statuses: ok, warning, critical

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el soporte de Datadog.