Open Policy Agent

Supported OS Linux

Intégration0.0.1

Présentation

Ce check recueille des métriques à partir d’Open Policy Agent.

Configuration

Suivez les instructions ci-dessous pour installer et configurer ce check pour un Agent exécuté sur un cluster Kubernetes. Consultez également la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer ces instructions.

Installation

Pour installer le check open_policy_agent sur votre cluster Kubernetes :

  1. Installez le kit de développement.

  2. Clonez le dépôt integrations-extras :

    git clone https://github.com/DataDog/integrations-extras.git.
    
  3. Mettez à jour votre configuration ddev avec le chemin integrations-extras/ :

    ddev config set extras ./integrations-extras
    
  4. Pour générer le package open_policy_agent, exécutez :

    ddev -e release build open_policy_agent
    
  5. Téléchargez le manifeste de l’Agent pour installer l’Agent Datadog en tant que DaemonSet.

  6. Créez deux PersistentVolumeClaim, un pour le code des checks et l’autre pour la configuration.

  7. Ajoutez-les en tant que volumes au modèle de pod de l’Agent, puis utilisez-les pour vos checks et votre configuration :

         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. Déployez l’Agent Datadog sur votre cluster Kubernetes :

    kubectl apply -f agent.yaml
    
  9. Copiez le fichier d’artefact de l’intégration (.whl) sur vos nœuds Kubernetes ou importez-le sur une URL publique.

  10. Exécutez la commande suivante pour installer le wheel de l’intégration à l’aide de l’Agent :

    kubectl exec ds/datadog -- agent integration install -w <PATH_OF_OPEN_POLICY_AGENT_ARTIFACT_>/<OPEN_POLICY_AGENT_ARTIFACT_NAME>.whl
    
  11. Exécutez les commandes suivantes pour copier les checks et la configuration sur les PVC correspondants :

    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. Redémarrez les pods de l’Agent Datadog.

Métriques générées par des logs

Le dashboard par défaut inclut des graphiques représentant une métrique portant sur les décisions d’OPA, à savoir open_policy_agent.decisions. Cette métrique est créée à partir des « logs de décision » d’OPA. Pour générer cette métrique et l’ajouter à cette section du dashboard, vous devez créer une nouvelle métrique générée par des logs dans Datadog.

Commencez par créer une facette pour le champ msg des logs OPA. En effet, OPA génère uniquement des métriques pour les entrées de log de type « log de décision ». Pour ce faire, sélectionnez une entrée de log provenant d’OPA, cliquez sur l’icône de réglages en regard du champ msg et sélectionnez « Create facet for @msg » :

Facette de msg

Créez deux facettes, pour les champs input.request.kind.kind et result.response.allowed. Ces deux facettes doivent être disponibles dans les entrées de log de type « log de décision ».

Facette kind Facette allowed

Une fois les facettes créées, générez la métrique souhaitée afin de compléter le dashboard. Cliquez sur le menu Logs, puis sur Generate Metrics. Cliquez sur « Add a new metric » et remplissez le formulaire avec les données suivantes :

Métrique de décision OPA

Configuration

  1. Modifiez le fichier open_policy_agent/conf.yaml dans le dossier /confd que vous avez ajouté au pod de l’Agent pour commencer à recueillir vos données de performance OPA. Consultez le fichier d’exemple open_policy_agent/conf.yaml pour découvrir toutes les options de configuration disponibles.

  2. Redémarrez l’Agent.

Validation

Lancez la sous-commande status de l’Agent et cherchez open_policy_agent dans la section Checks.

Données collectées

Métriques

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

Événements

open_policy_agent n’inclut aucun événement.

Checks de service

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

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.