File: README.md

package info (click to toggle)
systemtap 5.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 47,556 kB
  • sloc: cpp: 81,117; ansic: 54,933; xml: 49,795; exp: 43,595; sh: 11,526; python: 5,003; perl: 2,252; tcl: 1,312; makefile: 1,006; javascript: 149; lisp: 105; awk: 101; asm: 91; java: 70; sed: 16
file content (74 lines) | stat: -rw-r--r-- 4,120 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# ISystemtap
Welcome to ISystemtap, to get started check the [usage](#usage) below and tryout the ISystemtap.ipynb

## Usage
### Local usage
Once ISystemtap is installed just run `jupyter-lab [notebook_name.ipynb]` and then select a new or existing ISystemtap notebook. For installation see [below](#local-installation)

### Container usage
No local installation of ISystemtap is needed. Once systemtap is installed the following can be run.
It is suggested to pull the pre-built image from `quay.io`, but it can optionally be locally built as well
```bash
stap-jupyter-container [--repo REPOSITORY] [--image IMAGE] [--tag TAG] [--keyname KEYNAME] --{run, pull, build, publish, remove}
```
* --keyname: The name of the key to use for ssh'ing from the container to the host to run the stap commands. There should exist both "keyname" and "keyname.pub" files
* --run: Runs the image (if not pulled / built locally pull it from `quay.io`)
* --pull: Pull the built image (Published to `quay.io/systemtap/isystemtap`)
* --build: Do a local container build
* --publish [For maintainers only]: Publish the image to the public repo
* --remove: Remove the local copy of the image

#### TL;DR
To get started just run `stap-jupyter-container --run`

#### Running as a superuser
Running the container as a superuser means that stap scripts will be run as root. Therefore there are 2 prerequisites
* Make sure to add `PermitRootLogin without-password` to `/etc/ssh/sshd_config`. Note this does not mean there is no authentication it means that logging in is only possible using a fallback method (in this case a public key authentication).
* Make sure that systemtap is installed by root

## Local Installation
Run `stap-jupyter-install`. This will install the ISystemtap kernel, syntax highlighting and language-server dependencies in `~/.systemtap/jupyter` (and the jupyter config directories). To uninstall add the `--remove` flag.

## Development Directory Structure
```
interactive-notebook
├── codemirror                      // Jupyterlab extension for syntax highlighting
│   ├── jupyterlab-stap-highlighting
│   │   └── ...
│   ├── lib
│   │   └── ...
│   └── package.json
├── container                       // Container which wraps up the pythonic install elements
│   ├── Dockerfile
│   └── runtime_container_config.sh
├── setup.py                        // setup for module. Included in stap-jupyter-install
├── isystemtap                      // the jupyter kernel source and config file
│   ├── *.py
│   └── kernel.json
├── tests                           // Some automated and manual tests (Note: to test the dir must be writable)
│   └── ...
├── ISystemtap.ipynb                // An introductory notebook example                        
├── stap-jupyter-install.in         // Used to generate the local install script
├── stap-jupyter-container.in       // Used to generated container management script
├── jupyter_stap_lsp.json           // The language server config file
└── requirements.txt                // Python reqs
```

## FAQ
1. What if something goes wrong, and a systemtap kernel module is left running after ISystemtap shuts down
    * All you need to do is kill the process and run `sudo staprun -d MODULE_NAME` (this can be checked in `/proc/systemtap`)
2. How do I build from source?
    * The same as normal. `make; make install` followed by one of the above `stap-jupyter-*` commands
3. What does  Error: OCI runtime error: crun: error creating systemd unit `libpod-*.scope: got failed` mean
    * Some file systems have issues with `podman`, try running as a superuser
4. **I'm a maintainer who wants to publish the latest image**; how do I do this?
    * After building and installing systemtap run `stap-jupyter-container --build && stap-jupyter-container --publish`
    * After the build you will be prompted for a `quay.io` login. This will be followed by the image being published to `quay.io/systemtap/isystemtap`