Go to file
吴晟 Wu Sheng b635e254c4
Provide Meter(metrics) system (#4694)
Here are the basic and simple usages of the MeterSystem APIs.

## Meter Creation
New meter could be created based on metrics name, function, scope and data type. 
1. Metrics name is still the storage entity name.
2. Functions are every similar with the OAL function, just accepting different input.
```java
final MeterSystem meterSystem = MeterSystem.meterSystem(getManager());
meterSystem.create("test_long_metrics", "avg", ScopeType.SERVICE, Long.class);
```
NOTICE, this creation should only be called in the `module#prepare` stage, otherwise, `Can't create new metrics anymore` exception will be raised after the **CORE** module `start` stage finished. You may find out, there is a chance `create` could be executed successfully in your own `module#start` stage, but it it just because of the sequence of provider loaded by the class loader, **no guarantee, so please don't do that**.

## Runtime Calculation
`AcceptableValue` is the object created at the runtime to accept new metrics value.
```java
         final MeterSystem service = getManager().find(CoreModule.NAME).provider().getService(MeterSystem.class);
        Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                final AcceptableValue<Long> value = service.buildMetrics("test_long_metrics", Long.class);
                value.accept(MeterEntity.newService("abc"), 5L);
                value.setTimeBucket(TimeBucket.getMinuteTimeBucket(System.currentTimeMillis()));
                service.doStreamingCalculation(value);
            }
        }, 2, 2, TimeUnit.SECONDS);
```

## Meter Functions
Right now, only `avg` function has been implemented. I submit this PR as soon as possible to get your feedback. I will add more functions.

## Notice
1. Make slow trace query available in the sampled record. Logically, they are the same thing. The UI doesn't need to concern about the trace as a special case.
2. Endpoint dependency will be removed from the dashboard. Because no query available for it. We will provide a new page for that in 8.1
3. Comparison page will be removed due to dashboard is powerful enough to replace it.
2020-04-24 23:33:13 +08:00
.github Vertx plugin test re-implementation (#4624) 2020-04-24 19:49:03 +08:00
.mvn/wrapper Update mvnw to latest version (#3789) 2019-11-06 11:40:32 +08:00
apm-application-toolkit Make 8.0.0 Core available. New protocol and register removed. (#4599) 2020-04-10 11:03:24 +08:00
apm-checkstyle Fix profile recheck error (#4690) 2020-04-22 19:25:56 +08:00
apm-commons Support to use empty string to override existing config. (#4635) 2020-04-11 13:05:57 +08:00
apm-dist Set up restrict length rules for service, instance and endpoint (#4633) 2020-04-10 17:59:21 +08:00
apm-dist-es7 Set up restrict length rules for service, instance and endpoint (#4633) 2020-04-10 17:59:21 +08:00
apm-protocol Make 8.0.0 Core available. New protocol and register removed. (#4599) 2020-04-10 11:03:24 +08:00
apm-sniffer Fix profile recheck error (#4690) 2020-04-22 19:25:56 +08:00
apm-webapp Make 8.0.0 Core available. New protocol and register removed. (#4599) 2020-04-10 11:03:24 +08:00
dist-material [CVE] Update Jetty version to fix its CVEs (#4642) 2020-04-13 14:27:19 +08:00
docker Add Java versions 9~14 to E2E tests (#4674) 2020-04-21 13:45:32 +08:00
docs Provide Meter(metrics) system (#4694) 2020-04-24 23:33:13 +08:00
install op skywalking-deploy.sh (#4064) 2019-12-15 16:05:28 +08:00
licenses Exclude the test codes from source release. (#3509) 2019-09-23 17:49:07 +08:00
oap-server Provide Meter(metrics) system (#4694) 2020-04-24 23:33:13 +08:00
skywalking-ui@86ed033a6f sync ui (#4685) 2020-04-22 08:38:41 +08:00
test Vertx plugin test re-implementation (#4624) 2020-04-24 19:49:03 +08:00
tools Fix profile recheck error (#4690) 2020-04-22 19:25:56 +08:00
.asf.yaml Updated GitHub merge settings (#4384) 2020-02-19 22:09:16 +08:00
.gitignore Rewrite the E2E test framework and tests (#4510) 2020-03-16 23:45:14 +08:00
.gitmodules Set a shared submodule for e2e test project. (#4329) 2020-02-08 21:56:23 +08:00
CHANGES.md Add 7.0.0 changelog (#4531) 2020-03-17 22:20:14 +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
LICENSE Update: add LICENSE-material-design (#3922) 2019-11-25 14:51:51 +08:00
Makefile Add Java versions 9~14 to E2E tests (#4674) 2020-04-21 13:45:32 +08:00
NOTICE Update NOTICE year (#4158) 2020-01-01 22:40:12 +08:00
README.md Provide Meter(metrics) system (#4694) 2020-04-24 23:33:13 +08:00
codeStyle.xml Fix code-style formatter (#4350) 2020-02-11 20:25:23 +08:00
lombok.config Count the coverage in E2E tests and Plugin tests (#4651) 2020-04-15 23:09:05 +08:00
mvnw Update mvnw to latest version (#3789) 2019-11-06 11:40:32 +08:00
mvnw.cmd Update mvnw to latest version (#3789) 2019-11-06 11:40:32 +08:00
pom.xml Add Java versions 9~14 to E2E tests (#4674) 2020-04-21 13:45:32 +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 CI/IT Tests E2E Tests Code Coverage

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. Read Apache SkyWalking: Use Profiling to Fix the Blind Spot of Distributed Tracing.
  • 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.
  2. Go agent.
  3. LUA agent, especially for Nginx, OpenResty.
  4. Service Mesh Observability, including Envoy gRPC Access Log Service (ALS) format in Istio controlled service mesh, Istio telemetry.
  5. Metrics system, including Prometheus, Spring Sleuth(Micrometer).
  6. Zipkin v1/v2 and Jaeger gRPC format with limited topology and metrics analysis.(Experimental).

Document

8.x dev | 7.0 | 6.6, 6.5.

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

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.

Video on youtube.com

RocketBot UI

Screenshot

Dashboard
Topology Map Trace

Compiling project

Follow this document.

Contact Us

Who Uses SkyWalking?

Hundreds of companies and organizations use SkyWalking for research, production, and commercial product.

The PoweredBy page includes more users of the project. Users are encouraged to add themselves to there.

Landscapes



  

SkyWalking enriches the CNCF CLOUD NATIVE Landscape.


Our project enriches the OpenAPM Landscape!

License

Apache 2.0 License.