https://github.com/neshkeev/jmx-demo
https://github.com/neshkeev/jmx-demo
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/neshkeev/jmx-demo
- Owner: neshkeev
- Created: 2024-01-18T05:50:19.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-01-25T09:48:36.000Z (over 2 years ago)
- Last Synced: 2025-03-26T03:41:58.227Z (about 1 year ago)
- Language: Shell
- Size: 478 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Метрики
## Сбор метрик
1. Загрузить `jmx_exporter`:
```bash
curl -Lo ./jmx-exporter/jmx_prometheus_javaagent.jar https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar
```
2. Запустить сервисы:
```bash
docker compose up
```
3. Дождаться, когда во всех строках в колоке `STATUS` будет написано `healthy`:
```bash
docker compose ps
```
4. Открыть localhost:9090
## Подключение по JMX через JConsole
1. Запустить сервисы (если еще не запущено):
```bash
docker compose up
```
2. Дождаться, когда во всех строках в колоке `STATUS` будет написано `healthy`:
```bash
docker compose ps
```
3. Открыть `jconsole`
```bash
jconsole
```
4. Ввести `localhost:9010` в поле `Remote Process` (Username и Password оставить пустыми)
5. Нажать кнопку `Connect`
6. В всплывающем диалоговом окне нажать кнопку `Insecure Connection`
## Подключение по JMX через VisualVM
1. Запустить сервисы (если еще не запущено):
```bash
docker compose up
```
2. Дождаться, когда во всех строках в колоке `STATUS` будет написано `healthy`:
```bash
docker compose ps
```
3. Загрузить `VisualVM`: [https://visualvm.github.io/](https://visualvm.github.io/)
4. Установить и запустить `VisualVM`
5. В главном меню выбрать `File` | `Add JMX Connection...`
6. Ввести `localhost:9010` в поле `Connection`
7. Нажать `OK`
8. В левой панели `Applications` двойным кликом мыши выбрать `kafka.Kafka`
## Prometheus
Prometheus - это система сбора и хранения метрик. Для работы с ним необходимо:
1. Запустить сервисы (если еще не запущено):
```bash
docker compose up
```
2. Дождаться, когда во всех строках в колоке `STATUS` будет написано `healthy`:
```bash
docker compose ps
```
3. Открыть Prometheus: [http://localhost:9090](http://localhost:9090)
4. В верхнем меню Prometheus нажать `Status` -> `Targets`
5. Рядом со словом `kafka` нажать `show more` и дождаться, когда в колонке `State` будет написано `Up`
6. В верхнем меню Prometheus нажать `Graph`
7. В поле `Expression` написать `gc` и выбрать одно из дополнений
8. Нажать кнопку `Execute` или клавишу `Enter`
### Grafana
Grafana - это система визуализации метрик. Для работы с Grafana необходимо:
1. Запустить сервисы (если еще не запущено):
```bash
docker compose up
```
2. Дождаться, когда во всех строках в колоке `STATUS` будет написано `healthy`:
```bash
docker compose ps
```
3. Запустить нагрузку:
```bash
docker compose exec -T kafka kafka-topics --bootstrap-server kafka:9092 --topic test-topic --create
docker compose exec -T kafka kafka-console-producer --bootstrap-server kafka:9092 --topic test-topic <<<$(yes 'Hello, World!' 2>/dev/null | head -n 100)
```
4. Открыть Grafana: [http://localhost:3000/login](http://localhost:3000/login)
5. Войти под пользователем `admin`, пароль `admin`
6. Grafana попросит поменять пароль, в качестве нового пароля можно снова указать `admin`
7. Развернуть левую панель кнопкой типа "сендвич" (три горизонтальные черточки друг над другом)
8. Открыть страницу `Dashbords`: [http://localhost:3000/dashboards](http://localhost:3000/dashboards)
9. Нажать кнопку `+ Create Dashbord` в середине экрана
10. Нажать кнопку `Import dashboard`
11. Ввести `721` в поле `Find and import dashboards for common applications at grafana.com/dashboards`
12. Нажать кнопку `Load` рядом с полем
13. Выбрать `Prometheus` в поле `Select a Prometheus data source` внизу страницы.
14. Нажать кнопку `Import`.