Browse Source

add parameter sections; split deployment into standalone and ocp

Grega Bremec 2 years ago
parent
commit
76c07eb074
1 changed files with 92 additions and 7 deletions
  1. 92 7
      README.adoc

+ 92 - 7
README.adoc

@@ -14,13 +14,54 @@ container, `metrics-exporter`, consumes the data and exposes it on the
 `/metrics` endpoint where Prometheus can pick them up.
 `/metrics` endpoint where Prometheus can pick them up.
 
 
 The specific thing about how the entire composition works is that care has been
 The specific thing about how the entire composition works is that care has been
-taken, especially with `psacct`, that accounting files are regularly moved out
-of the way in order to keep the disk space utilisation as low as possible.
+taken, especially with `psacct` (which can grow excessively during periods of
+high activity), that accounting files are regularly truncated or moved out of
+the way in order to keep the disk space utilisation as low as possible.
 
 
-== Deployment ==
+== OpenShift Deployment ==
 
 
 TBD
 TBD
 
 
+== Standalone ==
+
+Start the composition.
+
+// TODO: podman pod
+
+[subs+=quotes]
+------
+$ *podman volume create metrics*
+metrics
+
+$ *podman run -d --rm -v metrics:/var/account --cap-add SYS_PACCT --pid=host collector-psacct:latest*
+dd9f4825d23614df2acefdcd70ec1e6c3ea18a58b86c9d17ddc4f91038487919
+
+$ *podman run -d --rm -v metrics:/var/log/sa collector-sysstat*
+ec3d0957525cc907023956a185b15123c20947460a48d37196d511ae42de2e27
+
+$ *podman run --name exporter -d --rm -v metrics:/metrics -p 8080:8080 metrics-exporter*
+d4840ad57bfffd4b069e7c2357721ff7aaa6b6ee77f90ad4866a76a1ceb6adb7
+
+------
+
+Add prometheus and grafana.
+
+[subs+=quotes]
+------
+$ *podman run --name prometheus \*
+		*-d --rm \*
+		*-v ./test/prometheus.yml:/etc/prometheus/prometheus.yml*
+		*-v prometheus:/prometheus \*
+		*-p 9090:9090 \*
+		*registry.redhat.io/openshift4/ose-prometheus:v4.11*
+6eae04677fcded65bbe1cb7f66aa887d94587977a0616f7ec838f9453702474c
+
+$ *podman run --name grafana -d --rm -p 3000:3000 \*
+		*-v ./test/grafana.ini:/etc/grafana/grafana.ini \*
+		*registry.redhat.io/openshift4/ose-grafana:v4.11*
+78d5bfa7977923b828c1818bb877fa87bdd96086cc8c875fbc46073489f6760e
+------
+
 == Images ==
 == Images ==
 
 
 This set of images requires a valid entitlement for RHEL (and consequently
 This set of images requires a valid entitlement for RHEL (and consequently
@@ -41,6 +82,18 @@ It *requires* to be executed under `root` UID (can be rootless, but that may aff
 
 
 It also *requires* access to host's network namespace if you want to measure global network statistics.
 It also *requires* access to host's network namespace if you want to measure global network statistics.
 
 
+// NOTE: When running in a pod, the below is irrelevant as the exporter sets
+//	    the hostname, and you can override it there. It does however obtain
+//	    the default hostname from data sources.
+//
+// If aggregating from several hosts, you also need to use the hosts' UTS
+// namespace to report correct hostnames, or set the corresponding environment
+// variables to override detection.
+
+==== Parameters ====
+
+TBD
+
 === PSACCT ===
 === PSACCT ===
 
 
 The _process accounting_ image is based on `ubi-minimal` and includes just the `psacct` package.
 The _process accounting_ image is based on `ubi-minimal` and includes just the `psacct` package.
@@ -51,25 +104,57 @@ Entrypoint takes care of rotating any old `pacct` files out of the way.
 
 
 In addition to *requiring* execution under a *real* `root` UID (i.e. *NOT* a rootless container), it also *requires* the `CAP_SYS_PACCT` capability (`--cap-add=SYS_PACCT`) and access to host's PID namespace (`--pid=host`).
 In addition to *requiring* execution under a *real* `root` UID (i.e. *NOT* a rootless container), it also *requires* the `CAP_SYS_PACCT` capability (`--cap-add=SYS_PACCT`) and access to host's PID namespace (`--pid=host`).
 
 
+// NOTE: When running in a pod, the below is irrelevant as the exporter sets
+//	    the hostname, and you can override it there. It does however obtain
+//	    the default hostname from data sources.
+//
+// If aggregating from several hosts, you also need to use the hosts' UTS
+// namespace to report correct hostnames, or set the corresponding environment
+// variables to override detection.
+
+==== Parameters ====
+
+TBD
+
 === Exporter ===
 === Exporter ===
 
 
 TBD
 TBD
 
 
+// TODO: Add support for hostname overrides in app.
+
+// run a maven registry.access.redhat.com/ubi9/openjdk-17 container:
+//
+// podman volume create maven
+//
+// podman run -it \
+//		    --name exporter \
+//		    -v maven:/home/default/.m2/repository \
+//		    -v metrics:/metrics \
+//		    -v /Users/johndoe/Documents/workspaces/projects/p0f/linux-metrics-exporter/exporter:/exporter \
+//		    -p 8080:8080 \
+//	    registry.access.redhat.com/ubi9/openjdk-17 bash
+//
+// $ cd /exporter
+// $ mvn quarkus:dev
+
+==== Parameters ====
+
+TBD
+
 === Building with Podman ===
 === Building with Podman ===
 
 
 If building the images using `podman` on an entitled host, no extra steps need
 If building the images using `podman` on an entitled host, no extra steps need
 to be performed as host entitlements will automatically be imported into the
 to be performed as host entitlements will automatically be imported into the
 build container.
 build container.
 
 
-******
 NOTE: When building for an architecture without the `ubi-minimal` image or on a
 NOTE: When building for an architecture without the `ubi-minimal` image or on a
-      host that can not be entitled (f.e. Fedora CoreOS), you can choose a
-      different base image by using the `--from` option in `podman build`:
+host that can not be entitled (f.e. Fedora CoreOS), you can choose a different
+base image by using the `--from` option in `podman build`:
++
 [subs=+quotes]
 [subs=+quotes]
 -------------------------------
 -------------------------------
 $ *podman build --from=registry.fedoraproject.org/fedora-minimal:36 -f ./images/Containerfile-sysstat -t collector-sysstat:latest*
 $ *podman build --from=registry.fedoraproject.org/fedora-minimal:36 -f ./images/Containerfile-sysstat -t collector-sysstat:latest*
 -------------------------------
 -------------------------------
-******
 
 
 === Building in OpenShift ===
 === Building in OpenShift ===