Skip to content

Latest commit

 

History

History
1283 lines (683 loc) · 29.2 KB

CHANGELOG.md

File metadata and controls

1283 lines (683 loc) · 29.2 KB

Changelog

  • 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

Changed

  • Dropped Python 3.7
  • Building for Python 3.12
  • Bump dependencies
  • Remove logzero dependency

Changed

  • Adjust OpenAI calls to match new capabilities from the models

Changed

  • Bump dependencies
  • Cleanup GPT output for rendering

Fixed

  • Command line argument for ruff

Added

  • The verify_latency_percentile_from_load_test probeto perform a verification of a load test from run_load_test

Added

  • The run_load_test action to perform a load test using the excellent oha

Changed

  • Bump dependencies

Added

  • Execution URL to slack message if enabled

Fixed

  • Iterate over all slack channels through pagination
  • Exclude archived slack channels from capture

Changed

  • Send execution log as we run not just at the end

Fixed

  • Substitute variable for value

Added

  • Setting execution state from experiment pauses so they can be manually resumed

Changed

  • Setting OTLP as baggage as we don't know if we are in a span yet

Fixed

  • Add missing leyword arguments

Added

  • OTEL extension handler to add reliably attributes

Changed

  • Pass experiment title to Honeycomb marker

Fixed

  • Honeycomb API expects an integer not a float

Fixed

  • Capture all the logs

Fixed

  • Adding more debug statements

Fixed

  • Adding debug to Honeycomb marker

Fixed

  • Actually update Honeycomb marker

Fixed

  • Function signatures in honeycomb vendor

Added

  • Added vendor specific callbacks to perform vendor actions (such as setting markers for instance)

Changed

  • Bump dependencies

Changed

  • Bump dependencies
  • More logging in GitHub activity
  • Give more time to finish locust process

Changed

  • Capture any channels starting with pattern given with configuration value reliably_capture_slack_channel_pattern

Fixed

  • Fix loop size change

Fixed

  • Fix thread removal in slack capture

Fixed

  • Fix thread removal in slack capture

Fixed

  • Slack messages capture

Changed

  • Bump dependencies

Fixed

  • Lookup control in global controls too

Fixed

  • Fix signature call

Fixed

  • Prevent circular imports

Added

  • Captures from third-parties

Changed

  • Bump dependencies

Fixed

  • Catch missing instrumentation case

Added

  • Allowing the log to start earlier by the CLI

Changed

  • Bump dependencies

Added

  • Loading context from trace

Added

  • Passing fixed OLTP context to children calls

Fixed

  • Propagate OTEL env into locust file

Fixed

  • Package name in locust file

Added

  • More logging around OLTP in Locust file

Fixed

  • Initialize OLTP as early as we can

Fixed

  • Bind to locust init event

Fixed

  • Environment values can only be strings

Added

  • OLTP support in the load test

Changed

  • Do not trace requests made back to Reliably to avoid polluting user traces

Changed

  • Bump dependencies

Added

  • 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)

Changed

  • Bump dependencies

Changed

  • Bump dependencies

Changed

  • Bump dependencies

Changed

  • Switching to pdm_backend to build package
  • Added chaosreliably.activities.tls.verifiy_certificate as a more succint probe
  • Bump dependencies

Changed

  • Read RELIABLY_VERIFY_TLS and RELIABLY_USE_HTTP from env when not set in the configuration block

Changed

  • Ensure tolerance and probes cast to int when value was read from environment variables

Added

  • DNS probes and tolerances
  • Small backoff before talking with OpenAI

Added

  • event to exit openai loop

Changed

  • add logging

Changed

  • revert tls serial to string

Added

  • serializeing using default json when orjson barfs on large integers

Added

  • logging when failing to serialize to json

Added

  • Missing fields on aborted executions

Added

  • Serialized TLS serial to string as int can overflow 64 bits
  • Increase timeout on OpenAI when using gpt-4
  • Add a bit of logging

Added

  • A new probe to list GitHub workflow runs
  • A new action to cancel a GitHub workflow run

Changed

  • link plan to execution

Changed

  • use orjson for data serialization instead of builtin json. faster and stricter

Changed

  • 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

Changed

  • re-organized so plan status is always set
  • interrupt execution when it couldn't be properly initialized

Added

  • log line for operation duration

Changed

  • Run OpenAI calls in a thread so they can terminate as soon as possible

Changed

  • Fix empty alt_names

Changed

  • Allow reading from default values

Changed

  • Better handling of missing safeguard URL

Changed

  • Use dict not list for integrations

Changed

  • Fix string removal operator
  • Don't let runtime info collection fail the execution

Changed

  • Only track name/version pairs

Changed

  • Embed list of chaostoolkit extensions and versions used for an execution
  • Remove suffix from assistant question once used

Changed

  • Minor fixes to the assistant control

Changed

  • Ensure only one reliably extension exists

Changed

  • Embed triggered probe into journal

Changed

  • Storing safeguards/prechecks results into extension

Changed

  • Fixed tests

Changed

  • Improved safeguards/prechecks (meaning they should now work)

Changed

  • Parses safeguards/prechecks arguments from env

Changed

  • Support falsey values

Changed

  • Remove trailing print

Changed

  • Fixed parsing of numbers in autopause

Changed

  • Parse autopause values when they are passed as environment variables

Changed

  • Adjusted Autopause format to be have a more deterministic structure

Added

  • ChatGPT control to automatically ask questions at the end of the experiment
  • Autopause control

Added

  • Safeguard and prechecks controls

Changed

  • Don't clear the list as it removes the probes from the experiment, simply set the variable to a new empty list

Changed

  • Properly capture the current activities of the hypothesis after the method

Changed

  • Dealing with SIGINT from locust

Changed

  • Properly trapping json decoding error on locust results

Changed

  • Setting plan_id on execution state
  • Logging plan status

Changed

  • 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

Changed

  • Updated Readme

Changed

  • Deploy sub-dependencies for the SLO generator

Fixed

  • Missing slo-generator dependency in setup.cfg

Added

  • Tolerance to check SLO error budget

Added

  • Probe to generate SLO values from different providers

Changed

  • Fix GitHub repo name

Added

  • More links in the extension extra block when a CI is detected

Added

  • New tolerances for GH to check under/greater or equal
  • Better support for pauses

Added

  • Support for execution state: pause/resume and termination

Added

  • Capture log to send to Reliably

Changed

  • Use the new running callback to initialize the execution
  • Bump to chaostoolkit-lib 1.30.0+

Changed

  • Pass config and secrets to handler

Changed

  • Creating execution on Reliably as soon as it starts

Changed

  • does not change the exit code on locust failed tests

Changed

  • be more tolerant on default values

Added

  • dependencies to setup.cfg

Added

  • exposed load probes to discovery

Added

  • probes to read and validate results from a load test generated by inject_gradual_traffic_into_endpoint

Changed

  • do not fail inject_gradual_traffic_into_endpoint when errors were met by a load test

Added

  • inject_gradual_traffic_into_endpoint action to perform some mild traffic against an endpoint

Added

  • pr_duration probe to collect the duration of all, or a subset, of a GitHub repository's pull-requests
  • percentile_under tolerance to compute the percentiles of a list of of values

Changed

  • Strip path of its '/' boundaries
  • Add ratio_above tolerance

Changed

  • In case the repo is given as its full URL, just pick the path from it

Fixed

  • Use the github token from secrets when provided but let the GITHUB_TOKEN value take precedence

Changed

  • Fully removed Open Telemetry support for now as the underlying library doesn't play well with having many tracers enabled

Added

  • GitHub probe and tolerance to compute the ratio of closed PRs over a priod of time

Changed

  • Remove ujson from setup.cfg

Changed

  • Remove ujson to be more portable

Changed

  • Send planning status back to Reliably
  • Add span attributes and tags

Added

  • 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

  • Added extra information to journal

Fixed

  • Fix URL to execution

Changed

  • Removing the execution payload from the extension

Fixed

  • Ensure extension is stored

Changed

  • Migrate to new Reliably API
  • Add execution url and payload into the journal

Changed

  • Always load settings from the config file first if it exists

Changed

  • Always send the experiment encoded in standard base64

Changed

  • Ensure events are properly referenced

Added

  • Read RELIABLY_TOKEN, RELIABLY_HOST and RELIABLY_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

Changed

  • Major rework to match how Reliably's API currently works

Changed

  • Very minor but fix link to image so documentation could get generated

Changed

  • Fixed documentation regarding control usage

Changed

  • 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 be entity-type
  • Change url to reliably to now include /api/* as Reliably changed routes to services

Added

  • 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 and after_hypothesis_control to create Experiment Events within Reliably services.
    • Added before_method_control and after_method_control to create Experiment Events within Reliably services.
    • Added before_rollback_control and after_rollback_control to create Experiment Events within Reliably services.
    • Added before_activity_control and after_activity_control to create Experiment Events within Reliably services.
    • Added after_experiment_control to create an Experiment Event within Reliably services

Changed

  • Updated .github/workflows/build.yaml to be in line with chaostoolkit
  • Updated Makefile to be in line with chaostoolkit
  • Add check-pr.md which alerts PR raisers to whether they've modified CHANGELOG.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 where tolerance goes when using slo_is_met as a Steady State Hypothesis
  • Fixed default reliably host to be reliably.com instead of api.reliably.com

Changed

  • Updated get_objective_results_by_labels to have a default limit of 1
  • Add slo_is_met as a probe to encompass the get_objective_results_by_labels probe and all_objective_results_ok tolerance

Changed

  • 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
  • Allow for user to provide org as a secret/get it from currentOrg in their Reliably config

Changed

  • Use the most recent SLO report only

Changed

  • Add install_requires so that dependencies are properly installed via pip

Added

  • Initial release