Download PDF
Download page Install Kubernetes and App Service Monitoring.
Install Kubernetes and App Service Monitoring
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:
Component | CPU | Memory | Per cluster or node |
---|---|---|---|
AppDynamics Distribution for OpenTelemetry™ Collector* | 200m | 1024MiB | Per node |
AppDynamics Operator | 200m | 128MiB | Per cluster |
Cluster Collector | 1000m | 1000MiB | Per cluster |
Infrastructure Collector | 350m | 100MiB (Linux) 300MiB (Windows) | Per node |
Log Collector | 400m | 512MiB | Per node |
Windows Exporter | 200m | 200MiB | Per node |
OpenTelemetry™ Operator for Kubernetes** | 600m | 256MiB | Per 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:
- Helm >= 3.8.0
Sufficient licenses. See License Management.
- OpenTelemetry Agent versions that are supported by AppDynamics Cloud.
Access to Dockerhub to pull the AppDynamics Operator and Collector images for the Kubernetes and App Service Monitoring:
Name | URL |
---|---|
AppDynamics Distribution for OpenTelemetry™ Collector | Linux: Windows: |
AppDynamics Operator | appdynamics/appdynamics-cloud-operator:23.5.0-1029 |
Cluster Collector |
|
Infrastructure Collector |
|
kube-rbac-proxy | gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 |
Log Collector | appdynamics/appdynamics-cloud-log-collector-agent:23.4.0-567 |
Windows Exporter | ghcr.io/prometheus-community/windows-exporter:0.20.0 |
OpenTelemetry™ Operator for Kubernetes | ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:v0.69.0 |
ghcr.io/open-telemetry/opentelemetry-operator/target-allocator:0.69.0 |
Cluster Support
Linux Cluster | Windows and Linux Cluster |
---|---|
|
|
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:
- Ensure that your environment conforms to the Software Requirements.
On AppDynamics Cloud, get the name of your cluster:
- On the Observe page, select your cluster.
- In the Properties panel, copy the name of your cluster and save it to a text file.
- From the AppDynamics Cloud Tenant UI, copy the snippet that includes
clusterName
,clientId
,clientSecret
,endpoint
, andtokenUrl
for the full-stack monitoring solution. - 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 thecollectors-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 Create the AppDynamics
namespace
where the Kubernetes and App Service Monitoring Solution is installed:kubectl create namespace appdynamics
BASHFor 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
BASHTo manually generate a certificate see Provision a TLS Certificate for the OpenTelemetry Operator.
Add the helm repo:
helm repo add appdynamics-cloud-helmcharts https://appdynamics.jfrog.io/artifactory/appdynamics-cloud-helmcharts/
BASHInstall the AppDynamics Operators using default values.
helm install appdynamics-operators appdynamics-cloud-helmcharts/appdynamics-operators -n appdynamics --wait
BASHTo manually generate a certificate see Provision a TLS Certificate for the OpenTelemetry Operator.
Install the AppDynamics Collectors using
collectors-values.yaml
.To configure mTLS between AppDynamics Collectors and OpenTelemetry Collectors, see Configure mTLS.
To monitor the tainted nodes (if any node in the cluster is tainted), see Monitor the Tainted Nodes.
In OpenShift clusters, the master nodes are tainted. Therefore, you must configure tolerations on the pods.To configure proxy settings, see Configure Proxy Settings for the AppDynamics Distribution for OpenTelemetry Collector.
To monitor Windows nodes and containers see AppDynamics Collectors Settings.
You must specify the
global.clusterId
parameter if the Helm lookup function is not supported, such as when using Argo CD™,helm template
, andhelm install --dry-run
. See Configure AppDynamics Cloud Kubernetes Collectors.helm install appdynamics-collectors appdynamics-cloud-helmcharts/appdynamics-collectors -n appdynamics -f collectors-values.yaml
BASHYou can set additional configuration by passing the yaml through the
-f
flag to the Helm chart. See AppDynamics Cloud Operator Settings.
- Validate the installation:
Check K8s pods in
appdynamics
namespace using the following command:kubectl get all -n appdynamics
BASHThis 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:
- AppDynamics Collectors Settings
- AppDynamics Distribution for OpenTelemetry™ Collector Settings
- AppDynamics Cloud Operator Settings
- APM Auto-Instrumentation Settings
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®.