Setup odigos in Ubuntu
Tags: devops, opensource, beginners, ubuntu
Published: 2024-04-10 14:17:44

## Introduction
Welcome 👋 to this blog. Did you want to use [odigos](https://odigos.io/) on your Ubuntu machine but don't know how to start? Then this blog will definitely help you and it also helps you to understand the basic aspect of the odigos project.

> Let's go.

## Prerequisites
These are the prerequisites you need to install in your system to go forward in the process. 
- [Docker](https://docs.docker.com/engine/install/ubuntu/)
- [minikube](https://minikube.sigs.k8s.io/docs/start/)

If you are missing some dependencies, then you can simply click on the link of dependency above and you will be redirected to the installation page of the **Ubuntu**. When all the prerequisites are installed correctly then you can proceed to the next step. 

### Step 1
Start minikube. To start the minikube follow this command `minikube start`

```js
user:~$ minikube start
😄  minikube v1.31.2 on Ubuntu 22.04
✨  Using the qemu2 driver based on existing profile
👍  Starting control plane node minikube in cluster minikube
🏃  Updating the running qemu2 "minikube" VM ...

```

Then after successfully starting the minikube:

Deploy the application by running the following commands
```js
user:~$ kubectl apply -f https://raw.githubusercontent.com/keyval-dev/simple-demo/main/kubernetes/deployment.yaml
```

### Step 2
The next, step is to deploy the `Jaeger`, to deploy run these commands
```js
user:~$ kubectl apply -f https://raw.githubusercontent.com/keyval-dev/simple-demo/main/kubernetes/jaeger.yaml
```

Wait for some minutes or drink a cup of coffee until the application starts:

To check run these commands:
```js
user:~$ kubectl get pods -n tracing
NAME                     READY   STATUS    RESTARTS      AGE
jaeger-b647d56b5-4j9l4   1/1     Running   6 (12m ago)   15d
```

```js
user:~$ kubectl get pods -n default
```

If everything is running then you are ready to go. Else you can drink coffee one more time.

### Step 3
You can go to the [release page](https://github.com/keyval-dev/odigos/releases) then you can download the latest **cli_1.0.53_linux_amd64.tar.gz** (at the current time we have version 1.0.53).
 
- Open the terminal (Ctrl + Alt + T)
- Navigate to the directory where the `.tar.gz` files are present.
- Then run this command to unpack the files
  ```js
     user:~/Downloads$ tar -xvzf cli_1.0.49_linux_amd64.tar.gz 
odigos
  ```
- After successfully unpack you can run the Odigos cli from the same directory.
  ```js
     user/Downloads$ ./odigos version 
Odigos Cli Version: version.Info{Version:'v1.0.49', GitCommit:'f517283', BuildDate:'2024-03-20T12:22:27Z'}
  ```

You will get the output like the above.

Then you need to install the Odigos and access the Odigos UI.
```js
user/Downloads$ ./odigos install
```

```js
user/Downloads$ ./odigos ui
```

After installation, you will see output something like this
```js
Downloading version 1.0.53 of Odigos UI ...
2024/04/10 19:07:10 Starting Odigos UI...
2024/04/10 19:07:10 Odigos UI is available at: http://localhost:3000
```

Now you can access the Odigos UI in [http://localhost:3000](http://localhost:3000).

### Step 4
After this, you need to do some configuration. It's effortless and straightforward
- Choose Source
  - In this step, you need to select all the applications.
- Choose Destination
  - You can add **Jaeger** as the destination.
- Create Connection
  - You need to choose the destination name as *any name* and the host as *jaeger.tracing:4317*

### Step 5
Generating the data. Time to generate the data. But make sure that the collectors and application are ready. To make sure these commands

```js
user/Downloads$ kubectl get pods -n default
user/Downloads$ kubectl get pods -n odigos-system
```

To access the fronted application we have to do *port-forwarding* by running these commands:
```js
user/Downloads$ kubectl port-forward svc/frontend 8080:8080
```

And TADA you can access the fronted at [kubectl port-forward svc/frontend 8080:8080
](http://localhost:8080)
The only thing that is remaining is to click on the **Buy** button for some items.

### Step 6 (Last Step)
View the trace. To view the trace we have to do *port forwarding* again to do so run this command 
```js
user/Downloads$ kubectl port-forward -n tracing svc/jaeger 16686:16686
```

Go to [http://localhost:16686/](http://localhost:16686/) and see the magic yourself.

## 🎉 You nailed it
You have set up Odigos in your Ubuntu system. 

## References
https://odigos.io/
https://docs.odigos.io/overview

Hire me: ankursingh91002@gmail.com 
            [LinkedIn](https://www.linkedin.com/in/ankur-singh-161458227/)
            [Twitter](https://twitter.com/ankur_136)