This page describes the resource requirements, compatibility with different Kubernetes®-based software, and the specifications required to install Kubernetes and App Service Monitoring, which includes resources, clusters, namespaces, workloads, pods, and containers.

This document contains references to the cert-manager documentation. AppDynamics does not own any rights and assumes no responsibility for the accuracy or completeness of such third-party documentation.

Before You Begin

Before installing Kubernetes and App Service Monitoring solution, ensure that you meet the following requirements:

  • Your account is set up on AppDynamics Cloud. See Account Administration.
  • You are connected to the cluster that you want to monitor.
  • You have administrator privileges on the monitored cluster to run the Helm chart commands.

Hardware Requirements

The default hardware settings are:

ComponentCPUMemoryPer cluster or node
AppDynamics Distribution for OpenTelemetry™ Collector*200m1024MiBPer node
AppDynamics Operator200m128MiBPer cluster
Cluster Collector1000m1000MiBPer cluster
Infrastructure Collector350m100MiBPer node
Log Collector400m512MiBPer node

OpenTelemetry™ Operator for Kubernetes**

600m256MiBPer cluster

*For throughput-specific details, see AppDynamics OpenTelemetry Collector Service Performance and Scaling.
**OpenTelemetry Operator manager and Kube RBAC Proxy

Software Requirements

The Kubernetes and App Service Monitoring is designed to run in Linux containers and is deployed using the AppDynamics Operator. Kubernetes and App Service Monitoring requires:

  • Amazon Elastic Kubernetes Service >=1.20
  • Helm >= 3.8.0
  • Sufficient licenses. See License Management.

  • The nodes in your cluster are running a Linux operating system.

  • Access to Dockerhub to pull the AppDynamics Operator and Collector images for the Kubernetes and App Service Monitoring:

NameURL
AppDynamics Distribution for OpenTelemetry™ Collectorappdynamics/appdynamics-cloud-otel-collector:22.8.0-391
AppDynamics Operatorappdynamics/appdynamics-cloud-operator:22.9.0-738
Cluster Collector appdynamics/appdynamics-cloud-k8s-monitoring:22.9.0-1340
Infrastructure Collectorappdynamics/appdynamics-cloud-k8s-monitoring:22.8.0-1305
kube-rbac-proxygcr.io/kubebuilder/kube-rbac-proxy:v0.8.0
Log Collectorappdynamics/appdynamics-cloud-log-collector-agent:22.8.0-304
OpenTelemetry™ Operator for Kubernetesghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:v0.46.0

In addition, for the Log Collector ensure:

  • Filebeat is not already running on your cluster. If Filebeat is running on your cluster, uninstall it. You cannot use an existing Filebeat deployment with the AppDynamics Log Collector.
  • On your cluster, your log-generating applications are already running and generating logs in Log4j, Logback, timestamp, JSON, or Grok format.

Install AppDynamics Cloud Using Helm Charts

AppDynamics Cloud provides a full-stack solution to monitor applications and Infrastructure with correlation. Perform the following steps to install Kubernetes Full-Stack Monitoring using Helm charts:

  1. From the AppDynamics Cloud UI, copy the snippet that includes cluster name, client ID, client secret, Tenant endpoint, and token Url for the full-stack monitoring solution.
  2. Paste the copied snippet into a file named collectors-values.yaml

    The collectors-values.yaml file must be created on the machine connected to the required Kubernetes cluster.

    This is used to deploy the appdynamics-collectors Helm chart. 

    collectors-values.yaml

    appdynamics-cloud-k8s-monitoring:
      clustermonConfig:
        clusterName: <cluster-name>
    
    appdynamics-otel-collector:
      clientId: <client-ID>
      clientSecret: <client-secret>
      endpoint: <endpoint>
      tokenUrl: <token-url>
    YML
  3. Create the AppDynamics namespace where the Kubernetes Full-Stack Solution is installed:

    $ kubectl create namespace appdynamics
    
    BASH
  4. For Kubernetes, in order for the API server to communicate with the webhook component of OpenTelemetry Operator in the AppDynamics Operators Helm chart, the webhook requires a TLS certificate. The API server must then be configured for the OpenTelemetry Operator. The simplest option is to install cert-manager and allow it to generate a self-signed certificates automatically:

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yaml
    BASH

    To manually generate a certificate see Provision a TLS Certificate for the OpenTelemetry Operator.

  5. Install the AppDynamics Operators using default values.

    helm install appdynamics-operators oci://public.ecr.aws/appdynamics-container-registry/appdynamics-cloud-helmcharts/appdynamics-operators -n appdynamics --version=1.3.169 --wait
    BASH

    You can set additional configuration by passing the yaml through the -f flag to the Helm chart. See AppDynamics Cloud Operator Settings.

  6. Install the AppDynamics Collectors using collectors-values.yaml. To configure mTLS between AppDynamics Collectors and OpenTelemetry Collectors, see Configure AppDynamics Cloud Kubernetes Collectors.

    helm install appdynamics-collectors oci://public.ecr.aws/appdynamics-container-registry/appdynamics-cloud-helmcharts/appdynamics-collectors -n appdynamics -f collectors-values.yaml --version=1.3.169
    BASH
  7. Validate the install:

    Check K8s pods in appdynamics namespace using the following command: 

    kubectl get all -n appdynamics
    BASH

    This is a sample output with the validation:

    NAME                                                                  READY   STATUS    RESTARTS   AGE
    pod/appdynamics-collectors-appdynamics-clustermon-68756cb9d6-zsjl8    1/1     Running   0          64s
    pod/appdynamics-collectors-appdynamics-inframon-bdgjq                 1/1     Running   0          63s
    pod/appdynamics-collectors-appdynamics-otel-collector-collectom769m   1/1     Running   0          63s
    pod/appdynamics-operators-appdynamics-cloud-operator-78b895ff8lwqtw   2/2     Running   0          2m4s
    pod/opentelemetry-operator-controller-manager-8cf5c85c8-9zxjb         2/2     Running   0          2m4s
    
    NAME                                                                      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                       AGE
    service/appdynamics-cloud-operator-metrics-service                        ClusterIP   10.103.34.53    <none>        8443/TCP                      2m4s
    service/appdynamics-collectors-appdynamics-otel-collector-co-monitoring   ClusterIP   10.109.141.14   <none>        8888/TCP                      64s
    service/appdynamics-collectors-appdynamics-otel-collector-coll-headless   ClusterIP   None            <none>        4318/TCP,4317/TCP,55679/TCP   64s
    service/appdynamics-collectors-appdynamics-otel-collector-collector       ClusterIP   10.97.178.10    <none>        4318/TCP,4317/TCP,55679/TCP   64s
    service/appdynamics-otel-collector-service                                ClusterIP   10.107.133.27   <none>        4318/TCP,4317/TCP,55679/TCP   64s
    service/opentelemetry-operator-controller-manager-metrics-service         ClusterIP   10.99.42.155    <none>        8443/TCP                      2m4s
    service/opentelemetry-operator-webhook-service                            ClusterIP   10.96.240.42    <none>        443/TCP                       2m4s
    
    NAME                                                                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/appdynamics-collectors-appdynamics-inframon                   1         1         1       1            1           <none>          64s
    daemonset.apps/appdynamics-collectors-appdynamics-otel-collector-collector   1         1         1       1            1           <none>          64s
    
    NAME                                                               READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/appdynamics-collectors-appdynamics-clustermon      1/1     1            1           64s
    deployment.apps/appdynamics-operators-appdynamics-cloud-operator   1/1     1            1           2m4s
    deployment.apps/opentelemetry-operator-controller-manager          1/1     1            1           2m4s
    
    NAME                                                                          DESIRED   CURRENT   READY   AGE
    replicaset.apps/appdynamics-collectors-appdynamics-clustermon-68756cb9d6      1         1         1       64s
    replicaset.apps/appdynamics-operators-appdynamics-cloud-operator-78b895ff88   1         1         1       2m4s
    replicaset.apps/opentelemetry-operator-controller-manager-8cf5c85c8           1         1         1       2m4s
    
    
    CODE

Next Steps

Application Performance Monitoring

Based on whether your services are already instrumented or not, choose the appropriate workflow from Application Performance Monitoring with OpenTelemetry™.

Log Collection

Log Collection is disabled by default. To set up the log collection, see Log Collection.

Event Monitoring 

You can observe the event severity for the entities with the details on AppDynamics Cloud UI. See Events Collection.

Advanced Install and Configuration

Refer to the following pages for advanced settings for Helm charts and APM auto-instrumentation:

How to Uninstall the Kubernetes Full-Stack Monitoring


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