mirror of
https://github.com/logos-blockchain/logos-blockchain-testing.git
synced 2026-04-12 06:03:09 +00:00
56 lines
1.8 KiB
Markdown
56 lines
1.8 KiB
Markdown
# Metrics Counter Example
|
|
|
|
This example runs a tiny counter service together with a Prometheus scraper.
|
|
|
|
The scenarios increment counters through the node API and then query Prometheus
|
|
to check the aggregate result.
|
|
|
|
## How TF runs this
|
|
|
|
Each example follows the same pattern:
|
|
|
|
- TF starts the counter nodes and a Prometheus scraper
|
|
- a workload drives counter increments through the node API
|
|
- an expectation, or the manual scenario, checks the Prometheus query result
|
|
|
|
## API
|
|
|
|
Each node exposes:
|
|
|
|
- `POST /counter/inc` to increment the local counter
|
|
- `GET /counter/value` to read the current counter value
|
|
- `GET /metrics` for Prometheus scraping
|
|
|
|
## Scenarios
|
|
|
|
- `compose_prometheus_expectation` runs the app and Prometheus in Docker Compose, then checks the Prometheus query result
|
|
- `k8s_prometheus_expectation` runs the same check on Kubernetes
|
|
- `k8s_manual_prometheus` starts the nodes through the k8s manual cluster API, restarts one node, and checks the Prometheus aggregate again
|
|
|
|
## Run with Docker Compose
|
|
|
|
```bash
|
|
LOGOS_BLOCKCHAIN_METRICS_QUERY_URL=http://127.0.0.1:19091 \
|
|
cargo run -p metrics-counter-examples --bin compose_prometheus_expectation
|
|
```
|
|
|
|
## Run with Kubernetes
|
|
|
|
```bash
|
|
docker build -t metrics-counter-node:local -f examples/metrics_counter/Dockerfile .
|
|
LOGOS_BLOCKCHAIN_METRICS_QUERY_URL=http://127.0.0.1:30991 \
|
|
cargo run -p metrics-counter-examples --bin k8s_prometheus_expectation
|
|
```
|
|
|
|
Overrides:
|
|
- `METRICS_COUNTER_K8S_IMAGE` (falls back to `METRICS_COUNTER_IMAGE`, then `metrics-counter-node:local`)
|
|
- `METRICS_COUNTER_K8S_PROMETHEUS_NODE_PORT` (defaults to `30991`)
|
|
|
|
## Run with Kubernetes manual cluster
|
|
|
|
```bash
|
|
docker build -t metrics-counter-node:local -f examples/metrics_counter/Dockerfile .
|
|
LOGOS_BLOCKCHAIN_METRICS_QUERY_URL=http://127.0.0.1:30991 \
|
|
cargo run -p metrics-counter-examples --bin k8s_manual_prometheus
|
|
```
|