Release Apache SkyWalking APM 8.4.0

Release Apache SkyWalking 8.4.0.

SkyWalking 8.4.0 is released. Go to downloads page to find release tars. Changes by Version

Project

  • Incompatible with previous releases when use H2/MySQL/TiDB storage options, due to support multiple alarm rules triggered for one entity.
  • Chore: adapt create_source_release.sh to make it runnable on Linux.
  • Add package to .proto files, prevent polluting top-level namespace in some languages; The OAP server supports previous agent releases, whereas the previous OAP server (<=8.3.0) won’t recognize newer agents since this version (>= 8.4.0).
  • Add ElasticSearch 7.10 to test matrix and verify it works.
  • Replace Apache RAT with skywalking-eyes to check license headers.
  • Set up test of Envoy ALS / MetricsService under Istio 1.8.2 to verify Envoy V3 protocol
  • Test: fix flaky E2E test of Kafka.

Java Agent

  • The operation name of quartz-scheduler plugin, has been changed as the quartz-scheduler/${className} format.
  • Fix jdk-http and okhttp-3.x plugin did not overwrite the old trace header.
  • Add interceptors of method(analyze, searchScroll, clearScroll, searchTemplate and deleteByQuery) for elasticsearch-6.x-plugin.
  • Fix the unexpected RunningContext recreation in the Tomcat plugin.
  • Fix the potential NPE when trace_sql_parameters is enabled.
  • Update byte-buddy to 1.10.19.
  • Fix thrift plugin trace link broken when intermediate service does not mount agent
  • Fix thrift plugin collects wrong args when the method without parameter.
  • Fix DataCarrier’s org.apache.skywalking.apm.commons.datacarrier.buffer.Buffer implementation isn’t activated in IF_POSSIBLE mode.
  • Fix ArrayBlockingQueueBuffer’s useless IF_POSSIBLE mode list
  • Support building gRPC TLS channel but CA file is not required.
  • Add witness method mechanism in the agent plugin core.
  • Add Dolphinscheduler plugin definition.
  • Make sampling still works when the trace ignores plug-in activation.
  • Fix mssql-plugin occur ClassCastException when call the method of return generate key.
  • The operation name of dubbo and dubbo-2.7.x-plugin, has been changed as the groupValue/className.methodName format
  • Fix bug that rocketmq-plugin set the wrong tag.
  • Fix duplicated EnhancedInstance interface added.
  • Fix thread leaks caused by the elasticsearch-6.x-plugin plugin.
  • Support reading segmentId and spanId with toolkit.
  • Fix RestTemplate plugin recording url tag with wrong port
  • Support collecting logs and forwarding through gRPC.
  • Support config agent.sample_n_per_3_secs can be changed in the runtime.
  • Support config agent.ignore_suffix can be changed in the runtime.
  • Support DNS periodic resolving mechanism to update backend service.
  • Support config agent.trace.ignore_path can be changed in the runtime.
  • Added support for transmitting logback 1.x and log4j 2.x formatted & un-formatted messages via gPRC

OAP-Backend

  • Make meter receiver support MAL.
  • Support influxDB connection response format option. Fix some error when use JSON as influxDB response format.
  • Support Kafka MirrorMaker 2.0 to replicate topics between Kafka clusters.
  • Add the rule name field to alarm record storage entity as a part of ID, to support multiple alarm rules triggered for one entity. The scope id has been removed from the ID.
  • Fix MAL concurrent execution issues.
  • Fix group name can’t be queried in the GraphQL.
  • Fix potential gRPC connection leak(not closed) for the channels among OAP instances.
  • Filter OAP instances(unassigned in booting stage) of the empty IP in KubernetesCoordinator.
  • Add component ID for Python aiohttp plugin requester and server.
  • Fix H2 in-memory database table missing issues
  • Add component ID for Python pyramid plugin server.
  • Add component ID for NodeJS Axios plugin.
  • Fix searchService method error in storage-influxdb-plugin.
  • Add JavaScript component ID.
  • Fix CVE of UninstrumentedGateways in Dynamic Configuration activation.
  • Improve query performance in storage-influxdb-plugin.
  • Fix the uuid field in GRPCConfigWatcherRegister is not updated.
  • Support Envoy {AccessLog,Metrics}Service API V3.
  • Adopt the MAL in Envoy metrics service analyzer.
  • Fix the priority setting doesn’t work of the ALS analyzers.
  • Fix bug that endpoint-name-grouping.yml is not customizable in Dockerized case.
  • Fix bug that istio version metric type on UI template mismatches the otel rule.
  • Improve ReadWriteSafeCache concurrency read-write performance
  • Fix bug that if use JSON as InfluxDB.ResponseFormat then NumberFormatException maybe occur.
  • Fix timeBucket not taking effect in EqualsAndHashCode annotation of some relationship metrics.
  • Fix SharingServerConfig’s propertie is not correct in the application.yml, contextPath -> restConnextPath.
  • Istio control plane: remove redundant metrics and polish panel layout.
  • Fix bug endpoint name grouping not work due to setting service name and endpoint name out of order.
  • Fix receiver analysis error count metrics.
  • Log collecting and query implementation.
  • Support Alarm to feishu.
  • Add the implementation of ConfigurationDiscovery on the OAP side.
  • Fix bug in parseInternalErrorCode where some error codes are never reached.
  • OAL supports multiple values when as numeric.
  • Add node information from the Openensus proto to the labels of the samples, to support the identification of the source of the Metric data.
  • Fix bug that the same sample name in one MAL expression caused IllegalArgumentException in Analyzer.analyse.
  • Add the text analyzer for querying log in the es storage.
  • Chore: Remove duplicate codes in Envoy ALS handler.
  • Remove the strict rule of OAL disable statement parameter.
  • Fix a legal metric query adoption bug. Don’t support global level metric query.
  • Add VM MAL and ui-template configration, support Prometheus node-exporter VM metrics that pushed from OpenTelemetry-collector.
  • Remove unused log query parameters.

UI

  • Fix un-removed tags in trace query.
  • Fix unexpected metrics name on single value component.
  • Don’t allow negative value as the refresh period.
  • Fix style issue in trace table view.
  • Separation Log and Dashboard selector data to avoid conflicts.
  • Fix trace instance selector bug.
  • Fix Unnecessary sidebar in tooltips for charts.
  • Refactor dashboard query in a common script.
  • Implement refreshing data for topology by updating date.
  • Implement group selector in the topology.
  • Fix all as default parameter for services selector.
  • Add icon for Python aiohttp plugin.
  • Add icon for Python pyramid plugin.
  • Fix topology render all services nodes when groups changed.
  • Fix rk-footer utc input’s width.
  • Update rk-icon and rewrite rk-header svg tags with rk-icon.
  • Add icon for http type.
  • Fix rk-footer utc without local storage.
  • Sort group names in the topology.
  • Add logo for Dolphinscheduler.
  • Fix dashboard wrong instance.
  • Add a legend for the topology.
  • Update the condition of unhealthy cube.
  • Fix: use icons to replace buttons for task list in profile.
  • Fix: support = in the tag value in the trace query page.
  • Add envoy proxy component logo.
  • Chore: set up license-eye to check license headers and add missing license headers.
  • Fix prop for instances-survey and endpoints-survey.
  • Fix envoy icon in topology.
  • Implement the service logs on UI.
  • Change the flask icon to light version for a better view of topology dark theme.
  • Implement viewing logs on trace page.
  • Fix update props of date component.
  • Fix query conditions for logs.
  • Fix style of selectors to word wrap.
  • Fix logs time.
  • Fix search ui for logs.

Documentation

  • Update the documents of backend fetcher and self observability about the latest configurations.
  • Add documents about the group name of service.
  • Update docs about the latest UI.
  • Update the document of backend trace sampling with the latest configuration.
  • Update kafka plugin support version to 2.6.1.
  • Add FAQ about Fix compiling on Mac M1 chip.

All issues and pull requests are here