Supported OS
Agent Check: gatekeeper Overview This check collects metrics from OPA Gatekeeper .
Setup Follow the instructions below to install and configure this check for an Agent running on a Kubernetes cluster. See also the Autodiscovery Integration Templates for guidance on applying these instructions.
Installation Agent versions >=7.26.0 or >=6.26.0 To use an integration from integrations-extra
with the Docker Agent, Datadog recommends building the Agent with the integration installed. Use the following Dockerfile to build an updated version of the Agent that includes the gatekeeper
integration from integrations-extras
:
FROM gcr.io/datadoghq/agent:latest
RUN agent integration install -r -t datadog-gatekeeper==<INTEGRATION_VERSION>
Agent versions <7.26.0 or <6.26.0 To install the gatekeeper check on your Kubernetes cluster:
Install the developer toolkit .
Clone the integrations-extras
repository:
git clone https://github.com/DataDog/integrations-extras.git.
Update your ddev
config with the integrations-extras/
path:
ddev config set repos.extras ./integrations-extras
To build the gatekeeper
package, run:
ddev -e release build gatekeeper
Download the Agent manifest to install the Datadog Agent as a DaemonSet .
Create two PersistentVolumeClaim
s, one for the checks code, and one for the configuration.
Add them as volumes to your Agent pod template and use them for your checks and 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
Deploy the Datadog Agent in your Kubernetes cluster:
kubectl apply -f agent.yaml
Copy the integration artifact .whl file to your Kubernetes nodes or upload it to a public URL
Run the following command to install the integrations wheel with the Agent:
kubectl exec ds/datadog -- agent integration install -w <PATH_OF_GATEKEEPER_ARTIFACT_>/<GATEKEEPER_ARTIFACT_NAME>.whl
Run the following commands to copy the checks and configuration to the corresponding PVCs:
kubectl exec ds/datadog -- sh
# cp -R /opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/* /checksd
# cp -R /etc/datadog-agent/conf.d/* /confd
Restart the Datadog Agent pods.
Configuration Edit the gatekeeper/conf.yaml
file, in the /confd
folder that you added to the Agent pod to start collecting your gatekeeper performance data. See the sample gatekeeper/conf.yaml for all available configuration options.
Restart the Agent .
Validation Run the Agent’s status subcommand and look for gatekeeper
under the Checks section.
Data Collected Metrics gatekeeper.audit.duration.seconds.sum (count)Latency of audit operation in secondsShown as second gatekeeper.audit.duration.seconds.count (count)Latency of audit operation in secondsShown as second gatekeeper.audit.last_run_time (gauge)Timestamp of last audit operation gatekeeper.constraint_template_ingestion.duration.seconds.sum (count)Distribution of how long it took to ingest a constraint template in secondsShown as second gatekeeper.constraint_template_ingestion.duration.seconds.count (count)Distribution of how long it took to ingest a constraint template in secondsShown as second gatekeeper.constraint_template_ingestion.count (count)Total number of constraint template ingestion actions gatekeeper.violations (gauge)Total number of violations per constraint gatekeeper.constraints (gauge)Current number of known constraints gatekeeper.constraint_templates (gauge)Number of observed constraint templates gatekeeper.request.duration.seconds.sum (count)[Deprecated since Gatekeeper v3.4.0] The response time in secondsShown as second gatekeeper.request.duration.seconds.count (count)[Deprecated since Gatekeeper v3.4.0] The response time in secondsShown as second gatekeeper.request.count (count)[Deprecated since Gatekeeper v3.4.0] Total number of requests that are routed to webhook gatekeeper.sync (gauge)Total number of resources of each kind being cached gatekeeper.sync.duration.seconds.sum (count)Latency of sync operation in secondsShown as second gatekeeper.sync.duration.seconds.count (count)Latency of sync operation in secondsShown as second gatekeeper.sync.last_run_time (gauge)Timestamp of last sync operation gatekeeper.watch.intended (gauge)The total number of Group/Version/Kinds that the watch manager has instructions to watch gatekeeper.watch.watched (gauge)The total number of Group/Version/Kinds currently watched by the watch manager gatekeeper.validation.request.count (count)The number of requests that are routed to validation webhook gatekeeper.validation.request.duration.seconds.sum (count)The response time in secondShown as second gatekeeper.validation.request.duration.seconds.count (count)The response time in secondShown as second gatekeeper.mutator.ingestion.count (count)Total number of Mutator ingestion actions gatekeeper.mutator.ingestion.duration.seconds.sum (count)The distribution of Mutator ingestion durationsShown as second gatekeeper.mutator.ingestion.duration.seconds.count (count)The distribution of Mutator ingestion durationsShown as second gatekeeper.mutators (gauge)The current number of Mutator objects gatekeeper.mutator.conflicting.count (gauge)The current number of conflicting Mutator objects
Events Gatekeeper does not include any events.
Service Checks gatekeeper.prometheus.health
Returns CRITICAL
if the agent fails to connect to the Prometheus metrics endpoint, otherwise OK
.
Statuses: ok, critical
gatekeeper.health
Returns CRITICAL
if the agent fails to connect to the gatekeeper health endpoint, OK
if it returns 200, WARNING
otherwise.
Statuses: ok, warning, critical
Troubleshooting Need help? Contact Datadog support .