- Log oha command line
- Use a specific proxy environment variable to prevent mixing system proxy settings
- Fix action version
- Add proxy support to run_load_test
- Bump dependencies
- Dropped Python 3.7
- Building for Python 3.12
- Bump dependencies
- Remove logzero dependency
- Adjust OpenAI calls to match new capabilities from the models
- Bump dependencies
- Cleanup GPT output for rendering
- Command line argument for
ruff
- The
verify_latency_percentile_from_load_test
probeto perform a verification of a load test fromrun_load_test
- The
run_load_test
action to perform a load test using the excellent oha
- Bump dependencies
- Execution URL to slack message if enabled
- Iterate over all slack channels through pagination
- Exclude archived slack channels from capture
- Send execution log as we run not just at the end
- Substitute variable for value
- Setting execution state from experiment pauses so they can be manually resumed
- Setting OTLP as baggage as we don't know if we are in a span yet
- Add missing leyword arguments
- OTEL extension handler to add reliably attributes
- Pass experiment title to Honeycomb marker
- Honeycomb API expects an integer not a float
- Capture all the logs
- Adding more debug statements
- Adding debug to Honeycomb marker
- Actually update Honeycomb marker
- Function signatures in honeycomb vendor
- Added vendor specific callbacks to perform vendor actions (such as setting markers for instance)
- Bump dependencies
- Bump dependencies
- More logging in GitHub activity
- Give more time to finish locust process
- Capture any channels starting with pattern given with configuration value
reliably_capture_slack_channel_pattern
- Fix loop size change
- Fix thread removal in slack capture
- Fix thread removal in slack capture
- Slack messages capture
- Bump dependencies
- Lookup control in global controls too
- Fix signature call
- Prevent circular imports
- Captures from third-parties
- Bump dependencies
- Catch missing instrumentation case
- Allowing the log to start earlier by the CLI
- Bump dependencies
- Loading context from trace
- Passing fixed OLTP context to children calls
- Propagate OTEL env into locust file
- Package name in locust file
- More logging around OLTP in Locust file
- Initialize OLTP as early as we can
- Bind to locust init event
- Environment values can only be strings
- OLTP support in the load test
- Do not trace requests made back to Reliably to avoid polluting user traces
- Bump dependencies
- A metrics control so we register the following info:
- time when a probe (hypothesis) changes its state
- time when it changes back again (showing recovery)
- Bump dependencies
- Bump dependencies
- Bump dependencies
- Switching to
pdm_backend
to build package - Added
chaosreliably.activities.tls.verifiy_certificate
as a more succint probe - Bump dependencies
- Read
RELIABLY_VERIFY_TLS
andRELIABLY_USE_HTTP
from env when not set in the configuration block
- Ensure tolerance and probes cast to int when value was read from environment variables
- DNS probes and tolerances
- Small backoff before talking with OpenAI
- event to exit openai loop
- add logging
- revert tls serial to string
- serializeing using default json when orjson barfs on large integers
- logging when failing to serialize to json
- Missing fields on aborted executions
- Serialized TLS serial to string as int can overflow 64 bits
- Increase timeout on OpenAI when using gpt-4
- Add a bit of logging
- A new probe to list GitHub workflow runs
- A new action to cancel a GitHub workflow run
- link plan to execution
- use orjson for data serialization instead of builtin json. faster and stricter
- forcing status to be
aborted
when unset at the end of the experiment as it likely means something went very wrong and we don't want to not have a status set
- re-organized so plan status is always set
- interrupt execution when it couldn't be properly initialized
- log line for operation duration
- Run OpenAI calls in a thread so they can terminate as soon as possible
- Fix empty alt_names
- Allow reading from
default
values
- Better handling of missing safeguard URL
- Use dict not list for integrations
- Fix string removal operator
- Don't let runtime info collection fail the execution
- Only track name/version pairs
- Embed list of chaostoolkit extensions and versions used for an execution
- Remove suffix from assistant question once used
- Minor fixes to the assistant control
- Ensure only one
reliably
extension exists
- Embed triggered probe into journal
- Storing safeguards/prechecks results into extension
- Fixed tests
- Improved safeguards/prechecks (meaning they should now work)
- Parses safeguards/prechecks arguments from env
- Support falsey values
- Remove trailing print
- Fixed parsing of numbers in autopause
- Parse autopause values when they are passed as environment variables
- Adjusted Autopause format to be have a more deterministic structure
- ChatGPT control to automatically ask questions at the end of the experiment
- Autopause control
- Safeguard and prechecks controls
- Don't clear the list as it removes the probes from the experiment, simply set the variable to a new empty list
- Properly capture the current activities of the hypothesis after the method
- Dealing with SIGINT from locust
- Properly trapping json decoding error on locust results
- Setting
plan_id
on execution state - Logging plan status
- Switched to pdm for package management
- Swapped flake8 for ruff
- Introduced bandit to capture basic security issues
- Moved away from setuptools to pyproject.toml
- Swapped flake8 for ruff as linter, much faster
- Updated Readme
- Deploy sub-dependencies for the SLO generator
- Missing
slo-generator
dependency insetup.cfg
- Tolerance to check SLO error budget
- Probe to generate SLO values from different providers
- Fix GitHub repo name
- More links in the extension extra block when a CI is detected
- New tolerances for GH to check under/greater or equal
- Better support for pauses
- Support for execution state: pause/resume and termination
- Capture log to send to Reliably
- Use the new
running
callback to initialize the execution - Bump to chaostoolkit-lib 1.30.0+
- Pass config and secrets to handler
- Creating execution on Reliably as soon as it starts
- does not change the exit code on locust failed tests
- be more tolerant on default values
- dependencies to setup.cfg
- exposed load probes to discovery
- probes to read and validate results from a load test generated by
inject_gradual_traffic_into_endpoint
- do not fail
inject_gradual_traffic_into_endpoint
when errors were met by a load test
inject_gradual_traffic_into_endpoint
action to perform some mild traffic against an endpoint
pr_duration
probe to collect the duration of all, or a subset, of a GitHub repository's pull-requestspercentile_under
tolerance to compute the percentiles of a list of of values
- Strip path of its '/' boundaries
- Add
ratio_above
tolerance
- In case the repo is given as its full URL, just pick the path from it
- Use the github token from secrets when provided but let the
GITHUB_TOKEN
value take precedence
- Fully removed Open Telemetry support for now as the underlying library doesn't play well with having many tracers enabled
- GitHub probe and tolerance to compute the ratio of closed PRs over a priod of time
- Remove ujson from setup.cfg
- Remove ujson to be more portable
- Send planning status back to Reliably
- Add span attributes and tags
- Probe to measure duration of a single HTTP request
- Tolerance to validate this duration is below a certain value
- Probe to capture the TLS certificate of a remote endpoint
- Tolerances to validate aspects of the certificate
- Added extra information to journal
- Fix URL to execution
- Removing the execution payload from the extension
- Ensure extension is stored
- Migrate to new Reliably API
- Add execution url and payload into the journal
- Always load settings from the config file first if it exists
- Always send the experiment encoded in standard base64
- Ensure events are properly referenced
- Read
RELIABLY_TOKEN
,RELIABLY_HOST
andRELIABLY_ORG
environment variables when secrets have not been provided. They are common. - Spec element to send to Reliably: contains the experiment and the output at various points in time
- Major rework to match how Reliably's API currently works
- Very minor but fix link to image so documentation could get generated
- Fixed documentation regarding control usage
- Fixed labels sent to Reliably to use alias field names
- Corrected docstring examples of control usage
- Modified output label entry for experiment events to be strings
- Change
ctk_type
label entry to beentity-type
- Change url to reliably to now include
/api/*
as Reliably changed routes to services
- Added
chaosreliably.controls
:- Added
before_experiment_control
to create an Experiment, Experiment Version, Experiment Run, and an Experiment Event (Start) within Reliably services. - Added
before_hypothesis_control
andafter_hypothesis_control
to create Experiment Events within Reliably services. - Added
before_method_control
andafter_method_control
to create Experiment Events within Reliably services. - Added
before_rollback_control
andafter_rollback_control
to create Experiment Events within Reliably services. - Added
before_activity_control
andafter_activity_control
to create Experiment Events within Reliably services. - Added
after_experiment_control
to create an Experiment Event within Reliably services
- Added
- Updated
.github/workflows/build.yaml
to be in line withchaostoolkit
- Updated
Makefile
to be in line withchaostoolkit
- Add
check-pr.md
which alerts PR raisers to whether they've modifiedCHANGELOG.md
or tests. - Ran
pyupgrade --py36-plus
on the project - Bump up coverage in tests to cover failure cases in
__init__.py
- Add
mypy
as a dependency and use it in linting to enforce typing
- Updated
README.md
to correctly show wheretolerance
goes when usingslo_is_met
as a Steady State Hypothesis - Fixed default reliably host to be
reliably.com
instead ofapi.reliably.com
- Updated
get_objective_results_by_labels
to have a defaultlimit
of1
- Add
slo_is_met
as a probe to encompass theget_objective_results_by_labels
probe andall_objective_results_ok
tolerance
- Fix issue where secrets were not correctly extracted from Experiment config #1
- Refactor to use new Reliably Entity Server rather than previous API
- One probe available:
get_objective_results_by_labels
- For a given Objectives labels, get the Objective Results
- One tolerance available:
all_objective_results_ok
- For a list of Objective Results, determine if they were all OK
- One probe available:
- Allow for user to provide
org
as a secret/get it fromcurrentOrg
in their Reliably config
- Use the most recent SLO report only
- Add
install_requires
so that dependencies are properly installed via pip
- Initial release