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 Collector350m

100MiB (Linux)

300MiB (Windows)

Per node
Log Collector400m512MiBPer node
Windows Exporter200m200MiBPer 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 hybrid (Linux and Windows) or Linux-only clusters. Kubernetes and App Service Monitoring requires:

NameURL
AppDynamics Distribution for OpenTelemetry™ Collector

Linux: appdynamics/appdynamics-cloud-otel-collector:23.5.0-925

Windows: appdynamics/appdynamics-cloud-otel-collector:23.5.0-925-windows-amd64-nanoserver-ltsc2019

AppDynamics Operatorappdynamics/appdynamics-cloud-operator:23.5.0-1029
Cluster Collector

appdynamics/appdynamics-cloud-k8s-monitoring:23.5.0-1593

Infrastructure Collector

appdynamics/appdynamics-cloud-k8s-monitoring:23.5.0-1593

kube-rbac-proxygcr.io/kubebuilder/kube-rbac-proxy:v0.13.1
Log Collectorappdynamics/appdynamics-cloud-log-collector-agent:23.4.0-567
Windows Exporterghcr.io/prometheus-community/windows-exporter:0.20.0
OpenTelemetry™ Operator for Kubernetesghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:v0.69.0
ghcr.io/open-telemetry/opentelemetry-operator/target-allocator:0.69.0

Cluster Support

Linux ClusterWindows and Linux Cluster
  • Amazon Elastic Kubernetes Service  >=1.22
  • Azure Kubernetes Service >=1.24
  • Red Hat OpenShift Service on AWS (ROSA) 4.12
  • Microsoft Azure for OpenShift 4.11
  • Self-managed OpenShift Container Platform (OCP) 4.11
  • Rancher Kubernetes Engine (RKE) 1.25.9
  • Rancher Kubernetes Engine Government (RKE2) 1.24.13+rke2r1 
  • Tanzu Kubernetes Grid Integrated Edition (TKGI) 1.25.4+vmware.1
  • Containerd runtime for Windows nodes
  • Windows 2019 Server for Windows nodes >= 1.23 
  • Amazon Elastic Kubernetes Service  >=1.25
  • Azure Kubernetes Service >=1.26

AppDynamics and OpenTelemetry Operators can run on Linux nodes only.

The k8s.cluster.id attribute is required to send MELT data for Kubernetes entities. By default, AppDynamics Helm charts and Collectors attach the k8s.cluster.id attribute to data from AppDynamics sources. To send data from third-party collectors, you must enrich your data with the k8s.cluster.id attribute. The k8s.cluster.id attribute must have a value equal to the UUID of the kube-system namespace.

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 Kubernetes and App Service Monitoring Using Helm Charts

AppDynamics Cloud provides a solution to monitor applications and Infrastructure with correlation. Perform the following steps to install Kubernetes and App Service Monitoring using Helm charts:

  1. Ensure that your environment conforms to the Software Requirements.
  2. On AppDynamics Cloud, get the name of your cluster:

    1. On the Observe page, select your cluster.
    2. In the Properties panel, copy the name of your cluster and save it to a text file.
  3. From the AppDynamics Cloud Tenant UI, copy the snippet that includes clusterName, clientId, clientSecret, endpoint, and tokenUrl for the full-stack monitoring solution.
  4. This is used to deploy the appdynamics-collectors Helm chart.

    Paste the copied snippet under the global key into the collectors-values.yaml file.  You must create the collectors-values.yaml file on the machine connected to the required Kubernetes cluster.

    collectors-values.yaml

    global:
      clusterName: <cluster-name>
    appdynamics-otel-collector:
      clientId: <client-ID>
      clientSecret: <client-secret>
      endpoint: <endpoint>
      tokenUrl: <token-url>
    YML
  5. Create the AppDynamics namespace where the Kubernetes and App Service Monitoring Solution is installed:

    kubectl create namespace appdynamics
    
    BASH
  6. For Kubernetes, the webhook requires a TLS certificate for the API server to communicate with the webhook component of OpenTelemetry Operator in the AppDynamics Operators Helm chart. 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 certificate 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.

  7. Add the helm repo:

    helm repo add appdynamics-cloud-helmcharts https://appdynamics.jfrog.io/artifactory/appdynamics-cloud-helmcharts/ 
    BASH
  8. Install the AppDynamics Operators using default values.

    helm install appdynamics-operators appdynamics-cloud-helmcharts/appdynamics-operators -n appdynamics --wait
    BASH

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

  9. Install the AppDynamics Collectors using collectors-values.yaml.

  10. Validate the installation:

    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-hhjwn    1/1     Running   0          3m17s
    pod/appdynamics-collectors-appdynamics-inframon-fkfh6                 1/1     Running   0          3m17s
    pod/appdynamics-collectors-appdynamics-otel-co-collector-9j6k7        1/1     Running   0          54s
    pod/appdynamics-operators-appdynamics-cloud-operator-669f8f6d4b5b6q   2/2     Running   0          3m42s
    pod/opentelemetry-operator-controller-manager-5cb47c7666-dfplr        2/2     Running   0          3m42s
    NAME                                                                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                       AGE
    service/appdynamics-cloud-operator-metrics-service                        ClusterIP   10.109.232.54    <none>        8443/TCP                      3m42s
    service/appdynamics-collectors-appdynamics-otel-co-collector              ClusterIP   10.97.70.222     <none>        4318/TCP,4317/TCP,55679/TCP   54s
    service/appdynamics-collectors-appdynamics-otel-co-collector-headless     ClusterIP   None             <none>        4318/TCP,4317/TCP,55679/TCP   54s
    service/appdynamics-collectors-appdynamics-otel-co-collector-monitoring   ClusterIP   10.106.157.16    <none>        8888/TCP                      54s
    service/appdynamics-otel-collector-service                                ClusterIP   10.100.41.15     <none>        4318/TCP,4317/TCP,55679/TCP   3m20s
    service/opentelemetry-operator-controller-manager-metrics-service         ClusterIP   10.102.222.204   <none>        8443/TCP,8080/TCP             3m42s
    service/opentelemetry-operator-webhook-service                            ClusterIP   10.99.26.174     <none>        443/TCP                       3m42s
    NAME                                                                  DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/appdynamics-collectors-appdynamics-inframon            1         1         1       1            1           <none>          3m17s
    daemonset.apps/appdynamics-collectors-appdynamics-otel-co-collector   1         1         1       1            1           <none>          54s
    NAME                                                               READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/appdynamics-collectors-appdynamics-clustermon      1/1     1            1           3m17s
    deployment.apps/appdynamics-operators-appdynamics-cloud-operator   1/1     1            1           3m42s
    deployment.apps/opentelemetry-operator-controller-manager          1/1     1            1           3m42s
    NAME                                                                          DESIRED   CURRENT   READY   AGE
    replicaset.apps/appdynamics-collectors-appdynamics-clustermon-68756cb9d6      1         1         1       3m17s
    replicaset.apps/appdynamics-operators-appdynamics-cloud-operator-669f8f6d49   1         1         1       3m42s
    replicaset.apps/opentelemetry-operator-controller-manager-5cb47c7666          1         1         1       3m42s
    CODE

Next Steps

Application Performance Monitoring

Choose the appropriate workflow from Application Performance Monitoring with OpenTelemetry™ according to your service instrumentation status.

Log Collection

Log Collection is inactive by default. Use the Log Collection instructions if you require them.

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:

Upgrade of Uninstall Kubernetes Full-Stack Monitoring

Next Steps

Application Performance Monitoring with OpenTelemetry™


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