- Create the namespace
kubectl create ns monitoring
- Deploy influxdb
kubectl apply -f influxdb.yml
1. Calculate the offset | |
offset(fn) = virtual_address(fn) - virtual_address(.text) + offset(.text) | |
2. Virtual address: | |
readelf -S /home/fntlnz/go/bin/influx | grep -i text | |
[ 1] .text PROGBITS 0000000000401000 00001000 | |
So, virtual address= 0x0000000000401000 |
[[constraint]] | |
name = "k8s.io/api" | |
version = "kubernetes-1.11.0" | |
[[constraint]] | |
name = "k8s.io/apimachinery" | |
version = "kubernetes-1.11.0" | |
[[constraint]] | |
name = "k8s.io/client-go" |
#include <linux/bpf.h> | |
#include <linux/in.h> | |
#include <linux/if_ether.h> | |
#include <linux/ip.h> | |
#define SEC(NAME) __attribute__((section(NAME), used)) | |
SEC("dropper_main") | |
int dropper(struct xdp_md *ctx) { | |
int ipsize = 0; |
Flux is a lightweight scripting language for querying databases (like InfluxDB) and working with data. It's part of InfluxDB 1.7 and 2.0, but can be run independently of those.
This gist contains a main.go
file that shows how flux can be used as a library in your programs.
The main components you need are:
Important: This article was written by Github Copilot, while it's not entirely accurate, it's quite good to see what it ended up with.
The bpf verifier is a tool that can be used to check the correctness of eBPF programs. It is implemented in C and is used by the kernel. When the kernel is built with CONFIG_BPF_JIT, it does further optimization on the BPF programs.
To write a valid eBPF program you need to follow a few rules:
Compile with gcc | |
gcc -nostdlib main.c |