Releases: apache/skywalking
8.8.1
Download
https://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
OAP Server
- Fix wrong (de)serializer of ElasticSearch client for OpenSearch storage.
- Fix that traces query with tags will report error.
- Replace e2e simple cases to e2e-v2.
- Fix endpoint dependency breaking.
UI
- Delete duplicate calls for endpoint dependency.
Documentation
All issues and pull requests are here
8.8.0
Download
https://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
Project
- Split javaagent into skywalking-java repository. https://github.com/apache/skywalking-java
- Merge
Dockerfile
s from apache/skywalking-docker into this codebase.
OAP Server
- Fix CVE-2021-35515, CVE-2021-35516, CVE-2021-35517, CVE-2021-36090. Upgrade org.apache.commons:commons-compress to 1.21.
- kubernetes java client upgrade from 12.0.1 to 13.0.0
- Add
event
http receiver - Support Metric level function
serviceRelation
inMAL
. - Support envoy metrics binding into the topology.
- Fix openapi-definitions folder not being read correctly.
- Trace segment wouldn't be recognized as a TopN sample service. Add through #4694 experimentally, but it caused
performance impact. - Remove
version
andendTime
in the segment entity. Reduce indexing payload. - Fix
mapper_parsing_exception
in ElasticSearch 7.14. - Support component IDs for Go-Kratos framework.
- [Break Change] Remove endpoint name in the trace query condition. Only support
query by endpoint id
. - Fix
ProfileSnapshotExporterTest
case onOpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
,
MacOS. - [Break Change] Remove page path in the browser log query condition. Only support
query by page path id
. - [Break Change] Remove endpoint name in the backend log query condition. Only support
query by endpoint id
. - [Break Change] Fix typo for a column
page_path_id
(waspate_path_id
) of storage entitybrowser_error_log
. - Add component id for Python falcon plugin.
- Add
rpcStatusCode
forrpc.status_code
tag. TheresponseCode
field is marked as deprecated and replaced
byhttpResponseStatusCode
field. - Remove the duplicated tags to reduce the storage payload.
- Add a new API to test log analysis language.
- Harden the security of Groovy-based DSL, MAL and LAL.
- Fix distinct in Service/Instance/Endpoint query is not working.
- Support collection type in dynamic configuration core.
- Support zookeeper grouped dynamic configurations.
- Fix NPE when OAP nodes synchronize events with each other in cluster mode.
- Support k8s configmap grouped dynamic configurations.
- Add desc sort function in H2 and ElasticSearch implementations of IBrowserLogQueryDAO
- Support configure sampling policy by
configuration module
dynamically and static configuration
filetrace-sampling-policy-settings.yml
for service dimension on the backend side. Dynamic
configurationsagent-analyzer.default.sampleRate
andagent-analyzer.default.slowTraceSegmentThreshold
are replaced
byagent-analyzer.default.traceSamplingPolicy
. Static configurationsagent-analyzer.default.sampleRate
andagent-analyzer.default.slowTraceSegmentThreshold
are replaced
byagent-analyzer.default.traceSamplingPolicySettingsFile
. - Fix dynamic configuration watch implementation current value not null when the config is deleted.
- Fix
LoggingConfigWatcher
returnwatch.value
would not consistent with the real configuration content. - Fix
ZookeeperConfigWatcherRegister.readConfig()
could causeNPE
whendata.getData()
is null. - Support nacos grouped dynamic configurations.
- Support for filter function filtering of int type values.
- Support mTLS for gRPC channel.
- Add yaml file suffix limit when reading ui templates.
- Support consul grouped dynamic configurations.
- Fix
H2MetadataQueryDAO.searchService
doesn't support auto grouping. - Rebuilt ElasticSearch client on top of their REST API.
- Fix ElasticSearch storage plugin doesn't work when hot reloading from
secretsManagementFile
. - Support etcd grouped dynamic configurations.
- Unified the config word
namespace
in the project. - Switch JRE base image for dev images.
- Support apollo grouped dynamic configurations.
- Fix
ProfileThreadSnapshotQuery.queryProfiledSegments
adopts a wrong sort function - Support gRPC sync grouped dynamic configurations.
- Fix
H2EventQueryDAO
doesn't sort data by Event.START_TIME and uses a wrong pagination query. - Fix
LogHandler
ofkafka-fetcher-plugin
cannot recognize namespace. - Improve the speed of writing TiDB by batching the SQL execution.
- Fix wrong service name when IP is node IP in
k8s-mesh
. - Support dynamic configurations for openAPI endpoint name grouping rule.
- Add component definition for
Alibaba Druid
andHikariCP
. - Fix
Hour
andDay
dimensionality metrics not accurate, due to the cache read-then-clear mechanism conflicts with
low down metrics flush period added in 8.7.0. - Fix
Slow SQL sampling
not accurate, due to TopN works conflict with cache read-then-clear mechanism. - The persistent cache is only read when necessary.
- Add component definition for
Alibaba Fastjson
. - Fix entity(service/instance/endpoint) names in the MAL system(prometheus, native meter, open census, envoy metric
service) are not controlled by core's naming-control mechanism. - Upgrade netty version to 4.1.68.Final avoid cve-2021-37136.
UI
- Fix not found error when refresh UI.
- Update endpointName to endpointId in the query trace condition.
- Add Python falcon icon on the UI.
- Fix searching endpoints with keywords.
- Support clicking the service name in the chart to link to the trace or log page.
- Implement the Log Analysis Language text regexp debugger.
- Fix fetching nodes and calls with serviceIds on the topology side.
- Implement Alerts for query errors.
Documentation
- Add a section in
Log Collecting And Analysis
doc, introducing the new Python agent log reporter. - Add one missing step in
otel-receiver
doc about how to activate the default receiver. - Reorganize dynamic configuration doc.
- Add more description about meter configurations in
backend-meter
doc. - Fix typo in
endpoint-grouping-rules
doc.
All issues and pull requests are here
8.7.0
Download
https://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
Project
- Extract dependency management to a bom.
- Add JDK 16 to test matrix.
- DataCarrier consumer add a new event notification, call
nothingToConsume
method if the queue has no element to
consume. - Build and push snapshot Docker images to GitHub Container Registry, this is only for people who want to help to test
the master branch codes, please don't use in production environments.
Java Agent
- Supports modifying span attributes in async mode.
- Agent supports the collection of JVM arguments and jar dependency information.
- [Temporary] Support authentication for log report channel. This feature and grpc channel is going to be removed after
Satellite 0.2.0 release. - Remove deprecated gRPC method,
io.grpc.ManagedChannelBuilder#nameResolverFactory
.
See gRPC-java 7133 for more details. - Add
Neo4j-4.x
plugin. - Correct
profile.duration
toprofile.max_duration
in the defaultagent.config
file. - Fix the response time of gRPC.
- Support parameter collection for SqlServer.
- Add
ShardingSphere-5.0.0-beta
plugin. - Fix some method exception error.
- Fix async finish repeatedly in
spring-webflux-5.x-webclient
plugin. - Add agent plugin to support Sentinel.
- Move
ehcache-2.x
plugin as an optional plugin. - Support
guava-cache
plugin. - Enhance the compatibility of
mysql-8.x-plugin
plugin. - Support Kafka SASL login module.
- Fix gateway plugin async finish repeatedly when fallback url configured.
- Chore: polish methods naming for
Spring-Kafka
plugins. - Remove plugins for ShardingSphere legacy version.
- Update agent plugin for ElasticJob GA version
- Remove the logic of generating instance name in
KafkaServiceManagementServiceClient
class. - Improve
okhttp
plugin performance by optimizing Class.getDeclaredField(). - Fix
GRPCLogClientAppender
no context warning. - Fix
spring-webflux-5.x-webclient-plugin
NPE.
OAP-Backend
- Disable Spring sleuth meter analyzer by default.
- Only count 5xx as error in Envoy ALS receiver.
- Upgrade apollo core caused by CVE-2020-15170.
- Upgrade kubernetes client caused by CVE-2020-28052.
- Upgrade Elasticsearch 7 client caused by CVE-2020-7014.
- Upgrade jackson related libs caused by CVE-2018-11307, CVE-2018-14718 ~ CVE-2018-14721, CVE-2018-19360 ~
CVE-2018-19362, CVE-2019-14379, CVE-2019-14540, CVE-2019-14892, CVE-2019-14893, CVE-2019-16335, CVE-2019-16942,
CVE-2019-16943, CVE-2019-17267, CVE-2019-17531, CVE-2019-20330, CVE-2020-8840, CVE-2020-9546, CVE-2020-9547,
CVE-2020-9548, CVE-2018-12022, CVE-2018-12023, CVE-2019-12086, CVE-2019-14439, CVE-2020-10672, CVE-2020-10673,
CVE-2020-10968, CVE-2020-10969, CVE-2020-11111, CVE-2020-11112, CVE-2020-11113, CVE-2020-11619, CVE-2020-11620,
CVE-2020-14060, CVE-2020-14061, CVE-2020-14062, CVE-2020-14195, CVE-2020-24616, CVE-2020-24750, CVE-2020-25649,
CVE-2020-35490, CVE-2020-35491, CVE-2020-35728 and CVE-2020-36179 ~ CVE-2020-36190. - Exclude log4j 1.x caused by CVE-2019-17571.
- Upgrade log4j 2.x caused by CVE-2020-9488.
- Upgrade nacos libs caused by CVE-2021-29441 and CVE-2021-29442.
- Upgrade netty caused by CVE-2019-20444, CVE-2019-20445, CVE-2019-16869, CVE-2020-11612, CVE-2021-21290, CVE-2021-21295
and CVE-2021-21409. - Upgrade consul client caused by CVE-2018-1000844, CVE-2018-1000850.
- Upgrade zookeeper caused by CVE-2019-0201, zookeeper cluster coordinator plugin now requires zookeeper server 3.5+.
- Upgrade snake yaml caused by CVE-2017-18640.
- Upgrade embed tomcat caused by CVE-2020-13935.
- Upgrade commons-lang3 to avoid potential NPE in some JDK versions.
- OAL supports generating metrics from events.
- Support endpoint name grouping by OpenAPI definitions.
- Concurrent create PrepareRequest when persist Metrics
- Fix CounterWindow increase computing issue.
- Performance: optimize Envoy ALS analyzer performance in high traffic load scenario (reduce ~1cpu in ~10k RPS).
- Performance: trim useless metadata fields in Envoy ALS metadata to improve performance.
- Fix: slowDBAccessThreshold dynamic config error when not configured.
- Performance: cache regex pattern and result, optimize string concatenation in Envy ALS analyzer.
- Performance: cache metrics id and entity id in
Metrics
andISource
. - Performance: enhance persistent session mechanism, about differentiating cache timeout for different dimensionality
metrics. The timeout of the cache for minute and hour level metrics has been prolonged to ~5 min. - Performance: Add L1 aggregation flush period, which reduce the CPU load and help young GC.
- Support connectTimeout and socketTimeout settings for ElasticSearch6 and ElasticSearch7 storages.
- Re-implement storage session mechanism, cached metrics are removed only according to their last access timestamp,
rather than first time. This makes sure hot data never gets removed unexpectedly. - Support session expired threshold configurable.
- Fix InfluxDB storage-plugin Metrics#multiGet issue.
- Replace zuul proxy with spring cloud gateway 2.x. in webapp module.
- Upgrade etcd cluster coordinator and dynamic configuration to v3.x.
- Configuration: Allow configuring server maximum request header size and ES index template order.
- Add thread state metric and class loaded info metric to JVMMetric.
- Performance: compile LAL DSL statically and run with type checked.
- Add pagination to event query protocol.
- Performance: optimize Envoy error logs persistence performance.
- Support envoy
cluster manager
metrics. - Performance: remove the synchronous persistence mechanism from batch ElasticSearch DAO. Because the current enhanced
persistent session mechanism, don't require the data queryable immediately after the insert and update anymore. - Performance: share
flushInterval
setting for both metrics and record data, due
tosynchronous persistence mechanism
removed. Record flush interval used to be hardcoded as 10s. - Remove
syncBulkActions
in ElasticSearch storage option. - Increase the default bulkActions(env, SW_STORAGE_ES_BULK_ACTIONS) to 5000(from 1000).
- Increase the flush interval of ElasticSearch indices to 15s(from 10s)
- Provide distinct for elements of metadata lists. Due to the more aggressive asynchronous flush, metadata lists have
more chances including duplicate elements. Don't need this as indicate anymore. - Reduce the flush period of hour and day level metrics, only run in 4 times of regular persistent period. This means
default flush period of hour and day level metrics are 25s * 4. - Performance: optimize IDs read of ElasticSearch storage options(6 and 7). Use the physical index rather than template
alias name. - Adjust index refresh period as INT(flushInterval * 2/3), it used to be as same as bulk flush period. At the edge case,
in low traffic(traffic < bulkActions in the whole period), there is a possible case, 2 period bulks are included in
one index refresh rebuild operation, which could cause version conflicts. And this case can't be fixed
throughcore/persistentPeriod
as the bulk fresh is not controlled by the persistent timer anymore. - The
core/maxSyncOperationNum
setting(added in 8.5.0) is removed due to metrics persistence is fully asynchronous. - The
core/syncThreads
setting(added in 8.5.0) is removed due to metrics persistence is fully asynchronous. - Optimization: Concurrency mode of execution stage for metrics is removed(added in 8.5.0). Only concurrency of prepare
stage is meaningful and kept. - Fix
-meters
metrics topic isn't created with namespace issue - Enhance persistent session timeout mechanism. Because the enhanced session could cache the metadata metrics forever,
new timeout mechanism is designed for avoiding this specific case. - Fix Kafka transport topics are created duplicated with and without namespace issue
- Fix the persistent session timeout mechanism bug.
- Fix possible version_conflict_engine_exception in bulk execution.
- Fix PrometheusMetricConverter may throw an
IllegalArgumentException
when convert metrics to SampleFamily - Filtering NaN value samples when build SampleFamily
- Add Thread and ClassLoader Metrics for the self-observability and otel-oc-rules
- Simple optimization of trace sql query statement. Avoid "select *" query method
- Introduce dynamical logging to update log configuration at runtime
- Fix Kubernetes ConfigMap configuration center doesn't send delete event
- Breaking Change: emove
qps
and addrpm
in LAL
UI
- Fix the date component for log conditions.
- Fix selector keys for duplicate options.
- Add Python celery plugin.
- Fix default config for metrics.
- Fix trace table for profile ui.
- Fix the error of server response time in the topology.
- Fix chart types for setting metrics configure.
- Fix logs pages number.
- Implement a timeline for Events in a new page.
- Fix style for event details.
Documentation
- Add FAQ about
Elasticsearch exception type=version_conflict_engine_exception since 8.7.0
- Add Self Observability service discovery (k8s).
- Add sending Envoy Metrics to OAP in envoy 1.19 example and bump up to Envoy V3 api.
All issues and pull requests are here
8.6.0
Download
https://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
Project
- Add OpenSearch as storage option.
- Upgrade Kubernetes Java client dependency to 11.0.
- Fix plugin test script error in macOS.
Java Agent
- Add
trace_segment_ref_limit_per_span
configuration mechanism to avoid OOM. - Improve
GlobalIdGenerator
performance. - Add an agent plugin to support elasticsearch7.
- Add
jsonrpc4j
agent plugin. - new options to support multi skywalking cluster use same kafka cluster(plugin.kafka.namespace)
- resolve agent has no retries if connect kafka cluster failed when bootstrap
- Add Seata in the component definition. Seata plugin hosts on Seata project.
- Extended Kafka plugin to properly trace consumers that have topic partitions directly assigned.
- Support Kafka consumer 2.8.0.
- Support print SkyWalking context to logs.
- Add
MessageListener
enhancement in pulsar plugin. - fix a bug that spring-mvc set an error endpoint name if the controller class annotation implements an interface.
- Add an optional agent plugin to support mybatis.
- Add
spring-cloud-gateway-3.x
optional plugin. - Add
okhttp-4.x
plugin. - Fix NPE when thrift field is nested in plugin
thrift
- Fix possible NullPointerException in agent's ES plugin.
- Fix the conversion problem of float type in ConfigInitializer.
- Fixed part of the dynamic configuration of ConfigurationDiscoveryService that does not take effect under certain circumstances.
- Introduce method interceptor API v2
- Fix ClassCast issue for RequestHolder/ResponseHolder.
- fixed
jdk-threading-plugin
memory leak. - Optimize multiple field reflection operation in Feign plugin.
- Fix
trace-ignore-plugin
TraceIgnorePathPatterns can't set empty value
OAP-Backend
- BugFix: filter invalid Envoy access logs whose socket address is empty.
- Fix K8s monitoring the incorrect metrics calculate.
- Loop alarm into event system.
- Support alarm tags.
- Support WeLink as a channel of alarm notification.
- Fix: Some defensive codes didn't work in
PercentileFunction combine
. - CVE: fix Jetty vulnerability. https://nvd.nist.gov/vuln/detail/CVE-2019-17638
- Fix: MAL function would miss samples name after creating new samples.
- perf: use iterator.remove() to remove modulesWithoutProvider
- Support analyzing Envoy TCP access logs and persist error TCP logs.
- Fix: Envoy error logs are not persisted when no metrics are generated
- Fix: Memory leakage of low version etcd client. fix-issue
- Allow multiple definitions as fallback in metadata-service-mapping.yaml file and
k8sServiceNameRule
. - Fix: NPE when configmap has no data.
- Fix: Dynamic Configuration key
slowTraceSegmentThreshold
not work - Fix:
!=
is not supported in oal when parameters are numbers. - Include events of the entity(s) in the alarm.
- Support
native-json
format log in kafka-fetcher-plugin. - Fix counter misuse in the alarm core. Alarm can't be triggered in time.
- Events can be configured as alarm source.
- Make the number of core worker in meter converter thread pool configurable.
- Add HTTP implementation of logs reporting protocol.
- Make metrics exporter still work even when storage layer failed.
- Fix Jetty HTTP
TRACE
issue, disable HTTP methods exceptPOST
. - CVE: upgrade snakeyaml to prevent billion laughs attack in dynamic configuration.
- polish debug logging avoids null value when the segment ignored.
UI
- Add logo for kong plugin.
- Add apisix logo.
- Refactor js to ts for browser logs and style change.
- When creating service groups in the topology, it is better if the service names are sorted.
- Add tooltip for dashboard component.
- Fix style of endpoint dependency.
- Support search and visualize alarms with tags.
- Fix configurations on dashboard.
- Support to configure the maximum number of displayed items.
- After changing the durationTime, the topology shows the originally selected group or service.
- remove the no use maxItemNum for labeled-value metric, etc.
- Add Azure Functions logo.
- Support search Endpoint use keyword params in trace view.
- Add a function which show the statistics infomation during the trace query.
- Remove the sort button at the column of Type in the trace statistics page.
- Optimize the APISIX icon in the topology.
- Implement metrics templates in the topology.
- Visualize Events on the alarm page.
- Update duration steps in graphs for Trace and Log.
Documentation
- Polish k8s monitoring otel-collector configuration example.
- Print SkyWalking context to logs configuration example.
- Update doc about metrics v2 APIs.
All issues and pull requests are here
8.5.0
Download
https://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
Project
- Incompatible Change. Indices and templates of ElasticSearch(6/7, including zipkin-elasticsearch7) storage option have been changed.
- Update frontend-maven-plugin to 1.11.0, for Download node x64 binary on Apple Silicon.
- Add E2E test for VM monitoring that metrics from Prometheus node-exporter.
- Upgrade lombok to 1.18.16.
- Add Java agent Dockerfile to build Docker image for Java agent.
Java Agent
- Remove invalid mysql configuration in agent.config.
- Add net.bytebuddy.agent.builder.AgentBuilder.RedefinitionStrategy.Listener to show detail message when redefine errors occur.
- Fix ClassCastException of log4j gRPC reporter.
- Fix NPE when Kafka reporter activated.
- Enhance gRPC log appender to allow layout pattern.
- Fix apm-dubbo-2.7.x-plugin memory leak due to some Dubbo RpcExceptions.
- Fix lettuce-5.x-plugin get null host in redis sentinel mode.
- Fix ClassCastException by making CallbackAdapterInterceptor to implement EnhancedInstance interface in the spring-kafka plugin.
- Fix NullPointerException with KafkaProducer.send(record).
- Support config
agent.span_limit_per_segment
can be changed in the runtime. - Collect and report agent starting / shutdown events.
- Support jedis pipeline in jedis-2.x-plugin.
- Fix apm-toolkit-log4j-2.x-activation no trace Id in async log.
- Replace hbase-1.x-plugin with hbase-1.x-2.x-plugin to adapt hbase client 2.x
- Remove the close_before_method and close_after_method parameters of custom-enhance-plugin to avoid memory leaks.
- Fix bug that springmvc-annotation-4.x-plugin, witness class does not exist in some versions.
- Add Redis command parameters to 'db.statement' field on Lettuce span UI for displaying more info.
- Fix NullPointerException with
ReactiveRequestHolder.getHeaders
. - Fix springmvc reactive api can't collect HTTP statusCode.
- Fix bug that asynchttpclient plugin does not record the response status code.
- Fix spanLayer is null in optional plugin(gateway-2.0.x-plugin gateway-2.1.x-plugin).
- Support @trace, @tag and @tags work for static methods.
OAP-Backend
- Allow user-defined
JAVA_OPTS
in the startup script. - Metrics combination API supports abandoning results.
- Add a new concept "Event" and its implementations to collect events.
- Add some defensive codes for NPE and bump up Kubernetes client version to expose exception stack trace.
- Update the
timestamp
field type forLogQuery
. - Support Zabbix protocol to receive agent metrics.
- Update the Apdex metric combine calculator.
- Enhance
MeterSystem
to allow creating metrics with samemetricName
/function
/scope
. - Storage plugin supports postgresql.
- Fix kubernetes.client.openapi.ApiException.
- Remove filename suffix in the meter active file config.
- Introduce log analysis language (LAL).
- Fix alarm httpclient connection leak.
- Add
sum
function in meter system. - Remove Jaeger receiver.
- Remove the experimental Zipkin span analyzer.
- Upgrade the Zipkin Elasticsearch storage from 6 to 7.
- Require Zipkin receiver must work with
zipkin-elasticsearch7
storage option. - Fix
DatabaseSlowStatementBuilder
statement maybe null. - Remove fields of parent entity in the relation sources.
- Save Envoy http access logs when error occurs.
- Fix wrong
service_instance_sla
setting in thetopology-instance.yml
. - Fix wrong metrics name setting in the
self-observability.yml
. - Add telemetry data about metrics in, metrics scraping, mesh error and trace in metrics to zipkin receiver.
- Fix tags store of log and trace on h2/mysql/pg storage.
- Merge indices by Metrics Function and Meter Function in Elasticsearch Storage.
- Fix receiver don't need to get itself when healthCheck
- Remove group concept from AvgHistogramFunction. Heatmap(function result) doesn't support labels.
- Support metrics grouped by scope labelValue in MAL, no need global same labelValue as before.
- Add functions in MAL to filter metrics according to the metric value.
- Optimize the self monitoring grafana dashboard.
- Enhance the export service.
- Add function
retagByK8sMeta
and opt typeK8sRetagType.Pod2Service
in MAL for k8s to relate pods and services. - Using "service.istio.io/canonical-name" to replace "app" label to resolve Envoy ALS service name.
- Support k8s monitoring.
- Make the flushing metrics operation concurrent.
- Fix ALS K8SServiceRegistry didn't remove the correct entry.
- Using "service.istio.io/canonical-name" to replace "app" label to resolve Envoy ALS service name.
- Append the root slash(/) to getIndex and getTemplate requests in ES(6 and 7) client.
- Fix
disable
statement not working. This bug exists since 8.0.0. - Remove the useless metric in
vm.yaml
.
UI
- Update selector scroller to show in all pages.
- Implement searching logs with date.
- Add nodejs 14 compiling.
- Fix trace id by clear search conditions.
- Search endpoints with keywords.
- Fix pageSize on logs page.
- Update echarts version to 5.0.2.
- Fix instance dependency on the topology page.
- Fix resolved url for vue-property-decorator.
- Show instance attributes.
- Copywriting grammar fix.
- Fix log pages tags column not updated.
- Fix the problem that the footer and topology group is shaded when the topology radiation is displayed.
- When the topology radiation chart is displayed, the corresponding button should be highlighted.
- Refactor the route mapping, Dynamically import routing components, Improve first page loading performance.
- Support topology of two mutually calling services.
- Implement a type of table chart in the dashboard.
- Support event in the dashboard.
- Show instance name in the trace view.
- Fix groups of services in the topography.
Documentation
- Polish documentation due to we have covered all tracing, logging, and metrics fields.
- Adjust documentation about Zipkin receiver.
- Add backend-infrastructure-monitoring doc.
All issues and pull requests are here
8.4.0
Download
https://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
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 inIF_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 theapplication.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
inAnalyzer.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
8.3.0
Download
https://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
Project
- Test: ElasticSearch version 7.0.0 and 7.9.3 as storage are E2E tested.
- Test: Bump up testcontainers version to work around the Docker bug on MacOS.
Java Agent
- Support propagate the sending timestamp in MQ plugins to calculate the transfer latency in the async MQ scenarios.
- Support auto-tag with the fixed values propagated in the correlation context.
- Make HttpClient 3.x, 4.x, and HttpAsyncClient 3.x plugins to support collecting HTTP parameters.
- Make the Feign plugin to support Java 14
- Make the okhttp3 plugin to support Java 14
- Polish tracing context related codes.
- Add the plugin for async-http-client 2.x
- Fix NPE in the nutz plugin.
- Provide Apache Commons DBCP 2.x plugin.
- Add the plugin for mssql-jtds 1.x.
- Add the plugin for mssql-jdbc 6.x -> 9.x.
- Fix the default ignore mechanism isn't accurate enough bug.
- Add the plugin for spring-kafka 1.3.x.
- Add the plugin for Apache CXF 3.x.
- Fix okhttp-3.x and async-http-client-2.x did not overwrite the old trace header.
OAP-Backend
- Add the
@SuperDataset
annotation for BrowserErrorLog. - Add the thread pool to the Kafka fetcher to increase the performance.
- Add
contain
andnot contain
OPS in OAL. - Add Envoy ALS analyzer based on metadata exchange.
- Add
listMetrics
GraphQL query. - Add group name into services of so11y and istio relevant metrics
- Support keeping collecting the slowly segments in the sampling mechanism.
- Support choose files to active the meter analyzer.
- Support nested class definition in the Service, ServiceInstance, Endpoint, ServiceRelation, and ServiceInstanceRelation sources.
- Support
sideCar.internalErrorCode
in the Service, ServiceInstance, Endpoint, ServiceRelation, and ServiceInstanceRelation sources. - Improve Kubernetes service registry for ALS analysis.
- Add health checker for cluster management
- Support the service auto grouping.
- Support query service list by the group name.
- Improve the queryable tags generation. Remove the duplicated tags to reduce the storage payload.
- Fix the threads of the Kafka fetcher exit if some unexpected exceptions happen.
- Fix the excessive timeout period set by the kubernetes-client.
- Fix deadlock problem when using elasticsearch-client-7.0.0.
- Fix storage-jdbc isExists not set dbname.
- Fix
searchService
bug in the InfluxDB storage implementation. - Fix CVE in the alarm module, when activating the dynamic configuration feature.
- Fix CVE in the endpoint grouping, when activating the dynamic configuration feature.
- Fix CVE in the uninstrumented gateways configs, when activating the dynamic configuration feature.
- Fix CVE in the Apdex threshold configs, when activating the dynamic configuration feature.
- Make the codes and doc consistent in sharding server and core server.
- Fix that chunked string is incorrect while the tag contains colon.
- Fix the incorrect dynamic configuration key bug of
endpoint-name-grouping
. - Remove unused min date timebucket in jdbc deletehistory logical
- Fix "transaction too large error" when use TiDB as storage.
- Fix "index not found" in trace query when use ES7 storage.
- Add otel rules to ui template to observe Istio control plane.
- Remove istio mixer
- Support close influxdb batch write model.
- Check SAN in the ALS (m)TLS process.
UI
- Fix incorrect label in radial chart in topology.
- Replace node-sass with dart-sass.
- Replace serviceFilter with serviceGroup
- Removed "Les Miserables" from radial chart in topology.
- Add the Promise dropdown option
Documentation
- Add VNode FAQ doc.
- Add logic endpoint section in the agent setup doc.
- Adjust configuration names and system environment names of the sharing server module
- Tweak Istio metrics collection doc.
- Add otel receiver.
All issues and pull requests are here
8.2.0
Download
http://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
Project
- Support Browser monitoring.
- Add e2e test for ALS solution of service mesh observability.
- Support compiling(include testing) in JDK11.
- Support build a single module.
Java Agent
- Support metrics plugin.
- Support slf4j logs of gRPC and Kafka(when agent uses them) into the agent log files.
- Add
PROPERTIES_REPORT_PERIOD_FACTOR
config to avoid the properties of instance cleared. - Limit the size of traced SQL to avoid OOM.
- Support
mount
command to load a new set of plugins. - Add plugin selector mechanism.
- Enhance the witness classes for MongoDB plugin.
- Enhance the parameter truncate mechanism of SQL plugins.
- Enhance the SpringMVC plugin in the reactive APIs.
- Enhance the SpringMVC plugin to collect HTTP headers as the span tags.
- Enhance the Kafka plugin, about
@KafkaPollAndInvoke
- Enhance the configuration initialization core. Plugin could have its own plugins.
- Enhance Feign plugin to collect parameters.
- Enhance Dubbo plugin to collect parameters.
- Provide Thrift plugin.
- Provide XXL-job plugin.
- Provide MongoDB 4.x plugin.
- Provide Kafka client 2.1+ plugin.
- Provide WebFlux-WebClient plugin.
- Provide ignore-exception plugin.
- Provide quartz scheduler plugin.
- Provide ElasticJob 2.x plugin.
- Provide Spring @scheduled plugin.
- Provide Spring-Kafka plugin.
- Provide HBase client plugin.
- Provide JSON log format.
- Move Spring WebFlux plugin to the optional plugin.
- Fix inconsistent logic bug in PrefixMatch
- Fix duplicate exit spans in Feign LoadBalancer mechanism.
- Fix the target service blocked by the Kafka reporter.
- Fix configurations of Kafka report don't work.
- Fix rest template concurrent conflict.
- Fix NPE in the ActiveMQ plugin.
- Fix conflict between Kafka reporter and sampling plugin.
- Fix NPE in the log formatter.
- Fix span layer missing in certain cases, in the Kafka plugin.
- Fix error format of time in serviceTraffic update.
- Upgrade bytebuddy to 1.10.14
OAP-Backend
- Support Nacos authentication.
- Support labeled meter in the meter receiver.
- Separate UI template into multiple files.
- Provide support for Envoy tracing. Envoy tracer depends on the Envoy community.
- Support query trace by tags.
- Support composite alarm rules.
- Support alarm messages to DingTalk.
- Support alarm messages to WeChat.
- Support alarm messages to Slack.
- Support SSL for Prometheus fetcher and self telemetry.
- Support labeled histogram in the prometheus format.
- Support the status of segment based on entry span or first span only.
- Support the error segment in the sampling mechanism.
- Support SSL certs of gRPC server.
- Support labeled metrics in the alarm rule setting.
- Support to query all labeled data, if no explicit label in the query condition.
- Add TLS parameters in the mesh analysis.
- Add health check for InfluxDB storage.
- Add
super dataset
concept for the traces/logs. - Add separate replicas configuration for super dataset.
- Add
IN
operator in the OAL. - Add
!=
operator in the OAL. - Add
like
operator in the OAL. - Add
latest
function in the prometheus analysis. - Add more configurations in the gRPC server.
- Optimize the trace query performance.
- Optimize the CPU usage rate calculation, at least to be 1.
- Optimize the length of slow SQL column in the MySQL storage.
- Optimize the topology query, use client side component name when no server side mapping.
- Add component IDs for Python component.
- Add component ID range for C++.
- Fix Slack notification setting NPE.
- Fix some module missing check of the module manager core.
- Fix authentication doesn't work in sharing server.
- Fix metrics batch persistent size bug.
- Fix trace sampling bug.
- Fix CLR receiver bug.
- Fix end time bug in the query process.
- Fix
Exporter INCREMENT mode
is not working. - Fix an error when executing startup.bat when the log directory exists
- Add syncBulkActions configuration to set up the batch size of the metrics persistent.
- Meter Analysis Language.
UI
- Add browser dashboard.
- Add browser log query page.
- Support query trace by tags.
- Fix JVM configuration.
- Fix CLR configuration.
Document
- Add the document about
SW_NO_UPSTREAM_REAL_ADDRESS
. - Update ALS setup document.
- Add Customization Config section for plugin development.
All issues and pull requests are here
8.1.0
Download
http://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
Project
- Support Kafka as an optional trace, JVM metrics, profiling snapshots and meter system data transport layer.
- Support Meter system, including the native metrics APIs and the Spring Sleuth adoption.
- Support JVM thread metrics.
Java Agent
- [Core] Fix the concurrency access bug in the Concurrency ClassLoader Case.
- [Core] Separate the config of the plugins from the core level.
- [Core] Support instrumented class cached in memory or file, to be compatible with other agents, such as Arthas.
- Add logic endpoint concept. Could analysis any span or tags flagged by the logic endpoint.
- Add Spring annotation component name for UI visualization only.
- Add support to trace
Call procedures
in MySQL plugin. - Support GraphQL plugin.
- Support Quasar fiber plugin.
- Support InfluxDB java client plugin.
- Support brpc java plugin
- Support
ConsoleAppender
in the logback v1 plugin. - Enhance vert.x endpoint names.
- Optimize the code to prevent mongo statements from being too long.
- Fix WebFlux plugin concurrency access bug.
- Fix ShardingSphere plugins internal conflicts.
- Fix duplicated Spring MVC endpoint.
- Fix lettuce plugin sometimes trace doesn‘t show span layer.
- Fix
@Tag
returnedObject bug.
OAP-Backend
- Support Jetty Server advanced configurations.
- Support label based filter in the prometheus fetcher and OpenCensus receiver.
- Support using k8s configmap as the configuration center.
- Support OAP health check, and storage module health check.
- Support sampling rate in the dynamic configuration.
- Add
endpoint_relation_sla
andendpoint_relation_percentile
for endpoint relationship metrics. - Add components for Python plugins, including Kafka, Tornado, Redis, Django, PyMysql.
- Add components for Golang SDK.
- Add Nacos 1.3.1 back as an optional cluster coordinator and dynamic configuration center.
- Enhance the metrics query for ElasticSearch implementation to increase the stability.
- Reduce the length of storage entity names in the self-observability for MySQL and TiDB storage.
- Fix labels are missing in Prometheus analysis context.
- Fix column length issue in MySQL/TiDB storage.
- Fix no data in 2nd level aggregation in self-observability.
- Fix searchService bug in ES implementation.
- Fix wrong validation of endpoint relation entity query.
- Fix the bug caused by the OAL debug flag.
- Fix endpoint dependency bug in MQ and uninstrumented proxy cases.
- Fix time bucket conversion issue in the InfluxDB storage implementation.
- Update k8s client to 8.0.0
UI
- Support endpoint dependency graph.
- Support x-scroll of trace/profile page
- Fix database selector issue.
- Add the bar chart in the UI templates.
Document
- Update the user logo wall.
- Add backend configuration vocabulary document.
- Add agent installation doc for Tomcat9 on Windows.
- Add istioctl ALS commands for the document.
- Fix TTL documentation.
- Add FAQ doc about thread instrumentation.
CVE
- Fix fuzzy query sql injection in the MySQL/TiDB storage.
All issues and pull requests are here
8.0.1
Download
http://skywalking.apache.org/downloads/
Notice
Don't download source codes from this page.
Please follow build document, if you want to build source codes by yourself.
OAP-Backend
- Fix
no-init
mode is not working in ElasticSearch storage.