locustio / locust

Write scalable load tests in plain Python 🚗💨
https://locust.cloud
MIT License
25.06k stars 3k forks source link

Using locust helm chart, not getting any stats. Not sure if it's doing anything really #1567

Closed rlewkowicz closed 4 years ago

rlewkowicz commented 4 years ago
image

Master/slave communication is good, it spawns my users:

/usr/local/bin/locust -f /locust-tasks/tasks.py --host=http://mediawiki.REDACT --master
[2020-09-24 23:13:45,187] release-name-master-bbbfb6c79-jpm8z/INFO/locust.main: Starting web monitor at *:8089
[2020-09-24 23:13:45,188] release-name-master-bbbfb6c79-jpm8z/INFO/locust.main: Starting Locust 0.9.0
[2020-09-24 23:14:14,425] release-name-master-bbbfb6c79-jpm8z/INFO/locust.runners: Client 'release-name-worker-b4695dd49-7vtqj_14b581c8b3d9099e6070d28e6f931639' reported as ready. Currently 1 clients ready to swarm.
[2020-09-24 23:14:15,285] release-name-master-bbbfb6c79-jpm8z/INFO/locust.runners: Client 'release-name-worker-b4695dd49-c9xnt_38a47c2f15e3839678c4abf7dd1e2c51' reported as ready. Currently 2 clients ready to swarm.
[2020-09-24 23:15:49,618] release-name-master-bbbfb6c79-jpm8z/INFO/locust.runners: Sending hatch jobs to 2 ready clients
ku logs -f release-name-worker-b4695dd49-7vtqj
Waiting for master
Waiting for master
Waiting for master
Waiting for master
Waiting for master
/usr/local/bin/locust -f /locust-tasks/tasks.py --host=http://mediawiki.REDACT --slave --master-host=release-name-master-svc
[2020-09-24 23:14:14,422] release-name-worker-b4695dd49-7vtqj/INFO/locust.main: Starting Locust 0.9.0
[2020-09-24 23:15:49,619] release-name-worker-b4695dd49-7vtqj/INFO/locust.runners: Hatching and swarming 1 clients at the rate 0.5 clients/s...
[2020-09-24 23:15:51,621] release-name-worker-b4695dd49-7vtqj/INFO/locust.runners: All locusts hatched: MyLocust: 1

master mounts a config map:

$ cat manifests/locust/templates/worker-cm.yaml
---
# Source: locust/templates/worker-cm.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: release-name-worker
  labels:
    heritage: "Tiller"
    release: "release-name"
    chart: "locust-1.2.1"
    app: release-name-locust
data:
  tasks.py: |-
    import locust
    class MyTaskSet(locust.TaskSet):

      @locust.task
      def do_get(self):
          self.client.get('/wiki/Special:Random')

    class MyLocust(locust.HttpLocust):
      task_set = MyTaskSet

      min_wait = 100
      max_wait = 1100

from in the container, it looks good:

import locust
class MyTaskSet(locust.TaskSet):

  @locust.task
  def do_get(self):
      self.client.get('/wiki/Special:Random')

class MyLocust(locust.HttpLocust):
  task_set = MyTaskSet

  min_wait = 100
  max_wait = 1100

Just as a POC the goal was to do some simple testing on a mediawiki installation. It's just not really doing anything. No errors, no nothing. I'm not sure what I should be checking. I am running those containers as user 11 which is "operator" because of our root user policy but I don't see anything errors from that

cyberw commented 4 years ago

This line looks very suspicious :)

[2020-09-24 23:13:45,188] release-name-master-bbbfb6c79-jpm8z/INFO/locust.main: Starting Locust 0.9.0

max-rocket-internet commented 4 years ago

Which Helm chart are you using @rlewkowicz?

I wrote one that is using locust version 1.2.3, naturally I think it's better 😃 https://github.com/deliveryhero/helm-charts/tree/master/stable/locust

rlewkowicz commented 4 years ago

@cyberw This actually might be a bug of sorts still, maybe just unexpected behavior. I'm now on the latest, using the official images. What it ended up being is our isto routing policies. I'm not actually able to curl the target domain without it hanging. Thats easy enough to fix for me, but I'm guessing this uses something like requests under the hood so I wonder if thats just not timing out.