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
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
Development version
Note: In order to install versions not yet released, the url of the chart needs to be changed to
In addition, since unreleased versions are private, you need to login to the repository before launching the install command:
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
- Deploy the App to your NuvlaEdge as provided in the NuvlaEdge User Guide
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
Once deployed, you can check on the NuvlaEdge node that some docker containers have got started: