This page provides a complete list of configurations for the appdynamics-cloud-k8s-monitoring subchart. For global settings, see Configure AppDynamics Cloud Kubernetes Collectors.

appdynamics-cloud-k8s-monitoring Configuration

You can include these configuration options under the appdynamics-cloud-k8s-monitoring key in the collectors-values.yaml file:

To reinstall or upgrade the collectors, see Upgrade or Uninstall Kubernetes and App Service Monitoring.

Install Switches Configuration

You can include the following configurations under the install key:

ParameterDescriptionRequiredDefaultReinstall Required

clustermon

Set this option to True if you are installing cluster monitoring.OptionaltrueNo
defaultInfraCollectorsSet this option to True if you are installing server and container monitoring.OptionaltrueNo
logCollectorSet this option to True if you are installing log collector monitoringOptionalfalseNo

Role-Based Access Control (RBAC) Configuration

ParameterDescriptionRequiredDefaultReinstall Required

clustermonServiceAccount

The name of the service account to create for the Cluster Collector.Optional

appdynamics-clustermon

Yes

inframonServiceAccount

The name of the service account to create for the Infrastructure Collector.Optional

appdynamics-inframon

Yes

logCollectorServiceAccount

The name of the service account to create for the Log Collector.

Optional

appdynamics-log-collector

Yes

Collectors Configuration

ParameterDescriptionRequiredDefaultReinstall Required
Cluster Collector (include these configuration options under the clustermonConfig key)
logLevelThe log level of the collector.OptionalinfoNo
logFilesMaxSizeMbThe maximum size of one log file (in MB).Optional10No
logFilesNumBackupsThe maximum number of log files created before overwriting the oldest one.Optional4No

printToStdout

Whether Kubernetes® logs will report logs.OptionaltrueNo
filters

The filters that you can use for monitoring. You can include these filters:

namespace: The namespaces to be monitored.

entity: The entities that are excluded from monitoring.

label: The labels that are excluded from reporting.

Optional
filters:
  namespace:
    includeRegex: ".*"
    excludeRegex: ""

  entity:
    excludeRegex: ""
    excludeLabels:

  label:
    excludeRegex: ""
YML
No
ingressControllers

Configuration override for ingress controller labels and metrics port.

Optional
ingressControllers:
  nginx: 
    port: 10254
    labels: 
	  app.kubernetes.io/component: controller
	  app.kubernetes.io/instance: ingress-nginx
	  app.kubernetes.io/name: ingress-nginx
YML
No
events

The events that require collection. You can exclude the required events based on the severity (INFO, WARNING, SEVERE) and Kubernetes event reason.

You can create a custom event group classified as severe events. This classifies the events as severe based on the list of event reasons that you specify in the severeGroupByReason field.

Optional
events:
  enabled: true
  severityToExclude: []
  reasonToExclude: []
  severeGroupByReason: []
YML



No
Infrastructure Collector (include these configuration options under the infraManagerConfig key)

logLevel

The log level of Infrastructure Collector.OptionalinfoNo

logFilesMaxSizeMb

The maximum size of one log file (in MB).Optional10No

logFilesNumBackups

The maximum number of log files created before overwriting the oldest one.Optional4No

printToStdout

Determines whether logs report through Kubernetes logs.OptionaltrueYes
Server Collector Configuration (include these configuration options under the servermonConfig key)
exporterPortThe port used to start Node Exporter.Optional9100No

logLevel

The log level of the Server Collector.OptionalinfoNo

logFilesMaxSizeMb

The maximum size of one log file (in MB).Optional10No

logFilesNumBackups

The maximum number of log files created before overwriting the oldest one.Optional4No
Container Collector Configuration (include these configuration options under the containermonConfig key)

logLevel

The log level of the Container Collector.
OptionalinfoNo

logFilesMaxSizeMb

The maximum size of one log file (in MB).Optional10No

logFilesNumBackups

The maximum number of log files created before overwriting the oldest one.Optional4No

To include the Log Collector configuration options, see AppDynamics Log Collector Settings.

Supported Kubernetes Configuration Options

Kubernetes supports the following parameters which are configurable through the collectors-values.yaml file:

Cluster Collector Pod Configuration 

You can include the following configuration options under the clustermonPod key in collectors-values.yaml:

Parameter

DescriptionRequiredDefaultReinstall Required
imageThe Cluster Collector image address in format: <registryUrl>/<registryAccount>/<project>:<tag>Optionalappdynamics/appdynamics-cloud-k8s-monitoring:22.10.0-1366No
imagePullPolicyImage pull policy for the Cluster Collector pod.OptionalAlwaysNo
resourcesResources you assign to the pod.Optional
limits:
  cpu: 1000m
  memory: 1000Mi
requests:
  cpu: 500m
  memory: 750Mi
YML
No
labelsLabels for the pod.Optional{ }Yes
annotationsAnnotations for the pod.Optional{ }No
nodeSelectorNode selector for the pod.Optional{ }No
imagePullSecretsImage pull secrets for the pod.Optional[ ]No
affinityAffinity for the pod.Optional{ }No
tolerationsTolerations for the pod.Optional[ ]No
securityContextSecurity Context for the pod.Optional{ }No

Infrastructure Collector Pod Configuration 

You can include the following configuration options under the inframonPod key in collectors-values.yaml:

ParameterDescriptionRequiredDefaultReinstall Required
imageInfrastructure Collector image address in format: <registryUrl>/<registryAccount>/<project>:<tag>Optionalappdynamics/appdynamics-cloud-k8s-monitoring:22.10.0-1366No
imagePullPolicyImage pull policy for the Infrastructure Collector pod.OptionalAlwaysNo
resourcesResources you assign to the pod.Optional
limits:
  cpu: 350m
  memory: 100Mi
requests:
  cpu: 200m
  memory: 64Mi
YML
No
labelsLabels for the pod.Optional{ }Yes
annotationsAnnotations for the pod.Optional{ }No
nodeSelectorNode selector for the pod.Optional{ }No
imagePullSecretsImage pull secrets for the pod.Optional[ ]No
affinityAffinity for the pod.Optional{ }No
tolerations

Tolerations for the pod.

If you have used taints on any of the nodes in the cluster, ensure to add this configuration to monitor the nodes. For more information see Monitor Tainted Nodes

Optional[ ]No
securityContextSecurity Context for the pod.Optional{ }No

Log Collector Pod Configuration

You can include the following configuration options under the logCollectorPod key in collectors-values.yaml:

ParameterDescriptionRequiredDefaultReinstall Required
imageLog Collector image address in format: <registryUrl>/<registryAccount>/<project>:<tag>Optional

appdynamics/appdynamics-cloud-log-collector-agent:22.8.0-304


No
imagePullPolicyImage pull policy for the Log Collector pod.OptionalAlwaysNo
resourcesResources you assign to the pod.Optional
limits:
  cpu: 400m
  memory: 300Mi
requests:
  cpu: 200m
  memory: 150Mi
YML
No
labelsLabels for the pod.Optional{ }Yes
annotationsAnnotations for the pod.Optional{ }No
nodeSelectorNode selector for the pod.Optional{ }No
imagePullSecretsImage pull secrets for the pod.Optional[ ]No
affinityAffinity for the pod.Optional{ }No
tolerations

Tolerations for the pod.

If you have used taints on any of the nodes in the cluster, ensure to add this configuration to monitor the nodes. For more information see Monitor the Tainted Nodes

Optional[ ]No
securityContextSecurity Context for the pod.Optional{ }No

Example of Using the Configuration Options

The following example outlines the use of all the configuration options the collectors chart provides:

global:
  clusterName: sampleCluster

appdynamics-cloud-k8s-monitoring:
  install:
    clustermon: true
    defaultInfraCollectors: true
    logCollector: false

  # RBAC config
  clustermonServiceAccount: appdynamics-clustermon
  inframonServiceAccount: appdynamics-inframon
  logCollectorServiceAccount: appdynamics-log-collector

  #Clustermon Configs
  clustermonConfig:
    logLevel: info
    logFilesMaxSizeMb: 10
    logFilesNumBackups: 4
    printToStdout: "true"

    filters:
      namespace:
        includeRegex: "dev.*"
        excludeRegex: "secure.*"
      entity:
        excludeRegex: "counter.*"
        excludeLabels:
          - selector:
              version: v1
              env: prod
          - selector:
              version: v2
              env: dev
      label:
        excludeRegex: "pass.*"

    ingressControllers:
      nginx:
        port: 10254
        labels:
          app.kubernetes.io/component: controller
          app.kubernetes.io/instance: ingress-nginx
          app.kubernetes.io/name: ingress-nginx

    events:
      enabled: true
      severityToExclude: [Normal]
      reasonToExclude: [BackOff, Started]
      severeGroupByReason: [Failed, Evicted]

  #Infrastructure Collector Configs
  infraManagerConfig:
    logLevel: info
    logFilesMaxSizeMb: 10
    logFilesNumBackups: 4
    printToStdout: "true"

  #Servermon Configs
  servermonConfig:
    logLevel: info
    logFilesMaxSizeMb: 10
    logFilesNumBackups: 4
    exporterPort: 9100
    
 #Containermon Configs
  containermonConfig:
    logLevel: info
    logFilesMaxSizeMb: 10
    logFilesNumBackups: 4
 
  #Log Collector Configs
  logCollectorConfig:    
    container:
      conditions:
        - condition:
            operator: equals
            key: kubernetes.container.name
            value: log-generator-logback
          messageParser:
            logback:
              enabled: true
              pattern: "%d{yyyy-MM-dd'T'HH:mm:ss.nnnnnnnnn} %p %C{1.} [%t] %m%n"
          multiLinePattern: '^[[:space:]]+(at|\.{3})[[:space:]]+\b|^Caused by:'
      monitoring:
        enabled: false

  #Deployment specific configs
  clustermonPod:
    image: appdynamics/appdynamics-cloud-k8s-monitoring:22.10.0-1366
    imagePullPolicy: IfNotPresent
    resources:
      limits:
        cpu: 200m
        memory: 128Mi
      requests:
        cpu: 100m
        memory: 64Mi
    labels:
      key1: "value1"
    annotations:
      key2: "value2"
    tolerations:
      - key: "key3"
        operator: "Exists"
        effect: "NoSchedule"
    nodeSelector:
      disktype: ssd
    imagePullSecrets:
      - name: aws-ecr-secret
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: key4
                  operator: In
                  values:
                    - value3
                    - value4
    securityContext:
      fsGroupChangePolicy: "OnRootMismatch"

  #Daemonset specific configs
  inframonPod:
    image: appdynamics/appdynamics-cloud-k8s-monitoring:22.10.0-1366          
    imagePullPolicy: IfNotPresent
    resources:
      limits:
        cpu: 200m
        memory: 128Mi
      requests:
        cpu: 100m
        memory: 64Mi
    labels:
      key1: "value1"
    annotations:
      key2: "value2"
    tolerations:
      - key: "key3"
        operator: "Exists"
        effect: "NoSchedule"
    nodeSelector:
      disktype: ssd
    imagePullSecrets:
      - name: aws-ecr-secret
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: key4
                  operator: In
                  values:
                    - value3
                    - value4
    securityContext:
      fsGroupChangePolicy: "OnRootMismatch"

  #Daemonset specific configs
  logCollectorPod:
    image: appdynamics/appdynamics-cloud-log-collector-agent:22.8.0-304       
    imagePullPolicy: IfNotPresent
    resources:
      limits:
        cpu: 200m
        memory: 128Mi
      requests:
        cpu: 100m
        memory: 64Mi
    labels:
      key1: "value1"
    annotations:
      key2: "value2"
    tolerations:
      - key: "key3"
        operator: "Exists"
        effect: "NoSchedule"
    nodeSelector:
      disktype: ssd
    imagePullSecrets:
      - name: aws-ecr-secret
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: key4
                  operator: In
                  values:
                    - value3
                    - value4
      securityContext:
        fsGroupChangePolicy: "OnRootMismatch"
YML



OpenTelemetry™ and Kubernetes® (as applicable) are trademarks of The Linux Foundation®.