This check monitors Calico through the Datadog Agent.
The Calico check sends metrics concerning network and security in a Kubernetes cluster set up with Calico.
Minimum Agent version: 7.36.0
The Calico check is included in the Datadog Agent package.
Using annotations:
-
Set up Calico on your cluster.
-
Enable Prometheus metrics using the instructions in Monitor Calico component metrics. Once enabled, you should have a
felix-metrics-svcservice running in your cluster, as well as aprometheus-pod. -
To use Autodiscovery, modify
prometheus-pod. Add the following snippet to your Prometheus YAML configuration file:metadata: [...] annotations: ad.datadoghq.com/prometheus-pod.check_names: | ["openmetrics"] ad.datadoghq.com/prometheus-pod.init_configs: | [{}] ad.datadoghq.com/prometheus-pod.instances: | [ { "prometheus_url": "http://<FELIX-SERVICE-IP>:<FELIX-SERVICE-PORT>/metrics", "namespace": "calico", "metrics": ["*"] } ] spec: [....]
You can find values for <FELIX-SERVICE-IP> and <FELIX-SERVICE-PORT> by running kubectl get all -all-namespaces.
-
Follow Monitor Calico component metrics until you have a
felix-metrics-svcservice running by usingkubectl get all --all-namespaces. -
If you are using minikube, you must forward port 9091 to
felix-metrics-svc. Runkubectl port-forward service/felix-metrics-svc 9091:9091 -n kube-system.If you are not using minikube, check that
felix-metrics-svchas an external IP. If the service does not have an external IP, usekubectl edit svcto change its type fromClusterIPtoLoadBalancer.
Follow the instructions to configure this check for an Agent running on a host. For containerized environments, see the Containerized section.
To configure this check for an Agent running on a host:
-
Edit the
calico.d/conf.yamlfile in theconf.d/folder at the root of your Agent's configuration directory to start collecting your Calico performance data. The only required parameter is theopenmetrics_endpointURL. See the sample calico.d/conf.yaml for all available configuration options. -
If you are using minikube, use 'http://localhost:9091/metrics' as your
openmetrics_endpointURL. If you are not using minikube, usehttp://<FELIX-METRICS-SVC-EXTERNAL-IP>:<PORT>/metricsas youropenmetrics_endpointURL.
-
The default configuration of your
calico.d/conf.yamlfile activate the collection of your Calico metrics. See the sample calico.d/conf.yaml for all available configuration options.
Since Calico structure is set up in a Kubernetes cluster, it is built with deployments, pods, and services. The Kubernetes integration fetches logs from containers.
After setting up the Kubernetes integration, Calico logs become available in the Datadog Log Explorer.
Collecting logs is disabled by default in the Datadog Agent. Enable it in your datadog.yaml file:
logs_enabled: trueFor containerized environments, see the Autodiscovery Integration Templates for guidance on applying the parameters below.
| Parameter | Value |
|---|---|
<INTEGRATION_NAME> |
calico |
<INIT_CONFIG> |
blank or {} |
<INSTANCE_CONFIG> |
{openmetrics_endpoint: <OPENMETRICS_ENDPOINT>} |
Collecting logs is disabled by default in the Datadog Agent. To enable it, see Kubernetes Log Collection.
| Parameter | Value |
|---|---|
<LOG_CONFIG> |
{"source": "calico", "service": "<SERVICE_NAME>"} |
Run the Agent's status subcommand and look for calico under the Checks section.
See metadata.csv for a list of metrics provided by this check.
The Calico integration does not include any events.
See service_checks.json for a list of service checks provided by this integration.
Need help? Contact Datadog support.
Additional helpful documentation, links, and articles: