https://github.com/isitobservable/inspektorgadget
A repository containing the files utilized in the Inspektor Gadget tutorial.
https://github.com/isitobservable/inspektorgadget
ebpf inspektor-gadget kubernetes
Last synced: 4 months ago
JSON representation
A repository containing the files utilized in the Inspektor Gadget tutorial.
- Host: GitHub
- URL: https://github.com/isitobservable/inspektorgadget
- Owner: isItObservable
- Created: 2025-04-29T10:06:56.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-05-21T08:29:26.000Z (about 1 year ago)
- Last Synced: 2025-06-16T08:48:28.380Z (about 1 year ago)
- Topics: ebpf, inspektor-gadget, kubernetes
- Language: Shell
- Homepage: https://isitobservable.io
- Size: 593 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tutorial: Monitor Kubernetes clusters with eBPF and Inspektor Gadget
This repository is here to guide you through the GitHub tutorial that goes hand-in-hand with a video available on YouTube and a detailed blog post on my website.
Together, these resources are designed to give you a complete understanding of the topic.
Here are the links to the related assets:
- YouTube Video: [eBPF Made Easy with Inspektor Gadget (No C Coding Needed!)](https://youtu.be/vCXRxnjqL0M)
Feel free to explore the materials, star the repository, and follow along at your own pace.

This tutorial will also utilize the OpenTelemetry Operator with:
* The OpenTelemetry Demo
* kubezonnet
* tetragon
* OpenTelemetry profile
All the observability data generated by the environment would be sent to Dynatrace.
## Prerequisite
The following tools need to be installed on your machine :
- jq
- kubectl
- git
- gcloud ( if you are using GKE)
- Helm
### GKE 1. Create a Google Cloud Platform Project
```shell
PROJECT_ID=""
gcloud services enable container.googleapis.com --project ${PROJECT_ID}
gcloud services enable monitoring.googleapis.com \
cloudtrace.googleapis.com \
clouddebugger.googleapis.com \
cloudprofiler.googleapis.com \
--project ${PROJECT_ID}
```
### GKE 2. Create a GKE cluster
```shell
ZONE=europe-west3-a
NAME=isitobservable-inspektorgadget
gcloud container clusters create ${NAME} --zone=${ZONE} --machine-type=e2-standard-4 --num-nodes=2
```
## Getting started
### Dynatrace Tenant
#### 1. Dynatrace Tenant - start a trial
If you don't have any Dynatrace tenant, then I suggest creating a trial using the following link : [Dynatrace Trial](https://dt-url.net/observable-trial)
Once you have your Tenant, save the Dynatrace tenant URL in the variable `DT_TENANT_URL` (for example: https://dedededfrf.live.dynatrace.com)
```
DT_TENANT_URL=
```
##### 2. Create the Dynatrace API Tokens
The Dynatrace operator will require several tokens:
* Token to deploy and configure the various components
* Token to ingest metrics and Traces
###### Operator Token
One for the operator having the following scope:
* Create ActiveGate tokens
* Read entities
* Read Settings
* Write Settings
* Access problem and event feed, metrics and topology
* Read configuration
* Write configuration
* Paas integration - installer downloader

Save the value of the token. We will use it later to store in a Kubernetes secret
```shell
API_TOKEN=
```
###### Ingest data token
Create a Dynatrace token with the following scope:
* Ingest metrics (metrics.ingest)
* Ingest logs (logs.ingest)
* Ingest events (events.ingest)
* Ingest OpenTelemetry
* Read metrics

Save the value of the token. We will use it later to store in a Kubernetes secret
```shell
DATA_INGEST_TOKEN=
```
### 4. Clone the GitHub repo
```shell
git clone https://github.com/isItObservable/inspektorgadget
cd inspektorgadget
```
### 5. Deploy most of the components
The application will deploy the entire environment:
```shell
chmod 777 deployment.sh
./deployment.sh --clustername "${NAME}" --dturl "${DT_TENANT_URL}" --dtingesttoken "${DATA_INGEST_TOKEN}" --dtoperatortoken "${API_TOKEN}"
```