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.
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-svc
service 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-svc
service 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-svc
has an external IP. If the service does not have an external IP, usekubectl edit svc
to change its type fromClusterIP
toLoadBalancer
.
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.yaml
file 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_endpoint
URL. 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_endpoint
URL. If you are not using minikube, usehttp://<FELIX-METRICS-SVC-EXTERNAL-IP>:<PORT>/metrics
as youropenmetrics_endpoint
URL.
-
The default configuration of your
calico.d/conf.yaml
file 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: true
For 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: