https://github.com/mycloudlab/k6-load-test-realtime
Este repositório contém os recursos para a instalação do k6 em um cluster kubernetes com um dashboard grafana configurado.
https://github.com/mycloudlab/k6-load-test-realtime
grafana influxdb2 k6 k6-extension load-test
Last synced: about 1 year ago
JSON representation
Este repositório contém os recursos para a instalação do k6 em um cluster kubernetes com um dashboard grafana configurado.
- Host: GitHub
- URL: https://github.com/mycloudlab/k6-load-test-realtime
- Owner: mycloudlab
- Created: 2024-02-12T17:38:07.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-13T00:53:04.000Z (over 2 years ago)
- Last Synced: 2025-02-15T08:19:15.399Z (over 1 year ago)
- Topics: grafana, influxdb2, k6, k6-extension, load-test
- Language: Dockerfile
- Homepage:
- Size: 400 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# k6-load-test-realtime
Este repositório contém os recursos para a instalação do k6 em um cluster kubernetes com um dashboard grafana configurado.
O k6 não disponibiliza no seu runner a integração com o influxdb v2. Entretanto isso está disponível por uma extensão.
O arquivo `k6-influxdb.dockerfile` cria um runner com o k6 e o influxdb.
Caso deseje fazer o build do runner, use o comando abaixo adequando ao seu cenário:
```bash
docker build -f k6-influxdb.dockerfile -t mycloudlab/k6-influxdb:0.48.0 .
```
Foi disponibilizada a imagem: `mycloudlab/k6-influxdb:0.48.0` que tem o objetivo de ser usada como runner no k6-operator.
## Instalação
Nota: Esta é uma instalação persistente, caso não tenha interesse em usar persistent volume, ajuste os yamls adequadamente.
1º Instale o operador no kubernetes do k6:
```bash
curl https://raw.githubusercontent.com/grafana/k6-operator/main/bundle.yaml | kubectl apply -f -
```
2º Ajuste o arquivo de rota, configurando o host esperado:
```yaml
...
spec:
host: grafana.xpto.com.br
...
```
3º Instale as playbooks que instala o influxdb e o grafana já com os dashboards configurados:
```bash
kubectl apply -f k8s-resources/ -n
```
Nota: Usuário e senha do grafana: `admin / admin`.
Com isso agora o cluster é capaz de reconhecer objetos do tipo `TestRun`.
## Rodando um teste
Dentro do repositório fornecemos o script `test.js` que serve como um exemplo para um teste do k6.
1º Para executar ele dentro do cluster, criamos um config-map que conterá nosso script de teste.
```bash
kubectl create configmap scenarios-test --from-file test.js -n
```
A execução é feita criando um recurso do tipo `TestRun`, o arquivo `k6-resource.yaml` contém um exemplo executável que deve ser ajustado para o cenário de teste desejado. Para a demonstração ele é suficiente.
```bash
kubectl create -f k6-resource.yaml -n
```
Com isso podemos ver no grafana o dashboard com o teste em execução:

### Referências
- https://grafana.com/docs/k6/latest/results-output/real-time/influxdb/
- https://grafana.com/blog/2022/06/23/running-distributed-load-tests-on-kubernetes/