Skip to main content

APO OneAgent

APO is divided into two parts:

  • APO-server: The server-side component of APO.
  • APO-one-agent: The client-side component of APO, used to collect information about monitored services, clusters, and hosts in Kubernetes clusters or virtual machine environments.

This document contains instructions for installing and running APO-one-agent on Kubernetes using Helm Chart. Please ensure that you have installed APO-Server before installing APO-one-agent.

Note: It is not recommended to install APO-server and APO-one-agent in the same Kubernetes cluster using the method described in this document, as it may lead to unnecessary resource waste. If you wish to deploy APO-server and APO-one-agent in the same Kubernetes cluster, please refer to the Quick Start documentation.

APO-one-agent comes with default probe versions for various programming languages:

  1. Java agent: opentelemetry-java-instrumentation v2.8.0
  2. Python agent: opentelemetry-python 1.27.0/0.48b0
  3. NodeJs agent: opentelemetry-js v1.24.1/0.51.1
  4. Go agent: Grafana Beyla v1.8.4

Note: For Java applications, APO defaults to using Opentelemetry v2.8.0 to collect trace data. If you wish to leverage OneAgent's auto-injection capability to automatically inject custom Trace probes (e.g., Skywalking or other versions of Opentelemetry) into your services, please refer to Advanced: Replace OneAgent Otel Probe with Custom Tracing Probe to build a custom probe image and configure it.

Prerequisites

To install APO using Helm, ensure that the following steps have been completed:

  • Install a Kubernetes server on your computer. For information on installing Kubernetes, refer to Installing Kubernetes.
  • Install the latest stable version of Helm. For information on installing Helm, refer to Installing Helm.
  • Network Policy: Ensure that the cluster/machine where APO-one-agent is located can access ports 30044, 31363, 30317, and 30319 of the APO-server cluster.

Setting Up the APO Helm Repository

To set up the APO Helm repository so that you can download the correct APO Helm charts on your computer, follow these steps: Use the following command to add the apo Helm repository:

helm repo add apo https://clouddetail.github.io/apo-helm-charts
helm repo update apo

Configuring the APO-one-agent Component

Create a file named apo-one-agent-values.yaml, define it according to your requirements, and mount the configuration during the deployment phase.

# apoServerIP is the ClusterIP where APO-server is located
global:
apoServerIP: x.x.x.x # FIXME

# APO-one-agent enabled flag, default is false
odigos:
instrumentor:
# targetNamespace
# name: target namespace
# value:
# enabled: inject all existing services, but do not inject subsequent new applications
# enabledFuture: inject all current and future services
# disabled: do not inject services in the specified namespace, used to ignore specific namespaces when instrument-all-namespace is enabled
targetNamespace:
- name: default
value: enabledFuture
- name: default2
value: enabled
- name: default3
value: disabled
# instrument-all-namespace whether to inject all namespaces
# equivalent to setting enabledFuture for all namespaces
# but if ns or workload is already set to disabled, it will not be injected
instrumentAllNamespace: false
# force-instrument-all-namespace whether to forcibly inject all namespaces
# similar to instrument-all-namespace, all ns are set to enabledFuture
# and all disabled settings are ignored
forceInstrumentAllNamespace: false

# Grafana-Beyla startup flag, default is false
# Beyla runs as a Go language Trace probe in OneAgent, default is off, requires system kernel 5.8 or higher
# For running conditions, refer to the official Grafana-Beyla documentation: https://grafana.com/docs/beyla/latest/
# grafanaBeyla:
# enabled: true

Here is the basic configuration provided for APO deployment. If you need to make more configuration changes, please download the values.yaml file from the APO Helm Charts repository:

helm show values apo/apo-one-agent > values.yaml

Deploy APO-one-agent

Run the following command to deploy APO in the specified namespace.

helm install apo-one-agent apo/apo-one-agent -n apo --create-namespace \
-f apo-one-agent-values.yaml
warning

After successful installation, the target monitored service must be restarted!!!

If you encounter issues:

Uninstall APO-one-agent

helm uninstall apo-one-agent -n apo
kubectl delete ns apo

Deploy APO-one-agent Community Edition

By default, APO installs the Enterprise Edition, which provides more data analysis capabilities compared to the Community Edition. For differences, please refer to Version Differences.

Announcement

The Enterprise Edition features of APO are currently in free public beta🔥!!!

If needed, you can also use the Community Edition by adding the following parameter to the installation command:

--set global.edition=ce