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, persistent volume claims, configurations, and containers.
This document contains references to the cert-manager documentation. Cisco 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 the Kubernetes and App Service Monitoring solution, ensure that you meet the following requirements:
- Your account is set up on Cisco Cloud Observability. See Account Administration.
Ensure that the tenant role is either Config Manager or Tenant Administrator. - 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 | Supported Platforms | Per cluster or node |
---|---|---|---|---|
Cisco AppDynamics Distribution of OpenTelemetry Collector* | 200m | 1024MiB |
| Per node (Kubernetes DaemonSet) |
Cisco AppDynamics Operator | 200m | 128MiB |
| Per cluster (Kubernetes Deployment) |
Cisco AppDynamics Smart Agent | 350m | 512MiB |
| Per cluster (Kubernetes Deployment) |
Cluster Collector | 1000m | 1000MiB |
| Per cluster (Kubernetes Deployment) |
Infrastructure Collector | 350m |
|
| Per node (Kubernetes DaemonSet) |
Log Collector | 10m | 150MiB |
| Per node (Kubernetes DaemonSet) |
Windows Exporter | 200m | 200MiB |
| Per node (Kubernetes DaemonSet) |
OpenTelemetry Operator for Kubernetes** | 600m | 256MiB |
| Per cluster (Kubernetes Deployment) |
*For throughput-specific details, see Performance and Scaling for the Cisco AppDynamics Distribution of OpenTelemetry Collector.
**OpenTelemetry Operator manager and Kube RBAC Proxy
Software Requirements
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 Cisco Cloud Observability.
Access to Dockerhub to pull the Cisco AppDynamics Operator and Collector images for the Kubernetes and App Service Monitoring:
Name | URL |
---|---|
Cisco AppDynamics Distribution of OpenTelemetry Collector |
|
Cisco AppDynamics Operator | appdynamics/appdynamics-cloud-operator:24.7.0-1475 |
Cisco AppDynamics Smart Agent | appdynamics/appdynamics-smartagent:24.4.0-1960 |
Cluster Collector |
|
Infrastructure Collector |
|
kube-rbac-proxy | gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0 |
Log Collector | appdynamics/appdynamics-cloud-log-collector-agent:24.4.0-1163 |
Windows Exporter | ghcr.io/prometheus-community/windows-exporter:0.23.1 |
OpenTelemetry Operator for Kubernetes | ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:v0.89.0 |
ghcr.io/open-telemetry/opentelemetry-operator/target-allocator:0.89.0 |
Cluster Support
Linux Cluster | Windows and Linux Cluster |
---|---|
|
|
Cisco 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, Cisco AppDynamics Helm charts and Collectors attach the k8s.cluster.id
attribute to data from Cisco 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 your environment meets the Log Collector Requirements.
Install Kubernetes and App Service Monitoring Using Helm Charts
Cisco Cloud Observability 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.
- From the Cisco Cloud Observability Tenant UI, navigate to Configure > Kubernetes and App Services. Enter your Credential set name and Kubernetes cluster name.
- Select the required collectors and operating systems under Enable Additional Configurations to generate the operator and collector values accordingly.
Click Generate configuration file.
You must download the generated file to get inline documentation for all the collector settings in the configuration file in the form of comments. So, you can uncomment the parameters that you require without having to search for those in the documentation. Theoperator-values.yaml
file gets generated along with thecollectors-values.yaml
file.The
operator-values.yaml
file looks similar to the following snippet:operator-values.yaml
global: clusterName: <cluster-name> appdynamics-smartagent: solution: endpoint: <endpoint> oauth: clientId: <client-ID> clientSecret: <client-secret> tokenUrl: <token-url> tenantId: <tenant-ID>
YMLInstalling the
appdynamics-collectors
Helm chart will add additional pods to your cluster. If you are using Prometheus® exporters such askube-state-metrics
andkube-eagle
, which generate metrics for any added pods, the additional metrics may overwhelm your Prometheus server. To avoid that, you can change your scrapping configuration to drop the metrics from theappdynamics
namespace. Add the followingmetric_relabel_configs
to each Prometheus scrape job:metric_relabel_configs: - source_labels: [namespace] separator: ; regex: (appdynamics) replacement: $1 action: drop
CODECreate the Cisco 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 Cisco 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.14.4/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 Cisco AppDynamics Operators using
operators-values.yaml
:If you have already installed your own OpenTelemetry Operator, you must disable the one bundled in Cisco AppDynamics Operators. See Disable the OpenTelemetry Operator.
helm install appdynamics-operators appdynamics-cloud-helmcharts/appdynamics-operators -n appdynamics -f operators-values.yaml --wait
BASH- To manually generate a certificate, see Provision a TLS Certificate for the OpenTelemetry Operator.
To configure proxy settings for the Cisco AppDynamics Smart Agent, see Configure Proxy Settings.
You can set additional configuration by passing the yaml through the
-f
flag to the Helm chart. See Cisco AppDynamics Operator Settings.
Install the Cisco AppDynamics Collectors using
collectors-values.yaml
.
Based on your requirement, you can choose to configure thecollectors-values.yaml
file, then use the following command to install the collectors.To configure mTLS between Cisco AppDynamics Collectors and OpenTelemetry Collectors, see Configure mTLS.
- To configure the Windows node when using GKE, see Deploy Windows Exporter pods on Google Kubernetes Engine.
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 for the Cisco AppDynamics Distribution of OpenTelemetry Collector, see Configure Proxy Settings.
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 Cisco AppDynamics Kubernetes Collectors.helm install appdynamics-collectors appdynamics-cloud-helmcharts/appdynamics-collectors -n appdynamics -f collectors-values.yaml
BASH
- 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:
ME 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 pod/appdynamics-operators-appdynamics-smartagent-7888448b58-vz4fm 1/1 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 deployment.apps/appdynamics-operators-appdynamics-smartagent 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 replicaset.apps/appdynamics-operators-appdynamics-smartagent-7888448b58 1 1 1 3m42s
CODE
Next Steps
Monitor Kubernetes Entities
Use the Cisco Cloud Observability UI to Monitor Your Kubernetes Entities.
Application Performance Monitoring
Choose the appropriate workflow from Application Performance Monitoring based on your environment.
Log Collection
Log Collection is inactive by default. Use the Log Ingestion instructions if you require them.
Event Monitoring
You can observe the event severity for the entities with the details on Cisco Cloud Observability UI. See Kubernetes Events Collection.
Advanced Install and Configuration
Refer to the following pages for advanced settings for Helm charts and APM auto-instrumentation:
- Cisco AppDynamics Collectors Settings
- Advanced Settings for the Cisco AppDynamics Distribution of OpenTelemetry Collector
- Cisco AppDynamics Operator Settings
- APM Auto-Instrumentation Settings
Upgrade or Uninstall Kubernetes Full-Stack Monitoring
OpenTelemetry™ and Kubernetes® (as applicable) are trademarks of The Linux Foundation®.