{"id":28299881,"url":"https://github.com/isitobservable/inspektorgadget","last_synced_at":"2026-03-04T15:31:50.017Z","repository":{"id":292321286,"uuid":"974791501","full_name":"isItObservable/inspektorgadget","owner":"isItObservable","description":"A repository containing the files utilized in the Inspektor Gadget tutorial. ","archived":false,"fork":false,"pushed_at":"2025-05-21T08:29:26.000Z","size":607,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-16T08:48:28.380Z","etag":null,"topics":["ebpf","inspektor-gadget","kubernetes"],"latest_commit_sha":null,"homepage":"https://isitobservable.io","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isItObservable.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-29T10:06:56.000Z","updated_at":"2025-05-21T08:33:05.000Z","dependencies_parsed_at":"2025-06-16T08:51:23.267Z","dependency_job_id":null,"html_url":"https://github.com/isItObservable/inspektorgadget","commit_stats":null,"previous_names":["isitobservable/inspektorgadget"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/isItObservable/inspektorgadget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isItObservable%2Finspektorgadget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isItObservable%2Finspektorgadget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isItObservable%2Finspektorgadget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isItObservable%2Finspektorgadget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isItObservable","download_url":"https://codeload.github.com/isItObservable/inspektorgadget/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isItObservable%2Finspektorgadget/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265531223,"owners_count":23783193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ebpf","inspektor-gadget","kubernetes"],"created_at":"2025-05-23T11:21:23.446Z","updated_at":"2026-03-04T15:31:49.971Z","avatar_url":"https://github.com/isItObservable.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tutorial: Monitor Kubernetes clusters with eBPF and Inspektor Gadget\nThis 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. \nTogether, these resources are designed to give you a complete understanding of the topic.\n\n\nHere are the links to the related assets:\n- YouTube Video: [eBPF Made Easy with Inspektor Gadget (No C Coding Needed!)](https://youtu.be/vCXRxnjqL0M)\n\nFeel free to explore the materials, star the repository, and follow along at your own pace.\n\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"/image/inspektor.png\" width=\"40%\" alt=\"Logs IG\" /\u003e\u003c/p\u003e\n\nThis tutorial will also utilize the OpenTelemetry Operator with:\n* The OpenTelemetry Demo\n* kubezonnet\n* tetragon\n* OpenTelemetry profile\nAll the observability data generated by the environment would be sent to Dynatrace.\n\n## Prerequisite\nThe following tools need to be installed on your machine :\n- jq\n- kubectl\n- git\n- gcloud ( if you are using GKE)\n- Helm\n\n\n### GKE 1. Create a Google Cloud Platform Project\n```shell\nPROJECT_ID=\"\u003cyour-project-id\u003e\"\ngcloud services enable container.googleapis.com --project ${PROJECT_ID}\ngcloud services enable monitoring.googleapis.com \\\ncloudtrace.googleapis.com \\\nclouddebugger.googleapis.com \\\ncloudprofiler.googleapis.com \\\n--project ${PROJECT_ID}\n```\n### GKE 2. Create a GKE cluster\n```shell\nZONE=europe-west3-a\nNAME=isitobservable-inspektorgadget\ngcloud container clusters create ${NAME} --zone=${ZONE} --machine-type=e2-standard-4 --num-nodes=2\n```\n\n## Getting started\n\n\n### Dynatrace Tenant\n#### 1. Dynatrace Tenant - start a trial  \nIf 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)\nOnce you have your Tenant, save the Dynatrace tenant URL in the variable `DT_TENANT_URL` (for example: https://dedededfrf.live.dynatrace.com)\n```\nDT_TENANT_URL=\u003cYOUR TENANT Host\u003e\n```\n\n##### 2. Create the Dynatrace API Tokens\nThe Dynatrace operator will require several tokens:\n* Token to deploy and configure the various components\n* Token to ingest metrics and Traces\n\n\n###### Operator Token\nOne for the operator having the following scope:\n* Create ActiveGate tokens\n* Read entities\n* Read Settings\n* Write Settings\n* Access problem and event feed, metrics and topology\n* Read configuration\n* Write configuration\n* Paas integration - installer downloader\n\u003cp align=\"center\"\u003e\u003cimg src=\"/image/operator_token.png\" width=\"40%\" alt=\"operator token\" /\u003e\u003c/p\u003e\n\nSave the value of the token. We will use it later to store in a Kubernetes secret\n```shell\nAPI_TOKEN=\u003cYOUR TOKEN VALUE\u003e\n```\n###### Ingest data token\nCreate a Dynatrace token with the following scope:\n* Ingest metrics (metrics.ingest)\n* Ingest logs (logs.ingest)\n* Ingest events (events.ingest)\n* Ingest OpenTelemetry\n* Read metrics\n\u003cp align=\"center\"\u003e\u003cimg src=\"/image/data_ingest_token.png\" width=\"40%\" alt=\"data token\" /\u003e\u003c/p\u003e\nSave the value of the token. We will use it later to store in a Kubernetes secret\n\n```shell\nDATA_INGEST_TOKEN=\u003cYOUR TOKEN VALUE\u003e\n```\n\n### 4. Clone the GitHub repo\n```shell\ngit clone https://github.com/isItObservable/inspektorgadget\ncd inspektorgadget\n```\n\n### 5. Deploy most of the components \nThe application will deploy the entire environment:\n```shell\nchmod 777 deployment.sh\n./deployment.sh  --clustername \"${NAME}\" --dturl \"${DT_TENANT_URL}\" --dtingesttoken \"${DATA_INGEST_TOKEN}\" --dtoperatortoken \"${API_TOKEN}\" \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisitobservable%2Finspektorgadget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisitobservable%2Finspektorgadget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisitobservable%2Finspektorgadget/lists"}