Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
myrtille
command
Command myrtille orchestrates a load-test run against a service: bring it into a known state (init), run a k6 scenario against it while scraping its /metrics endpoint, and write a report of what happened.
|
Command myrtille orchestrates a load-test run against a service: bring it into a known state (init), run a k6 scenario against it while scraping its /metrics endpoint, and write a report of what happened. |
|
examples
|
|
|
demo-service/stubservice
command
Command stubservice is a tiny fixture service used by the myrtille demo: it exposes /healthz (for service.managed.readiness), /users (create, delete), /products (list), /orders (write endpoint scenarios hit under load), and /metrics (Prometheus format — a counter, a gauge, and a histogram, all three real metric types service.metrics.url scrapes), so examples/demo-service/myrtille.yaml has something real to talk to.
|
Command stubservice is a tiny fixture service used by the myrtille demo: it exposes /healthz (for service.managed.readiness), /users (create, delete), /products (list), /orders (write endpoint scenarios hit under load), and /metrics (Prometheus format — a counter, a gauge, and a histogram, all three real metric types service.metrics.url scrapes), so examples/demo-service/myrtille.yaml has something real to talk to. |
|
internal
|
|
|
config
Package config parses and validates the myrtille.yaml file that describes a single load-test project: the service under test, the declarative init steps, the k6 script to run, and where to write the report.
|
Package config parses and validates the myrtille.yaml file that describes a single load-test project: the service under test, the declarative init steps, the k6 script to run, and where to write the report. |
|
dashboardconfig
Package dashboardconfig builds the JSON config k6's web-dashboard reads from XK6_DASHBOARD_CONFIG (see https://github.com/grafana/k6/tree/master/internal/dashboard's customize.go): the bundled default config — the same one k6 falls back to on its own, fetched at runtime from xk6-dashboard-assets rather than vendored, so it can't drift out of sync with whatever version is actually bundled — plus one extra "Service" tab with a chart panel per metric scraped from the service's own /metrics endpoint, and (when service.traces.enabled) an aggregate panel each for the OTel spans it receives — see docs/plans/otel-span-metrics.md.
|
Package dashboardconfig builds the JSON config k6's web-dashboard reads from XK6_DASHBOARD_CONFIG (see https://github.com/grafana/k6/tree/master/internal/dashboard's customize.go): the bundled default config — the same one k6 falls back to on its own, fetched at runtime from xk6-dashboard-assets rather than vendored, so it can't drift out of sync with whatever version is actually bundled — plus one extra "Service" tab with a chart panel per metric scraped from the service's own /metrics endpoint, and (when service.traces.enabled) an aggregate panel each for the OTel spans it receives — see docs/plans/otel-span-metrics.md. |
|
initphase
Package initphase executes the declarative HTTP steps configured under `init.steps` to bring the target service into a known state, extracting values (IDs, etc.) from responses into a state.Dict that k6 scenarios can later randomize over.
|
Package initphase executes the declarative HTTP steps configured under `init.steps` to bring the target service into a known state, extracting values (IDs, etc.) from responses into a state.Dict that k6 scenarios can later randomize over. |
|
k6gen
Package k6gen renders the declarative HTTP steps configured under `k6.steps` into a k6-compatible JS scenario file, for projects that don't need a hand-written scenario.js.
|
Package k6gen renders the declarative HTTP steps configured under `k6.steps` into a k6-compatible JS scenario file, for projects that don't need a hand-written scenario.js. |
|
k6run
Package k6run shells out to the k6 binary to execute a load test scenario, passing it the generated state dictionary via an environment variable, and parses the resulting --summary-export JSON so the report phase can show pass/fail thresholds and key metrics.
|
Package k6run shells out to the k6 binary to execute a load test scenario, passing it the generated state dictionary via an environment variable, and parses the resulting --summary-export JSON so the report phase can show pass/fail thresholds and key metrics. |
|
metrics
Package metrics decodes a Prometheus text-exposition payload into samples.
|
Package metrics decodes a Prometheus text-exposition payload into samples. |
|
orchestrator
Package orchestrator wires the init, k6 run, and report phases together into the single pipeline the CLI drives.
|
Package orchestrator wires the init, k6 run, and report phases together into the single pipeline the CLI drives. |
|
report
Package report aggregates the results of the init, k6 run, and metrics scraping phases into a single Report, rendered to Markdown and/or JSON files for a human (or an issue/ticket comment) to read.
|
Package report aggregates the results of the init, k6 run, and metrics scraping phases into a single Report, rendered to Markdown and/or JSON files for a human (or an issue/ticket comment) to read. |
|
servicelifecycle
Package servicelifecycle starts and stops the service under test itself (service.managed.start_command), for projects that want a fresh instance per `myrtille run` rather than assuming one is already up.
|
Package servicelifecycle starts and stops the service under test itself (service.managed.start_command), for projects that want a fresh instance per `myrtille run` rather than assuming one is already up. |
|
state
Package state holds the dictionary of values gathered during the init phase (e.g.
|
Package state holds the dictionary of values gathered during the init phase (e.g. |
|
style
Package style adds lightweight, optional visual formatting — a symbol prefix and, when the output looks like an interactive terminal, ANSI color — to myrtille's own progress messages (service start/stop, init phase transitions, k6 run).
|
Package style adds lightweight, optional visual formatting — a symbol prefix and, when the output looks like an interactive terminal, ANSI color — to myrtille's own progress messages (service start/stop, init phase transitions, k6 run). |
|
suite
Package suite parses `suite.yaml` — an ordered list of scenario config paths that `myrtille run --suite` runs one after another, each as its own separate `myrtille run` subprocess (not an in-process loop — see docs/plans/suite-mode.md for why: config.Load mutates the process environment via os.Setenv, which would silently leak between scenarios if they shared one process).
|
Package suite parses `suite.yaml` — an ordered list of scenario config paths that `myrtille run --suite` runs one after another, each as its own separate `myrtille run` subprocess (not an in-process loop — see docs/plans/suite-mode.md for why: config.Load mutates the process environment via os.Setenv, which would silently leak between scenarios if they shared one process). |
Click to show internal directories.
Click to hide internal directories.
