APM, Application Performance Monitoring System

Overview

Apache SkyWalking

Sky Walking logo

SkyWalking: an APM(application performance monitor) system, especially designed for microservices, cloud native and container-based architectures.

GitHub stars Twitter Follow

Maven Central CI/IT Tests E2E Tests

Abstract

SkyWalking is an open source APM system, including monitoring, tracing, diagnosing capabilities for distributed system in Cloud Native architecture. The core features are following.

  • Service, service instance, endpoint metrics analysis
  • Root cause analysis. Profile the code on the runtime
  • Service topology map analysis
  • Service, service instance and endpoint dependency analysis
  • Slow services and endpoints detecting
  • Performance optimization
  • Distributed tracing and context propagation
  • Database access metrics. Detect slow database access statements(including SQL statements)
  • Message Queue performance and consuming latency monitoring
  • Alarm
  • Browser performance monitoring
  • Infrastructure(VM, network, disk etc.) monitoring
  • Collaboration across metrics, traces, and logs

SkyWalking supports to collect telemetry (metrics, traces, and logs) data from multiple sources and multiple formats, including

  1. Java, .NET Core, NodeJS, PHP, and Python auto-instrument agents.
  2. Go and C++ SDKs.
  3. LUA agent especially for Nginx, OpenResty and Apache APISIX.
  4. Browser agent.
  5. Service Mesh Observability. Control panel and data panel.
  6. Metrics system, including Prometheus, OpenTelemetry, Spring Sleuth(Micrometer), Zabbix.
  7. Logs.
  8. Zipkin v1/v2 trace.(No Analysis)

SkyWalking OAP is using the STAM(Streaming Topology Analysis Method) to analysis topology in the tracing based agent scenario for better performance. Read the paper of STAM for more details.

Documentation

  • Official documentation
  • The paper of STAM, Streaming Topology Analysis Method.
  • Blog about Use Profiling to Fix the Blind Spot of Distributed Tracing
  • Blog about observing Istio + Envoy service mesh with ALS solution.
  • Blog about observing Istio + Envoy service mesh with ALS Metadata-Exchange mechanism (in VMs and / or Kubernetes).

NOTICE, SkyWalking 8.0+ uses v3 protocols. They are incompatible with previous releases.

Downloads

Please head to the releases page to download a release of Apache SkyWalking.

Compiling project

Follow this document.

Code of conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please follow the REPORTING GUIDELINES to report unacceptable behavior.

Live Demo

Contact Us

Our Users

Hundreds of companies and organizations use SkyWalking for research, production, and commercial product. Visit our website to find the user page.

Landscapes



  

SkyWalking enriches the CNCF CLOUD NATIVE Landscape.


Our project enriches the OpenAPM Landscape!

License

Apache 2.0 License.

Comments
  • Add end to end tests

    Add end to end tests

    Please answer these questions before submitting pull request

    • Why submit this pull request?
    • [ ] Bug fix
    • [x] New feature provided
    • [ ] Improve performance

    This patch provides a mechanism to run end to end tests with docker and Jenkins.

    It uses the final distribution package to run the e2e tests, which is much closer to what the end-users do in reality.

    FYI, I've drafted another approach to do the same thing by dockerizing the individual module (oap-server, webapp, agent and client) and linking them together at run time, which may not be as close as to what end-users do in reality, and will cause some difficulties for Docker server to build many images/containers over and over. Therefore I give up and raise this PR.

    Look forward to the opinions from the community

    test 
    opened by kezhenxu94 140
  • [Feature] Add metric for analyzing  cache-related  span like Virtual Database

    [Feature] Add metric for analyzing cache-related span like Virtual Database

    Search before asking

    • [X] I had searched in the issues and found no similar feature requirement.

    Description

    Virtual Cache will analysis span which is cache-related . It will generate SLA, response time or some else metric In a word , it's similar to Virtual Database Reference virtual-database skywalking demo

    Works should to be done :

    Agent (focus on Java agent)

    • [x] Update cache plugins for uniform Span’s layer , tag if necessary .
      The known cache-related plugin(need suggestion : which plugin is cache-related):
      1. jedis-plugins
      2. redisson-plugin
      3. xmemcached-plugin
      4. zookeeper-plugin
      5. spymemcached-plugin

    Backend

    • [x] develop Virtual Cache metric
      1. Add RequestType : Cache
      2. ServiceMeta for registering cache service
      3. Cache-source for OAL
      4. Slow query Top N metric
    • [x] Update core oal for metric (reponse time or some else )
    • [x] Update Doc for Virtual Cache

    Use case

    No response

    Related issues

    No response

    Are you willing to submit a PR?

    • [X] Yes I am willing to submit a PR!

    Code of Conduct

    backend feature tracing 
    opened by pg-yang 90
  • [Feature] Monitoring MySQL Server

    [Feature] Monitoring MySQL Server

    Search before asking

    • [X] I had searched in the issues and found no similar feature requirement.

    Description

    @yswdqz finished his first contribution in https://github.com/apache/skywalking-java/pull/286. This is a huge step for a new contributor. After this, he DM me asking for a new place to continue his contributions to the SkyWalking community.

    So, I want to begin a new extension for SkyWalking's monitoring target - Database server.

    Right now, we have a Virtual Database layer to monitor database performance from a tracing perspective(analyzing metrics from database access spans). But Database Server in the topology is not observed directly.

    In this new issue, I want to work with @yswdqz and assist him to help on adding MySQL server monitoring in the SkyWalking 9.2 or 9.3 release

    Use case

    There are several steps we could follow to do this research and further work

    Background

    Unlike tracing relative monitoring, SkyWalking could do observability through a pure metrics ecosystem. Such as, we use OpenTelemetry collector + OpenCensus exporter to monitor Linux and K8s. I prefer we continue this tech stack for MySQL server monitoring.

    The dataflow would be MySQL Server -> OpenTelemetry Collector -> SkyWalking OpenCensus Receiver -> MAL engine

    Steps

    1. Do research about the ways of MySQL server and OpenTelemetry integration. Various blogs such as this(just a reference) introduce how this could work.
    2. We discuss and pick one possible solution.
    3. Learn MAL and get ideas about how to use MAL to analyze metrics. Could take a look at K8s and Linux monitoring.
    4. Discuss which metrics we should do for the MySQL server. We could involve more people in this part, such as ppl from MySQL or ShardingSphere community. I could help with this.
    5. Add MySQL layer to OAP, and begin to set up dashboards(can't be a menu for now)
    6. When all dashboards are ready, we could ask @Fine0830 to help with moving virtual database as a sub-menu of general service(So, general service could have two children, services and virtual database). And change the virtual database to Database, then add MySQL as a sub and a root layer.

    Related issues

    No response

    Are you willing to submit a PR?

    • [ ] Yes I am willing to submit a PR!

    Code of Conduct

    backend feature complexity:medium 
    opened by wu-sheng 88
  • Huge memory is used when using skywalking-agent.

    Huge memory is used when using skywalking-agent.

    I'm confused by this case, little requests, but huge memory is used when using skywalking-agent.

    Does skywalking-agent trace the motanStatsLog? Do lots of work to record info about motanStatsLog into ringbuffer?

    image

    question 
    opened by hepyu 78
  • [DISCUSS] Heading to graduation

    [DISCUSS] Heading to graduation

    With the SkyWalking 5.0.0 alpha, beta, beta2, and RC release officially out. GA is under voting in IPMC already We believe it is time to discuss what requirements remain to consider graduation to the TLP.

    http://skywalking.incubator.apache.org/

    Apache SkyWalking entered incubation in December of 2017, SkyWalking community learned a lot about how to do things in Apache ways. Now we are a very helpful and engaged community, ready to help on all questions from the SkyWalking Community. We are making consensus decisions through the discussion in the mailing list, voted 1 new committer, also voted 1 new PPMC member. We managed delivered 4 releases of source codes and binary already , now we can do self-driving releases in good cadence.

    Please check out the maturity assessment doc[1] for more information.

    [1]https://cwiki.apache.org/confluence/display/SKYWALKING/Apache+Maturity+Model+Assessment+for+SkyWalking

    Any thoughts? And welcome advice from SkyWalking Mentors? @apache/skywalking-committers

    Also I sent a copy of this to [email protected] ml to keep

    Regards

    question documentation high priority 
    opened by wu-sheng 74
  • Support Hessian 4.0.x.

    Support Hessian 4.0.x.

    Please answer these questions before submitting pull request

    • Why submit this pull request?
    • [ ] Bug fix
    • [x] New feature provided
    • [ ] Improve performance

    Plugin Support hessian 4.0.x.

    agent feature plugin no update 
    opened by wayilau 72
  • Support MySQL monitoring.

    Support MySQL monitoring.

    • [ ] If this is non-trivial feature, paste the links/URLs to the design doc.

    • [ ] Update the documentation to include this new feature.

    • [ ] Tests(including UT, IT, E2E) are added to verify the new feature.

    • [x] If it's UI related, attach the screenshots below.

    • [x] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #9376

    • [x] Update the CHANGES log.

    Screenshots

    --- latest

    P(PDC7A0%UYLE8$4O%P82{9

    $C0GTM6{(~B}6`GC%_BRU7S

    --- old SJGU3}~1SUMANZG90%C@V VHOPP9PFNZK~{GW4B}13PVS N6MA70_JGURY1F P PNJ1TY

    https://user-images.githubusercontent.com/74546965/183292715-d591b66d-c4a9-411b-bd07-6f0071b3ade7.mp4

    backend feature high priority 
    opened by yswdqz 69
  • Enhance webflux plugin, related to Spring Gateway plugin too.

    Enhance webflux plugin, related to Spring Gateway plugin too.

    Please answer these questions before submitting pull request

    • Why submit this pull request?

    • [ ] Bug fix

    • [x] New feature provided

    • [ ] Improve performance

    • Related issues

    Resolves #3805 #3985 and #2711

    agent feature plugin 
    opened by cyejing 65
  • Which companies are using SkyWalking

    Which companies are using SkyWalking

    Welcome

    Users are encouraged to add their information to powered-by page directly.

    Seed users

    • 南京亚信软件有限公司, 移动社会化电子商务平台
    • 亚信科技(中国)有限公司, ITSC报销系统
    • GTrace
    • 印记, http://www.yinjiyun.cn/
    documentation no update 
    opened by wu-sheng 62
  • provide cassandra java driver 3.x plugin

    provide cassandra java driver 3.x plugin

    Please answer these questions before submitting pull request

    • Why submit this pull request?
    • [ ] Bug fix
    • [x] New feature provided
    • [ ] Improve performance _

    New feature or improvement

    • http://cassandra.apache.org/
    agent feature plugin 
    opened by stone-wlg 59
  • Cassandra 3.x Plugin

    Cassandra 3.x Plugin

    Please answer these questions before submitting pull request

    • Why submit this pull request?
    • [ ] Bug fix
    • [x] New feature provided
    • [ ] Improve performance

    New feature or improvement

    http://cassandra.apache.org/

    agent feature plugin 
    opened by stone-wlg 58
  • [Bug] skyWalking-eyes checks header should not require to match this year

    [Bug] skyWalking-eyes checks header should not require to match this year

    Search before asking

    • [X] I had searched in the issues and found no similar issues.

    Apache SkyWalking Component

    License Tools (apache/skywalking-eyes)

    What happened

    Now we're in 2023 and it exposes a bug in the skywalking eyes header checks for license that have a year placeholder: https://github.com/korandoru/zeronos/actions/runs/3815180690/jobs/6490013554

    After running the fix step locally, I notice that it's because the tool require the year placeholder to be resolved as "this year":

    func (config *ConfigHeader) GetLicenseContent() (c string) {
    	owner, name := config.License.CopyrightOwner, config.License.SoftwareName
    
    	defer func() {
    		c = strings.ReplaceAll(c, "[year]", strconv.Itoa(time.Now().Year()))
    		c = strings.ReplaceAll(c, "[owner]", owner)
    		c = strings.ReplaceAll(c, "[software-name]", name)
    	}()
    
    	if c = strings.TrimSpace(config.License.Content); c != "" {
    		return config.License.Content // Do not change anything in user config
    	}
    	c, err := readLicenseFromSpdx(config)
    	if err != nil {
    		logger.Log.Warnln(err)
    		return ""
    	}
    
    	return c
    }
    

    What you expected to happen

    Check succeeds. Because we should be able to accept license headers to replace the [year] with inceptionYear that <= this year.

    How to reproduce

    See the CI report above. I think all projects using skywalking eyes with license that has a year placeholder will report more cases later.

    Anything else

    license-maven-plugin provides a series of year predefines:

    • license.git.copyrightLastYear - the year of the last change of the present file as seen in git history
    • license.git.copyrightYears - the combination of project.inceptionYear and license.git.copyrightLastYear delimited by a dash (-), or just project.inceptionYear if project.inceptionYear is equal to license.git.copyrightLastYear
    • license.git.CreationAuthorName and license.git.CreationAuthorEmail - the name and email of the author of the first commit of the present file as seen in git history.
    • license.git.copyrightCreationYear - the year of the first commit of the present file as seen in git history
    • license.git.copyrightExistenceYears - Similar to license.git.copyrightYears but using license.git.copyrightCreationYear for the first year

    This can be an alternative before license-eye fixes the issue. Or users can update the year to this year.

    Are you willing to submit PR?

    • [ ] Yes I am willing to submit a PR!

    Code of Conduct

    bug license eye 
    opened by tisonkun 3
  • Enhance to widget for showing the prompt information of the chart, which deleted in 9.3.0

    Enhance to widget for showing the prompt information of the chart, which deleted in 9.3.0

    Discussed in https://github.com/apache/skywalking/discussions/10151

    Originally posted by saber-wang December 13, 2022 9.1.0: image

    9.3.0 image

    In 9.3.0, you must place the cursor on the vertex to estimate the current value

    UI enhancement 
    opened by wu-sheng 0
  • Support to customize the report period of JVM relative metrics.

    Support to customize the report period of JVM relative metrics.

    Search before asking

    • [X] I had searched in the issues and found no similar issues.

    Apache SkyWalking Component

    Java Agent (apache/skywalking-java)

    What happened

    We got a thread leak in micro-service and the thread count is up to 4000. The CPU usage is very low for threads except one skywalkingAgent thread's usage is up 40%.

    The JVMMetrics is collected every 1 sec, and everytime it checks all 4000 thread's status.

    What you expected to happen

    The JVMMetrics does not have to be collected so frequently. Maybe 2 or 3 collection in 1min is enough?

    How to reproduce

    Creating 4000 threads.

    Anything else

    No response

    Are you willing to submit PR?

    • [X] Yes I am willing to submit a PR!

    Code of Conduct

    good first issue enhancement java 
    opened by dylanforest 8
  • [Feature] [UI] Provide independent mode for the widget

    [Feature] [UI] Provide independent mode for the widget

    Search before asking

    • [X] I had searched in the issues and found no similar feature requirement.

    Description

    Right now, we have a unique URL for every dashboard and tab for end users to share the page with each other.

    • Service Page for recommendation, http://demo.skywalking.apache.org/dashboard/GENERAL/Service/YWdlbnQ6OnJlY29tbWVuZGF0aW9u.1/General-Service
    • Profiling Tab at the same page, http://demo.skywalking.apache.org/dashboard/GENERAL/Service/YWdlbnQ6OnJlY29tbWVuZGF0aW9u.1/General-Service/tab/5

    This is a good feature. Now, I want to propose a further way to help with user sharing and system integration.

    Use case

    In the alerting and system integration, right now, we forward time range, metrics name, and messages with entity information. We could consider providing a kind of widget URI to show metrics with get parameters directly.

    Such as

    /widget?metricName=service_cpm
                &entityScope=Service
                &serviceName=recommendation
                &title=Service Calls per minutes // should be URI-encoded
                &metricType=readMetricsValue
                &graph.type=Card
                &calculation=
                &startTime=.              // The time range is optional, if it is not provided through URI parameters, use the latest 15 mins directly.
                &endTime=
    

    Also, we should consider supporting multi-values for metric names and calculations to support composite alerting rules.

    To help users understand this URI system, we could provide an assistant link on the left top of the widget. User could copy this link directly.

    FYI @wankai123 @kezhenxu94 If you have any questions, please let me know.

    Related issues

    No response

    Are you willing to submit a PR?

    • [ ] Yes I am willing to submit a PR!

    Code of Conduct

    UI feature 
    opened by wu-sheng 0
  • [Feature] Enhance redisson plugin to adapt Virtual Cache

    [Feature] Enhance redisson plugin to adapt Virtual Cache

    Search before asking

    • [X] I had searched in the issues and found no similar feature requirement.

    Description

    Virtual cache represents the cache nodes detected by server agents' plugins.

    Redisson plugin hasn't adapted the tags ofVirtual cache

    Use case

    No response

    Related issues

    No response

    Are you willing to submit a PR?

    • [ ] Yes I am willing to submit a PR!

    Code of Conduct

    feature plugin good first issue java 
    opened by pg-yang 5
  • [BanyanDB][Bug] Cache topNAggregation's schema in the measure module.

    [BanyanDB][Bug] Cache topNAggregation's schema in the measure module.

    Search before asking

    • [X] I had searched in the issues and found no similar issues.

    Apache SkyWalking Component

    BanyanDB (apache/skywalking-banyandb)

    What happened

    Cache the topNAggregation's schema in the measure's metadata repository. The query should not fetch the schema through ETCD each time.

    This issue is related to https://github.com/apache/skywalking-banyandb/blob/main/banyand/query/processor_topn.go#L65. The measure cache is at https://github.com/apache/skywalking-banyandb/blob/main/banyand/measure/metadata.go

    What you expected to happen

    None.

    How to reproduce

    None.

    Anything else

    No response

    Are you willing to submit PR?

    • [ ] Yes I am willing to submit a PR!

    Code of Conduct

    bug 
    opened by hanahmily 0
Releases(v9.3.0)
  • v9.3.0(Dec 4, 2022)

    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.

    Metrics Association

    | Dashboard | Pop-up Trace Query | |-------------------------|---------------| |image | image|

    APISIX Dashboard

    image

    Use Sharding MySQL as the Database

    image

    Virtual Cache Performance

    image

    Virtual MQ Performance

    image

    Project

    • Bump up the embedded swctl version in OAP Docker image.

    OAP Server

    • Add component ID(133) for impala JDBC Java agent plugin and component ID(134) for impala server.
    • Use prepareStatement in H2SQLExecutor#getByIDs.(No function change).
    • Bump up snakeyaml to 1.32 for fixing CVE.
    • Fix DurationUtils.convertToTimeBucket missed verify date format.
    • Enhance LAL to support converting LogData to DatabaseSlowStatement.
    • [Breaking Change] Change the LAL script format(Add layer property).
    • Adapt ElasticSearch 8.1+, migrate from removed APIs to recommended APIs.
    • Support monitoring MySQL slow SQLs.
    • Support analyzing cache related spans to provide metrics and slow commands for cache services from client side
    • Optimize virtual database, fix dynamic config watcher NPE when default value is null
    • Remove physical index existing check and keep template existing check only to avoid meaningless retry wait in no-init mode.
    • Make sure instance list ordered in TTL processor to avoid TTL timer never runs.
    • Support monitoring PostgreSQL slow SQLs.
    • [Breaking Change] Support sharding MySQL database instances and tables by Shardingsphere-Proxy. SQL-Database requires removing tables log_tag/segment_tag/zipkin_query before OAP starts, if bump up from previous releases.
    • Fix meter functions avgHistogram, avgHistogramPercentile, avgLabeled, sumHistogram having data conflict when downsampling.
    • Do sorting readLabeledMetricsValues result forcedly in case the storage(database) doesn't return data consistent with the parameter list.
    • Fix the wrong watch semantics in Kubernetes watchers, which causes heavy traffic to API server in some Kubernetes clusters, we should use Get State and Start at Most Recent semantic instead of Start at Exact because we don't need the changing history events, see https://kubernetes.io/docs/reference/using-api/api-concepts/#semantics-for-watch.
    • Unify query services and DAOs codes time range condition to Duration.
    • [Breaking Change]: Remove prometheus-fetcher plugin, please use OpenTelemetry to scrape Prometheus metrics and set up SkyWalking OpenTelemetry receiver instead.
    • BugFix: histogram metrics sent to MAL should be treated as OpenTelemetry style, not Prometheus style:
      (-infinity, explicit_bounds[i]] for i == 0
      (explicit_bounds[i-1], explicit_bounds[i]] for 0 < i < size(explicit_bounds)
      (explicit_bounds[i-1], +infinity) for i == size(explicit_bounds)
      
    • Support Golang runtime metrics analysis.
    • Add APISIX metrics monitoring
    • Support skywalking-client-js report empty service version and page path , set default version as latest and default page path as /(root). Fix the error fetching data (/browser_app_page_pv0) : Can't split endpoint id into 2 parts.
    • [Breaking Change] Limit the max length of trace/log/alarm tag's key=value, set the max length of column tags in tableslog_tag/segment_tag/alarm_record_tag and column query in zipkin_query and column tag_value in tag_autocomplete to 256. SQL-Database requires altering these columns' length or removing these tables before OAP starts, if bump up from previous releases.
    • Optimize the creation conditions of profiling task.
    • Lazy load the Kubernetes metadata and switch from event-driven to polling. Previously we set up watchers to watch the Kubernetes metadata changes, this is perfect when there are deployments changes and SkyWalking can react to the changes in real time. However when the cluster has many events (such as in large cluster or some special Kubernetes engine like OpenShift), the requests sent from SkyWalking becomes unpredictable, i.e. SkyWalking might send massive requests to Kubernetes API server, causing heavy load to the API server. This PR switches from the watcher mechanism to polling mechanism, SkyWalking polls the metadata in a specified interval, so that the requests sent to API server is predictable (~10 requests every interval, 3 minutes), and the requests count is constant regardless of the cluster's changes. However with this change SkyWalking can't react to the cluster changes in time, but the delay is acceptable in our case.
    • Optimize the query time of tasks in ProfileTaskCache.
    • Fix metrics was put into wrong slot of the window in the alerting kernel.
    • Support sumPerMinLabeled in MAL.
    • Bump up jackson databind, snakeyaml, grpc dependencies.
    • Support export Trace and Log through Kafka.
    • Add new config initialization mechanism of module provider. This is a ModuleManager lib kernel level change.
    • [Breaking Change] Support new records query protocol, rename the column named service_id to entity_id for support difference entity. Please re-create top_n_database_statement index/table.
    • Remove improper self-obs metrics in JvmMetricsHandler(for Kafka channel).
    • gRPC stream canceling code is not logged as an error when the client cancels the stream. The client cancels the stream when the pod is terminated.
    • [Breaking Change] Change the way of loading MAL rules(support pattern).
    • Move k8s relative MAL files into /otel-rules/k8s.
    • [Breaking Change] Refactor service mesh protobuf definitions and split TCP-related metrics to individual definition.
    • Add TCP{Service,ServiceInstance,ServiceRelation,ServiceInstanceRelation} sources and split TCP-related entities out from original Service,ServiceInstance,ServiceRelation,ServiceInstanceRelation.
    • [Breaking Change] TCP-related source names are changed, fields of TCP-related sources are changed, please refer to the latest oal/tcp.oal file.
    • Do not log error logs when failed to create ElasticSearch index because the index is created already.
    • Add virtual MQ analysis for native traces.
    • Support Python runtime metrics analysis.
    • Support sampledTrace in LAL.
    • Support multiple rules with different names under the same layer of LAL script.
    • (Optimization) Reduce the buffer size(queue) of MAL(only) metric streams. Set L1 queue size as 1/20, L2 queue size as 1/2.
    • Support monitoring MySQL/PostgreSQL in the cluster mode.
    • [Breaking Change] Migrate to BanyanDB v0.2.0.
      • Adopt new OR logical operator for,
        1. MeasureIDs query
        2. BanyanDBProfileThreadSnapshotQueryDAO query
        3. Multiple Event conditions query
        4. Metrics query
      • Simplify Group check and creation
      • Partially apply UITemplate changes
      • Support index_only
      • Return CompletableFuture<Void> directly from BanyanDB client
      • Optimize data binary parse methods in *LogQueryDAO
      • Support different indexType
      • Support configuration for TTL and (block|segment) intervals
    • Elasticsearch storage: Provide system environment variable(SW_STORAGE_ES_SPECIFIC_INDEX_SETTINGS) and support specify the settings (number_of_shards/number_of_replicas) for each index individually.
    • Elasticsearch storage: Support update index settings (number_of_shards/number_of_replicas) for the index template after rebooting.
    • Optimize MQ Topology analysis. Use entry span's peer from the consumer side as source service when no producer instrumentation(no cross-process reference).
    • Refactor JDBC storage implementations to reuse logics.
    • Fix ClassCastException in LoggingConfigWatcher.
    • Support span attached event concept in Zipkin and SkyWalking trace query.
    • Support span attached events on Zipkin lens UI.
    • Force UTF-8 encoding in JsonLogHandler of kafka-fetcher-plugin.
    • Fix max length to 512 of entity, instance and endpoint IDs in trace, log, profiling, topN tables(JDBC storages). The value was 200 by default.
    • Add component IDs(135, 136, 137) for EventMesh server and client-side plugins.
    • Bump up Kafka client to 2.8.1 to fix CVE-2021-38153.
    • Remove lengthEnvVariable for Column as it never works as expected.
    • Add LongText to support longer logs persistent as a text type in ElasticSearch, instead of a keyword, to avoid length limitation.
    • Fix wrong system variable name SW_CORE_ENABLE_ENDPOINT_NAME_GROUPING_BY_OPENAPI. It was opaenapi.
    • Fix not-time-series model blocking OAP boots in no-init mode.
    • Fix ShardingTopologyQueryDAO.loadServiceRelationsDetectedAtServerSide invoke backend miss parameter serviceIds.
    • Changed system variable SW_SUPERDATASET_STORAGE_DAY_STEP to SW_STORAGE_ES_SUPER_DATASET_DAY_STEP to be consistent with other ES storage related variables.
    • Fix ESEventQueryDAO missing metric_table boolQuery criteria.
    • Add default entity name(_blank) if absent to avoid NPE in the decoding. This caused Can't split xxx id into 2 parts.
    • Support dynamic config the sampling strategy in network profiling.
    • Zipkin module support BanyanDB storage.
    • Zipkin traces query API, sort the result set by start time by default.
    • Enhance the cache mechanism in the metric persistent process.
      • This cache only worked when the metric is accessible(readable) from the database. Once the insert execution is delayed due to the scale, the cache loses efficacy. It only works for the last time update per minute, considering our 25s period.
      • Fix ID conflicts for all JDBC storage implementations. Due to the insert delay, the JDBC storage implementation would still generate another new insert statement.
    • [Breaking Change] Remove core/default/enableDatabaseSession config.
    • [Breaking Change] Add @BanyanDB.TimestampColumn to identify which column in Record is providing the timestamp(milliseconds) for BanyanDB, since BanyanDB stream requires a timestamp in milliseconds. For SQL-Database: add new column timestamp for tables profile_task_log/top_n_database_statement, requires altering this column or removing these tables before OAP starts, if bump up from previous releases.
    • Fix Elasticsearch storage: In No-Sharding Mode, add specific analyzer to the template before index creation to avoid update index error.
    • Internal API: remove undocumented ElasticSearch API usage and use documented one.
    • Fix BanyanDB.ShardingKey annotation missed in the generated OAL metrics classes.
    • Fix Elasticsearch storage: Query sortMetrics missing transform real index column name.
    • Rename BanyanDB.ShardingKey to BanyanDB.SeriesID.
    • Self-Observability: Add counters for metrics reading from DB or cached. Dashboard:Metrics Persistent Cache Count.
    • Self-Observability: Fix GC Time calculation.
    • Fix Elasticsearch storage: In No-Sharding Mode, column's property indexOnly not applied and cannot be updated.
    • Update the trace_id field as storage only(cannot be queried) in top_n_database_statement, top_n_cache_read_command, top_n_cache_read_command index.

    UI

    • Fix: tab active incorrectly, when click tab space
    • Add impala icon for impala JDBC Java agent plugin.
    • (Webapp)Bump up snakeyaml to 1.31 for fixing CVE-2022-25857
    • [Breaking Change]: migrate from Spring Web to Armeria, now you should use the environment variable name SW_OAP_ADDRESS to change the OAP backend service addresses, like SW_OAP_ADDRESS=localhost:12800,localhost:12801, and use environment variable SW_SERVER_PORT to change the port. Other Spring-related configurations don't take effect anymore.
    • Polish the endpoint list graph.
    • Fix styles for an adaptive height.
    • Fix setting up a new time range after clicking the refresh button.
    • Enhance the process topology graph to support dragging nodes.
    • UI-template: Fix metrics calculation in general-service/mesh-service/faas-function top-list dashboard.
    • Update MySQL dashboard to visualize collected slow SQLs.
    • Add virtual cache dashboard.
    • Remove responseCode fields of all OAL sources, as well as examples to avoid user's confusion.
    • Remove All from the endpoints selector.
    • Enhance menu configurations to make it easier to change.
    • Update PostgreSQL dashboard to visualize collected slow SQLs.
    • Add Golang runtime metrics and cpu/memory used rate panels in General-Instance dashboard.
    • Add gateway apisix menu.
    • Query logs with the specific service ID.
    • Bump d3-color from 3.0.1 to 3.1.0.
    • Add Golang runtime metrics and cpu/memory used rate panels in FaaS-Instance dashboard.
    • Revert logs on trace widget.
    • Add a sub-menu for virtual mq.
    • Add readRecords to metric types.
    • Verify dashboard names for new dashboards.
    • Associate metrics with the trace widget on dashboards.
    • Fix configuration panel styles.
    • Remove a un-use icon.
    • Support labeled value on the service/instance/endpoint list widgets.
    • Add menu for virtual MQ.
    • Set selector props and update configuration panel styles.
    • Add Python runtime metrics and cpu/memory utilization panels to General-Instance and Fass-Instance dashboards.
    • Enhance the legend of metrics graph widget with the summary table.
    • Add apache eventMesh logo file.
    • Fix conditions for trace profiling.
    • Fix tag keys list and duration condition.
    • Fix typo.
    • Fix condition logic for trace tree data.
    • Enhance tags component to search tags with the input value.
    • Fix topology loading style.
    • Fix update metric processor for the readRecords and remove readSampledRecords from metrics selector.
    • Add trace association for FAAS dashboards.
    • Visualize attached events on the trace widget.
    • Add HTTP/1.x metrics and HTTP req/resp body collecting tabs on the network profiling widget.
    • Implement creating tasks ui for network profiling widget.
    • Fix entity types for ProcessRelation.
    • Add trace association for general service dashboards.

    Documentation

    • Add metadata-uid setup doc about Kubernetes coordinator in the cluster management.
    • Add a doc for adding menus to booster UI.
    • Move general good read blogs from Agent Introduction to Academy.
    • Add re-post for blog Scaling with Apache SkyWalking in the academy list.
    • Add re-post for blog Diagnose Service Mesh Network Performance with eBPF in the academy list.
    • Add Security Notice doc.
    • Add new docs for Report Span Attached Events data collecting protocol.
    • Add new docs for Record query protocol
    • Update Server Agents and Compatibility for PHP agent.
    • Add docs for profiling.
    • Update the network profiling documentation.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v9.2.0(Sep 1, 2022)

    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.

    eBPF Network Profiling for K8s Pod

    image

    Event and Metrics Association

    image

    MySQL Server Monitoring

    image

    PostgreSQL Server Monitoring

    image

    Project

    • [Critical] Fix a low performance issue of metrics persistent in the ElasticSearch storage implementation. One single metric could have to wait for an unnecessary 7~10s(System Env Variable SW_STORAGE_ES_FLUSH_INTERVAL) since 8.8.0 - 9.1.0 releases.
    • Upgrade Armeria to 1.16.0, Kubernetes Java client to 15.0.1.

    OAP Server

    • Add more entities for Zipkin to improve performance.
    • ElasticSearch: scroll id should be updated when scrolling as it may change.
    • Mesh: fix only last rule works when multiple rules are defined in metadata-service-mapping.yaml.
    • Support sending alarm messages to PagerDuty.
    • Support Zipkin kafka collector.
    • Add VIRTUAL detect type to Process for Network Profiling.
    • Add component ID(128) for Java Hutool plugin.
    • Add Zipkin query exception handler, response error message for illegal arguments.
    • Fix a NullPointerException in the endpoint analysis, which would cause missing MQ-related LocalSpan in the trace.
    • Add forEach, processRelation function to MAL expression.
    • Add expPrefix, initExp in MAL config.
    • Add component ID(7015) for Python Bottle plugin.
    • Remove legacy OAL percentile functions, p99, p95, p90, p75, p50 func(s).
    • Revert #8066. Keep all metrics persistent even it is default value.
    • Skip loading UI templates if folder is empty or doesn't exist.
    • Optimize ElasticSearch query performance by using _mGet and physical index name rather than alias in these scenarios, (a) Metrics aggregation (b) Zipkin query (c) Metrics query (d) Log query
    • Support the NETWORK type of eBPF Profiling task.
    • Support sumHistogram in MAL.
    • [Breaking Change] Make the eBPF Profiling task support to the service instance level, index/table ebpf_profiling_task is required to be re-created when bump up from previous releases.
    • Fix race condition in Banyandb storage
    • Support SUM_PER_MIN downsampling in MAL.
    • Support sumHistogramPercentile in MAL.
    • Add VIRTUAL_CACHE to Layer, to fix conjectured Redis server, which icon can't show on the topology.
    • [Breaking Change] Elasticsearch storage merge all metrics/meter and records(without super datasets) indices into one physical index template metrics-all and records-all on the default setting. Provide system environment variable(SW_STORAGE_ES_LOGIC_SHARDING) to shard metrics/meter indices into multi-physical indices as the previous versions(one index template per metric/meter aggregation function). In the current one index mode, users still could choose to adjust ElasticSearch's shard number(SW_STORAGE_ES_INDEX_SHARDS_NUMBER) to scale out. More details please refer to New ElasticSearch storage option explanation in 9.2.0 and backend-storage doc
    • [Breaking Change] Index/table ebpf_profiling_schedule added a new column ebpf_profiling_schedule_id, the H2/Mysql/Tidb/Postgres storage users are required to re-created it when bump up from previous releases.
    • Fix Zipkin trace query the max size of spans.
    • Add tls and https component IDs for Network Profiling.
    • Support Elasticsearch column alias for the compatibility between storage logicSharding model and no-logicSharding model.
    • Support MySQL monitoring.
    • Support PostgreSQL monitoring.
    • Fix query services by serviceId error when Elasticsearch storage SW_STORAGE_ES_QUERY_MAX_SIZE > 10000.
    • Support sending alarm messages to Discord.
    • Fix query history process data failure.
    • Optimize TTL mechanism for Elasticsearch storage, skip executed indices in one TTL rotation.
    • Add Kubernetes support module to share codes between modules and reduce calls to Kubernetes API server.
    • Bump up Kubernetes Java client to fix cve.
    • Adapt OpenTelemetry native metrics protocol.
    • [Breaking Change] rename configuration folder from otel-oc-rules to otel-rules.
    • [Breaking Change] rename configuration field from enabledOcRules to enabledOtelRules and environment variable name from SW_OTEL_RECEIVER_ENABLED_OC_RULES to SW_OTEL_RECEIVER_ENABLED_OTEL_RULES.
    • [Breaking Change] Fix JDBC TTL to delete additional tables data. SQL Database requires removing segment,segment_tag, logs, logs_tag, alarms, alarms_tag, zipkin_span, zipkin_query before OAP starts.
    • SQL Database: add @SQLDatabase.ExtraColumn4AdditionalEntity to support add an extra column from parent to an additional table.
    • Add component ID(131) for Java Micronaut plugin
    • Add component ID(132) for Nats java client plugin

    UI

    • Fix query conditions for the browser logs.
    • Implement a url parameter to activate tab index.
    • Fix clear interval fail when switch autoRefresh to off.
    • Optimize log tables.
    • Fix log detail pop-up page doesn't work.
    • Optimize table widget to hide the whole metric column when no metric is set.
    • Implement the Event widget. Remove event menu.
    • Fix span detail text overlap.
    • Add Python Bottle Plugin Logo.
    • Implement an association between widgets(line, bar, area graphs) with time.
    • Fix tag dropdown style.
    • Hide the copy button when db.statement is empty.
    • Fix legend metrics for topology.
    • Dashboard: Add metrics association.
    • Dashboard: Fix FaaS-Root document link and topology service relation dashboard link.
    • Dashboard: Fix Mesh-Instance metric Throughput.
    • Dashboard: Fix Mesh-Service-Relation metric Throughput and Proxy Sidecar Internal Latency in Nanoseconds (Client Response).
    • Dashboard: Fix Mesh-Instance-Relation metric Throughput.
    • Enhance associations for the Event widget.
    • Add event widgets in dashboard where applicable.
    • Fix dashboard list search box not work.
    • Fix short time range.
    • Fix event widget incompatibility in Safari.
    • Refactor the tags component to support searching for tag keys and values.
    • Implement the log widget and the trace widget associate with each other, remove log tables on the trace widget.
    • Add log widget to general service root.
    • Associate the event widget with the trace and log widget.
    • Add the MYSQL layer and update layer routers.
    • Fix query order for trace list.
    • Add a calculation to convert seconds to days. q* Add Spring Sleuth dashboard to general service instance.
    • Support the process dashboard and create the time range text widget.
    • Fix picking calendar with a wrong time range and setting a unique value for dashboard grid key.
    • Add PostgreSQL to Database sub-menu.
    • Implement the network profiling widget.
    • Add Micronaut icon for Java plugin.
    • Add Nats icon for Java plugin.
    • Bump moment and @vue/cli-plugin-e2e-cypress.
    • Add Network Profiling for Service Mesh DP instance and K8s pod panels.

    Documentation

    • Fix invalid links in release docs.
    • Clean up doc about event metrics.
    • Add a table for metric calculations in the ui doc.
    • Add an explanation for alerting kernel and its in-memory window mechanism.
    • Add more docs for widget details.
    • Update alarm doc introduce configuration property key
    • Fix dependency license's NOTICE and binary jar included issues in the source release.
    • Add eBPF CPU profiling doc.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v9.1.0(Jun 10, 2022)

    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.

    eBPF profiling

    image

    On-demand Pod Log

    image

    Project

    • [IMPORTANT] Remove InfluxDB 1.x and Apache IoTDB 0.X as storage options, check details at here. Remove converter-moshi 2.5.0, influx-java 2.15, iotdb java 0.12.5, thrift 0.14.1, moshi 1.5.0, msgpack 0.8.16 dependencies. Remove InfluxDB and IoTDB relative codes and E2E tests.
    • Upgrade OAP dependencies zipkin to 2.23.16, H2 to 2.1.212, Apache Freemarker to 2.3.31, gRPC-java 1.46.0, netty to 4.1.76.
    • Upgrade Webapp dependencies, spring-cloud-dependencies to 2021.0.2, logback-classic to 1.2.11
    • [IMPORTANT] Add BanyanDB storage implementation. Notice BanyanDB is currently under active development and SHOULD NOT be used in production cluster.

    OAP Server

    • Add component definition(ID=127) for Apache ShenYu (incubating).
    • Fix Zipkin receiver: Decode spans error, missing Layer for V9 and wrong time bucket for generate Service and Endpoint.
    • [Refactor] Move SQLDatabase(H2/MySQL/PostgreSQL), ElasticSearch and BanyanDB specific configurations out of column.
    • Support BanyanDB global index for entities. Log and Segment record entities declare this new feature.
    • Remove unnecessary analyzer settings in columns of templates. Many were added due to analyzer's default value.
    • Simplify the Kafka Fetch configuration in cluster mode.
    • [Breaking Change] Update the eBPF Profiling task to the service level, please delete index/table: ebpf_profiling_task, process_traffic.
    • Fix event can't split service ID into 2 parts.
    • Fix OAP Self-Observability metric GC Time calculation.
    • Set SW_QUERY_MAX_QUERY_COMPLEXITY default value to 1000
    • Webapp module (for UI) enabled compression.
    • [Breaking Change] Add layer field to event, report an event without layer is not allowed.
    • Fix ES flush thread stops when flush schedule task throws exception, such as ElasticSearch flush failed.
    • Fix ES BulkProcessor in BatchProcessEsDAO was initialized multiple times and created multiple ES flush schedule tasks.
    • HTTPServer support the handler register with allowed HTTP methods.
    • [Critical] Revert Enhance DataCarrier#MultipleChannelsConsumer to add priority to avoid consuming issues.
    • Fix the problem that some configurations (such as group.id) did not take effect due to the override order when using the kafkaConsumerConfig property to extend the configuration in Kafka Fetcher.
    • Remove build time from the OAP version.
    • Add data-generator module to run OAP in testing mode, generating mock data for testing.
    • Support receive Kubernetes processes from gRPC protocol.
    • Fix the problem that es index(TimeSeriesTable, eg. endpoint_traffic, alarm_record) didn't create even after rerun with init-mode. This problem caused the OAP server to fail to start when the OAP server was down for more than a day.
    • Support autocomplete tags in traces query.
    • [Breaking Change] Replace all configurations **_JETTY_** to **_REST_**.
    • Add the support eBPF profiling field into the process entity.
    • E2E: fix log test miss verify LAL and metrics.
    • Enhance Converter mechanism in kernel level to make BanyanDB native feature more effective.
    • Add TermsAggregation properties collect_mode and execution_hint.
    • Add "execution_hint": "map", "collect_mode": "breadth_first" for aggregation and topology query to improve 5-10x performance.
    • Clean up scroll contexts after used.
    • Support autocomplete tags in logs query.
    • Enhance Deprecated MetricQuery(v1) getValues querying to asynchronous concurrency query
    • Fix the pod match error when the service has multiple selector in kubernetes environment.
    • VM monitoring adapts the 0.50.0 of the opentelemetry-collector.
    • Add Envoy internal cost metrics.
    • Remove Layer concept from ServiceInstance.
    • Remove unnecessary onCompleted on gRPC onError callback.
    • Remove Layer concept form Process.
    • Update to list all eBPF profiling schedulers without duration.
    • Storage(ElasticSearch): add search options to tolerate inexisting indices.
    • Fix the problem that MQ has the wrong Layer type.
    • Fix NoneStream model has wrong downsampling(was Second, should be Minute).
    • SQL Database: provide @SQLDatabase.AdditionalEntity to support create additional tables from a model.
    • [Breaking Change] SQL Database: remove SQL Database config maxSizeOfArrayColumn and numOfSearchableValuesPerTag.
    • [Breaking Change] SQL Database: move Tags list from Segment,Logs,Alarms to their additional table.
    • [Breaking Change] Remove total field in Trace, Log, Event, Browser log, and alarm list query.
    • Support OFF_CPU eBPF Profiling.
    • Fix SumAggregationBuilder#build should use the SumAggregation rather than MaxAggregation.
    • Add TiDB, OpenSearch, Postgres storage optional to Trace and eBPF Profiling E2E testing.
    • Add OFF CPU eBPF Profiling E2E Testing.
    • Fix searchableTag as rpc.status_code and http.status_code. status_code had been removed.
    • Fix scroll query failure exception.
    • Add profileDataQueryBatchSize config in Elasticsearch Storage.
    • Add APIs to query Pod log on demand.
    • Remove OAL for events.
    • Simplify the format index name logical in ES storage.
    • Add instance properties extractor in MAL.
    • Support Zipkin traces collect and zipkin traces query API.
    • [Breaking Change] Zipkin receiver mechanism changes and traces do not stream into OAP Segment anymore.

    UI

    • General service instance: move Thread Pool from JVM to Overview, fix JVM GC Count calculation.
    • Add Apache ShenYu (incubating) component LOGO.
    • Show more metrics on service/instance/endpoint list on the dashboards.
    • Support average values of metrics on the service/list/endpoint table widgets, with pop-up linear graph.
    • Fix viewLogs button query no data.
    • Fix UTC when page loads.
    • Implement the eBPF profile widget on dashboard.
    • Optimize the trace widget.
    • Avoid invalid query for topology metrics.
    • Add the alarm and log tag tips.
    • Fix spans details and task logs.
    • Verify query params to avoid invalid queries.
    • Mobile terminal adaptation.
    • Fix: set dropdown for the Tab widget, init instance/endpoint relation selectors, update sankey graph.
    • Add eBPF Profiling widget into General service, Service Mesh and Kubernetes tabs.
    • Fix jump to endpoint-relation dashboard template.
    • Fix set graph options.
    • Remove the Layer filed from the Instance and Process.
    • Fix date time picker display when set hour to 0.
    • Implement tags auto-complete for Trace and Log.
    • Support multiple trees for the flame graph.
    • Fix the page doesn't need to be re-rendered when the url changes.
    • Remove unexpected data for exporting dashboards.
    • Fix duration time.
    • Remove the total field from query conditions.
    • Fix minDuration and maxDuration for the trace filter.
    • Add Log configuration for the browser templates.
    • Fix query conditions for the browser logs.
    • Add Spanish Translation.
    • Visualize the OFF CPU eBPF profiling.
    • Add Spanish language to UI.
    • Sort spans with startTime or spanId in a segment.
    • Visualize a on-demand log widget.
    • Fix activate the correct tab index after renaming a Tabs name.
    • FaaS dashboard support on-demand log (OpenFunction/functions-framework-go version > 0.3.0).

    Documentation

    • Add eBPF agent into probe introduction.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v9.0.0(Apr 9, 2022)

    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.

    image

    Project

    • Upgrade log4j2 to 2.17.1 for CVE-2021-44228, CVE-2021-45046, CVE-2021-45105 and CVE-2021-44832. This CVE only effects on JDK if JNDI is opened in default. Notice, using JVM option -Dlog4j2.formatMsgNoLookups=true or setting the LOG4J_FORMAT_MSG_NO_LOOKUPS=”true” environment variable also avoids CVEs.
    • Upgrade maven-wrapper to 3.1.0, maven to 3.8.4 for performance improvements and ARM more native support.
    • Exclude unnecessary libs when building under JDK 9+.
    • Migrate base Docker image to eclipse-temurin as adoptopenjdk is deprecated.
    • Add E2E test under Java 17.
    • Upgrade protoc to 3.19.2.
    • Add Istio 1.13.1 to E2E test matrix for verification.
    • Upgrade Apache parent pom version to 25.
    • Use the plugin version defined by the Apache maven parent.
      • Upgrade maven-dependency-plugin to 3.2.0.
      • Upgrade maven-assembly-plugin to 3.3.0.
      • Upgrade maven-failsafe-plugin to 2.22.2.
      • Upgrade maven-surefire-plugin to 2.22.2.
      • Upgrade maven-jar-plugin to 3.2.2.
      • Upgrade maven-enforcer-plugin to 3.0.0.
      • Upgrade maven-compiler-plugin to 3.10.0.
      • Upgrade maven-resources-plugin to 3.2.0.
      • Upgrade maven-source-plugin to 3.2.1.
    • Update codeStyle.xml to fix incompatibility on M1's IntelliJ IDEA 2021.3.2.
    • Update frontend-maven-plugin to 1.12 and npm to 16.14.0 for booster UI build.
    • Improve CI with the GHA new feature "run failed jobs".
    • Fix ./mvnw compile not work if ./mvnw install is not executed at least once.
    • Add JD_PRESERVE_LINE_FEEDS=true in official code style file.
    • Upgrade OAP dependencies gson(2.9.0), guava(31.1), jackson(2.13.2), protobuf-java(3.18.4), commons-io(2.7), postgresql(42.3.3).
    • Remove commons-pool and commons-dbcp from OAP dependencies(Not used before).
    • Upgrade webapp dependencies gson(2.9.0), spring boot(2.6.6), jackson(2.13.2.2), spring cloud(2021.0.1), Apache httpclient(4.5.13).

    OAP Server

    • Fix potential NPE in OAL string match and a bug when right-hand-side variable includes double quotes.
    • Bump up Armeria version to 1.14.1 to fix CVE.
    • Polish ETCD cluster config environment variables.
    • Add the analysis of metrics in Satellite MetricsService.
    • Fix Can't split endpoint id into 2 parts bug for endpoint ID. In the TCP in service mesh observability, endpoint name doesn't exist in TCP traffic.
    • Upgrade H2 version to 2.0.206 to fix CVE-2021-23463 and GHSA-h376-j262-vhq6.
    • Extend column name override mechanism working for ValueColumnMetadata.
    • Introduce new concept Layer and removed NodeType. More details refer to v9-version-upgrade.
    • Fix query sort metrics failure in H2 Storage.
    • Bump up grpc to 1.43.2 and protobuf to 3.19.2 to fix CVE-2021-22569.
    • Add source layer and dest layer to relation.
    • Follow protocol grammar fix GCPhrase -> GCPhase.
    • Set layer to mesh relation.
    • Add FAAS to SpanLayer.
    • Adjust e2e case for V9 core.
    • Support ZGC GC time and count metric collecting.
    • Sync proto buffers files from upstream Envoy (Related to https://github.com/envoyproxy/envoy/pull/18955).
    • Bump up GraphQL related dependencies to latest versions.
    • Add normal to V9 service meta query.
    • Support scope=ALL catalog for metrics.
    • Bump up H2 to 2.1.210 to fix CVE-2022-23221.
    • E2E: Add normal field to Service.
    • Add FreeSql component ID(3017) of dotnet agent.
    • E2E: verify OAP cluster model data aggregation.
    • Fix SelfRemoteClient self observing metrics.
    • Add env variables SW_CLUSTER_INTERNAL_COM_HOST and SW_CLUSTER_INTERNAL_COM_PORT for cluster selectors zookeeper ,consul,etcd and nacos.
    • Doc update: configuration-vocabulary,backend-cluster about env variables SW_CLUSTER_INTERNAL_COM_HOST and SW_CLUSTER_INTERNAL_COM_PORT.
    • Add Python MysqlClient component ID(7013) with mapping information.
    • Support Java thread pool metrics analysis.
    • Fix IoTDB Storage Option insert null index value.
    • Set the default value of SW_STORAGE_IOTDB_SESSIONPOOL_SIZE to 8.
    • Bump up iotdb-session to 0.12.4.
    • Bump up PostgreSQL driver to fix CVE.
    • Add Guava EventBus component ID(123) of Java agent.
    • Add OpenFunction component ID(5013).
    • Expose configuration responseTimeout of ES client.
    • Support datasource metric analysis.
    • [Breaking Change] Keep the endpoint avg resp time meter name the same with others scope. (This may break 3rd party integration and existing alarm rule settings)
    • Add Python FastAPI component ID(7014).
    • Support all metrics from MAL engine in alarm core, including Prometheus, OC receiver, meter receiver.
    • Allow updating non-metrics templates when structure changed.
    • Set default connection timeout of ElasticSearch to 3000 milliseconds.
    • Support ElasticSearch 8 and add it into E2E tests.
    • Disable indexing for field alarm_record.tags_raw_data of binary type in ElasticSearch storage.
    • Fix Zipkin receiver wrong condition for decoding gzip.
    • Add a new sampler (possibility) in LAL.
    • Unify module name receiver_zipkin to receiver-zipkin, remove receiver_jaeger from application.yaml.
    • Introduce the entity of Process type.
    • Set the length of event#parameters to 2000.
    • Limit the length of Event#parameters.
    • Support large service/instance/networkAddressAlias list query by using ElasticSearch scrolling API, add metadataQueryBatchSize to configure scrolling page size.
    • Change default value of metadataQueryMaxSize from 5000 to 10000
    • Replace deprecated Armeria API BasicToken.of with AuthToken.ofBasic.
    • Implement v9 UI template management protocol.
    • Implement process metadata query protocol.
    • Expose more ElasticSearch health check related logs to help to diagnose Health check fails. reason: No healthy endpoint.
    • Add source event generated metrics to SERVICE_CATALOG_NAME catalog.
    • [Breaking Change] Deprecate All from OAL source.
    • [Breaking Change] Remove SRC_ALL: 'All' from OAL grammar tree.
    • Remove all_heatmap and all_percentile metrics.
    • Fix ElasticSearch normal index couldn't apply mapping and update.
    • Enhance DataCarrier#MultipleChannelsConsumer to add priority for the channels, which makes OAP server has a better performance to activate all analyzers on default.
    • Activate receiver-otel#enabledOcRules receiver with k8s-node,oap,vm rules on default.
    • Activate satellite,spring-sleuth for agent-analyzer#meterAnalyzerActiveFiles on default.
    • Activate receiver-zabbix receiver with agent rule on default.
    • Replace HTTP server (GraphQL, agent HTTP protocol) from Jetty with Armeria.
    • [Breaking Change] Remove configuration restAcceptorPriorityDelta (env var: SW_RECEIVER_SHARING_JETTY_DELTA , SW_CORE_REST_JETTY_DELTA).
    • [Breaking Change] Remove configuration graphql/path (env var: SW_QUERY_GRAPHQL_PATH).
    • Add storage column attribute indexOnly, support ElasticSearch only index and not store some fields.
    • Add indexOnly=true to SegmentRecord.tags, AlarmRecord.tags, AbstractLogRecord.tags, to reduce unnecessary storage.
    • [Breaking Change] Remove configuration restMinThreads (env var: SW_CORE_REST_JETTY_MIN_THREADS , SW_RECEIVER_SHARING_JETTY_MIN_THREADS).
    • Refactor the core Builder mechanism, new storage plugin could implement their own converter and get rid of hard requirement of using HashMap to communicate between data object and database native structure.
    • [Breaking Change] Break all existing 3rd-party storage extensions.
    • Remove hard requirement of BASE64 encoding for binary field.
    • Add complexity limitation for GraphQL query to avoid malicious query.
    • Add Column.shardingKeyIdx for column definition for BanyanDB.
    Sharding key is used to group time series data per metric of one entity in one place (same sharding and/or same 
    row for column-oriented database).
    For example,
    ServiceA's traffic gauge, service call per minute, includes following timestamp values, then it should be sharded by service ID
    [ServiceA(encoded ID): 01-28 18:30 values-1, 01-28 18:31 values-2, 01-28 18:32 values-3, 01-28 18:32 values-4]
    
    BanyanDB is the 1st storage implementation supporting this. It would make continuous time series metrics stored closely and compressed better.
    
    NOTICE, this sharding concept is NOT just for splitting data into different database instances or physical files.
    
    • Support ElasticSearch template mappings properties parameters and _source update.
    • Implement the eBPF profiling query and data collect protocol.
    • [Breaking Change] Remove Deprecated responseCode from sources, including Service, ServiceInstance, Endpoint
    • Enhance endpoint dependency analysis to support cross threads cases. Refactor span analysis code structures.
    • Remove isNotNormal service requirement when use alias to merge service topology from client side. All RPCs' peer services from client side are always normal services. This cause the topology is not merged correctly.
    • Fix event type of export data is incorrect, it was EventType.TOTAL always.
    • Reduce redundancy ThreadLocal in MAL core. Improve MAL performance.
    • Trim tag's key and value in log query.
    • Refactor IoTDB storage plugin, add IoTDBDataConverter and fix ModifyCollectionInEnhancedForLoop bug.
    • Bump up iotdb-session to 0.12.5.
    • Fix the configuration of Aggregation and GC Count metrics for oap self observability
    • E2E: Add verify OAP eBPF Profiling.
    • Let multiGet could query without tag value in the InfluxDB storage plugin.
    • Adjust MAL for V9, remove some groups, add a new Service function for the custom delimiter.
    • Add service catalog DatabaseSlowStatement.
    • Add Error Prone Annotations dependency to suppress warnings, which are not errors.

    UI

    • [Breaking Change] Introduce Booster UI, remove RocketBot UI.
    • [Breaking Change] UI Templates have been redesigned totally. GraphQL query is minimal compatible for metadata and metrics query.
    • Remove unused jars (log4j-api.jar) in classpath.
    • Bump up netty version to fix CVE.
    • Add Database Connection pool metric.
    • Re-implement UI template initialization for Booster UI.
    • Add environment variable SW_ENABLE_UPDATE_UI_TEMPLATE to control user edit UI template.
    • Add the Self Observability template of the SkyWalking Satellite.
    • Add the template of OpenFunction observability.

    Documentation

    • Reconstruction doc menu for v9.
    • Update backend-alarm.md doc, support op "=" to "==".
    • Update backend-meter.md doc .
    • Add <STAM: Enhancing Topology Auto Detection For A Highly Distributed and Large-Scale Application System> paper.
    • Add Academy menu for recommending articles.
    • Remove All source relative document and examples.
    • Update Booster UI's dependency licenses.
    • Add profiling doc, and remove service mesh intro doc(not necessary).
    • Add a doc for virtual database.
    • Rewrite UI introduction.
    • Update k8s-monitoring, backend-telemetry and v9-version-upgrade doc for v9.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v8.9.1(Dec 11, 2021)

    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

    • Upgrade log4j2 to 2.15.0 for CVE-2021-44228. This CVE only effects on JDK versions below 6u211, 7u201, 8u191 and 11.0.1 according to the post. Notice, using JVM option -Dlog4j2.formatMsgNoLookups=true also avoids CVE if your JRE opened JNDI in default.
    Source code(tar.gz)
    Source code(zip)
  • v8.9.0(Dec 5, 2021)

    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

    • E2E tests immigrate to e2e-v2.
    • Support JDK 16 and 17.
    • Add Docker images for arm64 architecture.

    OAP Server

    • Add component definition for Jackson.
    • Fix that zipkin-receiver plugin is not packaged into dist.
    • Upgrade Armeria to 1.12, upgrade OpenSearch test version to 1.1.0.
    • Add component definition for Apache-Kylin.
    • Enhance get generation mechanism of OAL engine, support map type of source's field.
    • Add tag(Map) into All, Service, ServiceInstance and Endpoint sources.
    • Fix funcParamExpression and literalExpression can't be used in the same aggregation function.
    • Support cast statement in the OAL core engine.
    • Support (str->long) and (long) for string to long cast statement.
    • Support (str->int) and (int) for string to int cast statement.
    • Support Long literal number in the OAL core engine.
    • Support literal string as parameter of aggregation function.
    • Add attributeExpression and attributeExpressionSegment in the OAL grammar tree to support map type for the attribute expression.
    • Refactor the OAL compiler context to improve readability.
    • Fix wrong generated codes of hashCode and remoteHashCode methods for numeric fields.
    • Support != null in OAL engine.
    • Add Message Queue Consuming Count metric for MQ consuming service and endpoint.
    • Add Message Queue Avg Consuming Latency metric for MQ consuming service and endpoint.
    • Support -Inf as bucket in the meter system.
    • Fix setting wrong field when combining Events.
    • Support search browser service.
    • Add getProfileTaskLogs to profile query protocol.
    • Set SW_KAFKA_FETCHER_ENABLE_NATIVE_PROTO_LOG, SW_KAFKA_FETCHER_ENABLE_NATIVE_JSON_LOG default true.
    • Fix unexpected deleting due to TTL mechanism bug for H2, MySQL, TiDB and PostgreSQL.
    • Add a GraphQL query to get OAP version, display OAP version in startup message and error logs.
    • Fix TimeBucket missing in H2, MySQL, TiDB and PostgreSQL bug, which causes TTL doesn't work for service_traffic.
    • Fix TimeBucket missing in ElasticSearch and provide compatible storage2Entity for previous versions.
    • Fix ElasticSearch implementation of queryMetricsValues and readLabeledMetricsValues doesn't fill default values when no available data in the ElasticSearch server.
    • Fix config yaml data type conversion bug when meets special character like !.
    • Optimize metrics of minute dimensionality persistence. The value of metrics, which has declaration of the default value and current value equals the default value logically, the whole row wouldn't be pushed into database.
    • Fix max function in OAL doesn't support negative long.
    • Add MicroBench module to make it easier for developers to write JMH test.
    • Upgrade Kubernetes Java client to 14.0.0, supports GCP token refreshing and fixes some bugs.
    • Change SO11Y metric envoy_als_in_count to calculate the ALS message count.
    • Support Istio 1.10.3, 1.11.4, 1.12.0 release.(Tested through e2e)
    • Add filter mechanism in MAL core to filter metrics.
    • Fix concurrency bug in MAL increase-related calculation.
    • Fix a null pointer bug when building SampleFamily.
    • Fix the so11y latency of persistence execution latency not correct in ElasticSearch storage.
    • Add MeterReportService collectBatch method.
    • Add OpenSearch 1.2.0 to test and verify it works.
    • Upgrade grpc-java to 1.42.1 and protoc to 3.17.3 to allow using native Mac osx-aarch_64 artifacts.
    • Fix TopologyQuery.loadEndpointRelation bug.
    • Support using IoTDB as a new storage option.
    • Add customized envoy ALS protocol receiver for satellite transmit batch data.
    • Remove logback dependencies in IoTDB plugin.
    • Fix StorageModuleElasticsearchProvider doesn't watch on trustStorePath.
    • Fix a wrong check about entity if GraphQL at the endpoint relation level.

    UI

    • Optimize endpoint dependency.
    • Show service name by hovering nodes in the sankey chart.
    • Add Apache Kylin logo.
    • Add ClickHouse logo.
    • Optimize the style and add tips for log conditions.
    • Fix the condition for trace table.
    • Optimize profile functions.
    • Implement a reminder to clear cache for dashboard templates.
    • Support +/- hh:mm in TimeZone setting.
    • Optimize global settings.
    • Fix current endpoint for endpoint dependency.
    • Add version in the global settings popup.
    • Optimize Log page style.
    • Avoid some abnormal settings.
    • Fix query condition of events.

    Documentation

    • Enhance documents about the data report and query protocols.
    • Restructure documents about receivers and fetchers.
      1. Remove general receiver and fetcher docs
      2. Add more specific menu with docs to help users to find documents easier.
    • Add a guidance doc about the logic endpoint.
    • Link Satellite as Load Balancer documentation and compatibility with satellite.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v8.8.1(Oct 2, 2021)

    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

    Source code(tar.gz)
    Source code(zip)
  • v8.8.0(Sep 27, 2021)

    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 Dockerfiles 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 in MAL.
    • 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 and endTime 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 on OpenJDK 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(was pate_path_id) of storage entity browser_error_log.
    • Add component id for Python falcon plugin.
    • Add rpcStatusCode for rpc.status_code tag. The responseCode field is marked as deprecated and replaced by httpResponseStatusCode 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 file trace-sampling-policy-settings.yml for service dimension on the backend side. Dynamic configurations agent-analyzer.default.sampleRate and agent-analyzer.default.slowTraceSegmentThreshold are replaced by agent-analyzer.default.traceSamplingPolicy. Static configurations agent-analyzer.default.sampleRate and agent-analyzer.default.slowTraceSegmentThreshold are replaced by agent-analyzer.default.traceSamplingPolicySettingsFile.
    • Fix dynamic configuration watch implementation current value not null when the config is deleted.
    • Fix LoggingConfigWatcher return watch.value would not consistent with the real configuration content.
    • Fix ZookeeperConfigWatcherRegister.readConfig() could cause NPE when data.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 of kafka-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 and HikariCP.
    • Fix Hour and Day 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

    Source code(tar.gz)
    Source code(zip)
  • v8.7.0(Aug 2, 2021)

    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 to profile.max_duration in the default agent.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 and ISource.
    • 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 to synchronous 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 through core/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 add rpm 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

    Source code(tar.gz)
    Source code(zip)
  • v8.6.0(Jun 10, 2021)

    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 except POST.
    • 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

    Source code(tar.gz)
    Source code(zip)
  • v8.5.0(Apr 12, 2021)

    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 for LogQuery.
    • Support Zabbix protocol to receive agent metrics.
    • Update the Apdex metric combine calculator.
    • Enhance MeterSystem to allow creating metrics with same metricName / 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 the topology-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 type K8sRetagType.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

    Source code(tar.gz)
    Source code(zip)
  • v8.4.0(Feb 4, 2021)

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

    Source code(tar.gz)
    Source code(zip)
  • v8.3.0(Dec 2, 2020)

    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 and not 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

    Source code(tar.gz)
    Source code(zip)
  • v8.2.0(Oct 27, 2020)

    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

    Source code(tar.gz)
    Source code(zip)
  • v8.1.0(Aug 3, 2020)

    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 and endpoint_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

    Source code(tar.gz)
    Source code(zip)
  • v8.0.1(Jun 21, 2020)

    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.
    Source code(tar.gz)
    Source code(zip)
  • v8.0.0(Jun 14, 2020)

    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

    • v3 protocol is added and implemented. All previous releases are incompatible with 8.x releases.
    • Service, Instance, Endpoint register mechanism and inventory storage entities are removed.
    • New GraphQL query protocol is provided, the legacy procotol is still supported(plan to remove at the end of this year).
    • Support Prometheus network protocol. Metrics in Prometheus format could be transferred into SkyWalking.
    • Python agent provided.
    • All inventory caches have been removed.
    • Apache ShardingSphere(4.0.0, 4.1.1) agent plugin provided.

    Java Agent

    • Add MariaDB plugin.
    • Vert.x plugin enhancement. More cases are covered.
    • Support v3 extension header.
    • Fix ElasticSearch 5.x plugin TransportClient error.
    • Support Correlation protocol v1.
    • Fix Finagle plugin bug, in processing Noop Span.
    • Make CommandService daemon to avoid blocking target application shutting down gracefully.
    • Refactor spring cloud gateway plugin and support tracing spring cloud gateway 2.2.x

    OAP-Backend

    • Support meter system for Prometheus adoption. In future releases, we will add native meter APIs and MicroMeter(Sleuth) system.
    • Support endpoint grouping.
    • Add SuperDataSet annotation for storage entity.
    • Add superDatasetIndexShardsFactor in the ElasticSearch storage, to provide more shards for @SuperDataSet annotated entites. Typically TraceSegment.
    • Support alarm settings for relationship of service, instance, and endpoint level metrics.
    • Support alarm settings for database(conjecture node in tracing scenario).
    • Data Model could be added in the runtime, don't depend on the bootstrap sequence anymore.
    • Reduce the memory cost, due to no inventory caches.
    • No buffer files in tracing and service mesh cases.
    • New ReadWriteSafe cache implementation. Simplify codes.
    • Provide default way for metrics query, even the metrics doesn't exist.
    • New GraphQL query protocol is provided. Support the metrics type query.
    • Set up length rule of service, instance, and endpoint.
    • Adjust the default jks for ElasticSearch to empty.
    • Fix Apdex function integer overflow issue.
    • Fix profile storage issue.
    • Fix TTL issue.
    • Fix H2 column type bug.
    • Add JRE 8-14 test for the backend.

    UI

    • UI dashboard is 100% configurable to adopt new metrics definited in the backend.

    Document

    • Add v8 upgrade document.
    • Make the coverage accurate including UT and e2e tests.
    • Add miss doc about collecting parameters in the profiled traces.

    CVE

    • Fix SQL Injection vulnerability in H2/MySQL implementation.
    • Upgrade Nacos to avoid the FastJson CVE in high frequency.
    • Upgrade jasckson-databind to 2.9.10.
    Source code(tar.gz)
    Source code(zip)
  • v7.0.0(Mar 22, 2020)

    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

    • SkyWalking discards the supports of JDK 1.6 and 1.7 on the java agent side. The minimal requirement of JDK is JDK8.
    • Support method performance profile.
    • Provide new E2E test framework.
    • Remove AppVeyor from the CI, use GitHub action only.
    • Provide new plugin test tool.
    • Don't support SkyWalking v5 agent in-wire and out-wire protocol. v6 is required.

    Java Agent

    • Add lazy injection API in the agent core.
    • Support Servlet 2.5 in the Struts plugin.
    • Fix RestTemplate plugin ClassCastException in the Async call.
    • Add Finagle plugin.
    • Add test cases of H2 and struts.
    • Add Armeria 0.98 plugin.
    • Fix ElasticSearch plugin bug.
    • Fix EHCache plugin bug.
    • Fix a potential I/O leak.
    • Support Oracle SID mode.
    • Update Byte-buddy core.
    • Performance tuning: replace AtomicInteger with AtomicIntegerFieldUpdater.
    • Add AVRO plugin.
    • Update to JDK 1.8
    • Optimize the ignore plugin.
    • Enhance the gRPC plugin.
    • Add Kotlin Coroutine plugin.
    • Support HTTP parameter collection in Tomcat and SpringMVC plugin.
    • Add @Tag annotation in the application toolkit.
    • Move Lettuce into the default plugin list.
    • Move Webflux into the default plugin list.
    • Add HttpClient 3.x plugin.

    OAP-Backend

    • Support InfluxDB as a new storage option.
    • Add selector in the application.yml. Make the provider activation more flexible through System ENV.
    • Support sub-topology map query.
    • Support gRPC SSL.
    • Support HTTP protocol for agent.
    • Support Nginx LUA agent.
    • Support skip the instance relationship analysis if some agents doesn't have upstream address, currently for LUA agent.
    • Support metrics entity name in the storage. Optional, default OFF.
    • Merge the HOUR and DAY metrics into MINUTE in the ElasticSearch storage implementation. Reduce the payload for ElasticSearch server.
    • Support change detection mechanism in DCS.
    • Support Daily step in the ElasticSearch storage implementation for low traffic system.
    • Provide profile export tool.
    • Support alarm gRPC hook.
    • Fix PHP language doesn't show up on the instance page.
    • Add more comments in the source codes.
    • Add a new metrics type, multiple linears.
    • Fix thread concurrency issue in the alarm core.

    UI

    • Support custom topology definition.
    • Support profile.

    Document

    • Add FAQ about python2 command required in the compiling.
    • Add doc about new e2e framework.
    • Add doc about the new profile feature.
    • Powered-by page updated.
    Source code(tar.gz)
    Source code(zip)
  • v6.6.0(Dec 27, 2019)

    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

    • [IMPORTANT] Local span and exit span are not treated as endpoint detected at client and local. Only entry span is the endpoint. Reduce the load of register and memory cost.
    • Support MiniKube, Istio and SkyWalking on K8s deployment in CI.
    • Support Windows and MacOS build in GitHub Action CI.
    • Support ElasticSearch 7 in official dist.
    • Hundreds plugin cases have been added in GitHub Action CI process.

    Java Agent

    • Remove the local/exit span operation name register mechanism.
    • Add plugin for JDK Threading classes.
    • Add plugin for Armeria.
    • Support set operation name in async span.
    • Enhance webflux plugin, related to Spring Gateway plugin. Webflux plugin is in optional, due to JDK8 required.
    • Fix a possible deadlock.
    • Fix NPE when OAL scripts are different in different OAP nodes, mostly in upgrading stage.
    • Fix bug about wrong peer in ES plugin.
    • Fix NPE in Spring plugin.
    • Fix wrong class name in Dubbo 2.7 conflict patch.
    • Fix spring annotation inheritance problem.

    OAP-Backend

    • Remove the local/exit span operation name register mechanism.
    • Remove client side endpoint register in service mesh.
    • Service instance dependency and related metrics.
    • Support min func in OAL
    • Support apdex func in OAL
    • Support custom ES config setting at the index level.
    • Envoy ALS proto upgraded.
    • Update JODA lib as bugs in UTC +13/+14.
    • Support topN sample period configurable.
    • Ignore no statement DB operations in slow SQL collection.
    • Fix bug in docker-entrypoint.sh when using MySQL as storage

    UI

    • Service topology enhancement. Dive into service, instance and endpoint metrics on topo map.
    • Service instance dependency view and related metrics.
    • Support using URL parameter in trace query page.
    • Support apdex score in service page.
    • Add service dependency metrics into metrics comparison.
    • Fix alarm search not working.

    Document

    • Update user list and user wall.
    • Add document link for CLI.
    • Add deployment guide of agent in Jetty case.
    • Modify Consul cluster doc.
    • Add document about injecting traceId into the logback with logstack in JSON format.
    • ElementUI license and dependency added.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v6.5.0(Nov 15, 2019)

    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

    • Compatible with 6.4.0 release
    • TTL E2E test (#3437)
    • Test coverage is back in pull request check status (#3503)
    • Plugin tests begin to be migrated into main repo, and is in process. (#3528, #3756, #3751, etc.)
    • Switch to SkyWalking CI (exclusive) nodes (#3546)
    • MySQL storage e2e test. (#3648)
    • E2E tests are verified in multiple jdk versions, jdk 8, 9, 11, 12 (#3657)
    • Jenkins build jobs run only when necessary (#3662)

    OAP-Backend

    • Support dynamically configure alarm settings (#3557)
    • Language of instance could be null (#3485)
    • Make query max window size configurable. (#3765)
    • Remove two max size 500 limit. (#3748)
    • Parameterize the cache size. (#3741)
    • ServiceInstanceRelation set error id (#3683)
    • Makes the scope of alarm message more semantic. (#3680)
    • Add register persistent worker latency metrics (#3677)
    • Fix more reasonable error (#3619)
    • Add GraphQL getServiceInstance instanceUuid field. (#3595)
    • Support namespace in Nacos cluster/configuration (#3578)
    • Instead of datasource-settings.properties, use application.yml for MySQLStorageProvider (#3564)
    • Provide consul dynamic configuration center implementation (#3560)
    • Upgrade guava version to support higher jdk version (#3541)
    • Sync latest als from envoy api (#3507)
    • Set telemetry instanced id for Etcd and Nacos plugin (#3492)
    • Support timeout configuration in agent and backend. (#3491)
    • Make sure the cluster register happens before streaming process. (#3471)
    • Agent supports custom properties. (#3367)
    • Miscellaneous bug fixes (#3567)

    UI

    • Feature: node detail display in topo circle-chart view.
    • BugFix: the jvm-maxheap & jvm-maxnonheap is -1, free is no value
    • Fix bug: time select operation not in effect
    • Fix bug: language initialization failed
    • Fix bug: not show instance language
    • Feature: support the trace list display export png
    • Feature: Metrics comparison view
    • BugFix: Fix dashboard top throughput copy

    Java Agent

    • Spring async scenario optimize (#3723)
    • Support log4j2 AsyncLogger (#3715)
    • Add config to collect PostgreSQL sql query params (#3695)
    • Support namespace in Nacos cluster/configuration (#3578)
    • Provide plugin for ehcache 2.x (#3575)
    • Supporting RequestRateLimiterGatewayFilterFactory (#3538)
    • Kafka-plugin compatible with KafkaTemplate (#3505)
    • Add pulsar apm plugin (#3476)
    • Spring-cloud-gateway traceId does not transmit #3411 (#3446)
    • Gateway compatible with downstream loss (#3445)
    • Provide cassandra java driver 3.x plugin (#3410)
    • Fix SpringMVC4 NoSuchMethodError (#3408)
    • BugFix: endpoint grouping rules may be not unique (#3510)
    • Add feature to control the maximum agent log files (#3475)
    • Agent support custom properties. (#3367)

    Document

    • Remove travis badge (#3763)
    • Replace user wall to typical users in readme page (#3719)
    • Update istio docs according latest istio release (#3646)
    • Use chart deploy sw docs (#3573)
    • Reorganize the doc, and provide catalog (#3563)
    • Committer vote and set up document. (#3496)
    • Update als setup doc as istio 1.3 released (#3470)
    • Fill faq reply in official document. (#3450)
    Source code(tar.gz)
    Source code(zip)
  • v6.4.0(Sep 11, 2019)

    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

    • Highly recommend to upgrade due to Pxx metrics calculation bug.
    • Make agent working in JDK9+ Module system.

    Java Agent

    • Make agent working in JDK9+ Module system.
    • Support Kafka 2.x client libs.
    • Log error in OKHTTP OnFailure callback.
    • Support injecting traceid into logstack appender in logback.
    • Add OperationName(including endpoint name) length max threshold.
    • Support using Regex to group operation name.
    • Support Undertow routing handler.
    • RestTemplate plugin support operation name grouping.
    • Fix ClassCastException in Webflux plugin.
    • Ordering zookeeper server list, to make it better in topology.
    • Fix a Dubbo plugin incompatible issue.
    • Fix MySQL 5 plugin issue.
    • Make log writer cached.
    • Optimize Spring Cloud Gateway plugin
    • Fix and improve gRPC reconnect mechanism.
    • Remove Disruptor dependency from agent.

    Backend

    • Fix Pxx(p50,p75,p90,p95,p99) metrics func bug.(Critical)
    • Support Gateway in backend analysis, even when it doesn't have suitable language agent.
    • Support using HTTPs SSL accessing ElasticSearch storage.
    • Support Zookeeper ACL.
    • Make alarm records listed in order.
    • Fix Pxx data persistence failure in some cases.
    • Fix some bugs in MySQL storage.
    • Setup slow SQL length threshold.
    • Fix TTL settings is not working as expected.
    • Remove scope-meta file.

    UI

    • Enhance alarm page layout.
    • Support trace tree chart resize.
    • Support trace auto completion when partial traces abandoned somehow.
    • Fix dashboard endpoint slow chart.
    • Add radial chart in topology page.
    • Add trace table mode.
    • Fix topology page bug.
    • Fix calender js bug.
    • Fix "The "topo-services" component did not update the data in time after modifying the time range on the topology page.

    Document

    • Restore the broken Istio setup doc.
    • Add etcd config center document.
    • Correct span_limit_per_segment default value in document.
    • Enhance plugin develop doc.
    • Fix error description in build document.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v6.3.0(Aug 8, 2019)

    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

    • e2e tests have been added, and verify every pull request.
    • Use ArrayList to replace LinkedList in DataCarrier for much better performance.
    • Add plugin instrumentation definition check in CI.
    • DataCarrier performance improvement by avoiding false-sharing.

    Java Agent

    • Java agent supports JDK 9 - 12, but don't support Java Module yet.
    • Support JVM class auto instrumentation, cataloged as bootstrap plugin.
    • Support JVM HttpClient and HttpsClient plugin.[Optional]
    • Support backend upgrade without rebooting required.
    • Open Redefine and Retransform by other agents.
    • Support Servlet 2.5 in Jetty, Tomcat and SpringMVC plugins.
    • Support Spring @Async plugin.
    • Add new config item to restrict the length of span#peer.
    • Refactor ContextManager#stopSpan.
    • Add gRPC timeout.
    • Support Logback AsyncAppender print tid
    • Fix gRPC reconnect bug.
    • Fix trace segment service doesn't report onComplete.
    • Fix wrong logger class name.
    • Fix gRPC plugin bug.
    • Fix ContextManager.activeSpan() API usage error.

    Backend

    • Support agent reset command downstream when the storage is erased, mostly because of backend upgrade.
    • Backend stream flow refactor.
    • High dimensionality metrics(Hour/Day/Month) are changed to lower priority, to ease the storage payload.
    • Add OAP metrics cache to ease the storage query payload and improve performance.
    • Remove DataCarrier in trace persistent of ElasticSearch storage, by leveraging the elasticsearch bulk queue.
    • OAP internal communication protocol changed. Don't be compatible with old releases.
    • Improve ElasticSearch storage bulk performance.
    • Support etcd as dynamic configuration center.
    • Simplify the PxxMetrics and ThermodynamicMetrics functions for better performance and GC.
    • Support JVM metrics self observability.
    • Add the new OAL runtime engine.
    • Add gRPC timeout.
    • Add Charset in the alarm web hook.
    • Fix buffer lost.
    • Fix dirty read in ElasticSearch storage.
    • Fix bug of cluster management plugins in un-Mixed mode.
    • Fix wrong logger class name.
    • Fix delete bug in ElasticSearch when using namespace.
    • Fix MySQL TTL failure.
    • Totally remove IDs can't be null log, to avoid misleading.
    • Fix provider has been initialized repeatedly.
    • Adjust providers conflict log message.
    • Fix using wrong gc time metrics in OAL.

    UI

    • Fix refresh is not working after endpoint and instance changed.
    • Fix endpoint selector but.
    • Fix wrong copy value in slow traces.
    • Fix can't show trace when it is broken partially(Because of agent sampling or fail safe).
    • Fix database and response time graph bugs.

    Document

    • Add bootstrap plugin development document.
    • Alarm documentation typo fixed.
    • Clarify the Docker file purpose.
    • Fix a license typo.
    Source code(tar.gz)
    Source code(zip)
  • v6.2.0(Jul 2, 2019)

    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

    • ElasticSearch storage implementation performance improved, and CHANGED totally. Must delete all existing indexes to do the upgrade.
    • CI and Integration tests provided by ASF INFRA.
    • Plan to enhance tests including e2e, plugin tests in all pull requests, powered by ASF INFRA.
    • DataCarrier queue write index controller performance improvement. 3-5 times quicker than before.
    • Add windows compile support in CI.

    Java Agent

    • Support collect SQL parameter in MySQL plugin.[Optional]
    • Support SolrJ plugin.
    • Support RESTEasy plugin.
    • Support Spring Gateway plugin for 2.1.x
    • TracingContext performance improvement.
    • Support Apache ShardingSphere(incubating) plugin.
    • Support span#error in application toolkit.
    • Fix OOM by empty stack of exception.
    • FIx wrong cause exception of stack in span log.
    • Fix unclear the running context in SpringMVC plugin.
    • Fix CPU usage accessor calculation issue.
    • Fix SpringMVC plugin span not stop bug when doing HTTP forward.
    • Fix lettuce plugin async commend bug and NPE.
    • Fix webflux plugin cast exception.
    • [CI]Support import check.

    Backend

    • Support time series ElasticSearch storage.
    • Provide dynamic configuration module and implementation. Slow SQL threshold supports dynamic config today.
    • Dynamic Configuration module provide multiple implementations, DCS(gRPC based), Zookeeper, Apollo, Nacos.
    • Provide P99/95/90/75/50 charts in topology edge.
    • New topology query protocol and implementation.
    • Support Envoy ALS in Service Mesh scenario.
    • Support Nacos cluster management.
    • Enhance metric exporter. Run in increment and total modes.
    • Fix module provider is loaded repeatedly.
    • Change TOP slow SQL storage in ES to Text from Keyword, as too long text issue.
    • Fix H2TopologyQuery tiny bug.
    • Fix H2 log query bug.(No feature provided yet)
    • Filtering pods not in 'Running' phase in mesh scenario.
    • Fix query alarm bug in MySQL and H2 storage.
    • Codes refactor.

    UI

    • Fix some ID is null query(s).
    • Page refactor, especially time-picker, more friendly.
    • Login removed.
    • Trace timestamp visualization issue fixed.
    • Provide P99/95/90/75/50 charts in topology edge.
    • Change all P99/95/90/75/50 charts style. More readable.
    • Fix 404 in trace page.

    Document

    • Go2Sky project has been donated to SkyAPM, change document link.
    • Add FAQ for ElasticSearch storage, and links from document.
    • Add FAQ fro WebSphere installation.
    • Add several open users.
    • Add alarm webhook document.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v6.1.0(May 5, 2019)

    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

    SkyWalking graduated as Apache Top Level Project.

    • Support compiling project agent, backend, UI separately.

    Java Agent

    • Support Vert.x Core 3.x plugin.
    • Support Apache Dubbo plugin.
    • Support use_qualified_name_as_endpoint_name and use_qualified_name_as_operation_name configs in SpringMVC plugin.
    • Support span async close APIs in core. Used in Vert.x plugin.
    • Support MySQL 5,8 plugins.
    • Support set instance id manually(optional).
    • Support customize enhance trace plugin in optional list.
    • Support to set peer in Entry Span.
    • Support Zookeeper plugin.
    • Fix Webflux plugin created unexpected Entry Span.
    • Fix Kafka plugin NPE in Kafka 1.1+
    • Fix wrong operation name in postgre 8.x plugin.
    • Fix RabbitMQ plugin NPE.
    • Fix agent can't run in JVM 6/7, remove module-info.class.
    • Fix agent can't work well, if there is whitespace in agent path.
    • Fix Spring annotation bug and inheritance enhance issue.
    • Fix CPU accessor bug.

    Backend

    Performance improved, especially in CPU limited environment. 3x improvement in service mesh scenario(no trace) in 8C16G VM. Significantly cost less CPU in low payload.

    • Support database metric and SLOW SQL detection.
    • Support to set max size of metadata query. And change default to 5000 from 100.
    • Support ElasticSearch template for new feature in the future.
    • Support shutdown Zipkin trace analysis, because it doesn't fit production environment.
    • Support log type, scope HTTP_ACCESS_LOG and query. No feature provided, prepare for future versions.
    • Support .NET clr receiver.
    • Support Jaeger trace format, no analysis.
    • Support group endpoint name by regax rules in mesh receiver.
    • Support diable statement in OAL.
    • Support basic auth in ElasticSearch connection.
    • Support metric exporter module and gRPC implementor.
    • Support >, <, >=, <= in OAL.
    • Support role mode in backend.
    • Support Envoy metric.
    • Support query segment by service instance.
    • Support to set host/port manually at cluster coordinator, rather than based on core settings.
    • Make sure OAP shutdown when it faces startup error.
    • Support set separated gRPC/Jetty ip:port for receiver, default still use core settings.
    • Fix JVM receiver bug.
    • Fix wrong dest service in mesh analysis.
    • Fix search doesn't work as expected.
    • Refactor ScopeDeclaration annotation.
    • Refactor register lock mechanism.
    • Add SmartSql component for .NET
    • Add integration tests for ElasticSearch client.
    • Add test cases for exporter.
    • Add test cases for queue consume.

    UI

    • RocketBot UI has been accepted and bind in this release.
    • Support CLR metric.

    Document

    • Documents updated, matching Top Level Project requirement.
    • UI licenses updated, according to RocketBot UI IP clearance.
    • User wall and powered-by list updated.
    • CN documents removed, only consider to provide by volunteer out of Apache.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v6.0.0-GA(Jan 29, 2019)

    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.

    Java Agent

    • Support gson plugin(optional).
    • Support canal plugin.
    • Fix missing ojdbc component id.
    • Fix dubbo plugin conflict.
    • Fix OpenTracing tag match bug.
    • Fix a missing check in ignore plugin.

    Backend

    • Adjust service inventory entity, to add properties.
    • Adjust service instance inventory entity, to add properties.
    • Add nodeType to service inventory entity.
    • Fix when operation name of local and exit spans in ref, the segment lost.
    • Fix the index names don't show right in logs.
    • Fix wrong alarm text.
    • Add test case for span limit mechanism.
    • Add telemetry module and prometheus implementation, with grafana setting.
    • A refactor for register API in storage module.
    • Fix H2 and MySQL endpoint dependency map miss upstream side.
    • Optimize the inventory register and refactor the implementation.
    • Speed up the trace buffer read.
    • Fix and removed unnecessary inventory register operations.

    UI

    • Add new trace view.
    • Add word-break to tag value.

    Document

    • Add two startup modes document.
    • Add PHP agent links.
    • Add some cn documents.
    • Update year to 2019
    • User wall updated.
    • Fix a wrong description in how-to-build doc.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v6.0.0-beta(Dec 25, 2018)

    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.

    Protocol

    • Provide Trace Data Protocol v2
    • Provide SkyWalking Cross Process Propagation Headers Protocol v2.

    Java Agent

    • Support Trace Data Protocol v2
    • Support SkyWalking Cross Process Propagation Headers Protocol v2.
    • Support SkyWalking Cross Process Propagation Headers Protocol v1 running in compatible way. Need declare open explicitly.
    • Support SpringMVC 5
    • Support webflux
    • Support a new way to override agent.config by system env.
    • Span tag can override by explicit way.
    • Fix Spring Controller Inherit issue.
    • Fix ElasticSearch plugin NPE.
    • Fix agent classloader dead lock in certain situation.
    • Fix agent log typo.
    • Fix wrong component id in resettemplete plugin.
    • Fix use transform ignore() in wrong way.
    • Fix H2 query bug.

    Backend

    • Support Trace Data Protocol v2. And Trace Data Protocol v1 is still supported.
    • Support MySQL as storage.
    • Support TiDB as storage.
    • Support a new way to override application.yml by system env.
    • Support service instance and endpoint alarm.
    • Support namespace in istio receiver.
    • Support service throughput(cpm), successful rate(sla), avg response time and p99/p95/p90/p75/p50 response time.
    • Support backend trace sampling.
    • Support Zipkin format again.
    • Support init mode.
    • Support namespace in Zookeeper cluster management.
    • Support consul plugin in cluster module.
    • OAL generate tool has been integrated into main repo, in the maven compile stage.
    • Optimize trace paging query.
    • Fix trace query don't use fuzzy query in ElasticSearch storage.
    • Fix alarm can't be active in right way.
    • Fix unnecessary condition in database and cache number query.
    • Fix wrong namespace bug in ElasticSearch storage.
    • Fix Remote clients selector error: / by zero.
    • Fix segment TTL is not working.

    UI

    • Support service throughput(cpm), successful rate(sla), avg response time and p99/p95/p90/p75/p50 response time.
    • Fix TopN endpoint link doesn't work right.
    • Fix trace stack style.
    • Fix CI.

    Document

    • Add more agent setting documents.
    • Add more contribution documents.
    • Update user wall and powered-by page.
    • Add RocketBot UI project link in document.

    All issues and pull requests are here

    Source code(tar.gz)
    Source code(zip)
  • v6.0.0-alpha(Nov 14, 2018)

    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.

    SkyWalking 6 is totally new milestone for the project. At this point, we are not just a distributing tracing system with analysis and visualization capabilities. We are an Observability Analysis Platform(OAP).

    The core and most important features in v6 are

    1. Support to collect telemetry data from different sources, such as multiple language agents and service mesh.
    2. Extensible stream analysis core. Make SQL and cache analysis available in core level, although haven't provided in this release.
    3. Provide Observability Analysis Language(OAL) to make analysis metric customization available.
    4. New GraphQL query protocol. Not binding with UI now.
    5. UI topology is better now.
    6. New alarm core provided. In alpha, only on service related metric.

    Issues and Pull requests

    Source code(tar.gz)
    Source code(zip)
  • v5.0.0-GA(Oct 17, 2018)

    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.

    Agent Changes

    • Add several package names ignore in agent settings. Classes in these packages would be enhanced, even plugin declared.
    • Support Undertow 2.x plugin.
    • Fix wrong class names of Motan plugin, not a feature related issue, just naming.

    Collector Changes

    • Make buffer file handler close more safety.
    • Fix NPE in AlarmService

    Documents

    • Fix compiling doc link.
    • Update new live demo address.

    Issues and Pull requests

    Source code(tar.gz)
    Source code(zip)
  • v5.0.0-RC2(Sep 12, 2018)

    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.

    Agent Changes

    • Support ActiveMQ 5.x
    • Support RuntimeContext used out of TracingContext.
    • Support Oracle ojdbc8 Plugin.
    • Support ElasticSearch client transport 5.2-5.6 Plugin
    • Support using agent.config with given path through system properties.
    • Add a new way to transmit the Request and Response, to avoid bugs in Hytrix scenarios.
    • Fix HTTPComponent client v4 operation name is empty.
    • Fix 2 possible NPEs in Spring plugin.
    • Fix a possible span leak in SpringMVC plugin.
    • Fix NPE in Spring callback plugin.

    Collector Changes

    • Add GZip support for Zipkin receiver.
    • Add new component IDs for nodejs.
    • Fix Zipkin span receiver may miss data in request.
    • Optimize codes in heatmap calculation. Reduce unnecessary divide.
    • Fix NPE in Alarm content generation.
    • Fix the precision lost in ServiceNameService#startTimeMillis.
    • Fix GC count is 0.
    • Fix topology breaks when RPC client uses the async thread call.

    UI Changes

    • Fix UI port can't be set by startup script in Windows.
    • Fix Topology self link error.
    • Fix stack color mismatch label color in gc time chart.

    Documents

    • Add users list.
    • Fix several document typo.
    • Sync the Chinese documents.
    • Add OpenAPM badge.
    • Add icon/font documents to NOTICE files.

    Issues and Pull requests

    Source code(tar.gz)
    Source code(zip)
  • v5.0.0-beta2(Jul 11, 2018)

    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.

    UI -> Collector GraphQL query protocol

    • Add order and status in trace query.

    Agent Changes

    • Add SOFA plugin.
    • Add witness class for Kafka plugin.
    • Add RuntimeContext in Context.
    • Fix RuntimeContext fail in Tomcat plugin.
    • Fix incompatible for getPropertyDescriptors in Spring core.
    • Fix spymemcached plugin bug.
    • Fix database URL parser bug.
    • Fix StringIndexOutOfBoundsException when mysql jdbc url without databaseName。
    • Fix duplicate slash in Spring MVC plugin bug.
    • Fix namespace bug.
    • Fix NPE in Okhttp plugin when connect failed.
    • FIx MalformedURLException in httpClientComponent plugin.
    • Remove unused dependencies in Dubbo plugin.
    • Remove gRPC timeout to avoid out of memory leak.
    • Rewrite Async http client plugin.
    • [Incubating] Add trace custom ignore optional plugin.

    Collector Changes

    • Topology query optimization for more than 100 apps.
    • Error rate alarm is not triggered.
    • Tolerate unsupported segments.
    • Support Integer Array, Long Array, String Array, Double Array in streaming data model.
    • Support multiple entry span and multiple service name in one segment durtaion record.
    • Use BulkProcessor to control the linear writing of data by multiple threads.
    • Determine the log is enabled for the DEBUG level before printing message.
    • Add static modifier to Logger.
    • Add AspNet component.
    • Filter inactive service in query.
    • Support to query service based on Application.
    • Fix RemoteDataMappingIdNotFoundException
    • Exclude component-libaries.xml file in collector-*.jar, make sure it is in /conf only.
    • Separate a single TTL in minute to in minute, hour, day, month metric and trace.
    • Add order and status in trace query.
    • Add folder lock to buffer folder.
    • Modify operationName search from match to match_phrase.
    • [Incubating] Add Zipkin span receiver. Support analysis Zipkin v1/v2 formats.
    • [Incubating] Support sharding-sphere as storage implementor.

    UI Changes

    • Support login and access control.
    • Add new webapp.yml configuration file.
    • Modify webapp startup script.
    • Link to trace query from Thermodynamic graph
    • Add application selector in service view.
    • Add order and status in trace query.

    Documents

    • Add architecture design doc.
    • Reformat deploy document.
    • Adjust Tomcat deploy document.
    • Remove all Apache licenses files in dist release packages.
    • Update user cases.
    • Update UI licenses.
    • Add incubating sections in doc.

    Issues and Pull requests

    Source code(tar.gz)
    Source code(zip)
Owner
The Apache Software Foundation
The Apache Software Foundation
A java apm agent based on skywalking and open-telemetry.

Hermes是提供给Java应用使用的Apm解决方案。 基于Apache Skywalking Agent Core. 复用了对于byte-buddy的封装 复用了logging日志模块 复用了config配置 复用了BootService 做了一些优化定制 Tracing协议基于Open-tele

道君 6 Dec 7, 2021
Two Spring-boot applications registering themselves to an spring-boot-admin-server application as separate clients for the purpose of monitoring and managing the clients

Spring-boot-admin implementation with 1 Server and 2 clients Creating a Server application to monitor and manage Spring boot applications (clients) un

null 6 Dec 6, 2022
Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Hayden Hanson 0 May 21, 2022
Rewrite of the dataconverter system for performance.

DataConverter This mod completely rewrites the dataconverter system for Minecraft. Please note that this fabric mod is not to be used. It is published

null 38 Nov 23, 2022
Rewrite of the dataconverter system for performance.

DataConverter This mod completely rewrites the dataconverter system for Minecraft. Please note that this fabric mod is not to be used. It is published

PaperMC 38 Nov 23, 2022
🔥 强大的动态线程池,并附带监控报警功能(没有依赖中间件),完全遵循阿里巴巴编码规范。Powerful dynamic thread pool, does not rely on any middleware, with monitoring and alarm function.

?? 动态线程池(DTP)系统,包含 Server 端及 SpringBoot Client 端需引入的 Starter. 这个项目做什么? 动态线程池(Dynamic-ThreadPool),下面简称 DTP 系统 美团线程池文章 介绍中,因为业务对线程池参数没有合理配置,触发过几起生产事故,进而

longtai 3.4k Dec 30, 2022
Beispielprojekt für Monitoring mit Prometheus und Grafana

Beispielprojekt für Monitoring mit Prometheus und Grafana Software git Für die Java Beispiel Java JDK in Version 17. Docker und docker-compose empfohl

trion 1 Jan 27, 2022
SpringBoot service to pick up CAN messages retransmitted by CANBridge and extract certain values for reporting/monitoring/alerting via DataDog

SpringBoot service to pick up CAN messages retransmitted by CANBridge and extract certain values for reporting/monitoring/alerting via DataDog

Grumpy Cricket 2 Mar 12, 2022
Highly customized business metrics monitoring with TDengine & Spring Boot

Horus —— Highly customized business metrics monitoring with TDengine & Spring Boot 给予业务指标监控的高度定制自由 设计文档:https://akhnhwmr9k.feishu.cn/wiki/wikcnJJFmDHj

ArchLiu 6 Jun 17, 2022
Flash Sale System AKA. seckill system

FlashSaleSystem Project highlights Distributed system scheme From a single machine to a cluster, it is easy to scale horizontally simply by adding ser

wsbleek 12 Sep 13, 2022
Team 5468's 2022 FRC robot code. This code is written in Java and is based off of WPILib's Java control system and utilizes a command based system

FRC 2022 Team 5468's 2022 FRC robot code. This code is written in Java and is based off of WPILib's Java control system and utilizes a command based s

null 4 Oct 4, 2022
Hotels Management System - JavaFX GUI Application

Hotels Management System Hotels Management System - JavaFX Application Does this repo deserve a star? I hope that. Let's talk about what can my progra

Samer Al-Sa'dawi 22 Aug 29, 2022
This repository is for Todo application. This contains the Backend part of the application.

Todo Application 개요(Abstract) 개인용 할일 목록 리스트 앱플리케이션 구축 (Personal Todo List Application) 목적 1. React.js기초, AWS서버 활용, 스프링 부트 공부 목적으로 프로젝트 시작했습니다.

Thom 3 Jan 8, 2022
Android application made during an introduction class to mobile application development.

Reflex Revolution Android application made during an introduction class to mobile application development. Contributors Hailey Savoie Carter Moore Fre

Frederic Verret 3 Aug 27, 2022
High performance RPC framework based on netty

RPC(Remote Procedure Call)实战 @desc: 仅用于个人学习、了解RPC @date: 2021/01/16 技术组成: 版本一 版本二 版本三 传输层 Netty4 * * 编码层 Kryo * * 应用层 JDK动态代理 * * 服务注册与发现 手动注册+guava缓存

XDD 10 Nov 22, 2022
Universal, flexible, high-performance distributed ID generator

CosId Universal, flexible, high-performance distributed ID generator 中文文档 Introduction CosId aims to provide a universal, flexible and high-performanc

Ahoo Wang 256 Dec 27, 2022
BurritoSpigot is a fork of TacoSpigot 1.8.9 that offers several enhancements to performance as well as bug fixes. while offer extra APIs and support for plugins

?? BurritoSpigot ?? BurritoSpigot is a fork of TacoSpigot 1.8.8 that offers several enhancements to performance as well as bug fixes. while offer extr

Cobble Sword Services 44 Dec 20, 2022
✈A high-performance RPC based on Java & Netty.

bRPC README 中文版本 一个基于netty的RPC框架 基于netty NIO、IO多路复用。 client与server端建立心跳包保活机制。发生未知断连时,重连保证可靠长连接。 使用kryo序列化,自定义传输包,及传输格式,避免TCP沾包问题。 支持zookeeper或nacos做服务

vincent 238 Dec 16, 2022
Clivia is a scalable, high-performance, elastic and responsive API gateway based on spring weblux

clivia是一款基于spring webflux的可扩展、高性能、高弹性、响应式的 API 网关 clivia_V0.0.1 架构概览 模块介绍 clivia-admin-core : 网关配置管理后台核心模块 clivia-client-core : 网关核心模块 clivia-example

palading 14 Jan 9, 2023