Go to file
龟仙老人 f414d72dd5 Rewrite AtomicRangeInteger for higher performance (#2874)
Typical test benchmark for performance improvement. Check PR for more detail.

/**
     * # JMH version: 1.21
     * # VM version: JDK 1.8.0_111, Java HotSpot(TM) 64-Bit Server VM, 25.111-b14
     * # VM invoker: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/bin/java
     * # VM options: -Dfile.encoding=UTF-8
     * # Warmup: 3 iterations, 10 s each
     * # Measurement: 5 iterations, 1000 ms each, 1000 calls per op
     * # Timeout: 10 min per iteration
     * # Threads: 1024 threads, ***WARNING: Synchronize iterations are disabled!***
     * # Benchmark mode: Throughput, ops/time
     * # Benchmark: org.apache.skywalking.apm.commons.datacarrier.common.AtomicRangeIntegerTest.testNewGetAndIncrementPerformance
     *
     * # Run progress: 0.00% complete, ETA 00:01:10
     * # Fork: 1 of 1
     * # Warmup Iteration   1: 2078993549.108 ops/s
     * # Warmup Iteration   2: 6408026002.297 ops/s
     * # Warmup Iteration   3: 5455960135.636 ops/s
     * Iteration   1: 165330.972 ops/s
     * Iteration   2: 95420.526 ops/s
     * Iteration   3: 173340.089 ops/s
     * Iteration   4: 94214.669 ops/s
     * Iteration   5: 261606.088 ops/s
     *
     *
     * Result "org.apache.skywalking.apm.commons.datacarrier.common.AtomicRangeIntegerTest.testNewGetAndIncrementPerformance":
     *   157982.469 ±(99.9%) 265443.465 ops/s [Average]
     *   (min, avg, max) = (94214.669, 157982.469, 261606.088), stdev = 68934.825
     *   CI (99.9%): [≈ 0, 423425.934] (assumes normal distribution)
     *
     *
     * # JMH version: 1.21
     * # VM version: JDK 1.8.0_111, Java HotSpot(TM) 64-Bit Server VM, 25.111-b14
     * # VM invoker: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/bin/java
     * # VM options: -Dfile.encoding=UTF-8
     * # Warmup: 3 iterations, 10 s each
     * # Measurement: 5 iterations, 1000 ms each, 1000 calls per op
     * # Timeout: 10 min per iteration
     * # Threads: 1024 threads, ***WARNING: Synchronize iterations are disabled!***
     * # Benchmark mode: Throughput, ops/time
     * # Benchmark: org.apache.skywalking.apm.commons.datacarrier.common.AtomicRangeIntegerTest.testOriGetAndIncrementPerformance
     *
     * # Run progress: 50.00% complete, ETA 00:00:43
     * # Fork: 1 of 1
     * # Warmup Iteration   1: 3345520433.355 ops/s
     * # Warmup Iteration   2: 4823749249.799 ops/s
     * # Warmup Iteration   3: 6676209367.819 ops/s
     * Iteration   1: 34885.954 ops/s
     * Iteration   2: 33128.147 ops/s
     * Iteration   3: 31300.865 ops/s
     * Iteration   4: 19188.602 ops/s
     * Iteration   5: 34664.282 ops/s
     *
     *
     * Result "org.apache.skywalking.apm.commons.datacarrier.common.AtomicRangeIntegerTest.testOriGetAndIncrementPerformance":
     *   30633.570 ±(99.9%) 25249.253 ops/s [Average]
     *   (min, avg, max) = (19188.602, 30633.570, 34885.954), stdev = 6557.151
     *   CI (99.9%): [5384.317, 55882.822] (assumes normal distribution)
     *
     *
     * # Run complete. Total time: 00:01:26
     *
     * REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on
     * why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial
     * experiments, perform baseline and negative tests that provide experimental control, make sure
     * the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.
     * Do not assume the numbers tell you what you want them to tell.
     *
     * Benchmark                                                  Mode  Cnt       Score        Error  Units
     * AtomicRangeIntegerTest.testNewGetAndIncrementPerformance  thrpt    5  157982.469 ± 265443.465  ops/s
     * AtomicRangeIntegerTest.testOriGetAndIncrementPerformance  thrpt    5   30633.570 ±  25249.253  ops/s
     */
2019-06-15 13:43:36 +08:00
.github Add new GitHub template 2018-01-16 17:07:14 +08:00
.mvn/wrapper Backend streaming thread model improvement (#2247) 2019-02-18 14:55:07 +08:00
apm-application-toolkit Support span#error in toolkit (#2605) 2019-05-10 11:14:39 +08:00
apm-checkstyle Move to 6.2 (#2563) 2019-04-30 12:16:50 +08:00
apm-commons Rewrite AtomicRangeInteger for higher performance (#2874) 2019-06-15 13:43:36 +08:00
apm-dist Add missing licenses and remove duplicate plugin management (#2879) 2019-06-15 11:50:29 +08:00
apm-protocol Revert SolrJ plugin. (#2871) 2019-06-14 09:24:58 +08:00
apm-sniffer Revert SolrJ plugin. (#2871) 2019-06-14 09:24:58 +08:00
apm-webapp Customizing the management endpoint paths (#2598) 2019-05-06 17:46:58 +08:00
docker add time series implementation configuration. (#2815) 2019-06-04 09:17:18 +08:00
docs Add alarm webhook document (#2878) 2019-06-15 00:45:17 +08:00
licenses Reorganize the receiver proto (#2426) 2019-03-30 18:25:31 -07:00
oap-server Bump up fabric docker plugin version (#2875) 2019-06-14 15:16:09 +08:00
skywalking-ui@40036f4cba sync UI submodule. (#2831) 2019-06-06 15:30:57 +08:00
tools Update all "incubator-skywalking" to "skywalking" ,"incubator-servicecomb-java-chassis" to "servicecomb-java-chassis" correctly, and ".gitmodules" will update at #2531 (#2548) 2019-04-28 15:47:14 +08:00
.gitignore Improve OAP cluster performance (#2271) 2019-02-21 16:33:07 +08:00
.gitmodules update git modules url (#2531) 2019-04-28 15:09:13 +08:00
.travis.yml Integrate Jenkins CI (#2864) 2019-06-13 17:06:21 +08:00
CHANGES.md Rename metric and indicator to metrics. (#2643) 2019-05-10 08:05:37 +08:00
CODE_OF_CONDUCT.md Update COC to Apache edition (#890) 2018-03-06 18:51:01 +08:00
CONTRIBUTING.md Remove many incubator/incubating things. (#2499) 2019-04-21 11:11:09 +08:00
HEADER Update package name to org.apache.skywalking 2017-12-10 16:32:39 +08:00
Jenkinsfile Integrate Jenkins CI (#2864) 2019-06-13 17:06:21 +08:00
LICENSE Reorganize the receiver proto (#2426) 2019-03-30 18:25:31 -07:00
Makefile Update docker building tool (#2677) 2019-05-16 09:37:56 +08:00
NOTICE Update year to 2019 (#2113) 2019-01-02 18:16:24 +08:00
README.md Update README.md (#2744) 2019-05-23 18:57:39 +08:00
appveyor.yml Using PowerMockito to mock System.getent; (#2593) 2019-05-07 10:32:43 +08:00
codeStyle.xml Update copyright to Apache Foundation. 2017-12-09 23:38:32 +08:00
mvnw Moves to Maven wrapper to stabilize the version in use (#1569) 2018-08-22 19:04:15 +08:00
mvnw.cmd Moves to Maven wrapper to stabilize the version in use (#1569) 2018-08-22 19:04:15 +08:00
pom.xml Add missing licenses and remove duplicate plugin management (#2879) 2019-06-15 11:50:29 +08:00

README.md

Apache SkyWalking

Sky Walking logo

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

GitHub stars Twitter Follow

Maven Central Build Status

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
  • Service topology map analysis
  • Service, service instance and endpoint dependency analysis
  • Slow services and endpoints detected
  • Performance optimization
  • Distributed tracing and context propagation
  • Database access metrics. Detect slow database access statements(including SQL statements).
  • Alarm

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

  1. Java, .NET Core, NodeJS and PHP auto-instrument agents in SkyWalking format
  2. Manual-instrument Go agent in SkyWalking format.
  3. Istio telemetry format
  4. Envoy gRPC Access Log Service (ALS) format in Istio controlled service mesh
  5. Envoy Metrics Service format.
  6. Zipkin v1/v2 format.
  7. Jaeger gRPC format.

Document

Downloads

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

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

Host in Beijing. Go to demo.

  • Username: admin
  • Password: admin

Video on youtube.com

RocketBot UI

Screenshot

Dashboard
Topology Map Trace

Compiling project

Follow this document.

Contact Us

  • Submit an issue
  • Mail list: dev@skywalking.apache.org. Mail to dev-subscribe@skywalking.apache.org, follow the reply to subscribe the mail list.
  • Join #skywalking channel at Apache Slack
  • QQ Group: 392443393(2000/2000, not available), 901167865(available)

Who Uses SkyWalking?

A wide variety of companies and organizations use SkyWalking for research, production and commercial product. Here is the User Wall of SkyWalking.

Users are encouraged to add themselves to the PoweredBy page.

Landscapes



  

SkyWalking enriches the CNCF CLOUD NATIVE Landscape.


Our project enriches the OpenAPM Landscape!

License

Apache 2.0 License.