Skip to content

Telemetry Agent Installation

TODO: rename to telemetry leaf

The ICOS Telemetry Agent is the ICOS module that is responsible for collecting the status and the performance of resources (hardware, system, containers, processes) at the host level (device, board, Virtual Machine). This component is mandatory and must be installed in all the hosts that are part of the ICOS Agent (e.g., all the K8s clusters in OCM all the devices registered in Nuvla).

The Telemetry Agent needs to connect to the Telemetry Controller module (deployed in the ICOS Controller) to send the data collected using either HTTP or gRPC protocols. For this reason, outgoing connectivity should be ensured from the Telemetry Agent to the Telemetry Controller.

Depending on the technology used, two installation methods are available (see below):

  • if OCM is used as orchestrator, then the Telemetry Agent installation should be done in all the Kubernetes clusters that are part of OCM;
  • if Nuvla is used as orchestrator, then the Telemetry Agent installation should be done in each edge device.

OCM-Kubernetes Installation

The installation of the Telemetry Agent in a Kubernetes (or compatible) cluster is done using an Helm chart.

As a prerequisite, Helm must be installed to use the chart (follow the instructions in the Helm's documentation to get started).

Step 1 - Configure and Install

Run the Helm installation command (making sure that the correct kubernetes config file is taken):

helm upgrade --install --namespace icos-system tlum-leaf oci://harbor.res.eng.it/icos/helm/telemetruum-leaf --set telemetruumGatewayEndpoint=10.160.3.236:32103
Note

Note 1: this command uses the default Kubernetes kubeconf file (the same used by kubectl). To change it, either define a new location with the KUBECONFIG environment variable (e.g., export KUBECONFIG=/my/location) or use the

    helm kubeconfig /my/location 
flag.

Note 2: use endpoint 10.160.3.236:32103 for nodes that will join the UC Controller, while use endpoint 10.160.3.20:32103 for nodes that will join the staging testbed.

Step 2 - Verify

If the installation is successful, multiple pods are created (the number depends on the number of nodes in the cluster and the configuration options). At least a prometheus-node-exporter, an otel-node-agent, and one otel-target-allocator pod should be up and running.

kubectl get pods -n icos-system

NAME                                                              READY   STATUS    RESTARTS   AGE
generic-device-plugin-glpfq                                       1/1     Running   0          22m
nfd-prom-exporter-85f66bb788-kc5d5                                1/1     Running   0          22m
tlum-leaf-prometheus-node-exporter-std26                          1/1     Running   0          22m
tlum-leaf-telemetruum-leaf-otel-target-allocator-67d7d59fbthgvz   1/1     Running   0          22m
nfd-master-65c55894f7-ffkrx                                       1/1     Running   0          22m
nfd-worker-89gtd                                                  1/1     Running   0          22m
tlum-leaf-kube-state-metrics-6cb98ddd74-fjkw4                     1/1     Running   0          22m
tlum-leaf-telemetruum-leaf-telemetruum-leaf-exporter-6wlsq        1/1     Running   0          22m
tlum-leaf-telemetruum-leaf-otel-node-agent-k7q4h                  1/1     Running   0          22m
If data is sent correctly to the ICOS Controller, the new host should be visible in the Grafana dashboards. Errors related to the transmission of data can be troubleshooted by looking at the logs of the otel-node-agent pod.

Development version

Note: In order to install versions not yet released, the url of the chart needs to be changed to

oci://harbor.res.eng.it/icos-private/helm/telemetruum-leaf

In addition, since unreleased versions are private, you need to login to the repository before launching the install command:

helm registry login harbor.res.eng.it/icos-private/helm and provide your credentials.

Nuvla-Docker Installation

In the case that the Docker version of NuvlaEdge is being used, the ICOS Telemetry Agent is Available as a Nuvla App. The general procedure to deploy and run an App on a NuvlaEdge can be found at: https://docs.nuvla.io/nuvla/user-guide/run-app/.

The telemetry agent can be installed directly from the Nuvla UI. Assuming that the Docker NuvlaEdge is installed (see Section YYY):

  • Login to nuvla.io
  • Switch to the ICOS group
  • Select Apps
  • Select the ICOS telemetry-agent docker App

NuvlaEdge

When making the deployment, some environment variables need to be filled in:

  • ICOS_AGENT_ID
  • ICOS_TELEMETRY_CONTROLLER_ENDPOINT <the IP:PORT of the ICOS telemetry controller
  • ICOS_TELEMETRY_AGENG_CONFIG

NuvlaEdgeTeleMeteryAgentDocker

Once deployed, you can check on the NuvlaEdge node that some docker containers have got started:

NuvlaEdgeStarted