Skip to content

Install Datakit Operator


Concepts

Field Description
namespaces, selectors enabled_namespaces and enabled_labelselectors are exclusive to ddtrace. They are arrays of objects that require specifying namespace and language. The arrays have an "OR" relationship. Currently, only java is supported as the language.
If a Pod satisfies both enabled_namespaces and enabled_labelselectors, the enabled_labelselectors configuration takes precedence.

Enable DDTrace Collector

Modify the datakit.yaml file and append DDTrace to the default enabled collectors.

 - name: ENV_DEFAULT_ENABLED_INPUTS
   value: cpu,disk,diskio,mem,swap,system,hostobject,net,host_processes,container,ddtrace

Restart the application:

kubectl apply -f datakit.yaml

Install DataKit Operator

Datakit Operator can automate the deployment of applications and services, automatically inject DDTrace SDK, and instrument them upon startup.

Click to download the latest datakit-operator.yaml file:

$ kubectl create namespace datakit
$ wget https://static.truewatch.com/datakit-operator/datakit-operator.yaml

Update Configuration File

Datakit Operator configuration is in JSON format, stored separately in Kubernetes as a ConfigMap, and loaded into the container as environment variables.

{
    "server_listen": "0.0.0.0:9543",
    "log_level":     "info",
    "admission_inject": {
        "ddtrace": { 
           "enabled_namespaces":     [],
           "enabled_labelselectors": [],
           "images": {
                "java_agent_image":   "pubrepo.truewatch.com/datakit-operator/dd-lib-java-init:latest"
            },
            "envs": {
              "DD_JMXFETCH_STATSD_HOST": "datakit-service.datakit.svc",
              "DD_JMXFETCH_STATSD_PORT": "8125",
              "POD_NAME": "{fieldRef:metadata.name}",
              "POD_NAMESPACE": "{fieldRef:metadata.namespace}",
              "NODE_NAME": "{fieldRef:spec.nodeName}",
              "DD_SERVICE": "{fieldRef:metadata.labels['service']}",
              "DD_AGENT_HOST": "datakit-service.datakit.svc",
              "DD_TRACE_AGENT_PORT": "9529",
              "DD_TAGS": "pod_name:$(POD_NAME),pod_namespace:$(POD_NAMESPACE),host:$(NODE_NAME)"
            }
        },
        "logfwd": {
            "options": {
                "reuse_exist_volume": "false"
            },
            "images": {
                "logfwd_image": "pubrepo.truewatch.com/datakit/logfwd:1.28.1"
            }
        }
    }
}

Parameter Configuration:

  1. service: Service name;
  2. env: Environment information of the application service;
  3. Custom DataKit listening address, if not set, follows the default address;
  4. Collect Profiling data: Enabling this allows viewing more runtime information of the application;
  5. Configure namespaces;
  6. Configure selectors.

Execute Installation Command

kubectl apply -f datakit-operator.yaml

Restart Application

After installation, restart the application Pod.