added databases and kafka examples

This commit is contained in:
Alexander Lukyanchikov 2019-06-22 19:56:34 -04:00 committed by GitHub
parent 4efff66179
commit c09165f12d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 100 additions and 2 deletions

102
README.md
View File

@ -44,7 +44,11 @@ Using Sampler is basically a 3-step process:
- [Interactive shell (database interaction, remote server access, etc)](#interactive-shell-support)
- [Variables](#variables)
- [Color theme](#color-theme)
- [Real-world examples (contributions welcome)](#real-world-examples)
- [Real-world recipes (contributions welcome!)](#real-world-recipes)
- [Databases (MySQL, PostgreSQL, MongoDB, Neo4j)](#databases)
- [Kafka](#kafka)
- [SSH](#ssh)
- [JMX](#jmx)
## Components
The following is a list of configuration examples for each component type, with macOS compatible sampling scripts.
@ -249,5 +253,99 @@ sparklines:
sample: ps -A -o %cpu | awk '{s+=$1} END {print s}'
```
## Real-world examples
## Real-world recipes
### Databases
The following are different databases connection examples. Interactive shell (init script) usage is recommended to establish connection only once and then reuse it during sampling.
<details><summary>MySQL</summary>
```yml
# prerequisite: installed mysql shell
variables:
mysql_connection: mysql -u root -s --database mysql --skip-column-names
sparklines:
- title: MySQL (random number example)
pty: true
init: $mysql_connection
sample: select rand();
```
</details>
<details><summary>PostgreSQL</summary>
```yml
# prerequisite: installed psql shell
variables:
PGPASSWORD: pwd
postgres_connection: psql -h localhost -U postgres --no-align --tuples-only
sparklines:
- title: PostgreSQL (random number example)
init: $postgres_connection
sample: select random();
```
</details>
<details><summary>MongoDB</summary>
```yml
# prerequisite: installed mongo shell
variables:
mongo_connection: mongo --quiet --host=localhost test
sparklines:
- title: MongoDB (random number example)
init: $mongo_connection
sample: Math.random();
```
</details>
<details><summary>Neo4j</summary>
```yml
# prerequisite: installed cypher shell
variables:
neo4j_connection: cypher-shell -u neo4j -p pwd --format plain
sparklines:
- title: Neo4j (random number example)
pty: true
init: $neo4j_connection
sample: RETURN rand();
transform: echo "$sample" | tail -n 1
```
</details>
### Kafka
<details><summary>Kafka lag per consumer group</summary>
```yml
variables:
kafka_connection: $KAFKA_HOME/bin/kafka-consumer-groups --bootstrap-server localhost:9092
runcharts:
- title: Kafka lag per consumer group
scale: 0
items:
- label: A->B
sample: $kafka_connection --group group_a --describe | awk 'NR>1 {sum += $5} END {print sum}'
- label: B->C
sample: $kafka_connection --group group_b --describe | awk 'NR>1 {sum += $5} END {print sum}'
- label: C->D
sample: $kafka_connection --group group_c --describe | awk 'NR>1 {sum += $5} END {print sum}'
```
</details>
### SSH
...
### JMX
...
### Spring Boot
...