Skip to content

Latest commit

 

History

History
253 lines (194 loc) · 9.62 KB

CHANGELOG.md

File metadata and controls

253 lines (194 loc) · 9.62 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[v6.2.0] 2020-07-29

Added

  • CI pipeline
    • build
    • on release, publish docker image and github release with binaries

[v6.1.0] 2020-06-30

Changed

  • Dockerfile labels
  • Dockerfile src image

Added

  • SLO computation recording rules, alerts
  • slo-exporter grafana dashboard

Fixed

  • PrometheusIngester: Fixed unit of the slo_exporter_prometheus_ingester_query_duration_seconds_bucket metric.

[v6.0.0] 2020-06-12

Changed

  • BREAKING Dropped the normalizer module in favour of the relabel and eventKeyGenerator modules. Those can be used to sanitize metadata values and compose the event key from any metadata keys.
  • BREAKING Dropped the eventFilter module in favour of the relabel module.
  • BREAKING sloEventProducer: dropped honor_slo_result configuration option, same behavior can be now achieved using failure conditions and metadata filters.
  • BREAKING sloEventProducer: all operators renamed
  • Dynamic classifier no longer exposes status_code label to unclassified events metric, you have to explicitly specify it in the unclassifiedEventMetadataKeys configuration option.
  • BREAKING Tailer: no longer sets the event key, use the eventKeyGenerator module.
  • BREAKING Tailer: no longer sets the SLO classification of the event, use the metadataClassifier module.

[v5.6.0] 2020-06-10

Added

  • New module relabel allowing to modify event metadata using Prometheus relabel config.
  • New flag --check-config to verify if configuration is ok.
  • Enabled mutex and block profiling.

Changed

  • Upgraded to Go 1.14
  • PrometheusIngester: added query_type label for slo_exporter_prometheus_ingester_query_fails_total metric

Fixed

  • PrometheusIngester: fixed isolation of histogram_increase query type causing invalid computation of increase.

[v5.5.0] 2020-05-28

Added

  • sloEventProducer: notEqualTo, notMatchesRegexp, numberNotEqualTo operators

[v5.4.1] 2020-05-27

Fixed

  • PrometheusIngester: last defined query shadows the previous ones

[v5.4.0] 2020-05-22

Changed

  • DynamicClassifier: Log entire event on unsuccessful classification.

Added

  • sloEventProducer: Expose metrics based on slo_rules configuration (exposeRulesAsMetrics slo_event_producer module option).

[v5.3.0] 2020-05-05

Added

  • New Prometheus-ingester's query configuration option 'resultAsQuantity'

[v5.2.0] 2020-05-05

Added

  • New module metadataClassifier to classify event based on it's metadata. See the docs for more info.

[v5.1.1] 2020-05-04

Changed

  • prometheus_exporter's LabelNames.sloApp default value now matches documented one (slo_app)

[v5.1.0] 2020-05-4

Added

  • sloEventProducer: Added new operators equalTo, numberEqualTo, numberEqualOrHigherThan and numberEqualOrLessThan.

[v5.0.0] 2020-04-30

Changed

  • BREAKING prometheusIngester: Renamed increase query type to counter_increase.
  • BREAKING sloEventProducer: Dropped unused configuration key event_type in rules file.

Added

  • Prometheus ingester: New query type histogram_increase to generate events with for each bucket.

[v4.4.0] 2020-04-27

Added

  • Prometheus ingester 'increase' query type
  • New module eventKeyGenerator to generate event key from its metadata. See the docs.
  • Generic metadata matcher for slo_event_producer

Changed

  • Prometheus ingester query types. (Existing named as 'simple')
  • Generalize eventKey access/usage for all ingesters by putting it to event.Metadata

[v4.3.0] 2020-04-08

Added

  • Possibility to dynamically set the log level using HTTP endpoint, see the docs.
  • StatisticalClassifier module now allows to set default weights.

Fixed

  • Fixed logging in reporting metrics from prometheus exporter module.

[v4.2.1] 2020-04-07

Fixed

[v4.2.0] 2020-04-07

Added

  • New module statisticalClassifier to classify events based on previous events classification statistical distribution. Read more in the module documentation.
  • Enabled mutex and blocking goroutine profiling in pprof.

[v4.1.0] 2020-03-30

Fixed

  • Fixed CPU usage burst caused by leaking timers.

Added

[v4.0.3] 2020-03-30

Fixed

  • Removed redundant namespacing for dynamic classifier metric events_processed_total.

[v4.0.2] 2020-03-29

Fixed

  • Kubernetes manifests fixed to use /liveness probe endpoint.

[v4.0.1] 2020-03-29

Fixed

  • Kubernetes manifests fixed to match the breaking changes in 4.0.0.

[v4.0.0] 2020-03-26

Changed

  • BREAKING Pipeline structure is now defined using the pipeline configuration option. For more information see the architecture documentation.
  • BREAKING The log_level configuration option was removed and replaced with the --log-level command line flag. Also it can be still configured with the ENV variable SLO_EXPORTER_LOGLEVEL.
  • BREAKING The --disable-timescale-exporter and --disable-prometheus-exporter flags were dropped in favor of dynamic pipeline structure configuration.
  • BREAKING The timescale exporter was dropped.
  • BREAKING The minimumGracefulShutdownDuration configuration option was replaced with afterPipelineShutdownDelay to be more intuitive.

[v3.2.0] - 2020-03-24

Refactored

  • HttpRequest.Headers, HttpRequest.Metadata is now filled only with data not matching conf.tailer.emptyGroupRE.
  • Drop frpcStatus as a dedicated attribute for HttpRequest.

[v3.1.0] - 2020-03-20

Refactored

  • If eventKey matching group in tailer RE is nonempty, its value is propagated to HttpRequest.EventKey.

[v3.0.0] - 2020-03-20

Fixed

  • Inconsistencies in aggregated SLO metrics exposed to Prometheus.
  • Normalizer now does not drop event if eventKey already set.

Refactored

  • Refactored prometheus exporter to implement Collector interface and to not require known labels beforehand.

Changed

  • BREAKING Event filter module now filters using metadata using metadataFilter. Old filteredHttpStatusCodeMatchers and filteredHttpHeaderMatchers were dropped.
  • BREAKING Failure criteria configuration synatx of sloEventProducer module has changed.
    • failure_criteria is now failure_conditions
    • criterium is now called operator
    • Operators are evaluated on event metadata. key field was added in order to specify on which metadata is the given operator to be evaluated.
    • Old criteria were dropped and newly available operators are matchesRegexp, numberHigherThan and durationHigherThan.
    • Example of new failure conditions syntax:
      failure_conditions:
          - operator: matchesRegexp
            key: "metadataKey"
            value: ".*"

[v2.4.0] - 2020-03-16

Added

  • Possibility to add additional metadata labels to events_processed_total metric of dynamic classifier using unclassifiedEventMetadataKeys.

[v2.3.0] - 2020-03-16

Added

  • Slo_rules now support honor_slo_result.
  • All unknown named groups parsed by tailer are set as HTTP headers.

Fixed

  • Delayed graceful shutdown.

Changed

  • BREAKING Graceful shutdown timeout conf options.
    • gracefulShutdownTimeout replaced with maximumGracefulShutdownDuration.
    • afterGracefulShutdownDelay replaced with minimumGracefulShutdownDuration.

[v2.2.0] - 2020-03-16

Added

  • app_build_info metric

[v2.1.1] - 2020-03-13

Fixed

  • Fixed hanging shutdown when all modules ended without explicit termination request.

[v2.1.0] - 2020-03-12

Changed

  • Tailer line matching regular expression is now part of configuration.
  • Tailer is able to initialize event with SloClassification, if provided within log line.

Fixed

  • Update dynamic classifier cache with data from already classified event.
  • E2e-tests' run_tests.sh is now checking whether slo_exporter is running, before test will proceed.

[v2.0.0] - 2020-03-09

Added

  • Implemented prometheus ingester.
  • Optional gracefulShutdownTimeout configuration.

Changed

  • BREAKING Request event normalizer now uses regular expressions for filtering.
    • Config option filteredHttpStatusCodes is now filteredHttpStatusCodeMatchers and is list of regular expressions instead of integers.
    • Config option filteredHttpHeaders is now filteredHttpHeaderMatchers and is map of regular expression matching header name to regular expression matching header value.

Fixed

  • Refactored loading of event normalizer configuration.
  • StringMap.Without fixed logic and added tests.
  • StringMap.Merge do not return empty map when merged with nil.

[v1.4.0] - 2020-02-28

Added

  • Implemented graceful shutdown for each pipeline processor.

[v1.3.0] - 2020-02-28

Added

  • Process multiple domains from single data source.

Fixed

  • Typo in label failedToClassify.

[v1.2.3] - 2020-02-27

Added

  • Normalize also .ico files as :image.

[v1.2.2] - 2020-02-20

Config

  • Frontend API GraphQL endpoints without operationName are now classified as no_slo.

[v1.2.1] - 2020-02-19