{"id":18319618,"url":"https://github.com/mycloudlab/k6-load-test-realtime","last_synced_at":"2025-04-09T14:21:52.326Z","repository":{"id":222224449,"uuid":"756453686","full_name":"mycloudlab/k6-load-test-realtime","owner":"mycloudlab","description":"Este repositório contém os recursos para a instalação do k6 em um cluster kubernetes com um dashboard grafana configurado.","archived":false,"fork":false,"pushed_at":"2024-02-13T00:53:04.000Z","size":410,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-15T08:19:15.399Z","etag":null,"topics":["grafana","influxdb2","k6","k6-extension","load-test"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mycloudlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-12T17:38:07.000Z","updated_at":"2024-02-13T00:51:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"04dbeda8-2a15-428f-9eb1-f8456592eaf8","html_url":"https://github.com/mycloudlab/k6-load-test-realtime","commit_stats":null,"previous_names":["mycloudlab/k6-load-test-realtime"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mycloudlab%2Fk6-load-test-realtime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mycloudlab%2Fk6-load-test-realtime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mycloudlab%2Fk6-load-test-realtime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mycloudlab%2Fk6-load-test-realtime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mycloudlab","download_url":"https://codeload.github.com/mycloudlab/k6-load-test-realtime/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248054195,"owners_count":21039952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grafana","influxdb2","k6","k6-extension","load-test"],"created_at":"2024-11-05T18:13:47.700Z","updated_at":"2025-04-09T14:21:52.305Z","avatar_url":"https://github.com/mycloudlab.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# k6-load-test-realtime\n\nEste repositório contém os recursos para a instalação do k6 em um cluster kubernetes com um dashboard grafana configurado.\n\nO k6 não disponibiliza no seu runner a integração com o influxdb v2. Entretanto isso está disponível por uma extensão.\n \nO arquivo  `k6-influxdb.dockerfile` cria um runner com o k6 e o influxdb. \nCaso deseje fazer o build do runner, use o comando abaixo adequando ao seu cenário:\n```bash\ndocker build -f k6-influxdb.dockerfile -t mycloudlab/k6-influxdb:0.48.0 .\n```\n\nFoi disponibilizada a imagem: `mycloudlab/k6-influxdb:0.48.0` que tem o objetivo de ser usada como runner no k6-operator.\n\n## Instalação\n\nNota: Esta é uma instalação persistente, caso não tenha interesse em usar persistent volume, ajuste os yamls adequadamente.\n\n1º Instale o operador no kubernetes do k6: \n\n```bash\ncurl https://raw.githubusercontent.com/grafana/k6-operator/main/bundle.yaml | kubectl apply -f -\n```\n\n2º Ajuste o arquivo de rota, configurando o host esperado:\n```yaml\n...\nspec:\n  host: grafana.xpto.com.br\n...\n```\n\n3º Instale as playbooks que instala o influxdb e o grafana já com os dashboards configurados:\n\n```bash\nkubectl apply -f k8s-resources/ -n \u003cSEU NAMESPACE\u003e\n```\n\nNota: Usuário e senha do grafana: `admin / admin`.\n\n\n\nCom isso agora o cluster é capaz de reconhecer objetos do tipo `TestRun`.\n\n## Rodando um teste\n\nDentro do repositório fornecemos o script `test.js` que serve como um exemplo para um teste do k6. \n\n1º Para executar ele dentro do cluster, criamos um config-map que conterá nosso script de teste.\n\n```bash\nkubectl create configmap scenarios-test --from-file test.js -n \u003cSEU NAMESPACE\u003e \n```\n\nA 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.\n\n```bash\nkubectl create -f k6-resource.yaml -n \u003cSEU NAMESPACE\u003e\n```\n\nCom isso podemos ver no grafana o dashboard com o teste em execução:\n\n![resultado do teste](grafana-k6-test-result.png)\n\n\n### Referências\n\n- https://grafana.com/docs/k6/latest/results-output/real-time/influxdb/\n- https://grafana.com/blog/2022/06/23/running-distributed-load-tests-on-kubernetes/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmycloudlab%2Fk6-load-test-realtime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmycloudlab%2Fk6-load-test-realtime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmycloudlab%2Fk6-load-test-realtime/lists"}