Skip to content

Releases: alibaba/Sentinel

v1.8.7

29 Dec 02:10
Compare
Choose a tag to compare

Features / Enhancements

  • Add default circuit breaker rule support (#2232)
  • Update metrics name for better monitor selection in JMX MetricBeanWriter extension (#2976)
  • Refine throttling control behavior of FlowRule: improve accuracy and support maxQps > 1000 (#2951)
  • Add SSL support for sentinel-datasource-redis (#3045)
  • Add basic implementation of token bucket for flow-control (#3106)
  • Remove the requirement of carrying batchCount and args in entry.exit() (#3114)
  • Make default JUL-based logging asynchronous (#3136)
  • Make all ThreadPool static final (#3243)
  • Add Prometheus exporter module for Sentinel metrics (#3173)
  • Resource rules (flow/degrade/param/authority) support regex matching (#3251)

Bug Fixes

  • Fix NPE bug in LogSlot#entry when recording rule ID (#2980)
  • Fix the bug that error occurs in JMX metrics exporter when resource name contains '*' (#2992)
  • Fix thread-blocked problem of EtcdDataSource (#2991)
  • Fix potential connection leak bug when closing NacosDataSource (#2962)
  • Fix order dependent tests in SofaRpcFallbackRegistryTest (#3282)

Dashboard

  • Add simple Dockerfile for Sentinel dashboard (#2970)

Dependencies

  • Update snakeyaml to 1.32 in sentinel-cluster/sentinel-cluster-server-envoy-rls module (#2921)
  • Update dubbo to 2.7.18 in sentinel-demo/sentinel-demo-apache-dubbo (#2923)
  • Update protobuf & gRPC version of adapter modules to fix macOS aarch64 compile error (#2993)
  • Upgrade curator-recipes to 5.1.0 to fix API change for ZooKeeper data-source (#2963)

Thanks for all contributors: @sczyh30, @wuwen5, @xiaozzzi, @EzrealOf, @wilsonwu, @kirklin, @garroshh, @JosephZhang3, @LiYangSir, @Yan1025, @wenshao, @pandaapo, @frank-zsy, @z521598, @LearningGp, @robberphex, @clara0, @karl-sy, @SaaiVenkat

v2.0.0-alpha

28 Feb 06:32
Compare
Choose a tag to compare
v2.0.0-alpha Pre-release
Pre-release

This is the first preview version of nouveau Sentinel 2.0, bringing the building blocks and basic implementation of traffic routing and load balancing.

Features / Enhancements

  • Add building blocks and basic implementation of traffic routing and load balancing (#3024)
  • Add data-source extension for OpenSergo fault-tolerance spec (#2842)
  • Add default circuit breaker rule support (#2232)
  • Refine throttling control behavior of FlowRule: improve accuracy and support maxQps > 1000 (#2951)
  • Update metrics name for better monitor selection in JMX MetricBeanWriter extension (#2976)

Bug Fixes

  • Fix NPE bug in LogSlot#entry when recording rule ID (#2980)
  • Fix the bug that error occurs in JMX metrics exporter when resource name contains '*' (#2992)
  • Fix thread-blocked problem of EtcdDataSource (#2991)
  • Fix potential connection leak bug when closing NacosDataSource (#2962)

Dashboard

  • Add simple Dockerfile for Sentinel dashboard (#2970)

Dependencies

  • Upgrade curator-recipes to 5.1.0 to fix API change for ZooKeeper data-source (#2963)

v1.8.6

26 Oct 08:43
Compare
Choose a tag to compare

This release ships with a few enhancements and bug fixes.

Furthermore, Sentinel OpenSergo data-source has been beta-available (com.alibaba.csp:sentinel-datasource-opensergo:0.1.0-beta), which enables developers to configure Sentinel rules with OpenSergo fault-tolerance CRD in a unified way (under Kubernetes, with OpenSergo control plane).

Features / Enhancements

  • Add id field in Rule entity and record rule ID in block log (#2853)

Bug Fixes

  • Fix Dubbo SPI path bug in Dubbo 3.x adapter (#2822)
  • Fix the bug that SpiLoader#closeResources may not record the exception when error occurs (#2890)

Dashboard

  • Improve IP validation in SentinelApiClient and rule controllers

Thanks for all contributors: @AlbumenJ, @hongpy, @icodening, @PepoRobert, @sczyh30, @ZhongJinHacker

v1.8.5

09 Aug 01:50
Compare
Choose a tag to compare

Features / Enhancements

  • Add adapter for Apache Dubbo 3.x (#2789)
  • Auto-extract value from ParamFlowArgument when blocked in ParamFlowSlot (#2776)

Dashboard

  • Refactor IP verify logic in MachineRegistryController to support JDK 17 (#2694)
  • Fix deprecated Spring config key in application.properties (#2713)

Dependencies

  • Upgrade fastjson to 1.2.83_noneautotype

Thanks for all contributors: @AlbumenJ, @benyamin2014, @icodening, @jgzl, @sczyh30, @zuohl

v1.8.4

12 Apr 11:09
Compare
Choose a tag to compare

Features / Enhancements

  • Add interceptor SPI for transport command handler (#2587)
  • Add log level configuration support for common logs (#2514)
  • Improve AuthorityRuleManager: replace the rule map instead of clear-then-insert when updating rules (#2655)

Bug Fixes

  • Fix param args missing bug in fireExit of StatisticSlot (#2523)
  • Fix maxQueueingTimeoutMs checking logic in GatewayRuleManager#isValidRule (#2609)
  • Fix DynamicSentinelProperty synchronized listener set iterator race-condition problem (#2519)
  • Use CopyOnWriteArraySet for cluster ConnectionGroup#connectionSet to avoid iterator fast-fail (#2559)

Integrations

  • Add support for customizing ConfigurableRequestItemParser for Spring Cloud Gateway and Zuul adapter (#2542)
  • Use unified entrance context name by default in Spring WebFlux adapter (#2610)

Dashboard

  • Fix incorrect alert message for intervalMs validation in circuit breaker rule dialog (#2483)
  • Fix the bug that removing token servers may fail when there are multiple servers with the same IP (#2591)

Dependencies

  • Update Spring Boot starter to 2.5.12 for Sentinel dashboard
  • Upgrade nacos-client to 1.4.2 for sentinel-datasource-nacos

Thanks for all contributors: @brotherlu-xcq, @code-ferry, @DollarB, @howiekang, @icodening, @Reagan1947, @Roger3581321, @sczyh30, @tain198127, @zhaoxinhu, @zhuyou1234

v1.8.3

31 Dec 07:11
Compare
Choose a tag to compare

Features / Enhancements

  • Add support for Envoy RLS v3 API in sentinel-cluster-server-envoy-rls token server module (#2336)
  • Add metric exporter extension for exporting Sentinel metrics via JMX (#2275)

Bug Fixes

  • Fix inbound QPS mode of system rule: use passQps instead of completeQps and support batchCount (#2455)
  • Fix the bug that legacy API matchers in ScGatewayApiMatcherManager were not removed after the API group has been removed (#2436)

Integrations

  • Add ACL token support for Consul data-source (#2307)

Dashboard

  • Fix dashboard logo problem when customizing the context-path of the backend (#2253)
  • Add IP validation in API of MachineRegistryController

Thanks for all contributors: @brotherlu-xcq, @chenzhiguo, @sczyh30, @shaohsiung, @su787910081, @winjaychan, @wucheng1997, @xiaojun207, @xianwdong

v1.8.2

06 Jul 01:40
Compare
Choose a tag to compare

Features / Enhancements

  • Improve performance of TimeUtil adaptively in different load conditions (#1746)
  • Support private-level blockHandler/fallback method for @SentinelResource annotation (#2163)
  • Add sentinel-transport-spring-mvc module (Spring Web as command center) (#1957)
  • Support Redis cluster mode in Redis data-source extension (#1751)
  • Support config from system env in SentinelConfig and polish TransportConfig in transport-common module (#2154)
  • Make all backend thread pools daemon (#2181)

Dashboard

  • Improve support for customizing auth-related implementations (#2059)

Dependencies

  • Upgrade Netty to 4.1.48.Final in sentinel-cluster modules

Thanks for all contributors: @Amitbhave, @Anilople, @brotherlu-xcq, @cdfive, @drgnchan, @goodjava, @gvma, @huakai-zhang, @jasonjoo2010, @jiajiangnan, @JJFly-JOJO, @JerryChin, @liqiangz, @quaff, @Roger3581321, @ShubhamPalriwala, @Slideee, @SparkLee, @sczyh30, @shenbaoyong, @ss-superman, @VegetaPn, @wutingjia, @wuwen5, @zhangyunan1994

v1.8.1

04 Feb 08:12
Compare
Choose a tag to compare

NOTE: Since 1.8.1, Sentinel requires JDK 1.8 or higher version.

Features / Enhancements

  • Refactor SpiLoader and enhance SPI mechanism (#1383)
  • Add basic cluster concurrency limiting implementation in token server module (#1631)
  • Add Motan RPC adapter implementation (#1825)
  • Improve default block fallback logic in Dubbo 2.6.x adapter to avoid serialization problem (#1794)
  • Support setting flush interval of the metric log via SentinelConfig property (#1919)
  • Support both HTTP and HTTPS protocol in transport heartbeat module (#1896)
  • Make token client NettyTransportClient.getCurrentId() thread safe (#1707)

Bug fixes

  • Fix NPE bug when updating gateway flow rules and param flow rules before the route/API has been requested once (#1729, #1901)
  • Fix the bug that getServletPath() may return empty when matching URL in Zuul 1.x adapter (#1605)
  • Fix the problem that requests will never be blocked when slowRatioThreshold = 100% (#1779)

Dashboard

  • Add statIntervalMs field in DegradeRule dialog (#1781)
  • Add support for matching path pattern like /xx/** in authFilterExcludeUrls (#1971)
  • Fix issue of memory leak in real-time monitoring page (#1905)
  • Improve MetricFetcher under concurrent conditions (#1918)

Dependencies

  • Upgrade fastjson to 1.2.75
  • Upgrade snakeyaml to 1.26 in sentinel-cluster-server-envoy-rls module

Thanks for all contributors: @brothelul, @cdfive, @dani3lWong, @evasnowind, @HelloCoCooo, @jasonjoo2010, @JiangZian, @JieGz, @John-Chan, @liuming-dev, @mikawudi, @nickChenyx, @odidev, @polarbear567, @PeineLiang, @samuelxw, @sczyh30, @vipweihua, @wzg923, @xierunzi, @xierunzi, @xuande, @yunfeiyanggzq, @zcai2, @zhangkai253, @zhangxn8, @zhouyongshen

v1.8.0

21 Aug 01:49
Compare
Choose a tag to compare

This nouveau release ships with countless features and improvements, specifically for circuit breaking. We've made progress on refactoring and improving circuit breaking feature, including arbitrary statistic duration support, half-open recovery, enhanced slow request ratio strategy, state change observer and more. We've also brought various versatile integrations including Java EE (JAX-RS and CDI), Quarkus and HTTP client (Apache HttpClient and OkHttp), which could cover more developers.

Features / Enhancements

  • Refactor degrade hierarchy with new circuit breaker mechanism and improve strategy (support arbitrary statistic duration, support half-open recovery, add slow request ratio strategy) (#1490, #1645)
  • Support setting project.name via the properties file and deprecate legacy config path (#1412, #1437)
  • Refactor the mechanism of recording exception (on completed) and polish Tracer (#1420)
  • Support setting class-level defaultFallback for annotation extension (#1493)
  • Add JAX-RS integration module (#1396)
  • Add annotation extension for Java EE CDI (#1541)
  • Add Sentinel annotation and JAX-RS plugins for Quarkus (#1542)
  • Add Apache HttpClient integration module (#1455)
  • Add OkHttp integration module (#1456)
  • Add Eureka data-source extension (#1502)
  • Add exceptionPredicate in Tracer for customized exception filtering logic (#1496)
  • Improve purge mechanism for deprecated ParameterMetric (#1372)
  • Support customized origin parser in Dubbo 2.6.x/2.7.x adapter and polish config mechanism (#1555, #1572, #1617)
  • Add support for extracting parameter value from complex object (#1491)
  • Add extended interface for metric extension hook to support distinguishing traffic type (#1665)
  • Improve default fallback for Apache Dubbo 2.7.x adapter (#1680)
  • Add per-Entry exit handler (whenTerminate) support (#1645)
  • Optimize the order of slots in ProcessorSlot SPI config (#1649)

Bug fixes

  • Fix sentinel-apache-dubbo-adapter full GC bug (#1431)
  • Fix the bug that may cause ErrorEntryFreeException when forwarding requests in sentinel-spring-webmvc-adapter (#1533, #1681)
  • Fix the bug of extracting request cookie in Spring Cloud Gateway adapter (#1400)
  • Fix the bug of misplaced locks in ContextUtil and ClusterNode (#1429)

Dashboard

  • Refactor degrade frontend/controller and adapt to new circuit breaking features
  • Fix the bug that cookie may have conflict with web applications under the same domain (#1443)
  • Fix historical version compatibility problem for auth checking via localStorage (#1473)

Dependencies

  • Upgrade fastjson to 1.2.71, nacos-client to 1.3.0 (in sentinel-datasource-nacos module)

Thanks for all contributors: @Billzaifei, @cdfive, @chenzhiguo, @CodingSinger, @dogbaobao, @jasonjoo2010, @J-Cod3r, @JiangZian, @John-Chan, @joooohnli, @linlinisme, @liqiangz, @pleasecheckhere2016, @PeineLiang, @RGaius, @sczyh30, @seasidesky, @wavesZh, @xiby, @Yanghf123, @yunfeiyanggzq, @zhaoyuguang, @zhenxianyimeng

v1.7.2

08 Apr 06:17
Compare
Choose a tag to compare

In this version, we've brought breaking changes about the slot SPI mechanism. The slot chain builder SPI has been deprecated (legacy classes were reserved for compatibility). Now Sentinel will take ProcessorSlot itself as SPI. Note that the slot might be stateful, so Sentinel will still build different new slot chains for each resource.

Furthermore, a new Logger SPI mechanism is introduced for flexible logging extension. The default RecordLog implementation is still based on java.util.logging, and developers could introduce dependencies of logging integration module to adapt to existing logging libraries (e.g. slf4j). See here for more details.

Features / Enhancements

  • Add SOFARPC adapter module (#1307)
  • Add Zuul 2.x gateway adapter module (#1138)
  • Refactor: Make ProcessorSlot itself as SPI and deprecate legacy slot chain builder (#411)
  • Add new Logger SPI to support flexible logging extension mechanism and add general JUL adapter for Logger SPI (#1307, #1338)
  • Polish placeholders in logging content to slf4j convention (#1342)
  • Add slf4j logging extension (#1344)
  • Add "web-context-unify" config in Spring WebMVC adapter to support "chain" relation flow strategy (#1328)
  • Improve Dubbo 2.7.5 compatibility problem in sentinel-apache-dubbo-adapter (#1296)
  • Force modifyRule command handler to fail if an incompatible old fastjson found (#1377)
  • Calculate both process and system CPU usage to support single process running in container environment (#1204)
  • Improve the logs when the heartbeat response indicates failure (#1303)

Bug fixes

  • Fix NPE bug in Tracer when context size exceeds the limit (#1293)
  • Fix the parsing issue in large post request for sentinel-transport-simple-http (#1255)
  • Fix the bug that context was not released when blocked in Spring Web adapter (#1353)
  • Fix timezone problem of sentinel-block.log
  • Fix incorrect name resolving cache issue in sentinel-transport-simple-http (resolved in #926 more details in #1583)

Dashboard

  • Improve the compatibility on the Content-Type header of POST request (#1260)
  • Enhance reliability and performance of InMemoryMetricsRepository (#1319)
  • Support setting value pattern for client IP and host in gateway flow rule dialog (#1325)
  • Hide advanced options in flow rule dialog when cluster mode is selected (#1367)
  • Fix NoNodeException problem of FlowRuleZookeeperProvider sample (#1352)

Thanks for the contributors: @cdfive, @echooymxq, @jasonjoo2010, @jy2156121, @linlinisme, @mantuliu, @olof-nord, @sczyh30, @tianhaowhu, @wavesZh, @WongTheo, @xue8, @zhaoyuguang